markstream-react 0.0.50 → 0.0.52

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 (62) hide show
  1. package/README.md +134 -104
  2. package/dist/{Tooltip-D786qxIk.js → Tooltip-Ux2h3oiV.js} +125 -125
  3. package/dist/{codeBlockExtraProps-7n9FWJXk.js → codeBlockExtraProps-NhTjbA1T.js} +1 -1
  4. package/dist/{index-o_DISWz2.js → index-DdaK6qko.js} +14 -14
  5. package/dist/index.css +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.px.css +1 -1
  8. package/dist/index.tailwind.css +1 -1
  9. package/dist/markstream-react.css +1 -1
  10. package/dist/next.d.ts +1 -2
  11. package/dist/next.js +1 -1
  12. package/dist/server.d.ts +41 -42
  13. package/dist/server.js +1 -1
  14. package/dist/tailwind.cjs +4 -0
  15. package/dist/tailwind.d.ts +2 -0
  16. package/dist/tailwind.js +2 -0
  17. package/dist/types/components/AdmonitionNode/AdmonitionNode.d.ts +2 -1
  18. package/dist/types/components/BlockquoteNode/BlockquoteNode.d.ts +2 -1
  19. package/dist/types/components/CheckboxNode/CheckboxNode.d.ts +2 -1
  20. package/dist/types/components/CodeBlockNode/CodeBlockNode.d.ts +2 -1
  21. package/dist/types/components/CodeBlockNode/PreCodeNode.d.ts +2 -1
  22. package/dist/types/components/D2BlockNode/D2BlockNode.d.ts +2 -1
  23. package/dist/types/components/DefinitionListNode/DefinitionListNode.d.ts +2 -1
  24. package/dist/types/components/EmojiNode/EmojiNode.d.ts +2 -1
  25. package/dist/types/components/EmphasisNode/EmphasisNode.d.ts +2 -1
  26. package/dist/types/components/FootnoteAnchorNode/FootnoteAnchorNode.d.ts +2 -1
  27. package/dist/types/components/FootnoteNode/FootnoteNode.d.ts +2 -1
  28. package/dist/types/components/FootnoteReferenceNode/FootnoteReferenceNode.d.ts +2 -1
  29. package/dist/types/components/HardBreakNode/HardBreakNode.d.ts +2 -1
  30. package/dist/types/components/HeadingNode/HeadingNode.d.ts +2 -1
  31. package/dist/types/components/HighlightNode/HighlightNode.d.ts +2 -1
  32. package/dist/types/components/HtmlBlockNode/HtmlBlockNode.d.ts +1 -1
  33. package/dist/types/components/HtmlInlineNode/HtmlInlineNode.d.ts +2 -1
  34. package/dist/types/components/ImageNode/ImageNode.d.ts +1 -1
  35. package/dist/types/components/InfographicBlockNode/InfographicBlockNode.d.ts +2 -1
  36. package/dist/types/components/InlineCodeNode/InlineCodeNode.d.ts +2 -1
  37. package/dist/types/components/InsertNode/InsertNode.d.ts +2 -1
  38. package/dist/types/components/LinkNode/LinkNode.d.ts +2 -1
  39. package/dist/types/components/ListItemNode/ListItemNode.d.ts +2 -1
  40. package/dist/types/components/ListNode/ListNode.d.ts +2 -1
  41. package/dist/types/components/MarkdownCodeBlockNode/MarkdownCodeBlockNode.d.ts +2 -1
  42. package/dist/types/components/Math/MathBlockNode.d.ts +1 -1
  43. package/dist/types/components/Math/MathInlineNode.d.ts +1 -1
  44. package/dist/types/components/MermaidBlockNode/MermaidBlockNode.d.ts +2 -1
  45. package/dist/types/components/NodeRenderer/FallbackComponent.d.ts +2 -1
  46. package/dist/types/components/ParagraphNode/ParagraphNode.d.ts +2 -1
  47. package/dist/types/components/ReferenceNode/ReferenceNode.d.ts +1 -1
  48. package/dist/types/components/StrikethroughNode/StrikethroughNode.d.ts +2 -1
  49. package/dist/types/components/StrongNode/StrongNode.d.ts +2 -1
  50. package/dist/types/components/SubscriptNode/SubscriptNode.d.ts +2 -1
  51. package/dist/types/components/SuperscriptNode/SuperscriptNode.d.ts +2 -1
  52. package/dist/types/components/TableNode/TableNode.d.ts +2 -1
  53. package/dist/types/components/TextNode/TextNode.d.ts +2 -1
  54. package/dist/types/components/ThematicBreakNode/ThematicBreakNode.d.ts +2 -1
  55. package/dist/types/components/VmrContainerNode/VmrContainerNode.d.ts +2 -1
  56. package/dist/types/context/viewportPriority.d.ts +1 -1
  57. package/dist/types/renderers/renderChildren.d.ts +1 -1
  58. package/dist/types/renderers/renderNode.d.ts +1 -1
  59. package/dist/types/server-renderer/index.d.ts +41 -41
  60. package/dist/types/styles.d.ts +1 -0
  61. package/package.json +39 -40
  62. package/dist/tailwind.ts +0 -3
