markstream-react 0.0.50 → 0.0.53

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 (74) hide show
  1. package/README.md +173 -106
  2. package/dist/Tooltip-DSM4ImfZ.js +207 -0
  3. package/dist/codeBlockExtraProps-RaPzFq78.js +3 -0
  4. package/dist/index-D0DspXy9.js +85 -0
  5. package/dist/index.css +1 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.js +1 -1
  8. package/dist/index.px.css +1 -1
  9. package/dist/index.tailwind.css +1 -1
  10. package/dist/markstream-react.css +1 -1
  11. package/dist/next.d.ts +41 -19
  12. package/dist/next.js +1 -1
  13. package/dist/server.d.ts +67 -45
  14. package/dist/server.js +1 -1
  15. package/dist/tailwind.cjs +4 -0
  16. package/dist/tailwind.d.ts +2 -0
  17. package/dist/tailwind.js +2 -0
  18. package/dist/types/components/AdmonitionNode/AdmonitionNode.d.ts +2 -1
  19. package/dist/types/components/BlockquoteNode/BlockquoteNode.d.ts +2 -1
  20. package/dist/types/components/CheckboxNode/CheckboxNode.d.ts +2 -1
  21. package/dist/types/components/CodeBlockNode/CodeBlockNode.d.ts +2 -1
  22. package/dist/types/components/CodeBlockNode/PreCodeNode.d.ts +2 -1
  23. package/dist/types/components/D2BlockNode/D2BlockNode.d.ts +2 -1
  24. package/dist/types/components/DefinitionListNode/DefinitionListNode.d.ts +2 -1
  25. package/dist/types/components/EmojiNode/EmojiNode.d.ts +2 -1
  26. package/dist/types/components/EmphasisNode/EmphasisNode.d.ts +2 -1
  27. package/dist/types/components/FootnoteAnchorNode/FootnoteAnchorNode.d.ts +2 -1
  28. package/dist/types/components/FootnoteNode/FootnoteNode.d.ts +2 -1
  29. package/dist/types/components/FootnoteReferenceNode/FootnoteReferenceNode.d.ts +2 -1
  30. package/dist/types/components/HardBreakNode/HardBreakNode.d.ts +2 -1
  31. package/dist/types/components/HeadingNode/HeadingNode.d.ts +2 -1
  32. package/dist/types/components/HighlightNode/HighlightNode.d.ts +2 -1
  33. package/dist/types/components/HtmlBlockNode/HtmlBlockNode.d.ts +1 -1
  34. package/dist/types/components/HtmlInlineNode/HtmlInlineNode.d.ts +6 -2
  35. package/dist/types/components/ImageNode/ImageNode.d.ts +1 -1
  36. package/dist/types/components/InfographicBlockNode/InfographicBlockNode.d.ts +2 -1
  37. package/dist/types/components/InlineCodeNode/InlineCodeNode.d.ts +2 -1
  38. package/dist/types/components/InsertNode/InsertNode.d.ts +2 -1
  39. package/dist/types/components/LinkNode/LinkNode.d.ts +2 -1
  40. package/dist/types/components/ListItemNode/ListItemNode.d.ts +2 -1
  41. package/dist/types/components/ListNode/ListNode.d.ts +2 -1
  42. package/dist/types/components/MarkdownCodeBlockNode/MarkdownCodeBlockNode.d.ts +2 -1
  43. package/dist/types/components/Math/MathBlockNode.d.ts +1 -1
  44. package/dist/types/components/Math/MathInlineNode.d.ts +1 -1
  45. package/dist/types/components/MermaidBlockNode/MermaidBlockNode.d.ts +2 -1
  46. package/dist/types/components/NodeRenderer/FallbackComponent.d.ts +2 -1
  47. package/dist/types/components/NodeRenderer.d.ts +2 -1
  48. package/dist/types/components/ParagraphNode/ParagraphNode.d.ts +2 -1
  49. package/dist/types/components/ReferenceNode/ReferenceNode.d.ts +1 -1
  50. package/dist/types/components/StrikethroughNode/StrikethroughNode.d.ts +2 -1
  51. package/dist/types/components/StrongNode/StrongNode.d.ts +2 -1
  52. package/dist/types/components/SubscriptNode/SubscriptNode.d.ts +2 -1
  53. package/dist/types/components/SuperscriptNode/SuperscriptNode.d.ts +2 -1
  54. package/dist/types/components/TableNode/TableNode.d.ts +2 -1
  55. package/dist/types/components/TextNode/TextNode.d.ts +2 -1
  56. package/dist/types/components/ThematicBreakNode/ThematicBreakNode.d.ts +2 -1
  57. package/dist/types/components/VmrContainerNode/VmrContainerNode.d.ts +2 -1
  58. package/dist/types/context/viewportPriority.d.ts +1 -1
  59. package/dist/types/customComponents.d.ts +20 -1
  60. package/dist/types/index.d.ts +2 -2
  61. package/dist/types/next.d.ts +7 -3
  62. package/dist/types/renderers/renderChildren.d.ts +1 -1
  63. package/dist/types/renderers/renderNode.d.ts +1 -1
  64. package/dist/types/server-renderer/index.d.ts +45 -41
  65. package/dist/types/server.d.ts +2 -2
  66. package/dist/types/styles.d.ts +1 -0
  67. package/dist/types/types.d.ts +8 -3
  68. package/dist/types/utils/customHtmlTag.d.ts +5 -4
  69. package/dist/types/utils/htmlToReact.d.ts +17 -6
  70. package/package.json +41 -42
  71. package/dist/Tooltip-D786qxIk.js +0 -207
  72. package/dist/codeBlockExtraProps-7n9FWJXk.js +0 -3
  73. package/dist/index-o_DISWz2.js +0 -85
  74. 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%}:where(.markstream-react).markdown-renderer{position:relative;contain:layout;content-visibility:auto;contain-intrinsic-size:800px 600px}:where(.markstream-react).markdown-renderer.virtualized{content-visibility:visible;contain-intrinsic-size:auto}:where(.markstream-react) .node-slot,:where(.markstream-react) .node-content{width:100%}:where(.markstream-react) .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:markstream-react-node-placeholder-shimmer 1.1s ease-in-out infinite}:where(.markstream-react) .node-placeholder:first-child{margin-top:0}:where(.markstream-react) .node-spacer{width:100%}:where(.markstream-react) .fade-node,:where(.markstream-react) .typewriter-node{opacity:0;animation:markstream-react-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}:where(.markstream-react) .unknown-node{color:#6a737d;font-style:italic;margin:1rem 0}:where(.markstream-react) .text-node{display:inline;font-weight:inherit;vertical-align:baseline;white-space:pre-wrap;word-break:break-word}:where(.markstream-react) .text-node.text-node-center{display:inline-flex;justify-content:center;width:100%}:where(.markstream-react) .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}:where(.markstream-react) .text-node-stream-delta--a{animation-name:markstream-react-text-node-stream-update-fade-a}:where(.markstream-react) .text-node-stream-delta--b{animation-name:markstream-react-text-node-stream-update-fade-b}:where(.markstream-react) .paragraph-node{margin:1.25em 0;line-height:1.625}:where(.markstream-react) li .paragraph-node{margin:0}:where(.markstream-react) .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}:where(.markstream-react) .blockquote-node .markdown-renderer{content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}:where(.markstream-react) .heading-node{font-weight:600}:where(.markstream-react) .heading-1{margin-top:0;margin-bottom:calc(8 / 9 * 1em);font-size:2.25rem;line-height:calc(10 / 9 * 1);font-weight:800}:where(.markstream-react) .heading-2{margin-top:2rem;margin-bottom:1rem;font-size:1.5rem;line-height:calc(4 / 3 * 1)}:where(.markstream-react) .heading-3{margin-top:1.6em;margin-bottom:calc(3 / 5 * 1em);font-size:1.25rem;line-height:calc(5 / 3 * 1)}:where(.markstream-react) .heading-4,:where(.markstream-react) .heading-5,:where(.markstream-react) .heading-6{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem}:where(.markstream-react) .heading-5,:where(.markstream-react) .heading-6{margin-top:0;margin-bottom:0}:where(.markstream-react) .link-node{color:var(--link-color, #0366d6);text-decoration:none}:where(.markstream-react) .link-node:hover{text-decoration:underline;text-underline-offset:.2rem}:where(.markstream-react) .link-loading{color:var(--link-color, #0366d6)}:where(.markstream-react) .link-loading .link-text-wrapper{position:relative}:where(.markstream-react) .link-loading .link-text{position:relative;z-index:2}:where(.markstream-react) .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 markstream-react-text-node-stream-update-fade-a{0%{opacity:0}to{opacity:1}}@keyframes markstream-react-text-node-stream-update-fade-b{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){:where(.markstream-react) .link-loading-indicator{animation:none!important;opacity:var(--underline-rest-opacity, .18)}:where(.markstream-react) .text-node-stream-delta{animation:none!important}:where(.markstream-react) .fade-node,:where(.markstream-react) .typewriter-node{animation:none!important;opacity:1}:where(.markstream-react) .typewriter-cursor{animation:none!important;opacity:1}}:where(.markstream-react) .inline-code{padding:.125rem .375rem;border-radius:.375rem;background:#f3f4f6;font-size:.875rem}:where(.markstream-react) .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}:where(.markstream-react) .image-node__img.is-loaded{opacity:1}:where(.markstream-react) .image-node__placeholder,:where(.markstream-react) .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}:where(.markstream-react) .image-node__placeholder{background:linear-gradient(120deg,#94a3b833,#e2e8f059);color:#475569;box-shadow:inset 0 0 0 1px #94a3b833}:where(.markstream-react) .image-node__error{color:#dc2626;background:#f8717114}:where(.markstream-react) .image-node__spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid currentColor;border-top-color:transparent;animation:markstream-react-spin 1s linear infinite}:where(.markstream-react) .image-node__placeholder-text{font-size:.875rem;color:currentColor}@keyframes markstream-react-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:where(.markstream-react) .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}:where(.markstream-react) .footnote-reference{font-size:.75em;line-height:0}:where(.markstream-react) .footnote-link{color:var(--link-color, #0366d6);text-decoration:none}:where(.markstream-react) .footnote-link:hover{text-decoration:underline}:where(.markstream-react) .footnote-anchor{margin-left:.5rem;color:var(--link-color, #0366d6);text-decoration:none;cursor:pointer}:where(.markstream-react) .footnote-anchor:hover{text-decoration:underline}:where(.markstream-react) .admonition-node{border-left:4px solid #e5e7eb;border-radius:.5rem;padding:.75rem 1rem;margin:1.5rem 0;background:#f9fafbe6}:where(.markstream-react) .admonition-node__title{font-weight:600;margin-bottom:.5rem}:where(.markstream-react) .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}:where(.markstream-react) .table-node{width:100%;border-collapse:collapse}:where(.markstream-react) .table-node th,:where(.markstream-react) .table-node td{white-space:normal;overflow-wrap:break-word;word-break:normal}:where(.markstream-react) .table-node thead th{position:relative}:where(.markstream-react) .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}:where(.markstream-react) .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}:where(.markstream-react) .table-node__resize-handle:hover:after,:where(.markstream-react) .table-node__resize-handle:focus-visible:after{opacity:1}:where(.markstream-react) .table-node .text-node,:where(.markstream-react) .table-node code{white-space:inherit;overflow-wrap:inherit;word-break:inherit;max-width:none}:where(.markstream-react) .table-node--loading tbody td{position:relative;overflow:hidden}:where(.markstream-react) .table-node--loading tbody td>*{visibility:hidden}:where(.markstream-react) .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:markstream-react-table-node-shimmer 1.2s linear infinite;will-change:background-position}:where(.markstream-react) .table-node__loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}:where(.markstream-react) .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:markstream-react-spin 1s linear infinite;will-change:transform}:where(.markstream-react) .table-node .markdown-renderer{display:contents;content-visibility:visible;contain:content;contain-intrinsic-size:0px 0px}:where(.markstream-react) .table-node .markdown-renderer .node-slot,:where(.markstream-react) .table-node .markdown-renderer .node-content,:where(.markstream-react) .table-node .markdown-renderer .node-space{display:contents}:where(.markstream-react).markdown-renderer .markdown-renderer{content-visibility:visible;contain-intrinsic-size:auto}@keyframes markstream-react-table-node-shimmer{0%{background-position:0% 0%}50%{background-position:100% 0%}to{background-position:200% 0%}}:where(.markstream-react) .hr+.table-node-wrapper{margin-top:0}:where(.markstream-react) .hr+.table-node-wrapper .table-node{margin-top:0}:where(.markstream-react) .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}:where(.markstream-react) .code-block{border-radius:.75rem;background:#0f172a;color:#e2e8f0;margin:1.25rem 0;overflow:hidden;position:relative}:where(.markstream-react) .code-block--expanded{max-height:none}:where(.markstream-react) .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)}:where(.markstream-react) .code-block-meta{display:flex;align-items:center;gap:.5rem}:where(.markstream-react) .code-block-language{font-size:.825rem;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f0d9}:where(.markstream-react) .code-block-badge{font-size:.7rem;padding:.1rem .4rem;border-radius:9999px;background:#3b82f633;color:#bfdbfe}:where(.markstream-react) .code-block-actions{display:flex;gap:.35rem}:where(.markstream-react) .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}:where(.markstream-react) .code-block-btn:hover{background:#3b82f6cc;border-color:#3b82f699}:where(.markstream-react) .code-block-body{position:relative}:where(.markstream-react) .code-block-body--expanded{max-height:none}:where(.markstream-react) .code-block-body--collapsed{min-height:0;height:0;overflow:hidden}:where(.markstream-react) .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)}:where(.markstream-react) .code-block-spinner{width:2rem;height:2rem;border:2px solid rgba(255,255,255,.3);border-top-color:#ffffffe6;border-radius:9999px;animation:markstream-react-spin 1s linear infinite}:where(.markstream-react) .code-block-footer{padding:.35rem .9rem .7rem;border-top:1px solid rgba(148,163,184,.2);font-size:.75rem;color:#e2e8f0cc}:where(.markstream-react) .mermaid-block{border:1px solid rgba(148,163,184,.3);border-radius:1rem;background:#fff;color:#0f172a;margin:1.25rem 0;overflow:hidden}.dark :where(.markstream-react) .mermaid-block,:where(.markstream-react).dark .mermaid-block{background:#0f172a;color:#e2e8f0;border-color:#94a3b866}:where(.markstream-react).mermaid-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;background:#0009}:where(.markstream-react) .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}:where(.markstream-react) .mermaid-modal-panel.is-dark{background:#0f172a;color:#e2e8f0}:where(.markstream-react) .mermaid-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid rgba(148,163,184,.25)}:where(.markstream-react) .mermaid-modal-panel.is-dark .mermaid-modal-header{border-bottom-color:#94a3b840}:where(.markstream-react) .mermaid-modal-title{font-size:.875rem;font-weight:600}:where(.markstream-react) .mermaid-modal-close{font-size:.875rem;padding:.25rem .5rem;border-radius:.375rem;cursor:pointer;opacity:.9}:where(.markstream-react) .mermaid-modal-close:hover{opacity:1;background:#94a3b829}:where(.markstream-react) .mermaid-modal-body{padding:1rem;max-height:80vh;overflow:auto}:where(.markstream-react) .mermaid-modal-content{width:100%;height:100%;display:flex;justify-content:center}:where(.markstream-react) .fullscreen{width:100%;max-height:100%!important;height:100%!important}:where(.markstream-react) .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 :where(.markstream-react) .mermaid-header,:where(.markstream-react).dark .mermaid-header{background:#0f172ad9;border-color:#47556999}:where(.markstream-react) .mermaid-title__text{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:inherit}:where(.markstream-react) .mermaid-actions{display:flex;align-items:center;gap:.35rem}:where(.markstream-react) .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}:where(.markstream-react) .mermaid-btn:hover{background:#3b82f626;color:#1d4ed8}.dark :where(.markstream-react) .mermaid-btn:hover,:where(.markstream-react).dark .mermaid-btn:hover{background:#3b82f64d;color:#bfdbfe}:where(.markstream-react) .mermaid-toggle{display:inline-flex;border-radius:9999px;border:1px solid rgba(148,163,184,.3);overflow:hidden}:where(.markstream-react) .mermaid-toggle-btn{border:none;background:transparent;color:inherit;font-size:.75rem;padding:.2rem .65rem;cursor:pointer;transition:background .2s ease}:where(.markstream-react) .mermaid-toggle-btn--active{background:#3b82f62e;color:#1d4ed8}.dark :where(.markstream-react) .mermaid-toggle-btn--active,:where(.markstream-react).dark .mermaid-toggle-btn--active{background:#3b82f64d;color:#bfdbfe}:where(.markstream-react) .mermaid-body{position:relative;padding:1rem}:where(.markstream-react) .mermaid-preview{width:100%;min-height:180px;display:flex;align-items:center;justify-content:center;text-align:center}:where(.markstream-react) .mermaid-preview svg{width:100%;height:auto}:where(.markstream-react) .mermaid-source{background:#0f172af2;color:#e2e8f0;border-radius:.5rem;padding:1rem;overflow-x:auto}:where(.markstream-react) .mermaid-error{padding:.85rem 1rem;color:#b91c1c;background:#f8717126;border-top:1px solid rgba(248,113,113,.25)}:where(.markstream-react) .mermaid-loading{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem 1rem;font-size:.85rem;color:#0f172a99}.dark :where(.markstream-react) .mermaid-loading,:where(.markstream-react).dark .mermaid-loading{color:#e2e8f0b3}:where(.markstream-react) .mermaid-spinner{width:1.2rem;height:1.2rem;border:2px solid rgba(59,130,246,.4);border-top-color:#3b82f6e6;border-radius:9999px;animation:markstream-react-spin .9s linear infinite}:where(.markstream-react) .math-block-node{margin:1rem 0}:where(.markstream-react) .math-inline-wrapper{position:relative;display:inline-block}:where(.markstream-react) .math-inline{display:inline-block;vertical-align:middle}:where(.markstream-react) .math-inline--hidden{visibility:hidden}:where(.markstream-react) .math-inline__loading{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}:where(.markstream-react) .math-inline__spinner{width:1rem;height:1rem;border-radius:9999px;border:2px solid rgba(94,104,121,.25);border-top-color:#5e6879cc;animation:markstream-react-spin 1s linear infinite}:where(.markstream-react) .math-block{position:relative;text-align:center;overflow-x:auto;min-height:40px;padding:.5rem}:where(.markstream-react) .math-rendering{opacity:.3;transition:opacity .2s ease}:where(.markstream-react) .thematic-break{margin:3rem 0;border-top:1px solid #e2e8f0}:where(.markstream-react) .hr-node{margin:3rem 0;border-top:1px solid var(--hr-border-color, #e2e8f0)}:where(.markstream-react) .hard-break{display:block}:where(.markstream-react) .checkbox-node{margin-right:.5rem;vertical-align:middle}:where(.markstream-react) .checkbox-input{margin:0;cursor:default}:where(.markstream-react) .html-inline-node{display:inline}:where(.markstream-react) .html-inline-node--loading{opacity:.85}:where(.markstream-react) .html-block-node__placeholder{display:flex;flex-direction:column;gap:.35rem;padding:.5rem 0}:where(.markstream-react) .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:markstream-react-html-block-node-shimmer 1.2s ease infinite}@keyframes markstream-react-html-block-node-shimmer{0%{background-position:0% 0%}to{background-position:200% 0%}}:where(.markstream-react) .vmr-container{border-radius:.5rem;border:1px solid rgba(148,163,184,.35);padding:1rem;margin:1rem 0;border-left-width:4px}:where(.markstream-react) .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}:where(.markstream-react) .admonition-header{padding:.5rem 1rem;font-weight:600;display:flex;align-items:center;background-color:var(--admonition-header-bg);color:var(--admonition-muted)}:where(.markstream-react) .admonition-icon{margin-right:.5rem;color:inherit}:where(.markstream-react) .admonition-content{padding:.5rem 1rem 1rem;color:var(--admonition-text)}:where(.markstream-react) .admonition-note{border-left-color:var(--admonition-note-color)}:where(.markstream-react) .admonition-note .admonition-header{background-color:#448aff0f;color:var(--admonition-note-color)}:where(.markstream-react) .admonition-info{border-left-color:var(--admonition-note-color)}:where(.markstream-react) .admonition-info .admonition-header{background-color:#448aff0f;color:var(--admonition-note-color)}:where(.markstream-react) .admonition-tip{border-left-color:var(--admonition-tip-color)}:where(.markstream-react) .admonition-tip .admonition-header{background-color:#00bfa50f;color:var(--admonition-tip-color)}:where(.markstream-react) .admonition-warning{border-left-color:var(--admonition-warning-color)}:where(.markstream-react) .admonition-warning .admonition-header{background-color:#ff91000f;color:var(--admonition-warning-color)}:where(.markstream-react) .admonition-danger{border-left-color:var(--admonition-danger-color)}:where(.markstream-react) .admonition-danger .admonition-header{background-color:#ff52520f;color:var(--admonition-danger-color)}:where(.markstream-react) .admonition-error{border-left-color:var(--admonition-danger-color)}:where(.markstream-react) .admonition-error .admonition-header{background-color:#ff52520f;color:var(--admonition-danger-color)}:where(.markstream-react) .admonition-caution{border-left-color:var(--admonition-warning-color)}:where(.markstream-react) .admonition-caution .admonition-header{background-color:#ff91000f;color:var(--admonition-warning-color)}:where(.markstream-react) .admonition-toggle{margin-left:auto;background:transparent;border:none;color:inherit;cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:.9rem}:where(.markstream-react) .admonition-toggle:focus{outline:2px solid rgba(0,0,0,.08);outline-offset:2px}:where(.markstream-react) .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}:where(.markstream-react) .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)}:where(.markstream-react) .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% )}:where(.markstream-react) .code-editor-container{transition:height .18s ease,max-height .18s ease}:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .monaco-editor-background,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .margin,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .lines-content{background:var(--vscode-editor-background, var(--markstream-code-fallback-bg))!important}:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .margin,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-lines,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-line,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .view-line span,:where(.markstream-react) .code-block-container.is-plain-text:not(.is-diff) .monaco-editor .line-numbers{color:var(--vscode-editor-foreground, var(--markstream-code-fallback-fg))!important}:where(.markstream-react) .code-action-btn{cursor:pointer;opacity:.7;transition:opacity .2s}:where(.markstream-react) .code-action-btn:hover{opacity:1}:where(.markstream-react) .code-action-btn:disabled{opacity:.5;cursor:not-allowed}:where(.markstream-react) .code-action-btn:disabled:hover{background-color:transparent}:where(.markstream-react) .icon-slot{display:inline-flex;align-items:center;justify-content:center}:where(.markstream-react) .icon-slot svg,:where(.markstream-react) .icon-slot img{display:block;width:100%;height:100%}:where(.markstream-react) .code-editor-layer{display:grid;min-width:0}:where(.markstream-react) .code-editor-layer>.code-editor-container,:where(.markstream-react) .code-editor-layer>.code-editor-fallback-surface{grid-area:1 / 1}:where(.markstream-react) .code-editor-fallback-surface{overflow:auto;padding:1rem}:where(.markstream-react) .code-block-container.is-diff .code-editor-fallback-surface{padding:0;background:var(--markstream-diff-editor-bg)}:where(.markstream-react) .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)}:where(.markstream-react) .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)}:where(.markstream-react) .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)}:where(.markstream-react) .code-block-container .monaco-diff-editor .diffOverview{background-color:var(--vscode-editor-background, #111827)}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-diff-editor .diffOverview,:where(.markstream-react) .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}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-diff-editor{border:0!important;border-radius:0!important;box-shadow:none!important}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-clickable)>*:not(a){visibility:hidden!important}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines-compact .text{opacity:0!important}:where(.markstream-react) .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}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center:not(.stream-monaco-unchanged-bridge-source),:where(.markstream-react) .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}:where(.markstream-react) .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}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:hover,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-summary:focus-visible,:where(.markstream-react) .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}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-rail,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge.stream-monaco-diff-unchanged-bridge-line-info .stream-monaco-unchanged-rail,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,:where(.markstream-react) .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}:where(.markstream-react) .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}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal{border-bottom-color:transparent!important}:where(.markstream-react) .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}:where(.markstream-react) .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,:where(.markstream-react) .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}:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-meta,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-count,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .monaco-editor .diff-hidden-lines .center .stream-monaco-unchanged-metadata-label,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-meta,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-count,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-metadata-label,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:hover,:where(.markstream-react) .code-block-container .stream-monaco-diff-root .stream-monaco-diff-unchanged-bridge .stream-monaco-unchanged-reveal:focus-visible,:where(.markstream-react) .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}:where(.markstream-react) .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)}:where(.markstream-react) .code-block-render,:where(.markstream-react) .code-fallback-plain{grid-area:1 / 1;min-width:0}:where(.markstream-react) .code-block-render{min-height:1px}:where(.markstream-react) .code-block-render pre,:where(.markstream-react) .code-block-content .shiki{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}:where(.markstream-react) .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}:where(.markstream-react) .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)}:where(.markstream-react) .code-fallback-plain>code{font-size:inherit;line-height:inherit;font-family:inherit;font-weight:inherit}:where(.markstream-react) .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)}:where(.markstream-react) .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) )}:where(.markstream-react) .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}:where(.markstream-react) .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}:where(.markstream-react) .code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-pane{min-width:0;overflow:hidden}:where(.markstream-react) .code-fallback-plain.markstream-pre--diff-preview:not(.markstream-pre--diff-inline) .markstream-pre__diff-pane{overflow-x:auto;overflow-y:hidden}:where(.markstream-react) .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}:where(.markstream-react) .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))}:where(.markstream-react) .code-fallback-plain.markstream-pre--diff-preview.markstream-pre--diff-inline .markstream-pre__diff-pane--modified{box-shadow:none}:where(.markstream-react) .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)}:where(.markstream-react) .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}:where(.markstream-react) .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)))}:where(.markstream-react) .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)}:where(.markstream-react) .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}:where(.markstream-react) .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}:where(.markstream-react) .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}:where(.markstream-react) .code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--added{color:var(--stream-monaco-added-fg, var(--markstream-diff-added-fg, inherit))}:where(.markstream-react) .code-fallback-plain.markstream-pre--diff-preview .markstream-pre__diff-line--removed{color:var(--stream-monaco-removed-fg, var(--markstream-diff-removed-fg, inherit))}:where(.markstream-react) .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)))}:where(.markstream-react) .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))}:where(.markstream-react) .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))}:where(.markstream-react) .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))}:where(.markstream-react) .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))}:where(.markstream-react) .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))}:where(.markstream-react) .code-loading-placeholder{padding:1rem;min-height:120px}:where(.markstream-react) .loading-skeleton{display:flex;flex-direction:column;gap:.75rem}:where(.markstream-react) .skeleton-line{height:1rem;background:linear-gradient(90deg,#0000000f 25%,#0000001f 37%,#0000000f 63%);background-size:400% 100%;animation:markstream-react-code-skeleton-shimmer 1.2s ease-in-out infinite;border-radius:.25rem}:where(.markstream-react) .code-block-container.is-dark .skeleton-line{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f 37%,#ffffff0f 63%);background-size:400% 100%}:where(.markstream-react) .skeleton-line.short{width:60%}@keyframes markstream-react-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}:where(.markstream-react).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}:where(.markstream-react).html-preview-frame__backdrop--dark{background-color:#0f172acc}:where(.markstream-react) .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}:where(.markstream-react) .html-preview-frame--dark{background-color:#020617;color:#e5e7eb;box-shadow:0 10px 40px #0009}:where(.markstream-react) .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)}:where(.markstream-react) .html-preview-frame--dark .html-preview-frame__header{border-bottom-color:#94a3b859}:where(.markstream-react) .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}:where(.markstream-react) .html-preview-frame__dot{width:.5rem;height:.5rem;border-radius:999px;background-color:#22c55e}:where(.markstream-react) .html-preview-frame--dark .html-preview-frame__dot{background-color:#4ade80}:where(.markstream-react) .html-preview-frame__label{white-space:nowrap}:where(.markstream-react) .html-preview-frame__close{border:none;background:transparent;font-size:1.25rem;line-height:1;cursor:pointer}:where(.markstream-react) .html-preview-frame__close--dark{color:#e5e7eb}:where(.markstream-react) .html-preview-frame__iframe{width:100%;height:100%;border:none;display:block}@media(max-width:640px){:where(.markstream-react) .html-preview-frame{width:100vw;height:80vh;border-radius:0}}:where(.markstream-react).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)}:where(.markstream-react).ms-tooltip[data-visible=true]{opacity:1}:where(.markstream-react).ms-tooltip[data-dark=true]{background-color:#111827;color:#f9fafb;border-color:#374151}:where(.markstream-react).ms-tooltip[data-dark=false],:where(.markstream-react).ms-tooltip:not([data-dark=true]){background-color:#fff;color:#111827;border-color:#e5e7eb}@keyframes markstream-react-node-placeholder-shimmer{0%{background-position:200% 0%}to{background-position:-200% 0%}}@keyframes markstream-react-node-enter-fade{0%{opacity:0}to{opacity:1}}@keyframes markstream-react-typewriter-fade{0%{opacity:0}to{opacity:1}}:where(.markstream-react) .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:markstream-react-typewriter-cursor-blink 1s steps(1,end) infinite}@keyframes markstream-react-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}:where(.markstream-react) .d2-block-body{position:relative}:where(.markstream-react) .d2-source{font-family:var(--vscode-editor-font-family, "Fira Code", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace)}:where(.markstream-react) .d2-code{white-space:pre;font-size:.875rem;line-height:1.5}:where(.markstream-react) .d2-render{overflow:auto}:where(.markstream-react) .d2-svg svg.markstream-d2-root-svg{width:100%;max-width:100%;height:auto;display:block}:where(.markstream-react) .mode-btn{opacity:.7;transition:opacity .2s}:where(.markstream-react) .mode-btn.is-active{opacity:1;font-weight:600}:where(.markstream-react) .d2-action-btn{opacity:.7;transition:opacity .2s}:where(.markstream-react) .d2-action-btn:hover{opacity:1}:where(.markstream-react) .d2-action-btn:disabled{opacity:.3;cursor:not-allowed}:where(.markstream-react) .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
@@ -1,8 +1,7 @@
1
- import React, { ComponentType, CSSProperties } from 'react';
1
+ import React, { ComponentType, PropsWithChildren, 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 {
@@ -17,16 +16,44 @@ interface TooltipProps {
17
16
  isDark?: boolean | null;
18
17
  }
19
18
 
19
+ interface NodeComponentProps<TNode = unknown> {
20
+ node: TNode;
21
+ ctx?: RenderContext;
22
+ renderNode?: RenderNodeFn;
23
+ indexKey?: React.Key;
24
+ customId?: string;
25
+ isDark?: boolean;
26
+ typewriter?: boolean;
27
+ /** Enable/disable fade animations. Default: true */
28
+ fade?: boolean;
29
+ children?: React.ReactNode;
30
+ }
31
+
20
32
  type CustomComponentDisplayMode = 'inline' | 'block';
21
33
  type MarkstreamCustomComponent<P = never> = ComponentType<P> & {
22
34
  markstreamDisplay?: CustomComponentDisplayMode;
23
35
  };
24
36
  type CustomComponentMap = Record<string, MarkstreamCustomComponent>;
37
+ type StreamingComponent<TNode = any> = ComponentType<NodeComponentProps<TNode>>;
38
+ type StreamingComponentMap = Record<string, StreamingComponent<any>>;
39
+ type HtmlComponent<P extends object = any> = ComponentType<PropsWithChildren<P>>;
40
+ type HtmlComponentMap = Record<string, HtmlComponent<any>>;
41
+ type IsAny<T> = 0 extends (1 & T) ? true : false;
42
+ type ComponentProps<T> = T extends ComponentType<infer P> ? P : T extends (props: infer P) => any ? P : never;
43
+ type StreamingComponentDefinitions<T extends Record<string, any>> = {
44
+ [K in keyof T]: ComponentProps<T[K]> extends infer P ? IsAny<P> extends true ? T[K] : P extends NodeComponentProps<any> ? NodeComponentProps<any> extends P ? T[K] : never : never : never;
45
+ };
46
+ type ParserComponentOnlyProp = Exclude<keyof NodeComponentProps<any>, 'children' | 'node'>;
47
+ type HtmlComponentDefinitions<T extends Record<string, any>> = {
48
+ [K in keyof T]: ComponentProps<T[K]> extends infer P ? IsAny<P> extends true ? T[K] : Extract<keyof P, ParserComponentOnlyProp> extends never ? T[K] : never : never;
49
+ };
25
50
  declare function setCustomComponents(id: string, mapping: CustomComponentMap): void;
26
51
  declare function setCustomComponents(mapping: CustomComponentMap): void;
27
52
  declare function getCustomNodeComponents(customId?: string): CustomComponentMap;
28
53
  declare function removeCustomComponents(id: string): void;
29
54
  declare function clearGlobalCustomComponents(): void;
55
+ declare function defineStreamingComponents<const T extends Record<string, ComponentType<any>>>(components: T & StreamingComponentDefinitions<T>): T & StreamingComponentDefinitions<T>;
56
+ declare function defineHtmlComponents<const T extends Record<string, ComponentType<any>>>(components: T & HtmlComponentDefinitions<T>): T & HtmlComponentDefinitions<T>;
30
57
 
31
58
  interface CodeBlockMonacoThemeObject {
32
59
  name: string;
@@ -264,7 +291,7 @@ type NodeRendererCodeBlockThemes = CodeBlockNodeProps['themes'] | ShikiCodeBlock
264
291
  type NodeRendererCodeBlockProps = Partial<Omit<CodeBlockNodeProps, 'node' | 'themes'>> & Partial<Omit<ShikiCodeBlockProps, 'themes'>> & {
265
292
  themes?: NodeRendererCodeBlockThemes;
266
293
  } & Record<string, unknown>;
267
- interface NodeRendererProps {
294
+ interface NodeRendererProps<TStreamingComponents extends Record<string, ComponentType<any>> = StreamingComponentMap, THtmlComponents extends Record<string, any> = HtmlComponentMap> {
268
295
  content?: string;
269
296
  nodes?: readonly BaseNode[] | null;
270
297
  /**
@@ -274,6 +301,8 @@ interface NodeRendererProps {
274
301
  final?: boolean;
275
302
  parseOptions?: ParseOptions;
276
303
  customMarkdownIt?: (md: MarkdownIt) => MarkdownIt;
304
+ streamingComponents?: TStreamingComponents & StreamingComponentDefinitions<TStreamingComponents>;
305
+ htmlComponents?: THtmlComponents & HtmlComponentDefinitions<THtmlComponents>;
277
306
  /** Log parse/render timing stats (dev only). */
278
307
  debugPerformance?: boolean;
279
308
  /**
@@ -343,6 +372,7 @@ interface NodeRendererProps {
343
372
  interface RenderContext {
344
373
  customId?: string;
345
374
  isDark?: boolean;
375
+ final?: boolean;
346
376
  indexKey?: string;
347
377
  typewriter?: boolean;
348
378
  /** Enable/disable fade animations. Default: true */
@@ -350,6 +380,8 @@ interface RenderContext {
350
380
  textStreamState?: Map<string, string>;
351
381
  streamRenderVersion?: number;
352
382
  customComponents?: CustomComponentMap;
383
+ streamingComponents?: StreamingComponentMap;
384
+ htmlComponents?: HtmlComponentMap;
353
385
  customHtmlTags?: readonly string[];
354
386
  htmlPolicy?: HtmlPolicy;
355
387
  codeBlockProps?: NodeRendererCodeBlockProps;
@@ -406,19 +438,6 @@ interface MarkdownCodeBlockNodeProps extends ShikiCodeBlockProps {
406
438
  }) => void;
407
439
  }
408
440
 
409
- interface NodeComponentProps<TNode = unknown> {
410
- node: TNode;
411
- ctx?: RenderContext;
412
- renderNode?: RenderNodeFn;
413
- indexKey?: React.Key;
414
- customId?: string;
415
- isDark?: boolean;
416
- typewriter?: boolean;
417
- /** Enable/disable fade animations. Default: true */
418
- fade?: boolean;
419
- children?: React.ReactNode;
420
- }
421
-
422
441
  interface LinkNodeStyleProps {
423
442
  showTooltip?: boolean;
424
443
  color?: string;
@@ -476,7 +495,7 @@ declare function useSafeI18n(): {
476
495
  t: (key: string) => string;
477
496
  };
478
497
 
479
- declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): react_jsx_runtime.JSX.Element;
498
+ declare function renderNode(node: ParsedNode, key: React.Key, ctx: RenderContext): any;
480
499
 
481
500
  type LanguageIconResolver = (lang: string) => string | undefined | null;
482
501
  declare function setLanguageIconResolver(resolver?: LanguageIconResolver | null): void;
@@ -651,6 +670,9 @@ declare const HtmlInlineNode: {
651
670
  (props: NodeComponentProps<{
652
671
  type: "html_inline";
653
672
  content?: string;
673
+ tag?: string;
674
+ attrs?: [string, string | null][] | null;
675
+ children?: stream_markdown_parser.ParsedNode[];
654
676
  }>): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
655
677
  displayName: string;
656
678
  };
@@ -721,7 +743,7 @@ declare const MermaidBlockNode: {
721
743
  displayName: string;
722
744
  };
723
745
  declare const NodeRenderer: {
724
- (props: NodeRendererProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
746
+ (props: NodeRendererProps<StreamingComponentMap, Record<string, any>>): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
725
747
  displayName: string;
726
748
  };
727
749
  declare const FallbackComponent: {
@@ -812,4 +834,4 @@ declare const VmrContainerNode: {
812
834
  displayName: string;
813
835
  };
814
836
 
815
- export { AdmonitionNode, BackpressureOptions, BlockquoteNode, CheckboxNode, CodeBlockDiffAppearance, CodeBlockDiffHideUnchangedRegions, CodeBlockDiffHideUnchangedRegionsOptions, CodeBlockDiffHunkActionContext, CodeBlockDiffHunkActionKind, CodeBlockDiffHunkSide, CodeBlockDiffLineStyle, CodeBlockDiffUnchangedRegionStyle, CodeBlockMonacoLanguage, CodeBlockMonacoOptions, CodeBlockMonacoTheme, CodeBlockMonacoThemeObject, CodeBlockNode, CodeBlockNodeProps, CodeBlockPreviewPayload, CommonCodeBlockProps, D2BlockNode, D2BlockNodeProps, D2Constructor, D2Instance, D2Loader, D2Module, DefinitionListNode, EmojiNode, EmphasisNode, FallbackComponent, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlInlineNode, HtmlPreviewFrame, HtmlPreviewFrameProps, ImageNode, ImageNodeProps, InfographicBlockNode, InfographicBlockNodeProps, InlineCodeNode, InsertNode, LanguageIconResolver, LinkNode, LinkNodeProps, LinkNodeStyleProps, ListItemNode, ListItemNodeProps, ListNode, MERMAID_WORKER_BUSY_CODE, MarkdownCodeBlockNode, MarkdownCodeBlockNodeProps, MathBlockNode, MathBlockNodeProps, MathInlineNode, MathInlineNodeProps, MermaidBlockEvent, MermaidBlockNode, MermaidBlockNodeProps, NodeComponentProps, NodeRenderer, NodeRendererCodeBlockProps, NodeRendererProps, ParagraphNode, PreCodeNode, PreCodeNodeProps, ReactCodeBlockNode, ReferenceNode, ShikiCodeBlockProps, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TableNode, TextNode, ThematicBreakNode, Tooltip, TooltipPlacement, TooltipProps, VmrContainerNode, WORKER_BUSY_CODE, canParseOffthread, clearGlobalCustomComponents, clearKaTeXCache, clearKaTeXWorker, clearMermaidWorker, NodeRenderer as default, disableD2, enableD2, findPrefixOffthread, getCustomNodeComponents, getD2, getKaTeXBackpressureDefaults, getLanguageIcon, getMermaidWorkerLoad, isD2Enabled, languageMap, normalizeLanguageIdentifier, preloadExtendedLanguageIcons, removeCustomComponents, renderKaTeXInWorker, renderKaTeXWithBackpressure, renderNode, resolveMonacoLanguageId, setCustomComponents, setD2Loader, setDefaultI18nMap, setKaTeXBackpressureDefaults, setKaTeXCache, setKaTeXConcurrencyLimit, setKaTeXWorker, setKaTeXWorkerDebug, setLanguageIconResolver, setMermaidWorker, setMermaidWorkerClientDebug, setMermaidWorkerMaxConcurrency, subscribeLanguageIconsRevision, terminateWorker, useSafeI18n, waitForKaTeXWorkerSlot };
837
+ export { AdmonitionNode, BackpressureOptions, BlockquoteNode, CheckboxNode, CodeBlockDiffAppearance, CodeBlockDiffHideUnchangedRegions, CodeBlockDiffHideUnchangedRegionsOptions, CodeBlockDiffHunkActionContext, CodeBlockDiffHunkActionKind, CodeBlockDiffHunkSide, CodeBlockDiffLineStyle, CodeBlockDiffUnchangedRegionStyle, CodeBlockMonacoLanguage, CodeBlockMonacoOptions, CodeBlockMonacoTheme, CodeBlockMonacoThemeObject, CodeBlockNode, CodeBlockNodeProps, CodeBlockPreviewPayload, CommonCodeBlockProps, CustomComponentDisplayMode, D2BlockNode, D2BlockNodeProps, D2Constructor, D2Instance, D2Loader, D2Module, DefinitionListNode, EmojiNode, EmphasisNode, FallbackComponent, FootnoteAnchorNode, FootnoteNode, FootnoteReferenceNode, HardBreakNode, HeadingNode, HighlightNode, HtmlBlockNode, HtmlComponent, HtmlComponentMap, HtmlInlineNode, HtmlPreviewFrame, HtmlPreviewFrameProps, ImageNode, ImageNodeProps, InfographicBlockNode, InfographicBlockNodeProps, InlineCodeNode, InsertNode, LanguageIconResolver, LinkNode, LinkNodeProps, LinkNodeStyleProps, ListItemNode, ListItemNodeProps, ListNode, MERMAID_WORKER_BUSY_CODE, MarkdownCodeBlockNode, MarkdownCodeBlockNodeProps, MarkstreamCustomComponent, MathBlockNode, MathBlockNodeProps, MathInlineNode, MathInlineNodeProps, MermaidBlockEvent, MermaidBlockNode, MermaidBlockNodeProps, NodeComponentProps, NodeRenderer, NodeRendererCodeBlockProps, NodeRendererProps, ParagraphNode, PreCodeNode, PreCodeNodeProps, ReactCodeBlockNode, ReferenceNode, ShikiCodeBlockProps, StreamingComponent, StreamingComponentMap, StrikethroughNode, StrongNode, SubscriptNode, SuperscriptNode, TableNode, TextNode, ThematicBreakNode, Tooltip, TooltipPlacement, TooltipProps, VmrContainerNode, WORKER_BUSY_CODE, canParseOffthread, clearGlobalCustomComponents, clearKaTeXCache, clearKaTeXWorker, clearMermaidWorker, NodeRenderer as default, defineHtmlComponents, defineStreamingComponents, disableD2, enableD2, findPrefixOffthread, getCustomNodeComponents, getD2, getKaTeXBackpressureDefaults, getLanguageIcon, getMermaidWorkerLoad, isD2Enabled, languageMap, normalizeLanguageIdentifier, preloadExtendedLanguageIcons, removeCustomComponents, renderKaTeXInWorker, renderKaTeXWithBackpressure, renderNode, resolveMonacoLanguageId, setCustomComponents, setD2Loader, setDefaultI18nMap, setKaTeXBackpressureDefaults, setKaTeXCache, setKaTeXConcurrencyLimit, setKaTeXWorker, setKaTeXWorkerDebug, setLanguageIconResolver, setMermaidWorker, setMermaidWorkerClientDebug, setMermaidWorkerMaxConcurrency, subscribeLanguageIconsRevision, terminateWorker, useSafeI18n, waitForKaTeXWorkerSlot };
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 as d,F as c,d as u,e as p,f,H as g,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 S,t as x,N as y,P as B,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 H}from"./Tooltip-DSM4ImfZ.js";import{M as Y,W as q,J as G,K as U,O as V,Q as J,U as $,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 da,a8 as ca,a9 as ua,aa as pa,ab as fa,ac as ga,ad as Ca,ae as Ta,af as ka,ah as Da}from"./Tooltip-DSM4ImfZ.js";import{b as Ea,d as Ka,e as Ma,k as Wa,l as Ia,q as _a,u as La,y as Ra,z as Xa,E as ba,G as Sa,H as xa,J as ya}from"./codeBlockExtraProps-RaPzFq78.js";import{A as Ba,B as ha,C as Aa,a as Na,D as va,b as ja,E as Oa,c as Pa,F as wa,d as za,e as Fa,f as Ha,H as Ya,g as qa,h as Ga,i as Ua,j as Va,k as Ja,I as $a,l as Qa,m as Za,n as as,L as ss,o as es,p as rs,M as os,q as ts,r as ns,s as is,N as ms,P as ls,t as ds,R as cs,S as us,u as ps,v as fs,w as gs,T as Cs,x as Ts,y as ks,z as Ds,V as Es}from"./index-D0DspXy9.js";function Ks(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 Ms=Ks(r,Ba),Ws=Ks(o,ha),Is=Ks(t,Aa),_s=Ks(n,Na),Ls=_s,Rs=Ks(E,Ja),Xs=Ks(i,va),bs=Ks(m,ja),Ss=Ks(l,Oa),xs=Ks(d,Pa),ys=Ks(u,za),Bs=Ks(p,Fa),hs=Ks(f,Ha),As=Ks(g,Ya),Ns=Ks(C,qa),vs=Ks(T,Ga),js=Ks(k,Ua),Os=Ks(D,Va),Ps=Ks(K,$a),ws=Ks(M,Qa),zs=Ks(W,Za),Fs=Ks(I,as),Hs=Ks(_,ss),Ys=Ks(L,es),qs=Ks(R,rs),Gs=Ks(X,os),Us=Ks(b,ts),Vs=Ks(S,ns),Js=Ks(x,is),$s=Ks(y,ms),Qs=Ks(c,wa),Zs=Ks(B,ls),ae=Ks(h,ds),se=Ks(A,cs),ee=Ks(N,us),re=Ks(v,ps),oe=Ks(j,fs),te=Ks(O,gs),ne=Ks(P,Cs),ie=Ks(w,Ts),me=Ks(z,ks),le=Ks(F,Ds),de=Ks(H,Es);export{Ms as AdmonitionNode,Ws as BlockquoteNode,Is as CheckboxNode,_s as CodeBlockNode,Xs as D2BlockNode,bs as DefinitionListNode,Ss as EmojiNode,xs as EmphasisNode,Qs as FallbackComponent,ys as FootnoteAnchorNode,Bs as FootnoteNode,hs as FootnoteReferenceNode,As as HardBreakNode,Ns as HeadingNode,vs as HighlightNode,js as HtmlBlockNode,Os as HtmlInlineNode,Rs as HtmlPreviewFrame,Ps as ImageNode,ws as InfographicBlockNode,zs as InlineCodeNode,Fs as InsertNode,Hs as LinkNode,Ys as ListItemNode,qs as ListNode,Y as MERMAID_WORKER_BUSY_CODE,Gs as MarkdownCodeBlockNode,Us as MathBlockNode,Vs as MathInlineNode,Js as MermaidBlockNode,$s as NodeRenderer,Zs as ParagraphNode,ae as PreCodeNode,Ls as ReactCodeBlockNode,se as ReferenceNode,ee as StrikethroughNode,re as StrongNode,oe as SubscriptNode,te as SuperscriptNode,ne as TableNode,ie as TextNode,me as ThematicBreakNode,le as Tooltip,de as VmrContainerNode,q as WORKER_BUSY_CODE,G as canParseOffthread,Ea as clearGlobalCustomComponents,U as clearKaTeXCache,V as clearKaTeXWorker,J as clearMermaidWorker,$s as default,Ka as defineHtmlComponents,Ma as defineStreamingComponents,$ as disableD2,Q as enableD2,Z as findPrefixOffthread,Wa as getCustomNodeComponents,aa as getD2,sa as getKaTeXBackpressureDefaults,Ia as getLanguageIcon,ea as getMermaidWorkerLoad,ra as isD2Enabled,_a as languageMap,La as normalizeLanguageIdentifier,Ra as preloadExtendedLanguageIcons,Xa as removeCustomComponents,oa as renderKaTeXInWorker,ta as renderKaTeXWithBackpressure,na as renderNode,ba as resolveMonacoLanguageId,Sa as setCustomComponents,ia as setD2Loader,ma as setDefaultI18nMap,la as setKaTeXBackpressureDefaults,da as setKaTeXCache,ca as setKaTeXConcurrencyLimit,ua as setKaTeXWorker,pa as setKaTeXWorkerDebug,xa as setLanguageIconResolver,fa as setMermaidWorker,ga as setMermaidWorkerClientDebug,Ca as setMermaidWorkerMaxConcurrency,ya as subscribeLanguageIconsRevision,Ta as terminateWorker,ka as useSafeI18n,Da as waitForKaTeXWorkerSlot};