@@ -1 +1 @@
1
- :where(.markstream-react) button{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:transparent;border:0;font:inherit;color:inherit}.markstream-react .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.markstream-react .pointer-events-none{pointer-events:none}.markstream-react .visible{visibility:visible}.markstream-react .collapse{visibility:collapse}.markstream-react .fixed{position:fixed}.markstream-react .absolute{position:absolute}.markstream-react .relative{position:relative}.markstream-react .inset-0{top:0;right:0;bottom:0;left:0}.markstream-react .right-2{right:.5rem}.markstream-react .right-6{right:1.5rem}.markstream-react .top-2{top:.5rem}.markstream-react .top-6{top:1.5rem}.markstream-react .z-10{z-index:10}.markstream-react .z-50{z-index:50}.markstream-react .z-\[9999\]{z-index:9999}.markstream-react .m-0{margin:0}.markstream-react .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.markstream-react .my-2{margin-top:.5rem;margin-bottom:.5rem}.markstream-react .my-4{margin-top:1rem;margin-bottom:1rem}.markstream-react .my-5{margin-top:1.25rem;margin-bottom:1.25rem}.markstream-react .my-8{margin-top:2rem;margin-bottom:2rem}.markstream-react .mb-4{margin-bottom:1rem}.markstream-react .ml-4{margin-left:1rem}.markstream-react .mt-2{margin-top:.5rem}.markstream-react .block{display:block}.markstream-react .inline-block{display:inline-block}.markstream-react .inline{display:inline}.markstream-react .flex{display:flex}.markstream-react .inline-flex{display:inline-flex}.markstream-react .table{display:table}.markstream-react .grid{display:grid}.markstream-react .contents{display:contents}.markstream-react .list-item{display:list-item}.markstream-react .hidden{display:none}.markstream-react .h-3{height:.75rem}.markstream-react .h-4{height:1rem}.markstream-react .h-full{height:100%}.markstream-react .max-h-full{max-height:100%}.markstream-react .min-h-\[360px\]{min-height:360px}.markstream-react .min-h-\[40px\]{min-height:40px}.markstream-react .min-h-full{min-height:100%}.markstream-react .w-2\/3{width:66.666667%}.markstream-react .w-3{width:.75rem}.markstream-react .w-4{width:1rem}.markstream-react .w-4\/5{width:80%}.markstream-react .w-full{width:100%}.markstream-react .max-w-full{max-width:100%}.markstream-react .flex-1{flex:1 1 0%}.markstream-react .flex-shrink-0{flex-shrink:0}.markstream-react .border-collapse{border-collapse:collapse}.markstream-react .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.markstream-react .cursor-grab{cursor:grab}.markstream-react .cursor-grabbing{cursor:grabbing}.markstream-react .cursor-not-allowed{cursor:not-allowed}.markstream-react .cursor-pointer{cursor:pointer}.markstream-react .list-decimal{list-style-type:decimal}.markstream-react .list-disc{list-style-type:disc}.markstream-react .items-center{align-items:center}.markstream-react .items-baseline{align-items:baseline}.markstream-react .justify-center{justify-content:center}.markstream-react .justify-between{justify-content:space-between}.markstream-react .gap-1\.5{gap:.375rem}.markstream-react .gap-2{gap:.5rem}.markstream-react .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.markstream-react .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.markstream-react :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.markstream-react :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.markstream-react .overflow-hidden{overflow:hidden}.markstream-react .overflow-x-auto{overflow-x:auto}.markstream-react .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.markstream-react .whitespace-normal{white-space:normal}.markstream-react .whitespace-nowrap{white-space:nowrap}.markstream-react .whitespace-pre-wrap{white-space:pre-wrap}.markstream-react .break-words{overflow-wrap:break-word}.markstream-react .rounded{border-radius:calc(var(--ms-radius) * .5)}.markstream-react .rounded-lg{border-radius:var(--ms-radius)}.markstream-react .rounded-md{border-radius:calc(var(--ms-radius) * .75)}.markstream-react .border{border-width:1px}.markstream-react .border-b{border-bottom-width:1px}.markstream-react .border-t{border-top-width:1px}.markstream-react .border-\[var\(--footnote-border\,\#eaecef\)\]{border-color:var(--footnote-border,#eaecef)}.markstream-react .border-\[var\(--table-border\,\#cbd5e1\)\]{border-color:var(--table-border,#cbd5e1)}.markstream-react .border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.markstream-react .border-gray-400\/5{border-color:#9ca3af0d}.markstream-react .border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.markstream-react .border-gray-700\/30{border-color:#3741514d}.markstream-react .bg-\[hsl\(var\(--muted\)\)\]{background-color:hsl(var(--muted))}.markstream-react .bg-\[hsl\(var\(--secondary\)\)\]{background-color:hsl(var(--secondary))}.markstream-react .bg-black\/70{background-color:#000000b3}.markstream-react .bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.markstream-react .bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.markstream-react .p-0\.5{padding:.125rem}.markstream-react .p-2{padding:.5rem}.markstream-react .p-4{padding:1rem}.markstream-react .p-\[calc\(4\/7\*1em\)\]{padding:calc(4 / 7 * 1em)}.markstream-react .px-1{padding-left:.25rem;padding-right:.25rem}.markstream-react .px-1\.5{padding-left:.375rem;padding-right:.375rem}.markstream-react .px-2{padding-left:.5rem;padding-right:.5rem}.markstream-react .px-2\.5{padding-left:.625rem;padding-right:.625rem}.markstream-react .px-3{padding-left:.75rem;padding-right:.75rem}.markstream-react .px-4{padding-left:1rem;padding-right:1rem}.markstream-react .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.markstream-react .py-1{padding-top:.25rem;padding-bottom:.25rem}.markstream-react .py-2{padding-top:.5rem;padding-bottom:.5rem}.markstream-react .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.markstream-react .py-4{padding-top:1rem;padding-bottom:1rem}.markstream-react .pb-3{padding-bottom:.75rem}.markstream-react .pl-1\.5{padding-left:.375rem}.markstream-react .pl-\[calc\(13\/8\*1em\)\]{padding-left:1.625em}.markstream-react .pt-2{padding-top:.5rem}.markstream-react .text-left{text-align:left}.markstream-react .text-center{text-align:center}.markstream-react .text-right{text-align:right}.markstream-react .font-mono{font-family:var(--ms-font-mono)}.markstream-react .text-\[85\%\]{font-size:85%}.markstream-react .text-base{font-size:1rem;line-height:1.5rem}.markstream-react .text-sm{font-size:.875rem;line-height:1.25rem}.markstream-react .text-xs{font-size:.75rem;line-height:1rem}.markstream-react .font-medium{font-weight:500}.markstream-react .font-semibold{font-weight:600}.markstream-react .uppercase{text-transform:uppercase}.markstream-react .italic{font-style:italic}.markstream-react .leading-\[normal\]{line-height:normal}.markstream-react .leading-relaxed{line-height:1.625}.markstream-react .text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.markstream-react .text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.markstream-react .text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.markstream-react .underline{text-decoration-line:underline}.markstream-react .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markstream-react .opacity-50{opacity:.5}.markstream-react .shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.markstream-react .shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.markstream-react .shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.markstream-react .outline{outline-style:solid}.markstream-react .blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-react .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-react .backdrop-blur{--tw-backdrop-blur: blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-react .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-react .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .transition-\[height\]{transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .duration-100{transition-duration:.1s}.markstream-react .duration-150{transition-duration:.15s}.markstream-react .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-react .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.markstream-react{--border: 214.3 31.8% 91.4%;--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--secondary: 210 40% 96%;--muted: 210 40% 96%;--muted-foreground: 215.4 16.3% 46.9%}.dark .markstream-react,.markstream-react.dark{--border: 217.2 32.6% 17.5%;--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--secondary: 217.2 32.6% 17.5%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%}.markdown-renderer{position:relative;contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px}.markdown-renderer.virtualized{content-visibility:visible;contain-intrinsic-size:auto}.node-slot,.node-content{width:100%}.node-placeholder{width:100%;min-height:1rem;margin:.25rem 0;border-radius:.5rem;background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;animation:node-placeholder-shimmer 1.1s ease-in-out infinite}.node-placeholder:first-child{margin-top:0}.node-spacer{width:100%}.fade-node,.typewriter-node{opacity:0;animation:node-enter-fade var(--fade-duration, var(--typewriter-fade-duration, .28s)) var(--fade-ease, var(--typewriter-fade-ease, cubic-bezier(.33, 0, .67, 1))) forwards}.unknown-node{color:#6a737d;font-style:italic;margin:1rem 0}.text-node{display:inline;font-weight:inherit;vertical-align:baseline;white-space:pre-wrap;word-break:break-word}.text-node.text-node-center{display:inline-flex;justify-content:center;width:100%}.text-node-stream-delta{animation-duration:var(--stream-update-fade-duration, var(--fade-duration, var(--typewriter-fade-duration, .28s)));animation-timing-function:var(--stream-update-fade-ease, var(--fade-ease, var(--typewriter-fade-ease, cubic-bezier(.33, 0, .67, 1))));animation-fill-mode:both;will-change:opacity}.text-node-stream-delta--a{animation-name:text-node-stream-update-fade-a}.text-node-stream-delta--b{animation-name:text-node-stream-update-fade-b}.paragraph-node{margin:1.25em 0;line-height:1.625}li .paragraph-node{margin:0}.blockquote-node{font-weight:500;font-style:italic;border-left:.25rem solid var(--blockquote-border-color,#e2e8f0);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.blockquote-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.heading-node{font-weight:600}.heading-1{margin-top:0;margin-bottom:calc(8 / 9 * 1em);font-size:2.25rem;line-height:calc(10 / 9 * 1);font-weight:800}.heading-2{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;line-height:calc(4 / 3 * 1)}.heading-3{margin-top:1.6em;margin-bottom:calc(3 / 5 * 1em);font-size:1.25rem;line-height:calc(5 / 3 * 1)}.heading-4,.heading-5,.heading-6{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem}.heading-5,.heading-6{margin-top:0;margin-bottom:0}.link-node{color:var(--link-color, #0366d6);text-decoration:none}.link-node:hover{text-decoration:underline;text-underline-offset:.2rem}.link-loading{color:var(--link-color, #0366d6)}.link-loading .link-text-wrapper{position:relative}.link-loading .link-text{position:relative;z-index:2}.link-loading-indicator{position:absolute;left:0;right:0;height:var(--underline-height, 2px);bottom:var(--underline-bottom, -3px);background:currentColor;border-radius:999px;will-change:opacity;opacity:var(--underline-rest-opacity, .18);animation:markstream-react-link-loading-pulse var(--underline-duration, 1.6s) var(--underline-timing, ease-in-out) var(--underline-iteration, infinite)}@keyframes markstream-react-link-loading-pulse{0%,to{opacity:var(--underline-rest-opacity, .18)}50%{opacity:var(--underline-opacity, .35)}}@keyframes text-node-stream-update-fade-a{0%{opacity:0}to{opacity:1}}@keyframes text-node-stream-update-fade-b{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.link-loading-indicator{animation:none!important;opacity:var(--underline-rest-opacity, .18)}.text-node-stream-delta{animation:none!important}.fade-node,.typewriter-node,.typewriter-cursor{animation:none!important;opacity:1}}.inline-code{padding:.125rem .375rem;border-radius:.375rem;background:#f3f4f6;font-size:.875rem}.image-node__img{display:inline-block;max-width:none;width:auto;height:auto;min-height:0;vertical-align:middle;border-radius:.75rem;opacity:0;transition:opacity .2s ease}.image-node__img.is-loaded{opacity:1}.image-node__placeholder,.image-node__error{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:auto;padding:1.5rem;border-radius:.75rem;vertical-align:middle}.image-node__placeholder{background:linear-gradient(120deg,#94a3b833,#e2e8f059);color:#475569;box-shadow:inset 0 0 0 1px #94a3b833}.image-node__error{color:#dc2626;background:#f8717114}.image-node__spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.image-node__placeholder-text{font-size:.875rem;color:currentColor}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.footnote-node{display:flex;margin-top:var(--ms-flow-footnote-y, .5em);margin-bottom:var(--ms-flow-footnote-y, .5em);padding-top:.5rem;border-top:1px solid var(--footnote-border, hsl(var(--border)));font-size:.875rem;line-height:1.625}.footnote-reference{font-size:.75em;line-height:0}.footnote-link{color:var(--link-color, #0366d6);text-decoration:none}.footnote-link:hover{text-decoration:underline}.footnote-anchor{margin-left:.5rem;color:var(--link-color, #0366d6);text-decoration:none;cursor:pointer}.footnote-anchor:hover{text-decoration:underline}.admonition-node{border-left:4px solid #e5e7eb;border-radius:.5rem;padding:.75rem 1rem;margin:1.5rem 0;background:#f9fafbe6}.admonition-node__title{font-weight:600;margin-bottom:.5rem}.table-node-wrapper{position:relative;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable}.table-node{width:100%;border-collapse:collapse}.table-node th,.table-node td{white-space:normal;overflow-wrap:break-word;word-break:normal}.table-node thead th{position:relative}.table-node__resize-handle{position:absolute;top:0;right:-4px;bottom:0;z-index:1;width:8px;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none}.table-node__resize-handle:after{content:"";position:absolute;top:.35em;bottom:.35em;left:50%;width:2px;border-radius:9999px;background:#5e68798c;opacity:0;transform:translate(-50%);transition:opacity .12s ease}.table-node__resize-handle:hover:after,.table-node__resize-handle:focus-visible:after{opacity:1}.table-node .text-node,.table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}.table-node--loading tbody td{position:relative;overflow:hidden}.table-node--loading tbody td>*{visibility:hidden}.table-node--loading tbody td:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:.25rem;background:linear-gradient(90deg,#94a3b829 25%,#94a3b847,#94a3b829 75%);background-size:200% 100%;animation:table-node-shimmer 1.2s linear infinite;will-change:background-position}.table-node__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.table-node__spinner{width:2.5rem;height:2.5rem;border-radius:999px;border:2px solid rgba(94,104,121,.25);border-top-color:#5e6879cc;animation:spin 1s linear infinite;will-change:transform}.table-node .markdown-renderer{display:contents;content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.table-node .markdown-renderer .node-slot,.table-node .markdown-renderer .node-content,.table-node .markdown-renderer .node-space{display:contents}.markdown-renderer .markdown-renderer{content-visibility:visible;contain-intrinsic-size:auto}@keyframes table-node-shimmer{0%{background-position:0% 0%}50%{background-position:100% 0%}to{background-position:200% 0%}}.hr+.table-node-wrapper{margin-top:0}.hr+.table-node-wrapper .table-node{margin-top:0}.code-block-node{background:#0f172a;color:#fff;border-radius:.75rem;padding:1rem;margin:1.25rem 0;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.code-block{border-radius:.75rem;background:#0f172a;color:#e2e8f0;margin:1.25rem 0;overflow:hidden;position:relative}.code-block--expanded{max-height:none}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem .9rem;background:#0f172ad9;border-bottom:1px solid rgba(148,163,184,.2)}.code-block-meta{display:flex;align-items:center;gap:.5rem}.code-block-language{font-size:.825rem;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0d9}.code-block-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:9999px;background:#3b82f633;color:#bfdbfe}.code-block-actions{display:flex;gap:.35rem}.code-block-btn{border:1px solid rgba(148,163,184,.4);background:#0f172a99;color:#f8fafc;font-size:.75rem;padding:.25rem .65rem;border-radius:.35rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.code-block-btn:hover{background:#3b82f6cc;border-color:#3b82f699}.code-block-body{position:relative}.code-block-body--expanded{max-height:none}.code-block-body--collapsed{min-height:0;height:0;overflow:hidden}.code-block-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f172a99;backdrop-filter:blur(2px)}.code-block-spinner{width:2rem;height:2rem;border:2px solid rgba(255,255,255,.3);border-top-color:#ffffffe6;border-radius:9999px;animation:spin 1s linear infinite}.code-block-footer{padding:.35rem .9rem .7rem;border-top:1px solid rgba(148,163,184,.2);font-size:.75rem;color:#e2e8f0cc}.mermaid-block{border:1px solid rgba(148,163,184,.3);border-radius:1rem;background:#fff;color:#0f172a;margin:1.25rem 0;overflow:hidden}.dark .mermaid-block{background:#0f172a;color:#e2e8f0;border-color:#94a3b866}.mermaid-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;background:#0009}.mermaid-modal-panel{position:relative;width:min(64rem,calc(100% - 2rem));margin:2rem auto;border-radius:.75rem;overflow:hidden;background:#fff;color:#0f172a;box-shadow:0 24px 60px #00000038}.mermaid-modal-panel.is-dark{background:#0f172a;color:#e2e8f0}.mermaid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(148,163,184,.25)}.mermaid-modal-panel.is-dark .mermaid-modal-header{border-bottom-color:#94a3b840}.mermaid-modal-title{font-size:.875rem;font-weight:600}.mermaid-modal-close{font-size:.875rem;padding:.25rem .5rem;border-radius:.375rem;cursor:pointer;opacity:.9}.mermaid-modal-close:hover{opacity:1;background:#94a3b829}.mermaid-modal-body{padding:1rem;max-height:80vh;overflow:auto}.mermaid-modal-content{width:100%;height:100%;display:flex;justify-content:center}.fullscreen{width:100%;max-height:100%!important;height:100%!important}.mermaid-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem .9rem;border-bottom:1px solid rgba(148,163,184,.3);background:#f8fafcd9}.dark .mermaid-header{background:#0f172ad9;border-color:#47556999}.mermaid-title__text{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:inherit}.mermaid-actions{display:flex;align-items:center;gap:.35rem}.mermaid-btn{border:1px solid rgba(148,163,184,.4);background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;border-radius:.35rem;cursor:pointer;transition:background .2s ease,color .2s ease}.mermaid-btn:hover{background:#3b82f626;color:#1d4ed8}.dark .mermaid-btn:hover{background:#3b82f64d;color:#bfdbfe}.mermaid-toggle{display:inline-flex;border-radius:9999px;border:1px solid rgba(148,163,184,.3);overflow:hidden}.mermaid-toggle-btn{border:none;background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;cursor:pointer;transition:background .2s ease}.mermaid-toggle-btn--active{background:#3b82f62e;color:#1d4ed8}.dark .mermaid-toggle-btn--active{background:#3b82f64d;color:#bfdbfe}.mermaid-body{position:relative;padding:1rem}.mermaid-preview{width:100%;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center}.mermaid-preview svg{width:100%;height:auto}.mermaid-source{background:#0f172af2;color:#e2e8f0;border-radius:.5rem;padding:1rem;overflow-x:auto}.mermaid-error{padding:.85rem 1rem;color:#b91c1c;background:#f8717126;border-top:1px solid rgba(248,113,113,.25)}.mermaid-loading{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem 1rem;font-size:.85rem;color:#0f172a99}.dark .mermaid-loading{color:#e2e8f0b3}.mermaid-spinner{width:1.2rem;height:1.2rem;border:2px solid rgba(59,130,246,.4);border-top-color:#3b82f6e6;border-radius:9999px;animation:spin .9s linear infinite}.math-block-node{margin:1rem 0}.math-inline-wrapper{position:relative;display:inline-block}.math-inline{display:inline-block;vertical-align:middle}.math-inline--hidden{visibility:hidden}.math-inline__loading{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.math-inline__spinner{width:1rem;height:1rem;border-radius:9999px;border:2px solid rgba(94,104,121,.25);border-top-color:#5e6879cc;animation:spin 1s linear infinite}.math-block{position:relative;text-align:center;overflow-x:auto;min-height:40px;padding:.5rem}.math-rendering{opacity:.3;transition:opacity .2s ease}.thematic-break{margin:3rem 0;border-top:1px solid #e2e8f0}.hr-node{margin:3rem 0;border-top:1px solid var(--hr-border-color, #e2e8f0)}.hard-break{display:block}.checkbox-node{margin-right:.5rem;vertical-align:middle}.checkbox-input{margin:0;cursor:default}.html-inline-node{display:inline}.html-inline-node--loading{opacity:.85}.html-block-node__placeholder{display:flex;flex-direction:column;gap:.35rem;padding:.5rem 0}.html-block-node__placeholder-bar{display:block;height:.8rem;border-radius:9999px;background-image:linear-gradient(90deg,#94a3b859,#94a3b81a,#94a3b859);background-size:200% 100%;animation:html-block-node-shimmer 1.2s ease infinite}@keyframes html-block-node-shimmer{0%{background-position:0% 0%}to{background-position:200% 0%}}.vmr-container{border-radius:.5rem;border:1px solid rgba(148,163,184,.35);padding:1rem;margin:1rem 0;border-left-width:4px}.admonition{--admonition-bg: #f8f8f8;--admonition-border: #eaecef;--admonition-header-bg: rgba(0, 0, 0, .03);--admonition-text: #111827;--admonition-muted: #374151;--admonition-note-color: #448aff;--admonition-tip-color: #00bfa5;--admonition-warning-color: #ff9100;--admonition-danger-color: #ff5252;margin:1rem 0;padding:0;border-radius:4px;border-left:4px solid var(--admonition-border);background-color:var(--admonition-bg);color:var(--admonition-text);overflow:hidden}.admonition-header{padding:.5rem 1rem;font-weight:600;display:flex;align-items:center;background-color:var(--admonition-header-bg);color:var(--admonition-muted)}.admonition-icon{margin-right:.5rem;color:inherit}.admonition-content{padding:.5rem 1rem 1rem;color:var(--admonition-text)}.admonition-note{border-left-color:var(--admonition-note-color)}.admonition-note .admonition-header{background-color:#448aff0f;color:var(--admonition-note-color)}.admonition-info{border-left-color:var(--admonition-note-color)}.admonition-info .admonition-header{background-color:#448aff0f;color:var(--admonition-note-color)}.admonition-tip{border-left-color:var(--admonition-tip-color)}.admonition-tip .admonition-header{background-color:#00bfa50f;color:var(--admonition-tip-color)}.admonition-warning{border-left-color:var(--admonition-warning-color)}.admonition-warning .admonition-header{background-color:#ff91000f;color:var(--admonition-warning-color)}.admonition-danger{border-left-color:var(--admonition-danger-color)}.admonition-danger .admonition-header{background-color:#ff52520f;color:var(--admonition-danger-color)}.admonition-error{border-left-color:var(--admonition-danger-color)}.admonition-error .admonition-header{background-color:#ff52520f;color:var(--admonition-danger-color)}.admonition-caution{border-left-color:var(--admonition-warning-color)}.admonition-caution .admonition-header{background-color:#ff91000f;color:var(--admonition-warning-color)}.admonition-toggle{margin-left:auto;background:transparent;border:none;color:inherit;cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:.9rem}.admonition-toggle:focus{outline:2px solid rgba(0,0,0,.08);outline-offset:2px}.admonition.is-dark{--admonition-bg: #0b1220;--admonition-border: rgba(255, 255, 255, .06);--admonition-header-bg: rgba(255, 255, 255, .03);--admonition-text: #e6eef8;--admonition-muted: #cbd5e1}.code-block-container{contain:content;content-visibility:auto;contain-intrinsic-size:320px 180px;container-type:inline-size;--markstream-code-fallback-bg: #ffffff;--markstream-code-fallback-fg: #111827;--markstream-code-border-color: rgb(229 231 235);--markstream-code-fallback-selection-bg: rgba(0, 0, 0, .06);--vscode-editor-selectionBackground: var(--markstream-code-fallback-selection-bg);--markstream-diff-frame-border: rgb(203 213 225 / .56);--markstream-diff-frame-shadow: 0 16px 40px -32px rgb(15 23 42 / .18);--markstream-diff-shell-fg: #0f172a;--markstream-diff-shell-muted: #64748b;--markstream-diff-shell-border: rgb(148 163 184 / .18);--markstream-diff-shell-shadow: 0 30px 70px -48px rgb(15 23 42 / .42);--markstream-diff-shell-bg: radial-gradient( circle at top center, rgb(255 255 255 / .9), transparent 55% ), linear-gradient(180deg, #fffdfa 0%, #fbfcfe 100%);--markstream-diff-header-border: rgb(226 232 240 / .92);--markstream-diff-stage-bg: radial-gradient( circle at top center, rgb(255 255 255 / .95), transparent 60% ), linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);--markstream-diff-editor-bg: #ffffff;--markstream-diff-editor-fg: #435266;--markstream-diff-unchanged-fg: lab(36.247 .0071872 -.000424832);--markstream-diff-unchanged-bg: lab(95.9989 .0180531 -.0010643);--markstream-diff-unchanged-divider: rgb(255 255 255 / .94);--markstream-diff-focus: rgb(14 165 233 / .42);--markstream-diff-widget-shadow: rgb(15 23 42 / .26);--markstream-diff-action-hover: rgb(15 23 42 / .06);--markstream-diff-panel-bg: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);--markstream-diff-panel-bg-soft: #ffffff;--markstream-diff-panel-bg-strong: #ffffff;--markstream-diff-panel-border: rgb(226 232 240 / .3);--markstream-diff-pane-divider: rgb(226 232 240 / .42);--markstream-diff-gutter-bg: transparent;--markstream-diff-gutter-guide: transparent;--markstream-diff-gutter-gap: 16px;--markstream-diff-line-number: rgb(82 82 82 / .88);--markstream-diff-line-number-active: rgb(82 82 82 / .88);--markstream-diff-added-fg: #14b8a6;--markstream-diff-removed-fg: #ff3658;--markstream-diff-added-line: rgb(232 249 245 / .98);--markstream-diff-removed-line: rgb(255 241 241 / .98);--markstream-diff-added-inline: rgb(197 245 219 / .96);--markstream-diff-removed-inline: rgb(255 215 217 / .92);--markstream-diff-added-inline-border: transparent;--markstream-diff-removed-inline-border: transparent;--markstream-diff-added-gutter: linear-gradient( 90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width, 4px), rgb(20 184 166 / .08) var(--stream-monaco-gutter-marker-width, 4px) 100% );--markstream-diff-removed-gutter: repeating-linear-gradient( 180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px ) left / var(--stream-monaco-gutter-marker-width, 4px) 100% no-repeat, linear-gradient(90deg, rgb(255 54 88 / .08) 0 100%);--markstream-diff-added-line-fill: rgb(231 248 244 / .96);--markstream-diff-removed-line-fill: rgb(255 241 241 / .98)}.code-block-container.is-dark{--markstream-code-fallback-bg: #111827;--markstream-code-fallback-fg: #e5e7eb;--markstream-code-border-color: rgb(55 65 81 / .3);--markstream-code-fallback-selection-bg: rgba(255, 255, 255, .08);--markstream-diff-frame-border: rgb(82 82 91 / .56);--markstream-diff-frame-shadow: 0 18px 40px -30px rgb(0 0 0 / .84);--markstream-diff-shell-fg: #e2e8f0;--markstream-diff-shell-muted: #94a3b8;--markstream-diff-shell-border: rgb(82 82 91 / .56);--markstream-diff-shell-shadow: 0 34px 80px -52px rgb(0 0 0 / .72);--markstream-diff-shell-bg: rgb(10 10 11 / .99);--markstream-diff-header-border: rgb(63 63 70 / .82);--markstream-diff-stage-bg: rgb(10 10 11 / .99);--markstream-diff-editor-bg: rgb(12 12 14 / .99);--markstream-diff-editor-fg: #b6c2d3;--markstream-diff-unchanged-fg: #cbd5e1;--markstream-diff-unchanged-bg: rgb(24 24 27 / .92);--markstream-diff-unchanged-divider: rgb(255 255 255 / .18);--markstream-diff-focus: rgb(96 165 250 / .42);--markstream-diff-widget-shadow: rgb(0 0 0 / .72);--markstream-diff-action-hover: rgb(255 255 255 / .08);--markstream-diff-panel-bg: rgb(10 10 11 / .99);--markstream-diff-panel-bg-soft: rgb(10 10 11 / .99);--markstream-diff-panel-bg-strong: rgb(10 10 11 / .99);--markstream-diff-panel-border: rgb(82 82 91 / .3);--markstream-diff-pane-divider: rgb(82 82 91 / .34);--markstream-diff-gutter-bg: linear-gradient( 180deg, rgb(13 13 15 / .94) 0%, rgb(9 9 10 / .98) 100% );--markstream-diff-gutter-guide: rgb(161 161 170 / .08);--markstream-diff-gutter-gap: 16px;--markstream-diff-line-number: rgb(161 161 170 / .68);--markstream-diff-line-number-active: rgb(228 228 231 / .82);--markstream-diff-added-fg: #5eead4;--markstream-diff-removed-fg: #fda4af;--markstream-diff-added-line: rgb(13 148 136 / .18);--markstream-diff-removed-line: rgb(225 29 72 / .18);--markstream-diff-added-inline: rgb(45 212 191 / .24);--markstream-diff-removed-inline: rgb(251 113 133 / .24);--markstream-diff-added-inline-border: transparent;--markstream-diff-removed-inline-border: transparent;--markstream-diff-added-gutter: linear-gradient( 90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width, 4px), rgb(94 234 212 / .2) var(--stream-monaco-gutter-marker-width, 4px) 100% );--markstream-diff-removed-gutter: repeating-linear-gradient( 180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px ) left / var(--stream-monaco-gutter-marker-width, 4px) 100% no-repeat, linear-gradient(90deg, rgb(253 164 175 / .18) 0 100%);--markstream-diff-added-line-fill: linear-gradient( 90deg, rgb(15 118 110 / .38) 0%, rgb(13 148 136 / .28) 100% );--markstream-diff-removed-line-fill: linear-gradient( 90deg, rgb(159 18 57 / .38) 0%, rgb(225 29 72 / .28) 100% )}.code-editor-container{transition:height .18s ease,max-height .18s ease}.code-block-container.is-plain-text:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .monaco-editor-background,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background, var(--markstream-code-fallback-bg))!important}.code-block-container.is-plain-text:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-lines,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-line,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-line span,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground, var(--markstream-code-fallback-fg))!important}.code-action-btn{cursor:pointer;opacity:.7;transition:opacity .2s}.code-action-btn:hover{opacity:1}.code-action-btn:disabled{opacity:.5;cursor:not-allowed}.code-action-btn:disabled:hover{background-color:transparent}.icon-slot{display:inline-flex;align-items:center;justify-content:center}.icon-slot svg,.icon-slot img{display:block;width:100%;height:100%}.code-editor-layer{display:grid;min-width:0}.code-editor-layer>.code-editor-container,.code-editor-layer>.code-editor-fallback-surface{grid-area:1 / 1}.code-editor-fallback-surface{overflow:auto;padding:1rem}.code-block-container.is-diff .code-editor-fallback-surface{padding:0;background:var(--markstream-diff-editor-bg)}.code-block-container.is-diff{background:var(--markstream-diff-shell-bg);box-shadow:var(--markstream-diff-shell-shadow);border-color:var(--markstream-diff-shell-border);--vscode-editor-selectionBackground: var(--markstream-diff-action-hover)}.code-block-container.is-diff .code-block-header{padding:18px 20px 14px;color:var(--markstream-diff-shell-fg);background:transparent;border-bottom-color:var(--markstream-diff-header-border)}.code-block-container.is-diff .code-editor-layer{padding:4px 4px 8px;background:var(--markstream-diff-stage-bg);--vscode-editor-background: var(--markstream-diff-editor-bg);--vscode-editor-foreground: var(--markstream-diff-editor-fg);--vscode-diffEditor-unchangedRegionForeground: var(--markstream-diff-unchanged-fg);--vscode-diffEditor-unchangedRegionBackground: var(--markstream-diff-unchanged-bg);--vscode-focusBorder: var(--markstream-diff-focus);--vscode-widget-shadow: var(--markstream-diff-widget-shadow)}.code-block-container .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background, #111827)}.code-block-container .stream-monaco-diff-root .monaco-diff-editor .diffOverview,.code-block-container .stream-monaco-diff-root .decorationsOverviewRuler{display:none!important;width:0!important;min-width:0!important;max-width:0!important;border:0!important;background:transparent!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.code-block-container .stream-monaco-diff-root .monaco-diff-editor{border:0!important;border-radius:0!important;box-shadow:none!important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>*:not(a){visibility:hidden!important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}.code-block-container .stream-monaco-diff-root{--stream-monaco-gutter-gap: var(--markstream-diff-gutter-gap) !important;--stream-monaco-line-number: var(--markstream-diff-line-number) !important;--stream-monaco-line-number-active: var(--markstream-diff-line-number-active) !important;--stream-monaco-added-fg: var(--markstream-diff-added-fg) !important;--stream-monaco-removed-fg: var(--markstream-diff-removed-fg) !important;--stream-monaco-added-line: var(--markstream-diff-added-line) !important;--stream-monaco-removed-line: var(--markstream-diff-removed-line) !important;--stream-monaco-added-inline: var(--markstream-diff-added-inline) !important;--stream-monaco-removed-inline: var(--markstream-diff-removed-inline) !important;--stream-monaco-added-inline-border: var(--markstream-diff-added-inline-border) !important;--stream-monaco-removed-inline-border: var(--markstream-diff-removed-inline-border) !important;--stream-monaco-added-line-fill: var(--markstream-diff-added-line-fill) !important;--stream-monaco-removed-line-fill: var(--markstream-diff-removed-line-fill) !important;--stream-monaco-added-gutter: var(--markstream-diff-added-gutter) !important;--stream-monaco-removed-gutter: var(--markstream-diff-removed-gutter) !important;--stream-monaco-added-line-shadow: none !important;--stream-monaco-removed-line-shadow: none !important;--stream-monaco-unchanged-bg: var(--markstream-diff-unchanged-bg) !important;--stream-monaco-unchanged-fg: var(--markstream-diff-unchanged-fg) !important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{--stream-monaco-unchanged-bg: var(--markstream-diff-unchanged-bg) !important;--stream-monaco-unchanged-fg: var(--markstream-diff-unchanged-fg) !important;background:var(--stream-monaco-unchanged-bg)!important;color:var(--stream-monaco-unchanged-fg)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{right:calc(var(--stream-monaco-gutter-marker-width) - var(--stream-monaco-unchanged-rail-width) / 2 + (var(--stream-monaco-gutter-gap) * 2))!important;width:auto!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important;color:var(--markstream-diff-unchanged-fg)!important;padding-left:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important;padding-right:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail{border-right-color:var(--markstream-diff-unchanged-divider)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:transparent!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-both .stream-monaco-unchanged-reveal:first-child{border-bottom-color:var(--markstream-diff-unchanged-divider)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-top-only .stream-monaco-unchanged-reveal,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-bottom-only .stream-monaco-unchanged-reveal{border-bottom:0!important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-meta,.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-count,.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-metadata-label,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{color:var(--markstream-diff-unchanged-fg)!important}.code-block-content{display:grid;max-height:min(70vh,500px);overflow:auto;transition:max-height .3s ease;font-family:var(--vscode-editor-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);line-height:var(--vscode-editor-line-height, 1.5)}.code-block-render,.code-fallback-plain{grid-area:1 / 1;min-width:0}.code-block-render{min-height:1px}.code-block-render pre,.code-block-content .shiki{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.code-block-content .shiki-fallback{margin:0;padding:1rem;background:inherit;color:inherit;white-space:pre;font-family:inherit;font-size:inherit;line-height:inherit}.code-fallback-plain{position:relative;z-index:1;white-space:pre;overflow:auto;background:var(--vscode-editor-background, var(--markstream-code-fallback-bg));color:var(--vscode-editor-foreground, var(--markstream-code-fallback-fg));font-size:inherit;line-height:inherit;font-family:inherit;font-weight:var(--vscode-editor-font-weight, 400)}.code-fallback-plain>code{font-size:inherit;line-height:inherit;font-family:inherit;font-weight:inherit}.code-fallback-plain.markstream-pre--diff-preview{box-sizing:border-box;width:100%;padding-left:0;padding-right:0;color:var(--markstream-diff-editor-fg, var(--vscode-editor-foreground, inherit));background:var(--markstream-diff-editor-bg, var(--vscode-editor-background, transparent));font-variant-ligatures:none;-moz-tab-size:var(--markstream-pre-tab-size, 4);-o-tab-size:var(--markstream-pre-tab-size, 4);tab-size:var(--markstream-pre-tab-size, 4);--markstream-pre-diff-gutter-marker-width: var(--stream-monaco-gutter-marker-width, 4px);--markstream-pre-diff-gutter-gap: var(--stream-monaco-gutter-gap, 8px);--markstream-pre-diff-line-number-width: var(--stream-monaco-line-number-width, 28px);--markstream-pre-diff-scrollable-left: var( --stream-monaco-original-scrollable-left, calc( var(--markstream-pre-diff-gutter-marker-width) + (var(--markstream-pre-diff-gutter-gap) * 2) + var(--markstream-pre-diff-line-number-width) ) );--markstream-pre-diff-line-number-gap-to-code: var( --stream-monaco-original-line-number-gap-to-code, var(--stream-monaco-line-number-gap-to-code, var(--markstream-pre-diff-gutter-gap)) );--markstream-pre-diff-line-number-left: calc( var(--markstream-pre-diff-scrollable-left) - var(--markstream-pre-diff-line-number-gap-to-code) - var(--markstream-pre-diff-line-number-width) );--markstream-pre-diff-line-number-align: var(--markstream-diff-line-number-align, right)}.code-fallback-plain.markstream-pre--diff-preview>.markstream-pre__diff-code{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;min-width:100%;font:inherit;line-height:inherit}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline>.markstream-pre__diff-code{grid-template-columns:minmax(0,1fr)}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-pane{min-width:0;overflow:hidden}.code-fallback-plain.markstream-pre--diff-preview:not(.markstream-pre--diff-inline) .markstream-pre__diff-pane{overflow-x:auto;overflow-y:hidden}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-pane--modified{--markstream-pre-diff-scrollable-left: var( --stream-monaco-modified-scrollable-left, var(--stream-monaco-original-scrollable-left) );--markstream-pre-diff-line-number-gap-to-code: var( --stream-monaco-modified-line-number-gap-to-code, var(--stream-monaco-line-number-gap-to-code, var(--markstream-pre-diff-gutter-gap)) );--markstream-pre-diff-line-number-left: calc( var(--markstream-pre-diff-scrollable-left) - var(--markstream-pre-diff-line-number-gap-to-code) - var(--markstream-pre-diff-line-number-width) );box-shadow:inset 1px 0 var(--markstream-diff-pane-divider, rgb(148 163 184 / .18))}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline .markstream-pre__diff-pane--modified{box-shadow:none}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line{position:relative;display:block;box-sizing:border-box;min-height:var(--markstream-pre-diff-line-height, 18px);padding-left:var(--markstream-pre-diff-scrollable-left);line-height:var(--markstream-pre-diff-line-height, 18px)}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line:before{content:"";position:absolute;inset-inline:0;top:0;height:var(--markstream-pre-diff-line-height, 18px);z-index:0;pointer-events:none;background:transparent}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-rail{position:absolute;z-index:2;top:0;left:0;width:var(--markstream-pre-diff-gutter-marker-width, 4px);min-width:var(--markstream-pre-diff-gutter-marker-width, 4px);height:var(--markstream-pre-diff-line-height, 18px)}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-number{position:absolute;z-index:1;top:0;left:var(--markstream-pre-diff-line-number-left);width:var(--markstream-pre-diff-line-number-width);color:var(--stream-monaco-line-number, var(--markstream-diff-line-number, #6b7280));font-variant-numeric:tabular-nums;line-height:var(--markstream-pre-diff-line-height, 18px);text-align:var(--markstream-pre-diff-line-number-align, right);-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-content{position:relative;z-index:1;display:block;min-width:-moz-max-content;min-width:max-content;line-height:var(--markstream-pre-diff-line-height, 18px);white-space:inherit;overflow-wrap:normal;word-break:normal;line-break:auto}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-content-inner{white-space:inherit;overflow-wrap:inherit;word-break:inherit;line-break:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added{color:var(--stream-monaco-added-fg, var(--markstream-diff-added-fg, inherit))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed{color:var(--stream-monaco-removed-fg, var(--markstream-diff-removed-fg, inherit))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--hunk{color:var(--stream-monaco-unchanged-fg, var(--markstream-diff-unchanged-fg, var(--markstream-diff-line-number, currentColor)))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--hunk:before{background:var(--stream-monaco-unchanged-bg, var(--markstream-diff-unchanged-bg, transparent))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added:not(.markstream-pre__diff-line--empty):before{background:var(--stream-monaco-added-line-fill, var(--markstream-diff-added-line-fill, transparent))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed:not(.markstream-pre__diff-line--empty):before{background:var(--stream-monaco-removed-line-fill, var(--markstream-diff-removed-line-fill, transparent))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added:not(.markstream-pre__diff-line--empty)>.markstream-pre__diff-rail{background:var(--stream-monaco-added-gutter, var(--markstream-diff-added-gutter, currentColor))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed:not(.markstream-pre__diff-line--empty)>.markstream-pre__diff-rail{background:var(--stream-monaco-removed-gutter, var(--markstream-diff-removed-gutter, currentColor))}.code-loading-placeholder{padding:1rem;min-height:120px}.loading-skeleton{display:flex;flex-direction:column;gap:.75rem}.skeleton-line{height:1rem;background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%);background-size:400% 100%;animation:code-skeleton-shimmer 1.2s ease-in-out infinite;border-radius:.25rem}.code-block-container.is-dark .skeleton-line{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%);background-size:400% 100%}.skeleton-line.short{width:60%}@keyframes code-skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.markstream-react pre[class^=language-],.markstream-react pre[class*=" language-"]{white-space:pre;overflow:auto;-moz-tab-size:2;-o-tab-size:2;tab-size:2;font-variant-ligatures:none;contain:content;backface-visibility:hidden;transform:translateZ(0);-webkit-font-smoothing:antialiased}.markstream-react pre[class^=language-]>code,.markstream-react pre[class*=" language-"]>code{display:block}.markstream-react pre[class^=language-]:focus,.markstream-react pre[class*=" language-"]:focus{outline:2px solid var(--vmdr-focus, #3b82f6);outline-offset:2px}.html-preview-frame__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.html-preview-frame__backdrop--dark{background-color:#0f172acc}.html-preview-frame{width:80vw;max-width:960px;height:70vh;background-color:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 10px 40px #00000040;display:flex;flex-direction:column}.html-preview-frame--dark{background-color:#020617;color:#e5e7eb;box-shadow:0 10px 40px #0009}.html-preview-frame__header{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;border-bottom:1px solid rgba(0,0,0,.06)}.html-preview-frame--dark .html-preview-frame__header{border-bottom-color:#94a3b859}.html-preview-frame__title{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase;opacity:.85}.html-preview-frame__dot{width:.5rem;height:.5rem;border-radius:999px;background-color:#22c55e}.html-preview-frame--dark .html-preview-frame__dot{background-color:#4ade80}.html-preview-frame__label{white-space:nowrap}.html-preview-frame__close{border:none;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer}.html-preview-frame__close--dark{color:#e5e7eb}.html-preview-frame__iframe{width:100%;height:100%;border:none;display:block}@media(max-width:640px){.html-preview-frame{width:100vw;height:80vh;border-radius:0}}.ms-tooltip{position:fixed;padding:.4rem .65rem;font-size:.875rem;border-radius:.375rem;border-width:1px;border-style:solid;box-shadow:0 10px 15px #00000014;pointer-events:none;z-index:9999;opacity:0;transition:opacity .12s linear,transform .22s cubic-bezier(.16,1,.3,1)}.ms-tooltip[data-visible=true]{opacity:1}.ms-tooltip[data-dark=true]{background-color:#111827;color:#f9fafb;border-color:#374151}.ms-tooltip[data-dark=false],.ms-tooltip:not([data-dark=true]){background-color:#fff;color:#111827;border-color:#e5e7eb}@keyframes node-placeholder-shimmer{0%{background-position:200% 0%}to{background-position:-200% 0%}}@keyframes node-enter-fade{0%{opacity:0}to{opacity:1}}@keyframes typewriter-fade{0%{opacity:0}to{opacity:1}}.typewriter-cursor{position:absolute;left:0;top:0;display:inline-block;width:.55em;height:1em;margin-left:.08em;vertical-align:-.12em;border-right:2px solid currentColor;pointer-events:none;animation:typewriter-cursor-blink 1s steps(1,end) infinite}@keyframes typewriter-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.markstream-react .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.d2-block-body{position:relative}.d2-source{font-family:var(--vscode-editor-font-family, "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.d2-code{white-space:pre;font-size:.875rem;line-height:1.5}.d2-render{overflow:auto}.d2-svg svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}.mode-btn{opacity:.7;transition:opacity .2s}.mode-btn.is-active{opacity:1;font-weight:600}.d2-action-btn{opacity:.7;transition:opacity .2s}.d2-action-btn:hover{opacity:1}.d2-action-btn:disabled{opacity:.3;cursor:not-allowed}.d2-error{color:#dc2626}body>div[id^=dmermaid-]{position:fixed;top:-10000px;left:0;width:100%;visibility:hidden;pointer-events:none}.markstream-react .hover\:bg-\[hsl\(var\(--secondary\)\)\]:hover{background-color:hsl(var(--secondary))}.markstream-react .hover\:bg-\[var\(--vscode-editor-selectionBackground\)\]:hover{background-color:var(--vscode-editor-selectionBackground)}.markstream-react .hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.markstream-react .hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.markstream-react .hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.markstream-react .hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.markstream-react .hover\:underline:hover{text-decoration-line:underline}@media not all and (min-width:1024px){.markstream-react .max-lg\:my-\[calc\(4\/3\*1em\)\]{margin-top:calc(4 / 3 * 1em);margin-bottom:calc(4 / 3 * 1em)}.markstream-react .max-lg\:pl-\[calc\(14\/9\*1em\)\]{padding-left:calc(14 / 9 * 1em)}}
1
+ :where(.markstream-react) button{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:transparent;border:0;font:inherit;color:inherit}.markstream-react .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.markstream-react .pointer-events-none{pointer-events:none}.markstream-react .visible{visibility:visible}.markstream-react .collapse{visibility:collapse}.markstream-react .fixed{position:fixed}.markstream-react .absolute{position:absolute}.markstream-react .relative{position:relative}.markstream-react .inset-0{top:0;right:0;bottom:0;left:0}.markstream-react .right-2{right:.5rem}.markstream-react .right-6{right:1.5rem}.markstream-react .top-2{top:.5rem}.markstream-react .top-6{top:1.5rem}.markstream-react .z-10{z-index:10}.markstream-react .z-50{z-index:50}.markstream-react .z-\[9999\]{z-index:9999}.markstream-react .m-0{margin:0}.markstream-react .mx-0\.5{margin-left:.125rem;margin-right:.125rem}.markstream-react .my-2{margin-top:.5rem;margin-bottom:.5rem}.markstream-react .my-4{margin-top:1rem;margin-bottom:1rem}.markstream-react .my-5{margin-top:1.25rem;margin-bottom:1.25rem}.markstream-react .my-8{margin-top:2rem;margin-bottom:2rem}.markstream-react .mb-4{margin-bottom:1rem}.markstream-react .ml-4{margin-left:1rem}.markstream-react .mt-2{margin-top:.5rem}.markstream-react .block{display:block}.markstream-react .inline-block{display:inline-block}.markstream-react .inline{display:inline}.markstream-react .flex{display:flex}.markstream-react .inline-flex{display:inline-flex}.markstream-react .table{display:table}.markstream-react .grid{display:grid}.markstream-react .contents{display:contents}.markstream-react .list-item{display:list-item}.markstream-react .hidden{display:none}.markstream-react .h-3{height:.75rem}.markstream-react .h-4{height:1rem}.markstream-react .h-full{height:100%}.markstream-react .max-h-full{max-height:100%}.markstream-react .min-h-\[360px\]{min-height:360px}.markstream-react .min-h-\[40px\]{min-height:40px}.markstream-react .min-h-full{min-height:100%}.markstream-react .w-2\/3{width:66.666667%}.markstream-react .w-3{width:.75rem}.markstream-react .w-4{width:1rem}.markstream-react .w-4\/5{width:80%}.markstream-react .w-full{width:100%}.markstream-react .max-w-full{max-width:100%}.markstream-react .flex-1{flex:1 1 0%}.markstream-react .flex-shrink-0{flex-shrink:0}.markstream-react .border-collapse{border-collapse:collapse}.markstream-react .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.markstream-react .cursor-grab{cursor:grab}.markstream-react .cursor-grabbing{cursor:grabbing}.markstream-react .cursor-not-allowed{cursor:not-allowed}.markstream-react .cursor-pointer{cursor:pointer}.markstream-react .list-decimal{list-style-type:decimal}.markstream-react .list-disc{list-style-type:disc}.markstream-react .items-center{align-items:center}.markstream-react .items-baseline{align-items:baseline}.markstream-react .justify-center{justify-content:center}.markstream-react .justify-between{justify-content:space-between}.markstream-react .gap-1\.5{gap:.375rem}.markstream-react .gap-2{gap:.5rem}.markstream-react .gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.markstream-react .gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.markstream-react :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.markstream-react :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.markstream-react .overflow-hidden{overflow:hidden}.markstream-react .overflow-x-auto{overflow-x:auto}.markstream-react .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.markstream-react .whitespace-normal{white-space:normal}.markstream-react .whitespace-nowrap{white-space:nowrap}.markstream-react .whitespace-pre-wrap{white-space:pre-wrap}.markstream-react .break-words{overflow-wrap:break-word}.markstream-react .rounded{border-radius:calc(var(--ms-radius) * .5)}.markstream-react .rounded-lg{border-radius:var(--ms-radius)}.markstream-react .rounded-md{border-radius:calc(var(--ms-radius) * .75)}.markstream-react .border{border-width:1px}.markstream-react .border-b{border-bottom-width:1px}.markstream-react .border-t{border-top-width:1px}.markstream-react .border-\[var\(--footnote-border\,\#eaecef\)\]{border-color:var(--footnote-border,#eaecef)}.markstream-react .border-\[var\(--table-border\,\#cbd5e1\)\]{border-color:var(--table-border,#cbd5e1)}.markstream-react .border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.markstream-react .border-gray-400\/5{border-color:#9ca3af0d}.markstream-react .border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.markstream-react .border-gray-700\/30{border-color:#3741514d}.markstream-react .bg-\[hsl\(var\(--muted\)\)\]{background-color:hsl(var(--muted))}.markstream-react .bg-\[hsl\(var\(--secondary\)\)\]{background-color:hsl(var(--secondary))}.markstream-react .bg-black\/70{background-color:#000000b3}.markstream-react .bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.markstream-react .bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.markstream-react .bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.markstream-react .p-0\.5{padding:.125rem}.markstream-react .p-2{padding:.5rem}.markstream-react .p-4{padding:1rem}.markstream-react .p-\[calc\(4\/7\*1em\)\]{padding:calc(4 / 7 * 1em)}.markstream-react .px-1{padding-left:.25rem;padding-right:.25rem}.markstream-react .px-1\.5{padding-left:.375rem;padding-right:.375rem}.markstream-react .px-2{padding-left:.5rem;padding-right:.5rem}.markstream-react .px-2\.5{padding-left:.625rem;padding-right:.625rem}.markstream-react .px-3{padding-left:.75rem;padding-right:.75rem}.markstream-react .px-4{padding-left:1rem;padding-right:1rem}.markstream-react .py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.markstream-react .py-1{padding-top:.25rem;padding-bottom:.25rem}.markstream-react .py-2{padding-top:.5rem;padding-bottom:.5rem}.markstream-react .py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.markstream-react .py-4{padding-top:1rem;padding-bottom:1rem}.markstream-react .pb-3{padding-bottom:.75rem}.markstream-react .pl-1\.5{padding-left:.375rem}.markstream-react .pl-\[calc\(13\/8\*1em\)\]{padding-left:1.625em}.markstream-react .pt-2{padding-top:.5rem}.markstream-react .text-left{text-align:left}.markstream-react .text-center{text-align:center}.markstream-react .text-right{text-align:right}.markstream-react .font-mono{font-family:var(--ms-font-mono)}.markstream-react .text-\[85\%\]{font-size:85%}.markstream-react .text-base{font-size:1rem;line-height:1.5rem}.markstream-react .text-sm{font-size:.875rem;line-height:1.25rem}.markstream-react .text-xs{font-size:.75rem;line-height:1rem}.markstream-react .font-medium{font-weight:500}.markstream-react .font-semibold{font-weight:600}.markstream-react .uppercase{text-transform:uppercase}.markstream-react .italic{font-style:italic}.markstream-react .leading-\[normal\]{line-height:normal}.markstream-react .leading-relaxed{line-height:1.625}.markstream-react .text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.markstream-react .text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.markstream-react .text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.markstream-react .text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.markstream-react .underline{text-decoration-line:underline}.markstream-react .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markstream-react .opacity-50{opacity:.5}.markstream-react .shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.markstream-react .shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.markstream-react .shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.markstream-react .outline{outline-style:solid}.markstream-react .blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-react .filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.markstream-react .backdrop-blur{--tw-backdrop-blur: blur(8px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-react .backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.markstream-react .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .transition-\[height\]{transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.markstream-react .duration-100{transition-duration:.1s}.markstream-react .duration-150{transition-duration:.15s}.markstream-react .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.markstream-react .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.markstream-react{--border: 214.3 31.8% 91.4%;--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--secondary: 210 40% 96%;--muted: 210 40% 96%;--muted-foreground: 215.4 16.3% 46.9%}.dark .markstream-react,.markstream-react.dark{--border: 217.2 32.6% 17.5%;--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--secondary: 217.2 32.6% 17.5%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%}.markdown-renderer{position:relative;contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px}.markdown-renderer.virtualized{content-visibility:visible;contain-intrinsic-size:auto}.node-slot,.node-content{width:100%}.node-placeholder{width:100%;min-height:1rem;margin:.25rem 0;border-radius:.5rem;background-image:linear-gradient(90deg,#94a3b82e,#94a3b80d,#94a3b82e);background-size:200% 100%;animation:node-placeholder-shimmer 1.1s ease-in-out infinite}.node-placeholder:first-child{margin-top:0}.node-spacer{width:100%}.fade-node,.typewriter-node{opacity:0;animation:node-enter-fade var(--fade-duration, var(--typewriter-fade-duration, .28s)) var(--fade-ease, var(--typewriter-fade-ease, cubic-bezier(.33, 0, .67, 1))) forwards}.unknown-node{color:#6a737d;font-style:italic;margin:1rem 0}.text-node{display:inline;font-weight:inherit;vertical-align:baseline;white-space:pre-wrap;word-break:break-word}.text-node.text-node-center{display:inline-flex;justify-content:center;width:100%}.text-node-stream-delta{animation-duration:var(--stream-update-fade-duration, var(--fade-duration, var(--typewriter-fade-duration, .28s)));animation-timing-function:var(--stream-update-fade-ease, var(--fade-ease, var(--typewriter-fade-ease, cubic-bezier(.33, 0, .67, 1))));animation-fill-mode:both;will-change:opacity}.text-node-stream-delta--a{animation-name:text-node-stream-update-fade-a}.text-node-stream-delta--b{animation-name:text-node-stream-update-fade-b}.paragraph-node{margin:1.25em 0;line-height:1.625}li .paragraph-node{margin:0}.blockquote-node{font-weight:500;font-style:italic;border-left:.25rem solid var(--blockquote-border-color,#e2e8f0);quotes:"“" "”" "‘" "’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.blockquote-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.heading-node{font-weight:600}.heading-1{margin-top:0;margin-bottom:calc(8 / 9 * 1em);font-size:2.25rem;line-height:calc(10 / 9 * 1);font-weight:800}.heading-2{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;line-height:calc(4 / 3 * 1)}.heading-3{margin-top:1.6em;margin-bottom:calc(3 / 5 * 1em);font-size:1.25rem;line-height:calc(5 / 3 * 1)}.heading-4,.heading-5,.heading-6{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem}.heading-5,.heading-6{margin-top:0;margin-bottom:0}.link-node{color:var(--link-color, #0366d6);text-decoration:none}.link-node:hover{text-decoration:underline;text-underline-offset:.2rem}.link-loading{color:var(--link-color, #0366d6)}.link-loading .link-text-wrapper{position:relative}.link-loading .link-text{position:relative;z-index:2}.link-loading-indicator{position:absolute;left:0;right:0;height:var(--underline-height, 2px);bottom:var(--underline-bottom, -3px);background:currentColor;border-radius:999px;will-change:opacity;opacity:var(--underline-rest-opacity, .18);animation:markstream-react-link-loading-pulse var(--underline-duration, 1.6s) var(--underline-timing, ease-in-out) var(--underline-iteration, infinite)}@keyframes markstream-react-link-loading-pulse{0%,to{opacity:var(--underline-rest-opacity, .18)}50%{opacity:var(--underline-opacity, .35)}}@keyframes text-node-stream-update-fade-a{0%{opacity:0}to{opacity:1}}@keyframes text-node-stream-update-fade-b{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.link-loading-indicator{animation:none!important;opacity:var(--underline-rest-opacity, .18)}.text-node-stream-delta{animation:none!important}.fade-node,.typewriter-node,.typewriter-cursor{animation:none!important;opacity:1}}.inline-code{padding:.125rem .375rem;border-radius:.375rem;background:#f3f4f6;font-size:.875rem}.image-node__img{display:inline-block;max-width:none;width:auto;height:auto;min-height:0;vertical-align:middle;border-radius:.75rem;opacity:0;transition:opacity .2s ease}.image-node__img.is-loaded{opacity:1}.image-node__placeholder,.image-node__error{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:auto;padding:1.5rem;border-radius:.75rem;vertical-align:middle}.image-node__placeholder{background:linear-gradient(120deg,#94a3b833,#e2e8f059);color:#475569;box-shadow:inset 0 0 0 1px #94a3b833}.image-node__error{color:#dc2626;background:#f8717114}.image-node__spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid currentColor;border-top-color:transparent;animation:spin 1s linear infinite}.image-node__placeholder-text{font-size:.875rem;color:currentColor}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.footnote-node{display:flex;margin-top:var(--ms-flow-footnote-y, .5em);margin-bottom:var(--ms-flow-footnote-y, .5em);padding-top:.5rem;border-top:1px solid var(--footnote-border, hsl(var(--border)));font-size:.875rem;line-height:1.625}.footnote-reference{font-size:.75em;line-height:0}.footnote-link{color:var(--link-color, #0366d6);text-decoration:none}.footnote-link:hover{text-decoration:underline}.footnote-anchor{margin-left:.5rem;color:var(--link-color, #0366d6);text-decoration:none;cursor:pointer}.footnote-anchor:hover{text-decoration:underline}.admonition-node{border-left:4px solid #e5e7eb;border-radius:.5rem;padding:.75rem 1rem;margin:1.5rem 0;background:#f9fafbe6}.admonition-node__title{font-weight:600;margin-bottom:.5rem}.table-node-wrapper{position:relative;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-gutter:stable}.table-node{width:100%;border-collapse:collapse}.table-node th,.table-node td{white-space:normal;overflow-wrap:break-word;word-break:normal}.table-node thead th{position:relative}.table-node__resize-handle{position:absolute;top:0;right:-4px;bottom:0;z-index:1;width:8px;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none}.table-node__resize-handle:after{content:"";position:absolute;top:.35em;bottom:.35em;left:50%;width:2px;border-radius:9999px;background:#5e68798c;opacity:0;transform:translate(-50%);transition:opacity .12s ease}.table-node__resize-handle:hover:after,.table-node__resize-handle:focus-visible:after{opacity:1}.table-node .text-node,.table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}.table-node--loading tbody td{position:relative;overflow:hidden}.table-node--loading tbody td>*{visibility:hidden}.table-node--loading tbody td:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:.25rem;background:linear-gradient(90deg,#94a3b829 25%,#94a3b847,#94a3b829 75%);background-size:200% 100%;animation:table-node-shimmer 1.2s linear infinite;will-change:background-position}.table-node__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.table-node__spinner{width:2.5rem;height:2.5rem;border-radius:999px;border:2px solid rgba(94,104,121,.25);border-top-color:#5e6879cc;animation:spin 1s linear infinite;will-change:transform}.table-node .markdown-renderer{display:contents;content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}.table-node .markdown-renderer .node-slot,.table-node .markdown-renderer .node-content,.table-node .markdown-renderer .node-space{display:contents}.markdown-renderer .markdown-renderer{content-visibility:visible;contain-intrinsic-size:auto}@keyframes table-node-shimmer{0%{background-position:0% 0%}50%{background-position:100% 0%}to{background-position:200% 0%}}.hr+.table-node-wrapper{margin-top:0}.hr+.table-node-wrapper .table-node{margin-top:0}.code-block-node{background:#0f172a;color:#fff;border-radius:.75rem;padding:1rem;margin:1.25rem 0;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.code-block{border-radius:.75rem;background:#0f172a;color:#e2e8f0;margin:1.25rem 0;overflow:hidden;position:relative}.code-block--expanded{max-height:none}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem .9rem;background:#0f172ad9;border-bottom:1px solid rgba(148,163,184,.2)}.code-block-meta{display:flex;align-items:center;gap:.5rem}.code-block-language{font-size:.825rem;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0d9}.code-block-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:9999px;background:#3b82f633;color:#bfdbfe}.code-block-actions{display:flex;gap:.35rem}.code-block-btn{border:1px solid rgba(148,163,184,.4);background:#0f172a99;color:#f8fafc;font-size:.75rem;padding:.25rem .65rem;border-radius:.35rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.code-block-btn:hover{background:#3b82f6cc;border-color:#3b82f699}.code-block-body{position:relative}.code-block-body--expanded{max-height:none}.code-block-body--collapsed{min-height:0;height:0;overflow:hidden}.code-block-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f172a99;backdrop-filter:blur(2px)}.code-block-spinner{width:2rem;height:2rem;border:2px solid rgba(255,255,255,.3);border-top-color:#ffffffe6;border-radius:9999px;animation:spin 1s linear infinite}.code-block-footer{padding:.35rem .9rem .7rem;border-top:1px solid rgba(148,163,184,.2);font-size:.75rem;color:#e2e8f0cc}.mermaid-block{border:1px solid rgba(148,163,184,.3);border-radius:1rem;background:#fff;color:#0f172a;margin:1.25rem 0;overflow:hidden}.dark .mermaid-block{background:#0f172a;color:#e2e8f0;border-color:#94a3b866}.mermaid-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;background:#0009}.mermaid-modal-panel{position:relative;width:min(64rem,calc(100% - 2rem));margin:2rem auto;border-radius:.75rem;overflow:hidden;background:#fff;color:#0f172a;box-shadow:0 24px 60px #00000038}.mermaid-modal-panel.is-dark{background:#0f172a;color:#e2e8f0}.mermaid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(148,163,184,.25)}.mermaid-modal-panel.is-dark .mermaid-modal-header{border-bottom-color:#94a3b840}.mermaid-modal-title{font-size:.875rem;font-weight:600}.mermaid-modal-close{font-size:.875rem;padding:.25rem .5rem;border-radius:.375rem;cursor:pointer;opacity:.9}.mermaid-modal-close:hover{opacity:1;background:#94a3b829}.mermaid-modal-body{padding:1rem;max-height:80vh;overflow:auto}.mermaid-modal-content{width:100%;height:100%;display:flex;justify-content:center}.fullscreen{width:100%;max-height:100%!important;height:100%!important}.mermaid-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem .9rem;border-bottom:1px solid rgba(148,163,184,.3);background:#f8fafcd9}.dark .mermaid-header{background:#0f172ad9;border-color:#47556999}.mermaid-title__text{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:inherit}.mermaid-actions{display:flex;align-items:center;gap:.35rem}.mermaid-btn{border:1px solid rgba(148,163,184,.4);background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;border-radius:.35rem;cursor:pointer;transition:background .2s ease,color .2s ease}.mermaid-btn:hover{background:#3b82f626;color:#1d4ed8}.dark .mermaid-btn:hover{background:#3b82f64d;color:#bfdbfe}.mermaid-toggle{display:inline-flex;border-radius:9999px;border:1px solid rgba(148,163,184,.3);overflow:hidden}.mermaid-toggle-btn{border:none;background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;cursor:pointer;transition:background .2s ease}.mermaid-toggle-btn--active{background:#3b82f62e;color:#1d4ed8}.dark .mermaid-toggle-btn--active{background:#3b82f64d;color:#bfdbfe}.mermaid-body{position:relative;padding:1rem}.mermaid-preview{width:100%;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center}.mermaid-preview svg{width:100%;height:auto}.mermaid-source{background:#0f172af2;color:#e2e8f0;border-radius:.5rem;padding:1rem;overflow-x:auto}.mermaid-error{padding:.85rem 1rem;color:#b91c1c;background:#f8717126;border-top:1px solid rgba(248,113,113,.25)}.mermaid-loading{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem 1rem;font-size:.85rem;color:#0f172a99}.dark .mermaid-loading{color:#e2e8f0b3}.mermaid-spinner{width:1.2rem;height:1.2rem;border:2px solid rgba(59,130,246,.4);border-top-color:#3b82f6e6;border-radius:9999px;animation:spin .9s linear infinite}.math-block-node{margin:1rem 0}.math-inline-wrapper{position:relative;display:inline-block}.math-inline{display:inline-block;vertical-align:middle}.math-inline--hidden{visibility:hidden}.math-inline__loading{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.math-inline__spinner{width:1rem;height:1rem;border-radius:9999px;border:2px solid rgba(94,104,121,.25);border-top-color:#5e6879cc;animation:spin 1s linear infinite}.math-block{position:relative;text-align:center;overflow-x:auto;min-height:40px;padding:.5rem}.math-rendering{opacity:.3;transition:opacity .2s ease}.thematic-break{margin:3rem 0;border-top:1px solid #e2e8f0}.hr-node{margin:3rem 0;border-top:1px solid var(--hr-border-color, #e2e8f0)}.hard-break{display:block}.checkbox-node{margin-right:.5rem;vertical-align:middle}.checkbox-input{margin:0;cursor:default}.html-inline-node{display:inline}.html-inline-node--loading{opacity:.85}.html-block-node__placeholder{display:flex;flex-direction:column;gap:.35rem;padding:.5rem 0}.html-block-node__placeholder-bar{display:block;height:.8rem;border-radius:9999px;background-image:linear-gradient(90deg,#94a3b859,#94a3b81a,#94a3b859);background-size:200% 100%;animation:html-block-node-shimmer 1.2s ease infinite}@keyframes html-block-node-shimmer{0%{background-position:0% 0%}to{background-position:200% 0%}}.vmr-container{border-radius:.5rem;border:1px solid rgba(148,163,184,.35);padding:1rem;margin:1rem 0;border-left-width:4px}.admonition{--admonition-bg: #f8f8f8;--admonition-border: #eaecef;--admonition-header-bg: rgba(0, 0, 0, .03);--admonition-text: #111827;--admonition-muted: #374151;--admonition-note-color: #448aff;--admonition-tip-color: #00bfa5;--admonition-warning-color: #ff9100;--admonition-danger-color: #ff5252;margin:1rem 0;padding:0;border-radius:4px;border-left:4px solid var(--admonition-border);background-color:var(--admonition-bg);color:var(--admonition-text);overflow:hidden}.admonition-header{padding:.5rem 1rem;font-weight:600;display:flex;align-items:center;background-color:var(--admonition-header-bg);color:var(--admonition-muted)}.admonition-icon{margin-right:.5rem;color:inherit}.admonition-content{padding:.5rem 1rem 1rem;color:var(--admonition-text)}.admonition-note{border-left-color:var(--admonition-note-color)}.admonition-note .admonition-header{background-color:#448aff0f;color:var(--admonition-note-color)}.admonition-info{border-left-color:var(--admonition-note-color)}.admonition-info .admonition-header{background-color:#448aff0f;color:var(--admonition-note-color)}.admonition-tip{border-left-color:var(--admonition-tip-color)}.admonition-tip .admonition-header{background-color:#00bfa50f;color:var(--admonition-tip-color)}.admonition-warning{border-left-color:var(--admonition-warning-color)}.admonition-warning .admonition-header{background-color:#ff91000f;color:var(--admonition-warning-color)}.admonition-danger{border-left-color:var(--admonition-danger-color)}.admonition-danger .admonition-header{background-color:#ff52520f;color:var(--admonition-danger-color)}.admonition-error{border-left-color:var(--admonition-danger-color)}.admonition-error .admonition-header{background-color:#ff52520f;color:var(--admonition-danger-color)}.admonition-caution{border-left-color:var(--admonition-warning-color)}.admonition-caution .admonition-header{background-color:#ff91000f;color:var(--admonition-warning-color)}.admonition-toggle{margin-left:auto;background:transparent;border:none;color:inherit;cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:.9rem}.admonition-toggle:focus{outline:2px solid rgba(0,0,0,.08);outline-offset:2px}.admonition.is-dark{--admonition-bg: #0b1220;--admonition-border: rgba(255, 255, 255, .06);--admonition-header-bg: rgba(255, 255, 255, .03);--admonition-text: #e6eef8;--admonition-muted: #cbd5e1}.code-block-container{contain:content;content-visibility:auto;contain-intrinsic-size:320px 180px;container-type:inline-size;--markstream-code-fallback-bg: #ffffff;--markstream-code-fallback-fg: #111827;--markstream-code-border-color: rgb(229 231 235);--markstream-code-fallback-selection-bg: rgba(0, 0, 0, .06);--vscode-editor-selectionBackground: var(--markstream-code-fallback-selection-bg);--markstream-diff-frame-border: rgb(203 213 225 / .56);--markstream-diff-frame-shadow: 0 16px 40px -32px rgb(15 23 42 / .18);--markstream-diff-shell-fg: #0f172a;--markstream-diff-shell-muted: #64748b;--markstream-diff-shell-border: rgb(148 163 184 / .18);--markstream-diff-shell-shadow: 0 30px 70px -48px rgb(15 23 42 / .42);--markstream-diff-shell-bg: radial-gradient( circle at top center, rgb(255 255 255 / .9), transparent 55% ), linear-gradient(180deg, #fffdfa 0%, #fbfcfe 100%);--markstream-diff-header-border: rgb(226 232 240 / .92);--markstream-diff-stage-bg: radial-gradient( circle at top center, rgb(255 255 255 / .95), transparent 60% ), linear-gradient(180deg, #fcfdff 0%, #f6f8fb 100%);--markstream-diff-editor-bg: #ffffff;--markstream-diff-editor-fg: #435266;--markstream-diff-unchanged-fg: lab(36.247 .0071872 -.000424832);--markstream-diff-unchanged-bg: lab(95.9989 .0180531 -.0010643);--markstream-diff-unchanged-divider: rgb(255 255 255 / .94);--markstream-diff-focus: rgb(14 165 233 / .42);--markstream-diff-widget-shadow: rgb(15 23 42 / .26);--markstream-diff-action-hover: rgb(15 23 42 / .06);--markstream-diff-panel-bg: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);--markstream-diff-panel-bg-soft: #ffffff;--markstream-diff-panel-bg-strong: #ffffff;--markstream-diff-panel-border: rgb(226 232 240 / .3);--markstream-diff-pane-divider: rgb(226 232 240 / .42);--markstream-diff-gutter-bg: transparent;--markstream-diff-gutter-guide: transparent;--markstream-diff-gutter-gap: 16px;--markstream-diff-line-number: rgb(82 82 82 / .88);--markstream-diff-line-number-active: rgb(82 82 82 / .88);--markstream-diff-added-fg: #14b8a6;--markstream-diff-removed-fg: #ff3658;--markstream-diff-added-line: rgb(232 249 245 / .98);--markstream-diff-removed-line: rgb(255 241 241 / .98);--markstream-diff-added-inline: rgb(197 245 219 / .96);--markstream-diff-removed-inline: rgb(255 215 217 / .92);--markstream-diff-added-inline-border: transparent;--markstream-diff-removed-inline-border: transparent;--markstream-diff-added-gutter: linear-gradient( 90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width, 4px), rgb(20 184 166 / .08) var(--stream-monaco-gutter-marker-width, 4px) 100% );--markstream-diff-removed-gutter: repeating-linear-gradient( 180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px ) left / var(--stream-monaco-gutter-marker-width, 4px) 100% no-repeat, linear-gradient(90deg, rgb(255 54 88 / .08) 0 100%);--markstream-diff-added-line-fill: rgb(231 248 244 / .96);--markstream-diff-removed-line-fill: rgb(255 241 241 / .98)}.code-block-container.is-dark{--markstream-code-fallback-bg: #111827;--markstream-code-fallback-fg: #e5e7eb;--markstream-code-border-color: rgb(55 65 81 / .3);--markstream-code-fallback-selection-bg: rgba(255, 255, 255, .08);--markstream-diff-frame-border: rgb(82 82 91 / .56);--markstream-diff-frame-shadow: 0 18px 40px -30px rgb(0 0 0 / .84);--markstream-diff-shell-fg: #e2e8f0;--markstream-diff-shell-muted: #94a3b8;--markstream-diff-shell-border: rgb(82 82 91 / .56);--markstream-diff-shell-shadow: 0 34px 80px -52px rgb(0 0 0 / .72);--markstream-diff-shell-bg: rgb(10 10 11 / .99);--markstream-diff-header-border: rgb(63 63 70 / .82);--markstream-diff-stage-bg: rgb(10 10 11 / .99);--markstream-diff-editor-bg: rgb(12 12 14 / .99);--markstream-diff-editor-fg: #b6c2d3;--markstream-diff-unchanged-fg: #cbd5e1;--markstream-diff-unchanged-bg: rgb(24 24 27 / .92);--markstream-diff-unchanged-divider: rgb(255 255 255 / .18);--markstream-diff-focus: rgb(96 165 250 / .42);--markstream-diff-widget-shadow: rgb(0 0 0 / .72);--markstream-diff-action-hover: rgb(255 255 255 / .08);--markstream-diff-panel-bg: rgb(10 10 11 / .99);--markstream-diff-panel-bg-soft: rgb(10 10 11 / .99);--markstream-diff-panel-bg-strong: rgb(10 10 11 / .99);--markstream-diff-panel-border: rgb(82 82 91 / .3);--markstream-diff-pane-divider: rgb(82 82 91 / .34);--markstream-diff-gutter-bg: linear-gradient( 180deg, rgb(13 13 15 / .94) 0%, rgb(9 9 10 / .98) 100% );--markstream-diff-gutter-guide: rgb(161 161 170 / .08);--markstream-diff-gutter-gap: 16px;--markstream-diff-line-number: rgb(161 161 170 / .68);--markstream-diff-line-number-active: rgb(228 228 231 / .82);--markstream-diff-added-fg: #5eead4;--markstream-diff-removed-fg: #fda4af;--markstream-diff-added-line: rgb(13 148 136 / .18);--markstream-diff-removed-line: rgb(225 29 72 / .18);--markstream-diff-added-inline: rgb(45 212 191 / .24);--markstream-diff-removed-inline: rgb(251 113 133 / .24);--markstream-diff-added-inline-border: transparent;--markstream-diff-removed-inline-border: transparent;--markstream-diff-added-gutter: linear-gradient( 90deg, var(--markstream-diff-added-fg) 0 var(--stream-monaco-gutter-marker-width, 4px), rgb(94 234 212 / .2) var(--stream-monaco-gutter-marker-width, 4px) 100% );--markstream-diff-removed-gutter: repeating-linear-gradient( 180deg, var(--markstream-diff-removed-fg) 0 2px, transparent 2px 4px ) left / var(--stream-monaco-gutter-marker-width, 4px) 100% no-repeat, linear-gradient(90deg, rgb(253 164 175 / .18) 0 100%);--markstream-diff-added-line-fill: linear-gradient( 90deg, rgb(15 118 110 / .38) 0%, rgb(13 148 136 / .28) 100% );--markstream-diff-removed-line-fill: linear-gradient( 90deg, rgb(159 18 57 / .38) 0%, rgb(225 29 72 / .28) 100% )}.code-editor-container{transition:height .18s ease,max-height .18s ease}.code-block-container.is-plain-text:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .monaco-editor-background,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background, var(--markstream-code-fallback-bg))!important}.code-block-container.is-plain-text:not(.is-diff) .monaco-editor,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .margin,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-lines,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-line,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-line span,.code-block-container.is-plain-text:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground, var(--markstream-code-fallback-fg))!important}.code-action-btn{cursor:pointer;opacity:.7;transition:opacity .2s}.code-action-btn:hover{opacity:1}.code-action-btn:disabled{opacity:.5;cursor:not-allowed}.code-action-btn:disabled:hover{background-color:transparent}.icon-slot{display:inline-flex;align-items:center;justify-content:center}.icon-slot svg,.icon-slot img{display:block;width:100%;height:100%}.code-editor-layer{display:grid;min-width:0}.code-editor-layer>.code-editor-container,.code-editor-layer>.code-editor-fallback-surface{grid-area:1 / 1}.code-editor-fallback-surface{overflow:auto;padding:1rem}.code-block-container.is-diff .code-editor-fallback-surface{padding:0;background:var(--markstream-diff-editor-bg)}.code-block-container.is-diff{background:var(--markstream-diff-shell-bg);box-shadow:var(--markstream-diff-shell-shadow);border-color:var(--markstream-diff-shell-border);--vscode-editor-selectionBackground: var(--markstream-diff-action-hover)}.code-block-container.is-diff .code-block-header{padding:18px 20px 14px;color:var(--markstream-diff-shell-fg);background:transparent;border-bottom-color:var(--markstream-diff-header-border)}.code-block-container.is-diff .code-editor-layer{padding:4px 4px 8px;background:var(--markstream-diff-stage-bg);--vscode-editor-background: var(--markstream-diff-editor-bg);--vscode-editor-foreground: var(--markstream-diff-editor-fg);--vscode-diffEditor-unchangedRegionForeground: var(--markstream-diff-unchanged-fg);--vscode-diffEditor-unchangedRegionBackground: var(--markstream-diff-unchanged-bg);--vscode-focusBorder: var(--markstream-diff-focus);--vscode-widget-shadow: var(--markstream-diff-widget-shadow)}.code-block-container .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background, #111827)}.code-block-container .stream-monaco-diff-root .monaco-diff-editor .diffOverview,.code-block-container .stream-monaco-diff-root .decorationsOverviewRuler{display:none!important;width:0!important;min-width:0!important;max-width:0!important;border:0!important;background:transparent!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}.code-block-container .stream-monaco-diff-root .monaco-diff-editor{border:0!important;border-radius:0!important;box-shadow:none!important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>*:not(a){visibility:hidden!important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}.code-block-container .stream-monaco-diff-root{--stream-monaco-gutter-gap: var(--markstream-diff-gutter-gap) !important;--stream-monaco-line-number: var(--markstream-diff-line-number) !important;--stream-monaco-line-number-active: var(--markstream-diff-line-number-active) !important;--stream-monaco-added-fg: var(--markstream-diff-added-fg) !important;--stream-monaco-removed-fg: var(--markstream-diff-removed-fg) !important;--stream-monaco-added-line: var(--markstream-diff-added-line) !important;--stream-monaco-removed-line: var(--markstream-diff-removed-line) !important;--stream-monaco-added-inline: var(--markstream-diff-added-inline) !important;--stream-monaco-removed-inline: var(--markstream-diff-removed-inline) !important;--stream-monaco-added-inline-border: var(--markstream-diff-added-inline-border) !important;--stream-monaco-removed-inline-border: var(--markstream-diff-removed-inline-border) !important;--stream-monaco-added-line-fill: var(--markstream-diff-added-line-fill) !important;--stream-monaco-removed-line-fill: var(--markstream-diff-removed-line-fill) !important;--stream-monaco-added-gutter: var(--markstream-diff-added-gutter) !important;--stream-monaco-removed-gutter: var(--markstream-diff-removed-gutter) !important;--stream-monaco-added-line-shadow: none !important;--stream-monaco-removed-line-shadow: none !important;--stream-monaco-unchanged-bg: var(--markstream-diff-unchanged-bg) !important;--stream-monaco-unchanged-fg: var(--markstream-diff-unchanged-fg) !important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{--stream-monaco-unchanged-bg: var(--markstream-diff-unchanged-bg) !important;--stream-monaco-unchanged-fg: var(--markstream-diff-unchanged-fg) !important;background:var(--stream-monaco-unchanged-bg)!important;color:var(--stream-monaco-unchanged-fg)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge{right:calc(var(--stream-monaco-gutter-marker-width) - var(--stream-monaco-unchanged-rail-width) / 2 + (var(--stream-monaco-gutter-gap) * 2))!important;width:auto!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important;color:var(--markstream-diff-unchanged-fg)!important;padding-left:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important;padding-right:calc(var(--stream-monaco-gutter-marker-width) + (var(--stream-monaco-gutter-gap) * 2))!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{background:var(--stream-monaco-unchanged-bg)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail{border-right-color:var(--markstream-diff-unchanged-divider)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:transparent!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-both .stream-monaco-unchanged-reveal:first-child{border-bottom-color:var(--markstream-diff-unchanged-divider)!important}.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-top-only .stream-monaco-unchanged-reveal,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail.stream-monaco-unchanged-rail-bottom-only .stream-monaco-unchanged-reveal{border-bottom:0!important}.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-meta,.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-count,.code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-metadata-label,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,.code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal.stream-monaco-focus-visible{color:var(--markstream-diff-unchanged-fg)!important}.code-block-content{display:grid;max-height:min(70vh,500px);overflow:auto;transition:max-height .3s ease;font-family:var(--vscode-editor-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);line-height:var(--vscode-editor-line-height, 1.5)}.code-block-render,.code-fallback-plain{grid-area:1 / 1;min-width:0}.code-block-render{min-height:1px}.code-block-render pre,.code-block-content .shiki{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.code-block-content .shiki-fallback{margin:0;padding:1rem;background:inherit;color:inherit;white-space:pre;font-family:inherit;font-size:inherit;line-height:inherit}.code-fallback-plain{position:relative;z-index:1;white-space:pre;overflow:auto;background:var(--vscode-editor-background, var(--markstream-code-fallback-bg));color:var(--vscode-editor-foreground, var(--markstream-code-fallback-fg));font-size:inherit;line-height:inherit;font-family:inherit;font-weight:var(--vscode-editor-font-weight, 400)}.code-fallback-plain>code{font-size:inherit;line-height:inherit;font-family:inherit;font-weight:inherit}.code-fallback-plain.markstream-pre--diff-preview{box-sizing:border-box;width:100%;padding-left:0;padding-right:0;color:var(--markstream-diff-editor-fg, var(--vscode-editor-foreground, inherit));background:var(--markstream-diff-editor-bg, var(--vscode-editor-background, transparent));font-variant-ligatures:none;-moz-tab-size:var(--markstream-pre-tab-size, 4);-o-tab-size:var(--markstream-pre-tab-size, 4);tab-size:var(--markstream-pre-tab-size, 4);--markstream-pre-diff-gutter-marker-width: var(--stream-monaco-gutter-marker-width, 4px);--markstream-pre-diff-gutter-gap: var(--stream-monaco-gutter-gap, 8px);--markstream-pre-diff-line-number-width: var(--stream-monaco-line-number-width, 28px);--markstream-pre-diff-scrollable-left: var( --stream-monaco-original-scrollable-left, calc( var(--markstream-pre-diff-gutter-marker-width) + (var(--markstream-pre-diff-gutter-gap) * 2) + var(--markstream-pre-diff-line-number-width) ) );--markstream-pre-diff-line-number-gap-to-code: var( --stream-monaco-original-line-number-gap-to-code, var(--stream-monaco-line-number-gap-to-code, var(--markstream-pre-diff-gutter-gap)) );--markstream-pre-diff-line-number-left: calc( var(--markstream-pre-diff-scrollable-left) - var(--markstream-pre-diff-line-number-gap-to-code) - var(--markstream-pre-diff-line-number-width) );--markstream-pre-diff-line-number-align: var(--markstream-diff-line-number-align, right)}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline{--markstream-pre-diff-scrollable-left: var( --stream-monaco-modified-scrollable-left, var(--stream-monaco-original-scrollable-left) );--markstream-pre-diff-line-number-gap-to-code: var( --stream-monaco-modified-line-number-gap-to-code, var(--stream-monaco-line-number-gap-to-code, var(--markstream-pre-diff-gutter-gap)) );--markstream-pre-diff-line-number-left: calc( var(--markstream-pre-diff-scrollable-left) - var(--markstream-pre-diff-line-number-gap-to-code) - var(--markstream-pre-diff-line-number-width) )}.code-fallback-plain.markstream-pre--diff-preview>.markstream-pre__diff-code{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;min-width:100%;font:inherit;line-height:inherit}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline>.markstream-pre__diff-code{grid-template-columns:max-content;width:-moz-max-content;width:max-content}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-pane{min-width:0;overflow:hidden}.code-fallback-plain.markstream-pre--diff-preview:not(.markstream-pre--diff-inline) .markstream-pre__diff-pane{overflow-x:auto;overflow-y:hidden}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline .markstream-pre__diff-pane{min-width:-moz-max-content;min-width:max-content;overflow:visible}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-pane--modified{--markstream-pre-diff-scrollable-left: var( --stream-monaco-modified-scrollable-left, var(--stream-monaco-original-scrollable-left) );--markstream-pre-diff-line-number-gap-to-code: var( --stream-monaco-modified-line-number-gap-to-code, var(--stream-monaco-line-number-gap-to-code, var(--markstream-pre-diff-gutter-gap)) );--markstream-pre-diff-line-number-left: calc( var(--markstream-pre-diff-scrollable-left) - var(--markstream-pre-diff-line-number-gap-to-code) - var(--markstream-pre-diff-line-number-width) );box-shadow:inset 1px 0 var(--markstream-diff-pane-divider, rgb(148 163 184 / .18))}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline .markstream-pre__diff-pane--modified{box-shadow:none}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line{position:relative;display:block;box-sizing:border-box;min-height:var(--markstream-pre-diff-line-height, 18px);padding-left:var(--markstream-pre-diff-scrollable-left);line-height:var(--markstream-pre-diff-line-height, 18px)}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line:before{content:"";position:absolute;inset-inline:0;top:0;height:var(--markstream-pre-diff-line-height, 18px);z-index:0;pointer-events:none;background:transparent}.code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline .markstream-pre__diff-line:after{content:"";position:absolute;top:0;left:var(--markstream-pre-diff-scrollable-left);width:1px;height:var(--markstream-pre-diff-line-height, 18px);z-index:1;pointer-events:none;background:var(--stream-monaco-pane-divider, var(--markstream-diff-pane-divider, rgb(148 163 184 / .18)))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-rail{position:absolute;z-index:2;top:0;left:0;width:var(--markstream-pre-diff-gutter-marker-width, 4px);min-width:var(--markstream-pre-diff-gutter-marker-width, 4px);height:var(--markstream-pre-diff-line-height, 18px)}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-number{position:absolute;z-index:1;top:0;left:var(--markstream-pre-diff-line-number-left);width:var(--markstream-pre-diff-line-number-width);color:var(--stream-monaco-line-number, var(--markstream-diff-line-number, #6b7280));font-variant-numeric:tabular-nums;line-height:var(--markstream-pre-diff-line-height, 18px);text-align:var(--markstream-pre-diff-line-number-align, right);-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-content{position:relative;z-index:1;display:block;min-width:-moz-max-content;min-width:max-content;line-height:var(--markstream-pre-diff-line-height, 18px);white-space:inherit;overflow-wrap:normal;word-break:normal;line-break:auto}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-content-inner{white-space:inherit;overflow-wrap:inherit;word-break:inherit;line-break:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added{color:var(--stream-monaco-added-fg, var(--markstream-diff-added-fg, inherit))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed{color:var(--stream-monaco-removed-fg, var(--markstream-diff-removed-fg, inherit))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--hunk{color:var(--stream-monaco-unchanged-fg, var(--markstream-diff-unchanged-fg, var(--markstream-diff-line-number, currentColor)))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--hunk:before{background:var(--stream-monaco-unchanged-bg, var(--markstream-diff-unchanged-bg, transparent))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added:before{background:var(--stream-monaco-added-line-fill, var(--markstream-diff-added-line-fill, transparent))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed:before{background:var(--stream-monaco-removed-line-fill, var(--markstream-diff-removed-line-fill, transparent))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added>.markstream-pre__diff-rail{background:var(--stream-monaco-added-gutter, var(--markstream-diff-added-gutter, currentColor))}.code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed>.markstream-pre__diff-rail{background:var(--stream-monaco-removed-gutter, var(--markstream-diff-removed-gutter, currentColor))}.code-loading-placeholder{padding:1rem;min-height:120px}.loading-skeleton{display:flex;flex-direction:column;gap:.75rem}.skeleton-line{height:1rem;background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%);background-size:400% 100%;animation:code-skeleton-shimmer 1.2s ease-in-out infinite;border-radius:.25rem}.code-block-container.is-dark .skeleton-line{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%);background-size:400% 100%}.skeleton-line.short{width:60%}@keyframes code-skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.markstream-react pre[class^=language-],.markstream-react pre[class*=" language-"]{white-space:pre;overflow:auto;-moz-tab-size:2;-o-tab-size:2;tab-size:2;font-variant-ligatures:none;contain:content;backface-visibility:hidden;transform:translateZ(0);-webkit-font-smoothing:antialiased}.markstream-react pre[class^=language-]>code,.markstream-react pre[class*=" language-"]>code{display:block}.markstream-react pre[class^=language-]:focus,.markstream-react pre[class*=" language-"]:focus{outline:2px solid var(--vmdr-focus, #3b82f6);outline-offset:2px}.html-preview-frame__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.html-preview-frame__backdrop--dark{background-color:#0f172acc}.html-preview-frame{width:80vw;max-width:960px;height:70vh;background-color:#fff;border-radius:.5rem;overflow:hidden;box-shadow:0 10px 40px #00000040;display:flex;flex-direction:column}.html-preview-frame--dark{background-color:#020617;color:#e5e7eb;box-shadow:0 10px 40px #0009}.html-preview-frame__header{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;border-bottom:1px solid rgba(0,0,0,.06)}.html-preview-frame--dark .html-preview-frame__header{border-bottom-color:#94a3b859}.html-preview-frame__title{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;letter-spacing:.02em;text-transform:uppercase;opacity:.85}.html-preview-frame__dot{width:.5rem;height:.5rem;border-radius:999px;background-color:#22c55e}.html-preview-frame--dark .html-preview-frame__dot{background-color:#4ade80}.html-preview-frame__label{white-space:nowrap}.html-preview-frame__close{border:none;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer}.html-preview-frame__close--dark{color:#e5e7eb}.html-preview-frame__iframe{width:100%;height:100%;border:none;display:block}@media(max-width:640px){.html-preview-frame{width:100vw;height:80vh;border-radius:0}}.ms-tooltip{position:fixed;padding:.4rem .65rem;font-size:.875rem;border-radius:.375rem;border-width:1px;border-style:solid;box-shadow:0 10px 15px #00000014;pointer-events:none;z-index:9999;opacity:0;transition:opacity .12s linear,transform .22s cubic-bezier(.16,1,.3,1)}.ms-tooltip[data-visible=true]{opacity:1}.ms-tooltip[data-dark=true]{background-color:#111827;color:#f9fafb;border-color:#374151}.ms-tooltip[data-dark=false],.ms-tooltip:not([data-dark=true]){background-color:#fff;color:#111827;border-color:#e5e7eb}@keyframes node-placeholder-shimmer{0%{background-position:200% 0%}to{background-position:-200% 0%}}@keyframes node-enter-fade{0%{opacity:0}to{opacity:1}}@keyframes typewriter-fade{0%{opacity:0}to{opacity:1}}.typewriter-cursor{position:absolute;left:0;top:0;display:inline-block;width:.55em;height:1em;margin-left:.08em;vertical-align:-.12em;border-right:2px solid currentColor;pointer-events:none;animation:typewriter-cursor-blink 1s steps(1,end) infinite}@keyframes typewriter-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.markstream-react .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.d2-block-body{position:relative}.d2-source{font-family:var(--vscode-editor-font-family, "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}.d2-code{white-space:pre;font-size:.875rem;line-height:1.5}.d2-render{overflow:auto}.d2-svg svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}.mode-btn{opacity:.7;transition:opacity .2s}.mode-btn.is-active{opacity:1;font-weight:600}.d2-action-btn{opacity:.7;transition:opacity .2s}.d2-action-btn:hover{opacity:1}.d2-action-btn:disabled{opacity:.3;cursor:not-allowed}.d2-error{color:#dc2626}body>div[id^=dmermaid-]{position:fixed;top:-10000px;left:0;width:100%;visibility:hidden;pointer-events:none}.markstream-react .hover\:bg-\[hsl\(var\(--secondary\)\)\]:hover{background-color:hsl(var(--secondary))}.markstream-react .hover\:bg-\[var\(--vscode-editor-selectionBackground\)\]:hover{background-color:var(--vscode-editor-selectionBackground)}.markstream-react .hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.markstream-react .hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.markstream-react .hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.markstream-react .hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.markstream-react .hover\:underline:hover{text-decoration-line:underline}@media not all and (min-width:1024px){.markstream-react .max-lg\:my-\[calc\(4\/3\*1em\)\]{margin-top:calc(4 / 3 * 1em);margin-bottom:calc(4 / 3 * 1em)}.markstream-react .max-lg\:pl-\[calc\(14\/9\*1em\)\]{padding-left:calc(14 / 9 * 1em)}}
package/dist/next.d.ts CHANGED
@@ -2,7 +2,6 @@ import React, { ComponentType, CSSProperties } from 'react';
2
2
  import * as stream_markdown_parser from 'stream-markdown-parser';
3
3
  import { CodeBlockNode as CodeBlockNode$1, BaseNode, ParseOptions, MarkdownIt, HtmlPolicy, ParsedNode } from 'stream-markdown-parser';
4
4
  import { SmoothMarkdownStreamOptions } from 'markstream-core';
5
- import * as react_jsx_runtime from 'react/jsx-runtime';
6
5
 
7
6
  type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
8
7
  interface TooltipProps {
@@ -476,7 +475,7 @@ declare function useSafeI18n(): {
476
475
  t: (key: string) => string;
477
476
  };
478
477
 
479
- declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): react_jsx_runtime.JSX.Element;
478
+ declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): React.JSX.Element;
480
479
 
481
480
  type LanguageIconResolver = (lang: string) => string | undefined | null;
482
481
  declare function setLanguageIconResolver(resolver?: LanguageIconResolver | null): void;
package/dist/next.js CHANGED
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import a,{useState as s,useEffect as e}from"react";import{A as r,B as o,C as t,a as n,D as i,b as m,E as l,c,F as u,d,e as g,f as p,H as f,g as C,h as T,i as k,j as D,k as E,I as K,l as M,m as W,n as I,L as _,o as L,p as R,q as X,r as b,s as x,t as y,N as B,P as S,u as h,R as A,S as N,v,w as j,x as O,T as P,y as w,z,G as F,V as Y}from"./Tooltip-D786qxIk.js";import{M as q,W as G,J as H,K as U,O as V,Q as $,U as J,X as Q,Y as Z,ah as aa,Z as sa,_ as ea,$ as ra,a0 as oa,a1 as ta,a2 as na,a3 as ia,a4 as ma,a5 as la,a6 as ca,a7 as ua,a8 as da,a9 as ga,aa as pa,ab as fa,ac as Ca,ad as Ta,ae as ka,ag as Da}from"./Tooltip-D786qxIk.js";import{c as Ea,a as Ka,b as Ma,l as Wa,n as Ia,p as _a,r as La,d as Ra,s as Xa,e as ba,f as xa}from"./codeBlockExtraProps-7n9FWJXk.js";import{A as ya,B as Ba,C as Sa,a as ha,D as Aa,b as Na,E as va,c as ja,F as Oa,d as Pa,e as wa,f as za,H as Fa,g as Ya,h as qa,i as Ga,j as Ha,k as Ua,I as Va,l as $a,m as Ja,n as Qa,L as Za,o as as,p as ss,M as es,q as rs,r as os,s as ts,N as ns,P as is,t as ms,R as ls,S as cs,u as us,v as ds,w as gs,T as ps,x as fs,y as Cs,z as Ts,V as ks}from"./index-o_DISWz2.js";function Ds(r,o){function t(t){const[n,i]=s(!1);return e(()=>{i(!0)},[]),n?a.createElement(r,t):function(a){const s="__MARKSTREAM_REACT_DISABLE_SYNC_KATEX__",e=globalThis,r=e[s];e[s]=!0;try{return o(a)}finally{void 0===r?delete e[s]:e[s]=r}}(t)}return t.displayName=`MarkstreamNextEntry(${r.displayName||r.name||"Component"})`,t}const Es=Ds(r,ya),Ks=Ds(o,Ba),Ms=Ds(t,Sa),Ws=Ds(n,ha),Is=Ws,_s=Ds(E,Ua),Ls=Ds(i,Aa),Rs=Ds(m,Na),Xs=Ds(l,va),bs=Ds(c,ja),xs=Ds(d,Pa),ys=Ds(g,wa),Bs=Ds(p,za),Ss=Ds(f,Fa),hs=Ds(C,Ya),As=Ds(T,qa),Ns=Ds(k,Ga),vs=Ds(D,Ha),js=Ds(K,Va),Os=Ds(M,$a),Ps=Ds(W,Ja),ws=Ds(I,Qa),zs=Ds(_,Za),Fs=Ds(L,as),Ys=Ds(R,ss),qs=Ds(X,es),Gs=Ds(b,rs),Hs=Ds(x,os),Us=Ds(y,ts),Vs=Ds(B,ns),$s=Ds(u,Oa),Js=Ds(S,is),Qs=Ds(h,ms),Zs=Ds(A,ls),ae=Ds(N,cs),se=Ds(v,us),ee=Ds(j,ds),re=Ds(O,gs),oe=Ds(P,ps),te=Ds(w,fs),ne=Ds(z,Cs),ie=Ds(F,Ts),me=Ds(Y,ks);export{Es as AdmonitionNode,Ks as BlockquoteNode,Ms as CheckboxNode,Ws as CodeBlockNode,Ls as D2BlockNode,Rs as DefinitionListNode,Xs as EmojiNode,bs as EmphasisNode,$s as FallbackComponent,xs as FootnoteAnchorNode,ys as FootnoteNode,Bs as FootnoteReferenceNode,Ss as HardBreakNode,hs as HeadingNode,As as HighlightNode,Ns as HtmlBlockNode,vs as HtmlInlineNode,_s as HtmlPreviewFrame,js as ImageNode,Os as InfographicBlockNode,Ps as InlineCodeNode,ws as InsertNode,zs as LinkNode,Fs as ListItemNode,Ys as ListNode,q as MERMAID_WORKER_BUSY_CODE,qs as MarkdownCodeBlockNode,Gs as MathBlockNode,Hs as MathInlineNode,Us as MermaidBlockNode,Vs as NodeRenderer,Js as ParagraphNode,Qs as PreCodeNode,Is as ReactCodeBlockNode,Zs as ReferenceNode,ae as StrikethroughNode,se as StrongNode,ee as SubscriptNode,re as SuperscriptNode,oe as TableNode,te as TextNode,ne as ThematicBreakNode,ie as Tooltip,me as VmrContainerNode,G as WORKER_BUSY_CODE,H as canParseOffthread,Ea as clearGlobalCustomComponents,U as clearKaTeXCache,V as clearKaTeXWorker,$ as clearMermaidWorker,Vs as default,J as disableD2,Q as enableD2,Z as findPrefixOffthread,Ka as getCustomNodeComponents,aa as getD2,sa as getKaTeXBackpressureDefaults,Ma as getLanguageIcon,ea as getMermaidWorkerLoad,ra as isD2Enabled,Wa as languageMap,Ia as normalizeLanguageIdentifier,_a as preloadExtendedLanguageIcons,La as removeCustomComponents,oa as renderKaTeXInWorker,ta as renderKaTeXWithBackpressure,na as renderNode,Ra as resolveMonacoLanguageId,Xa as setCustomComponents,ia as setD2Loader,ma as setDefaultI18nMap,la as setKaTeXBackpressureDefaults,ca as setKaTeXCache,ua as setKaTeXConcurrencyLimit,da as setKaTeXWorker,ga as setKaTeXWorkerDebug,ba as setLanguageIconResolver,pa as setMermaidWorker,fa as setMermaidWorkerClientDebug,Ca as setMermaidWorkerMaxConcurrency,xa as subscribeLanguageIconsRevision,Ta as terminateWorker,ka as useSafeI18n,Da as waitForKaTeXWorkerSlot};
2
+ import a,{useState as s,useEffect as e}from"react";import{A as r,B as o,C as t,a as n,D as i,b as m,E as l,c,F as u,d,e as g,f as p,H as f,g as C,h as T,i as k,j as D,k as E,I as K,l as M,m as W,n as I,L as _,o as L,p as R,q as X,r as b,s as x,t as y,N as B,P as S,u as h,R as A,S as N,v,w as j,x as O,T as P,y as w,z,G as F,V as Y}from"./Tooltip-Ux2h3oiV.js";import{M as q,W as G,J as H,K as U,O as V,Q as $,U as J,X as Q,Y as Z,Z as aa,_ as sa,$ as ea,a0 as ra,a1 as oa,a2 as ta,a3 as na,a4 as ia,a5 as ma,a6 as la,a7 as ca,a8 as ua,a9 as da,aa as ga,ab as pa,ac as fa,ad as Ca,ae as Ta,af as ka,ah as Da}from"./Tooltip-Ux2h3oiV.js";import{b as Ea,i as Ka,j as Ma,n as Wa,q as Ia,u as _a,v as La,z as Ra,C as Xa,D as ba,F as xa}from"./codeBlockExtraProps-NhTjbA1T.js";import{A as ya,B as Ba,C as Sa,a as ha,D as Aa,b as Na,E as va,c as ja,F as Oa,d as Pa,e as wa,f as za,H as Fa,g as Ya,h as qa,i as Ga,j as Ha,k as Ua,I as Va,l as $a,m as Ja,n as Qa,L as Za,o as as,p as ss,M as es,q as rs,r as os,s as ts,N as ns,P as is,t as ms,R as ls,S as cs,u as us,v as ds,w as gs,T as ps,x as fs,y as Cs,z as Ts,V as ks}from"./index-DdaK6qko.js";function Ds(r,o){function t(t){const[n,i]=s(!1);return e(()=>{i(!0)},[]),n?a.createElement(r,t):function(a){const s="__MARKSTREAM_REACT_DISABLE_SYNC_KATEX__",e=globalThis,r=e[s];e[s]=!0;try{return o(a)}finally{void 0===r?delete e[s]:e[s]=r}}(t)}return t.displayName=`MarkstreamNextEntry(${r.displayName||r.name||"Component"})`,t}const Es=Ds(r,ya),Ks=Ds(o,Ba),Ms=Ds(t,Sa),Ws=Ds(n,ha),Is=Ws,_s=Ds(E,Ua),Ls=Ds(i,Aa),Rs=Ds(m,Na),Xs=Ds(l,va),bs=Ds(c,ja),xs=Ds(d,Pa),ys=Ds(g,wa),Bs=Ds(p,za),Ss=Ds(f,Fa),hs=Ds(C,Ya),As=Ds(T,qa),Ns=Ds(k,Ga),vs=Ds(D,Ha),js=Ds(K,Va),Os=Ds(M,$a),Ps=Ds(W,Ja),ws=Ds(I,Qa),zs=Ds(_,Za),Fs=Ds(L,as),Ys=Ds(R,ss),qs=Ds(X,es),Gs=Ds(b,rs),Hs=Ds(x,os),Us=Ds(y,ts),Vs=Ds(B,ns),$s=Ds(u,Oa),Js=Ds(S,is),Qs=Ds(h,ms),Zs=Ds(A,ls),ae=Ds(N,cs),se=Ds(v,us),ee=Ds(j,ds),re=Ds(O,gs),oe=Ds(P,ps),te=Ds(w,fs),ne=Ds(z,Cs),ie=Ds(F,Ts),me=Ds(Y,ks);export{Es as AdmonitionNode,Ks as BlockquoteNode,Ms as CheckboxNode,Ws as CodeBlockNode,Ls as D2BlockNode,Rs as DefinitionListNode,Xs as EmojiNode,bs as EmphasisNode,$s as FallbackComponent,xs as FootnoteAnchorNode,ys as FootnoteNode,Bs as FootnoteReferenceNode,Ss as HardBreakNode,hs as HeadingNode,As as HighlightNode,Ns as HtmlBlockNode,vs as HtmlInlineNode,_s as HtmlPreviewFrame,js as ImageNode,Os as InfographicBlockNode,Ps as InlineCodeNode,ws as InsertNode,zs as LinkNode,Fs as ListItemNode,Ys as ListNode,q as MERMAID_WORKER_BUSY_CODE,qs as MarkdownCodeBlockNode,Gs as MathBlockNode,Hs as MathInlineNode,Us as MermaidBlockNode,Vs as NodeRenderer,Js as ParagraphNode,Qs as PreCodeNode,Is as ReactCodeBlockNode,Zs as ReferenceNode,ae as StrikethroughNode,se as StrongNode,ee as SubscriptNode,re as SuperscriptNode,oe as TableNode,te as TextNode,ne as ThematicBreakNode,ie as Tooltip,me as VmrContainerNode,G as WORKER_BUSY_CODE,H as canParseOffthread,Ea as clearGlobalCustomComponents,U as clearKaTeXCache,V as clearKaTeXWorker,$ as clearMermaidWorker,Vs as default,J as disableD2,Q as enableD2,Z as findPrefixOffthread,Ka as getCustomNodeComponents,aa as getD2,sa as getKaTeXBackpressureDefaults,Ma as getLanguageIcon,ea as getMermaidWorkerLoad,ra as isD2Enabled,Wa as languageMap,Ia as normalizeLanguageIdentifier,_a as preloadExtendedLanguageIcons,La as removeCustomComponents,oa as renderKaTeXInWorker,ta as renderKaTeXWithBackpressure,na as renderNode,Ra as resolveMonacoLanguageId,Xa as setCustomComponents,ia as setD2Loader,ma as setDefaultI18nMap,la as setKaTeXBackpressureDefaults,ca as setKaTeXCache,ua as setKaTeXConcurrencyLimit,da as setKaTeXWorker,ga as setKaTeXWorkerDebug,ba as setLanguageIconResolver,pa as setMermaidWorker,fa as setMermaidWorkerClientDebug,Ca as setMermaidWorkerMaxConcurrency,xa as subscribeLanguageIconsRevision,Ta as terminateWorker,ka as useSafeI18n,Da as waitForKaTeXWorkerSlot};
package/dist/server.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { CodeBlockNode as CodeBlockNode$1, BaseNode, ParseOptions, MarkdownIt, HtmlPolicy, ParsedNode, ListItemNode as ListItemNode$1, TableRowNode, DefinitionItemNode } from 'stream-markdown-parser';
2
2
  import React, { ComponentType, CSSProperties } from 'react';
3
3
  import { SmoothMarkdownStreamOptions } from 'markstream-core';
4
- import * as react_jsx_runtime from 'react/jsx-runtime';
5
4
 
6
5
  interface HtmlPreviewFrameProps {
7
6
  code: string;
@@ -455,56 +454,56 @@ declare function TextNode(props: NodeComponentProps<{
455
454
  type: 'text';
456
455
  content: string;
457
456
  center?: boolean;
458
- }>): react_jsx_runtime.JSX.Element;
457
+ }>): React.JSX.Element;
459
458
  declare function ParagraphNode(props: NodeComponentProps<{
460
459
  type: 'paragraph';
461
460
  children?: ParsedNode[];
462
- }>): react_jsx_runtime.JSX.Element;
461
+ }>): React.JSX.Element;
463
462
  declare function HeadingNode(props: NodeComponentProps<{
464
463
  type: 'heading';
465
464
  level?: number;
466
465
  children?: ParsedNode[];
467
466
  attrs?: Record<string, string | boolean>;
468
- }>): react_jsx_runtime.JSX.Element;
467
+ }>): React.JSX.Element;
469
468
  declare function BlockquoteNode(props: NodeComponentProps<{
470
469
  type: 'blockquote';
471
470
  children?: ParsedNode[];
472
- }>): react_jsx_runtime.JSX.Element;
471
+ }>): React.JSX.Element;
473
472
  declare function ListItemNode(props: NodeComponentProps<{
474
473
  type: 'list_item';
475
474
  children?: ParsedNode[];
476
475
  }> & {
477
476
  value?: number;
478
- }): react_jsx_runtime.JSX.Element;
477
+ }): React.JSX.Element;
479
478
  declare function ListNode(props: NodeComponentProps<{
480
479
  type: 'list';
481
480
  ordered?: boolean;
482
481
  start?: number;
483
482
  items?: ListItemNode$1[];
484
- }>): react_jsx_runtime.JSX.Element;
483
+ }>): React.JSX.Element;
485
484
  declare function TableNode(props: NodeComponentProps<{
486
485
  type: 'table';
487
486
  header?: TableRowNode;
488
487
  rows?: TableRowNode[];
489
488
  loading?: boolean;
490
- }>): react_jsx_runtime.JSX.Element;
489
+ }>): React.JSX.Element;
491
490
  declare function DefinitionListNode(props: NodeComponentProps<{
492
491
  type: 'definition_list';
493
492
  items?: DefinitionItemNode[];
494
- }>): react_jsx_runtime.JSX.Element;
493
+ }>): React.JSX.Element;
495
494
  declare function FootnoteNode(props: NodeComponentProps<{
496
495
  type: 'footnote';
497
496
  id: string;
498
497
  children?: ParsedNode[];
499
- }>): react_jsx_runtime.JSX.Element;
498
+ }>): React.JSX.Element;
500
499
  declare function FootnoteReferenceNode(props: NodeComponentProps<{
501
500
  type: 'footnote_reference';
502
501
  id: string;
503
- }>): react_jsx_runtime.JSX.Element;
502
+ }>): React.JSX.Element;
504
503
  declare function FootnoteAnchorNode(props: NodeComponentProps<{
505
504
  type: 'footnote_anchor';
506
505
  id: string;
507
- }>): react_jsx_runtime.JSX.Element;
506
+ }>): React.JSX.Element;
508
507
  declare function AdmonitionNode(props: NodeComponentProps<{
509
508
  type: 'admonition';
510
509
  kind?: string;
@@ -512,54 +511,54 @@ declare function AdmonitionNode(props: NodeComponentProps<{
512
511
  children?: ParsedNode[];
513
512
  collapsible?: boolean;
514
513
  open?: boolean;
515
- }>): react_jsx_runtime.JSX.Element;
514
+ }>): React.JSX.Element;
516
515
  declare function CheckboxNode(props: NodeComponentProps<{
517
516
  type: 'checkbox' | 'checkbox_input';
518
517
  checked?: boolean;
519
- }>): react_jsx_runtime.JSX.Element;
518
+ }>): React.JSX.Element;
520
519
  declare function EmojiNode(props: NodeComponentProps<{
521
520
  type: 'emoji';
522
521
  name: string;
523
522
  markup?: string;
524
- }>): react_jsx_runtime.JSX.Element;
523
+ }>): React.JSX.Element;
525
524
  declare function StrongNode(props: NodeComponentProps<{
526
525
  type: 'strong';
527
526
  children?: ParsedNode[];
528
- }>): react_jsx_runtime.JSX.Element;
527
+ }>): React.JSX.Element;
529
528
  declare function EmphasisNode(props: NodeComponentProps<{
530
529
  type: 'emphasis';
531
530
  children?: ParsedNode[];
532
- }>): react_jsx_runtime.JSX.Element;
531
+ }>): React.JSX.Element;
533
532
  declare function StrikethroughNode(props: NodeComponentProps<{
534
533
  type: 'strikethrough';
535
534
  children?: ParsedNode[];
536
- }>): react_jsx_runtime.JSX.Element;
535
+ }>): React.JSX.Element;
537
536
  declare function HighlightNode(props: NodeComponentProps<{
538
537
  type: 'highlight';
539
538
  children?: ParsedNode[];
540
- }>): react_jsx_runtime.JSX.Element;
539
+ }>): React.JSX.Element;
541
540
  declare function InsertNode(props: NodeComponentProps<{
542
541
  type: 'insert';
543
542
  children?: ParsedNode[];
544
- }>): react_jsx_runtime.JSX.Element;
543
+ }>): React.JSX.Element;
545
544
  declare function SubscriptNode(props: NodeComponentProps<{
546
545
  type: 'subscript';
547
546
  children?: ParsedNode[];
548
- }>): react_jsx_runtime.JSX.Element;
547
+ }>): React.JSX.Element;
549
548
  declare function SuperscriptNode(props: NodeComponentProps<{
550
549
  type: 'superscript';
551
550
  children?: ParsedNode[];
552
- }>): react_jsx_runtime.JSX.Element;
551
+ }>): React.JSX.Element;
553
552
  declare function HardBreakNode(_props: NodeComponentProps<{
554
553
  type: 'hardbreak';
555
- }>): react_jsx_runtime.JSX.Element;
554
+ }>): React.JSX.Element;
556
555
  declare function ThematicBreakNode(_props?: NodeComponentProps<{
557
556
  type: 'thematic_break';
558
- }>): react_jsx_runtime.JSX.Element;
557
+ }>): React.JSX.Element;
559
558
  declare function InlineCodeNode(props: NodeComponentProps<{
560
559
  type: 'inline_code';
561
560
  code: string;
562
- }>): react_jsx_runtime.JSX.Element;
561
+ }>): React.JSX.Element;
563
562
  declare function LinkNode(props: NodeComponentProps<LinkNodeProps['node']> & {
564
563
  showTooltip?: boolean;
565
564
  color?: string;
@@ -569,46 +568,46 @@ declare function LinkNode(props: NodeComponentProps<LinkNodeProps['node']> & {
569
568
  animationOpacity?: number;
570
569
  animationTiming?: string;
571
570
  animationIteration?: string | number;
572
- }): react_jsx_runtime.JSX.Element;
573
- declare function ImageNode(rawProps: ImageNodeProps): react_jsx_runtime.JSX.Element;
574
- declare function PreCodeNode({ node }: PreCodeNodeProps): react_jsx_runtime.JSX.Element;
575
- declare function CodeBlockNode(props: CodeBlockNodeProps): react_jsx_runtime.JSX.Element;
576
- declare function MarkdownCodeBlockNode(props: MarkdownCodeBlockNodeProps): react_jsx_runtime.JSX.Element;
577
- declare function MermaidBlockNode(props: MermaidBlockNodeProps): react_jsx_runtime.JSX.Element;
578
- declare function D2BlockNode(props: D2BlockNodeProps): react_jsx_runtime.JSX.Element;
579
- declare function InfographicBlockNode(props: InfographicBlockNodeProps): react_jsx_runtime.JSX.Element;
580
- declare function MathBlockNode({ node }: MathBlockNodeProps): react_jsx_runtime.JSX.Element;
581
- declare function MathInlineNode({ node }: MathInlineNodeProps): react_jsx_runtime.JSX.Element;
571
+ }): React.JSX.Element;
572
+ declare function ImageNode(rawProps: ImageNodeProps): React.JSX.Element;
573
+ declare function PreCodeNode({ node }: PreCodeNodeProps): React.JSX.Element;
574
+ declare function CodeBlockNode(props: CodeBlockNodeProps): React.JSX.Element;
575
+ declare function MarkdownCodeBlockNode(props: MarkdownCodeBlockNodeProps): React.JSX.Element;
576
+ declare function MermaidBlockNode(props: MermaidBlockNodeProps): React.JSX.Element;
577
+ declare function D2BlockNode(props: D2BlockNodeProps): React.JSX.Element;
578
+ declare function InfographicBlockNode(props: InfographicBlockNodeProps): React.JSX.Element;
579
+ declare function MathBlockNode({ node }: MathBlockNodeProps): React.JSX.Element;
580
+ declare function MathInlineNode({ node }: MathInlineNodeProps): React.JSX.Element;
582
581
  declare function ReferenceNode(props: NodeComponentProps<{
583
582
  type: 'reference';
584
583
  id: string;
585
584
  }> & {
586
585
  messageId?: string;
587
586
  threadId?: string;
588
- }): react_jsx_runtime.JSX.Element;
587
+ }): React.JSX.Element;
589
588
  declare function HtmlBlockNode(props: NodeComponentProps<{
590
589
  type: 'html_block';
591
590
  content?: string;
592
591
  tag?: string;
593
592
  attrs?: [string, string | null][] | null;
594
593
  children?: ParsedNode[];
595
- }>): react_jsx_runtime.JSX.Element;
594
+ }>): React.JSX.Element;
596
595
  declare function HtmlInlineNode(props: NodeComponentProps<{
597
596
  type: 'html_inline';
598
597
  content?: string;
599
- }>): react_jsx_runtime.JSX.Element;
598
+ }>): React.JSX.Element;
600
599
  declare function VmrContainerNode(props: NodeComponentProps<{
601
600
  type: 'vmr_container';
602
601
  name: string;
603
602
  attrs?: Record<string, string> | [string, string | null][] | null;
604
603
  children?: ParsedNode[];
605
- }>): react_jsx_runtime.JSX.Element;
604
+ }>): React.JSX.Element;
606
605
  declare function Tooltip(_props: TooltipProps): any;
607
606
  declare function HtmlPreviewFrame(_props: HtmlPreviewFrameProps): any;
608
607
  declare function FallbackComponent(props: NodeComponentProps<{
609
608
  type: string;
610
- }>): react_jsx_runtime.JSX.Element;
611
- declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): react_jsx_runtime.JSX.Element;
612
- declare function NodeRenderer(props: NodeRendererProps): react_jsx_runtime.JSX.Element;
609
+ }>): React.JSX.Element;
610
+ declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): React.JSX.Element;
611
+ declare function NodeRenderer(props: NodeRendererProps): React.JSX.Element;
613
612
 
614
613
  export { AdmonitionNode, BlockquoteNode, CheckboxNode, CodeBlockDiffAppearance, CodeBlockDiffHideUnchangedRegions, CodeBlockDiffHideUnchangedRegionsOptions, CodeBlockDiffHunkActionContext, CodeBlockDiffHunkActionKind, CodeBlockDiffHunkSide, CodeBlockDiffLineStyle, CodeBlockDiffUnchangedRegionStyle, CodeBlockMonacoLanguage, CodeBlockMonacoOptions, CodeBlockMonacoTheme, CodeBlockMonacoThemeObject, CodeBlockNode, CodeBlockNodeProps, CodeBlockPreviewPayload, CommonCodeBlockProps, CustomComponentDisplayMode, D2BlockNode, D2BlockNodeProps, DefinitionListNode, EmojiNode, EmphasisNode, FallbackComponent, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlPreviewFrame, HtmlPreviewFrameProps, ImageNode, ImageNodeProps, InfographicBlockNode, InfographicBlockNodeProps, InlineCodeNode, InsertNode, LinkNode, LinkNodeProps, LinkNodeStyleProps, ListItemNode, ListItemNodeProps, ListNode, MarkdownCodeBlockNode, MarkdownCodeBlockNodeProps, MarkstreamCustomComponent, MathBlockNode, MathBlockNodeProps, MathInlineNode, MathInlineNodeProps, MermaidBlockEvent, MermaidBlockNode, MermaidBlockNodeProps, NodeComponentProps, NodeRenderer, NodeRendererCodeBlockProps, NodeRendererProps, ParagraphNode, PreCodeNode, PreCodeNodeProps, CodeBlockNode as ReactCodeBlockNode, ReferenceNode, ShikiCodeBlockProps, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TableNode, TextNode, ThematicBreakNode, Tooltip, TooltipPlacement, TooltipProps, VmrContainerNode, clearGlobalCustomComponents, NodeRenderer as default, getCustomComponentDisplay, getCustomNodeComponents, removeCustomComponents, renderNode, setCustomComponents, withMarkstreamComponentDisplay };
package/dist/server.js CHANGED
@@ -1 +1 @@
1
- import{c as o,g as e,a,r as s,s as d,w as t}from"./codeBlockExtraProps-7n9FWJXk.js";import{A as N,B as n,C as r,a as i,D as m,b as l,E as c,c as p,F as C,d as k,e as h,f as B,H as g,g as u,h as f,i as I,j as H,k as b,I as x,l as F,m as M,n as w,L as D,o as L,p as P,M as R,q as S,r as T,s as j,N as E,P as v,t as y,a as A,R as q,S as G,u as V,v as z,w as J,T as K,x as O,y as Q,z as U,V as W,N as X,G as Y}from"./index-o_DISWz2.js";export{N as AdmonitionNode,n as BlockquoteNode,r as CheckboxNode,i as CodeBlockNode,m as D2BlockNode,l as DefinitionListNode,c as EmojiNode,p as EmphasisNode,C as FallbackComponent,k as FootnoteAnchorNode,h as FootnoteNode,B as FootnoteReferenceNode,g as HardBreakNode,u as HeadingNode,f as HighlightNode,I as HtmlBlockNode,H as HtmlInlineNode,b as HtmlPreviewFrame,x as ImageNode,F as InfographicBlockNode,M as InlineCodeNode,w as InsertNode,D as LinkNode,L as ListItemNode,P as ListNode,R as MarkdownCodeBlockNode,S as MathBlockNode,T as MathInlineNode,j as MermaidBlockNode,E as NodeRenderer,v as ParagraphNode,y as PreCodeNode,A as ReactCodeBlockNode,q as ReferenceNode,G as StrikethroughNode,V as StrongNode,z as SubscriptNode,J as SuperscriptNode,K as TableNode,O as TextNode,Q as ThematicBreakNode,U as Tooltip,W as VmrContainerNode,o as clearGlobalCustomComponents,X as default,e as getCustomComponentDisplay,a as getCustomNodeComponents,s as removeCustomComponents,Y as renderNode,d as setCustomComponents,t as withMarkstreamComponentDisplay};
1
+ import{b as o,f as e,i as a,v as s,C as d,I as t}from"./codeBlockExtraProps-NhTjbA1T.js";import{A as N,B as n,C as r,a as i,D as m,b as l,E as c,c as p,F as C,d as k,e as h,f as B,H as g,g as u,h as f,i as I,j as b,k as H,I as x,l as F,m as M,n as D,L,o as P,p as R,M as S,q as T,r as j,s as v,N as w,P as E,t as y,a as A,R as q,S as G,u as V,v as z,w as J,T as K,x as O,y as Q,z as U,V as W,N as X,G as Y}from"./index-DdaK6qko.js";export{N as AdmonitionNode,n as BlockquoteNode,r as CheckboxNode,i as CodeBlockNode,m as D2BlockNode,l as DefinitionListNode,c as EmojiNode,p as EmphasisNode,C as FallbackComponent,k as FootnoteAnchorNode,h as FootnoteNode,B as FootnoteReferenceNode,g as HardBreakNode,u as HeadingNode,f as HighlightNode,I as HtmlBlockNode,b as HtmlInlineNode,H as HtmlPreviewFrame,x as ImageNode,F as InfographicBlockNode,M as InlineCodeNode,D as InsertNode,L as LinkNode,P as ListItemNode,R as ListNode,S as MarkdownCodeBlockNode,T as MathBlockNode,j as MathInlineNode,v as MermaidBlockNode,w as NodeRenderer,E as ParagraphNode,y as PreCodeNode,A as ReactCodeBlockNode,q as ReferenceNode,G as StrikethroughNode,V as StrongNode,z as SubscriptNode,J as SuperscriptNode,K as TableNode,O as TextNode,Q as ThematicBreakNode,U as Tooltip,W as VmrContainerNode,o as clearGlobalCustomComponents,X as default,e as getCustomComponentDisplay,a as getCustomNodeComponents,s as removeCustomComponents,Y as renderNode,d as setCustomComponents,t as withMarkstreamComponentDisplay};
@@ -0,0 +1,4 @@
1
+ const safeList = `use client react string cannot delete global call clearGlobalCustomComponents markstream-core stream-markdown-parser plaintext ?? data-ssr-fallback aria-busy normalizedLanguage block data-language no safe html-block-node boolean none mermaid infographic d2 language d2lang langs whitespace-pre-wrap text-node-center text image auto paragraph-node renderNodeProp ctx paragraph heading-node font-semibold classAttr object blockquote-node node.cite children list-item pl-1.5 my-2 value void list-node my-5 pl-[calc(13/8*1em)] list-decimal list-disc max-lg:my-[calc(4/3*1em)] max-lg:pl-[calc(14/9*1em)] list right text-right center text-center text-left table-node-wrapper data-index-key text-sm table-node--loading border-[var(--table-border,#cbd5e1)] border-b p-[calc(4/7*1em)] rowIdx bodyRows.length table-node__loading status polite table-node__spinner sr-only dl definition-list indexKey mb-4 dt definition-term definition dd definition-desc ml-4 footnote-node flex leading-relaxed border-t border-[var(--footnote-border,#eaecef)] pt-2 flex-1 footnote-reference href footnote-link cursor-pointer footnote-anchor hover:underline ↩︎ note is-dark headerId admonition-header admonition-icon admonition-title admonition-toggle aria-expanded aria-controls isOpen admonition-content aria-labelledby checkbox-node checkbox checkbox-input emoji-node strong-node emphasis-node emphasis strikethrough-node strikethrough mark highlight-node highlight insert-node insert subscript-node subscript superscript-node superscript thematic-break-node inline-code inline text-[85%] px-1 py-0.5 rounded font-mono bg-[hsl(var(--secondary))] whitespace-normal break-words max-w-full number ease-in-out typeof infinite node.title link-loading inline-flex items-baseline gap-1.5 cssVars link-text-wrapper relative leading-[normal] link-text link-loading-indicator link-node aria-label noopener noreferrer image-node__img is-loaded eager lazy async code-block-node code-block markdown-code-block-node markdown-code-block mermaid-block-node d2-block-node infographic-block-node math-block overflow-x-auto min-h-[40px] node.content $$ math-inline-wrapper math-inline reference-node bg-[hsl(var(--muted))] text-xs rounded-md px-1.5 mx-0.5 hover:bg-[hsl(var(--secondary))] data-reference-id html-block customComponents vmr-container unknown-node text-gray-500 italic node code_block html_block node.type html_inline text_special heading list_item definition_list footnote footnote_reference footnote_anchor admonition hardbreak inline_code checkbox_input emoji thematic_break math_inline math_block reference vmr_container label_open label_close server-renderer markdown-renderer dark data-custom-id node-slot data-node-index data-node-type node-content next.type window.requestIdleCallback [data-node-index] node-spacer virtualized fade-node typewriter-node node-placeholder typewriterCursorRef typewriter-cursor [data-node-type="code_block"] [data-node-type="admonition"] [data-node-type="table"] [data-node-type="math_block"] [data-node-type="html_block"] [data-node-type="image"] performance [markstream-react][perf] theme name collapsed hard-break dependency is not install it to enable renderNode escape html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 setHostEl shouldRender useDynamic reactNodes smooth handleScroll clsx text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b style.visibility hidden line-info legacy off never background night moon black dracula mocha frappe macchiato palenight ocean poimandres monokai laserwave tokyo slack-dark rose-pine github-dark material-theme one-dark catppuccin-mocha catppuccin-frappe catppuccin-macchiato light latte dawn lotus diff important max-height visible height window.requestAnimationFrame onDidUpdateDiff onDidContentSizeChange onDidLayoutChange window.MutationObserver childList record.type attributes class explicit fontSize lineHeight paddingBottom paddingTop tabSize on same helpers.cleanupEditor canonicalLanguage single window.cancelAnimationFrame clientX top navigator.clipboard navigator.clipboard.writeText code-fallback-plain m-0 code-block-container my-4 rounded-lg border overflow-hidden shadow-sm border-gray-700/30 bg-gray-900 border-gray-200 bg-white is-rendering is-diff is-plain-text code-block-header justify-between items-center px-4 py-2.5 border-gray-400/5 space-x-2 icon-slot h-4 w-4 flex-shrink-0 font-medium truncate code-action-btn p-2 transition-colors hover:bg-[var(--vscode-editor-selectionBackground)] aria-pressed w-3 h-3 currentColor round m9 copied m14 evenodd code-block-body--collapsed code-block-body--expanded code-editor-layer code-height-placeholder aria-hidden code-editor-fallback-surface code-loading-placeholder loading-skeleton skeleton-line short xlink:href markstream-d2-root-svg instance.render instance missing render returned empty d2-block text-gray-100 text-gray-900 d2-block-header gap-x-2 gap-x-1 p-0.5 bg-gray-700 bg-gray-100 mode-btn px-2 py-1 !showSource is-active showSource d2-action-btn copying bodyRef d2-block-body bodyStyle !hasPreview d2-source py-4 d2-code d2-error mt-2 d2-render d2-svg pb-3 primary fallback failed image-node__placeholder image-node__spinner image-node__placeholder-text image… placeholder image-node__error load valueAttr react-dom library text-red-500 p-4">Failed instanceof error.message error keydown transform ease fullscreen touches text-gray-400 hover:bg-gray-700 hover:text-gray-200 text-gray-600 hover:bg-gray-200 hover:text-gray-700 source hasPreview preview pending bg-gray-800 bg-gray-50 px-2.5 bg-gray-600 text-gray-200 text-gray-700 m16 isCollapsed opacity-50 cursor-not-allowed m7 text-gray-300 baseCode absolute top-2 right-2 z-10 gap-2 backdrop-blur infographic-preview min-h-[360px] transition-all duration-100 inset-0 cursor-grab isDragging containerRef w-full justify-center min-h-full fixed z-50 bg-black/70 p-4 closeModal dialog h-full max-h-full shadow-lg top-6 right-6 !isDragging cursor-grabbing vitesse-dark vitesse-light shiki shiki-fallback [MarkdownCodeBlockNode] dispose stream-markdown stream-markdown.createShikiStreamRenderer available stale ready requires with ignoring and using default register configured retrying without code-block-content rendererTargetRef code-block-render hr-node thematic-break in out zoom containerClass event.key text-node window.matchMedia ms-tooltip z-[9999] inline-block text-base py-2 px-3 shadow-md whitespace-nowrap pointer-events-none tooltip-element text-white border-gray-700 tooltip pointermove pointerup pointercancel my-8 table-node colgroup table-node__resize-handle javascript typescript go python ruby shell powershell plain cpp csharp objectivec objectivecpp yaml markdown rust kotlin [mermaidWorkerClient] messageerror cleared worker inject via busy timed canParse findPrefix loose strict viewBox gantt open-modal [data-mermaid-wrapper] mermaid-action-btn toggle-mode common.zoomIn common.zoomOut common.resetZoom transition-[height] duration-150 ease-out data-mermaid-wrapper mermaid-loading mermaid-spinner diagram… mermaid-block-header space-x-1 common.preview common.source common.export mermaid-error hasRenderedOnce mermaid-block modeContainerRef mermaid-modal-overlay mermaid-modal-panel mermaid-modal-header mermaid-modal-title mermaid-modal-close mermaid-modal-body modalContentRef mermaid-modal-content abort sequencediagram classdiagram kind statediagram erdiagram flowchart graph thinking htmlFor className key ref prototype constructor process katex normalizedType self_closing tag_open stream-monaco document [markstream-react] htmlPreviewSandbox contains both allow-scripts this only fully trusted content served an isolated en utf-8 viewport content="width=device-width initial-scale=1 html-preview-frame__backdrop--dark html-preview-frame--dark html-preview-frame__header html-preview-frame__title html-preview-frame__dot html-preview-frame__label html-preview-frame__close--dark html-preview-frame__iframe no-referrer about:blank role aria-describedby hunk !options.preserveBlankKind context removed added markstream-pre__diff-pane--inline original markstream-pre__diff-pane--original modified markstream-pre__diff-pane--modified markstream-pre--line-numbers markstream-pre--diff-preview markstream-pre--diff-inline showLineNumbers markstream-pre__diff-code line.empty markstream-pre__diff-line--empty markstream-pre__diff-rail markstream-pre__diff-number markstream-pre__diff-content markstream-pre__diff-content-inner tag_close parse dynamic template html-inline-node html-inline-node--loading mathRef rendering math-rendering math-inline--hidden math-inline__loading math-inline__spinner [katexWorkerClient] init cache-hit timeout waiting slot globalThis.requestAnimationFrame globalThis.cancelAnimationFrame npm development °C existingEnv.getWorkerUrl module did expected`;
2
+ module.exports = safeList;
3
+ module.exports.safeList = safeList;
4
+ module.exports.default = safeList;
@@ -0,0 +1,2 @@
1
+ export declare const safeList: string
2
+ export default safeList
@@ -0,0 +1,2 @@
1
+ export const safeList = `use client react string cannot delete global call clearGlobalCustomComponents markstream-core stream-markdown-parser plaintext ?? data-ssr-fallback aria-busy normalizedLanguage block data-language no safe html-block-node boolean none mermaid infographic d2 language d2lang langs whitespace-pre-wrap text-node-center text image auto paragraph-node renderNodeProp ctx paragraph heading-node font-semibold classAttr object blockquote-node node.cite children list-item pl-1.5 my-2 value void list-node my-5 pl-[calc(13/8*1em)] list-decimal list-disc max-lg:my-[calc(4/3*1em)] max-lg:pl-[calc(14/9*1em)] list right text-right center text-center text-left table-node-wrapper data-index-key text-sm table-node--loading border-[var(--table-border,#cbd5e1)] border-b p-[calc(4/7*1em)] rowIdx bodyRows.length table-node__loading status polite table-node__spinner sr-only dl definition-list indexKey mb-4 dt definition-term definition dd definition-desc ml-4 footnote-node flex leading-relaxed border-t border-[var(--footnote-border,#eaecef)] pt-2 flex-1 footnote-reference href footnote-link cursor-pointer footnote-anchor hover:underline ↩︎ note is-dark headerId admonition-header admonition-icon admonition-title admonition-toggle aria-expanded aria-controls isOpen admonition-content aria-labelledby checkbox-node checkbox checkbox-input emoji-node strong-node emphasis-node emphasis strikethrough-node strikethrough mark highlight-node highlight insert-node insert subscript-node subscript superscript-node superscript thematic-break-node inline-code inline text-[85%] px-1 py-0.5 rounded font-mono bg-[hsl(var(--secondary))] whitespace-normal break-words max-w-full number ease-in-out typeof infinite node.title link-loading inline-flex items-baseline gap-1.5 cssVars link-text-wrapper relative leading-[normal] link-text link-loading-indicator link-node aria-label noopener noreferrer image-node__img is-loaded eager lazy async code-block-node code-block markdown-code-block-node markdown-code-block mermaid-block-node d2-block-node infographic-block-node math-block overflow-x-auto min-h-[40px] node.content $$ math-inline-wrapper math-inline reference-node bg-[hsl(var(--muted))] text-xs rounded-md px-1.5 mx-0.5 hover:bg-[hsl(var(--secondary))] data-reference-id html-block customComponents vmr-container unknown-node text-gray-500 italic node code_block html_block node.type html_inline text_special heading list_item definition_list footnote footnote_reference footnote_anchor admonition hardbreak inline_code checkbox_input emoji thematic_break math_inline math_block reference vmr_container label_open label_close server-renderer markdown-renderer dark data-custom-id node-slot data-node-index data-node-type node-content next.type window.requestIdleCallback [data-node-index] node-spacer virtualized fade-node typewriter-node node-placeholder typewriterCursorRef typewriter-cursor [data-node-type="code_block"] [data-node-type="admonition"] [data-node-type="table"] [data-node-type="math_block"] [data-node-type="html_block"] [data-node-type="image"] performance [markstream-react][perf] theme name collapsed hard-break dependency is not install it to enable renderNode escape html-block-node__placeholder html-block-node__placeholder-bar w-4/5 w-2/3 setHostEl shouldRender useDynamic reactNodes smooth handleScroll clsx text-node-stream-delta text-node-stream-delta--a text-node-stream-delta--b style.visibility hidden line-info legacy off never background night moon black dracula mocha frappe macchiato palenight ocean poimandres monokai laserwave tokyo slack-dark rose-pine github-dark material-theme one-dark catppuccin-mocha catppuccin-frappe catppuccin-macchiato light latte dawn lotus diff important max-height visible height window.requestAnimationFrame onDidUpdateDiff onDidContentSizeChange onDidLayoutChange window.MutationObserver childList record.type attributes class explicit fontSize lineHeight paddingBottom paddingTop tabSize on same helpers.cleanupEditor canonicalLanguage single window.cancelAnimationFrame clientX top navigator.clipboard navigator.clipboard.writeText code-fallback-plain m-0 code-block-container my-4 rounded-lg border overflow-hidden shadow-sm border-gray-700/30 bg-gray-900 border-gray-200 bg-white is-rendering is-diff is-plain-text code-block-header justify-between items-center px-4 py-2.5 border-gray-400/5 space-x-2 icon-slot h-4 w-4 flex-shrink-0 font-medium truncate code-action-btn p-2 transition-colors hover:bg-[var(--vscode-editor-selectionBackground)] aria-pressed w-3 h-3 currentColor round m9 copied m14 evenodd code-block-body--collapsed code-block-body--expanded code-editor-layer code-height-placeholder aria-hidden code-editor-fallback-surface code-loading-placeholder loading-skeleton skeleton-line short xlink:href markstream-d2-root-svg instance.render instance missing render returned empty d2-block text-gray-100 text-gray-900 d2-block-header gap-x-2 gap-x-1 p-0.5 bg-gray-700 bg-gray-100 mode-btn px-2 py-1 !showSource is-active showSource d2-action-btn copying bodyRef d2-block-body bodyStyle !hasPreview d2-source py-4 d2-code d2-error mt-2 d2-render d2-svg pb-3 primary fallback failed image-node__placeholder image-node__spinner image-node__placeholder-text image… placeholder image-node__error load valueAttr react-dom library text-red-500 p-4">Failed instanceof error.message error keydown transform ease fullscreen touches text-gray-400 hover:bg-gray-700 hover:text-gray-200 text-gray-600 hover:bg-gray-200 hover:text-gray-700 source hasPreview preview pending bg-gray-800 bg-gray-50 px-2.5 bg-gray-600 text-gray-200 text-gray-700 m16 isCollapsed opacity-50 cursor-not-allowed m7 text-gray-300 baseCode absolute top-2 right-2 z-10 gap-2 backdrop-blur infographic-preview min-h-[360px] transition-all duration-100 inset-0 cursor-grab isDragging containerRef w-full justify-center min-h-full fixed z-50 bg-black/70 p-4 closeModal dialog h-full max-h-full shadow-lg top-6 right-6 !isDragging cursor-grabbing vitesse-dark vitesse-light shiki shiki-fallback [MarkdownCodeBlockNode] dispose stream-markdown stream-markdown.createShikiStreamRenderer available stale ready requires with ignoring and using default register configured retrying without code-block-content rendererTargetRef code-block-render hr-node thematic-break in out zoom containerClass event.key text-node window.matchMedia ms-tooltip z-[9999] inline-block text-base py-2 px-3 shadow-md whitespace-nowrap pointer-events-none tooltip-element text-white border-gray-700 tooltip pointermove pointerup pointercancel my-8 table-node colgroup table-node__resize-handle javascript typescript go python ruby shell powershell plain cpp csharp objectivec objectivecpp yaml markdown rust kotlin [mermaidWorkerClient] messageerror cleared worker inject via busy timed canParse findPrefix loose strict viewBox gantt open-modal [data-mermaid-wrapper] mermaid-action-btn toggle-mode common.zoomIn common.zoomOut common.resetZoom transition-[height] duration-150 ease-out data-mermaid-wrapper mermaid-loading mermaid-spinner diagram… mermaid-block-header space-x-1 common.preview common.source common.export mermaid-error hasRenderedOnce mermaid-block modeContainerRef mermaid-modal-overlay mermaid-modal-panel mermaid-modal-header mermaid-modal-title mermaid-modal-close mermaid-modal-body modalContentRef mermaid-modal-content abort sequencediagram classdiagram kind statediagram erdiagram flowchart graph thinking htmlFor className key ref prototype constructor process katex normalizedType self_closing tag_open stream-monaco document [markstream-react] htmlPreviewSandbox contains both allow-scripts this only fully trusted content served an isolated en utf-8 viewport content="width=device-width initial-scale=1 html-preview-frame__backdrop--dark html-preview-frame--dark html-preview-frame__header html-preview-frame__title html-preview-frame__dot html-preview-frame__label html-preview-frame__close--dark html-preview-frame__iframe no-referrer about:blank role aria-describedby hunk !options.preserveBlankKind context removed added markstream-pre__diff-pane--inline original markstream-pre__diff-pane--original modified markstream-pre__diff-pane--modified markstream-pre--line-numbers markstream-pre--diff-preview markstream-pre--diff-inline showLineNumbers markstream-pre__diff-code line.empty markstream-pre__diff-line--empty markstream-pre__diff-rail markstream-pre__diff-number markstream-pre__diff-content markstream-pre__diff-content-inner tag_close parse dynamic template html-inline-node html-inline-node--loading mathRef rendering math-rendering math-inline--hidden math-inline__loading math-inline__spinner [katexWorkerClient] init cache-hit timeout waiting slot globalThis.requestAnimationFrame globalThis.cancelAnimationFrame npm development °C existingEnv.getWorkerUrl module did expected`;
2
+ export default safeList;
@@ -1,5 +1,6 @@
1
1
  import { ParsedNode } from 'stream-markdown-parser';
2
2
  import { NodeComponentProps } from '../../types/node-component';
3
+ import { default as React } from 'react';
3
4
  export declare function AdmonitionNode(props: NodeComponentProps<{
4
5
  type: 'admonition';
5
6
  kind?: string;
@@ -7,5 +8,5 @@ export declare function AdmonitionNode(props: NodeComponentProps<{
7
8
  children?: ParsedNode[];
8
9
  collapsible?: boolean;
9
10
  open?: boolean;
10
- }>): import("react/jsx-runtime").JSX.Element;
11
+ }>): React.JSX.Element;
11
12
  export default AdmonitionNode;
@@ -1,7 +1,8 @@
1
1
  import { ParsedNode } from 'stream-markdown-parser';
2
2
  import { NodeComponentProps } from '../../types/node-component';
3
+ import { default as React } from 'react';
3
4
  export declare function BlockquoteNode(props: NodeComponentProps<{
4
5
  type: 'blockquote';
5
6
  children?: ParsedNode[];
6
- }>): import("react/jsx-runtime").JSX.Element;
7
+ }>): React.JSX.Element;
7
8
  export default BlockquoteNode;