diff --git a/js/markdown-stream/markdown-stream.scss b/js/markdown-stream/markdown-stream.scss index f7b90e7b8..7c41f5694 100644 --- a/js/markdown-stream/markdown-stream.scss +++ b/js/markdown-stream/markdown-stream.scss @@ -49,3 +49,26 @@ pre:has(.code-copy-button) { background-color: var(--bs-success, #198754); } } + +@keyframes markdown-stream-dot-pulse { + 0% { + transform: scale(1); + opacity: 1; + } + 50% { + transform: scale(0.4); + opacity: 0.4; + } + 100% { + transform: scale(1); + opacity: 1; + } +} + +.markdown-stream-dot { + // The stream dot is appended with each streaming chunk update, so the pulse animation + // only shows up when streaming pauses but isn't complete. + animation: markdown-stream-dot-pulse 2s infinite cubic-bezier(0.18, 0.89, 0.32, 1.28); + display: inline-block; + transform-origin: center; +} diff --git a/shiny/www/py-shiny/markdown-stream/markdown-stream.css b/shiny/www/py-shiny/markdown-stream/markdown-stream.css index 00b108b92..afadd7b40 100644 --- a/shiny/www/py-shiny/markdown-stream/markdown-stream.css +++ b/shiny/www/py-shiny/markdown-stream/markdown-stream.css @@ -1,2 +1,2 @@ -pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}pre:has(> code.hljs){color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#a626a4}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#50a14f}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#986801}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}[data-bs-theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}[data-bs-theme=dark] code.hljs{padding:3px 5px}[data-bs-theme=dark] pre:has(> code.hljs){color:#abb2bf;background:#282c34}[data-bs-theme=dark] .hljs-comment,[data-bs-theme=dark] .hljs-quote{color:#5c6370;font-style:italic}[data-bs-theme=dark] .hljs-doctag,[data-bs-theme=dark] .hljs-keyword,[data-bs-theme=dark] .hljs-formula{color:#c678dd}[data-bs-theme=dark] .hljs-section,[data-bs-theme=dark] .hljs-name,[data-bs-theme=dark] .hljs-selector-tag,[data-bs-theme=dark] .hljs-deletion,[data-bs-theme=dark] .hljs-subst{color:#e06c75}[data-bs-theme=dark] .hljs-literal{color:#56b6c2}[data-bs-theme=dark] .hljs-string,[data-bs-theme=dark] .hljs-regexp,[data-bs-theme=dark] .hljs-addition,[data-bs-theme=dark] .hljs-attribute,[data-bs-theme=dark] .hljs-meta .hljs-string{color:#98c379}[data-bs-theme=dark] .hljs-attr,[data-bs-theme=dark] .hljs-variable,[data-bs-theme=dark] .hljs-template-variable,[data-bs-theme=dark] .hljs-type,[data-bs-theme=dark] .hljs-selector-class,[data-bs-theme=dark] .hljs-selector-attr,[data-bs-theme=dark] .hljs-selector-pseudo,[data-bs-theme=dark] .hljs-number{color:#d19a66}[data-bs-theme=dark] .hljs-symbol,[data-bs-theme=dark] .hljs-bullet,[data-bs-theme=dark] .hljs-link,[data-bs-theme=dark] .hljs-meta,[data-bs-theme=dark] .hljs-selector-id,[data-bs-theme=dark] .hljs-title{color:#61aeee}[data-bs-theme=dark] .hljs-built_in,[data-bs-theme=dark] .hljs-title.class_,[data-bs-theme=dark] .hljs-class .hljs-title{color:#e6c07b}[data-bs-theme=dark] .hljs-emphasis{font-style:italic}[data-bs-theme=dark] .hljs-strong{font-weight:700}[data-bs-theme=dark] .hljs-link{text-decoration:underline}pre:has(.code-copy-button){position:relative}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:transparent}.code-copy-button>.bi{display:flex;gap:.25em}.code-copy-button>.bi:after{content:"";display:block;height:1rem;width:1rem;mask-image:url('data:image/svg+xml,');background-color:var(--bs-body-color, #222)}.code-copy-button-checked>.bi:before{content:"Copied!";font-size:.75em;vertical-align:.25em}.code-copy-button-checked>.bi:after{mask-image:url('data:image/svg+xml,');background-color:var(--bs-success, #198754)} +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}pre:has(> code.hljs){color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#a626a4}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#50a14f}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#986801}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}[data-bs-theme=dark] pre code.hljs{display:block;overflow-x:auto;padding:1em}[data-bs-theme=dark] code.hljs{padding:3px 5px}[data-bs-theme=dark] pre:has(> code.hljs){color:#abb2bf;background:#282c34}[data-bs-theme=dark] .hljs-comment,[data-bs-theme=dark] .hljs-quote{color:#5c6370;font-style:italic}[data-bs-theme=dark] .hljs-doctag,[data-bs-theme=dark] .hljs-keyword,[data-bs-theme=dark] .hljs-formula{color:#c678dd}[data-bs-theme=dark] .hljs-section,[data-bs-theme=dark] .hljs-name,[data-bs-theme=dark] .hljs-selector-tag,[data-bs-theme=dark] .hljs-deletion,[data-bs-theme=dark] .hljs-subst{color:#e06c75}[data-bs-theme=dark] .hljs-literal{color:#56b6c2}[data-bs-theme=dark] .hljs-string,[data-bs-theme=dark] .hljs-regexp,[data-bs-theme=dark] .hljs-addition,[data-bs-theme=dark] .hljs-attribute,[data-bs-theme=dark] .hljs-meta .hljs-string{color:#98c379}[data-bs-theme=dark] .hljs-attr,[data-bs-theme=dark] .hljs-variable,[data-bs-theme=dark] .hljs-template-variable,[data-bs-theme=dark] .hljs-type,[data-bs-theme=dark] .hljs-selector-class,[data-bs-theme=dark] .hljs-selector-attr,[data-bs-theme=dark] .hljs-selector-pseudo,[data-bs-theme=dark] .hljs-number{color:#d19a66}[data-bs-theme=dark] .hljs-symbol,[data-bs-theme=dark] .hljs-bullet,[data-bs-theme=dark] .hljs-link,[data-bs-theme=dark] .hljs-meta,[data-bs-theme=dark] .hljs-selector-id,[data-bs-theme=dark] .hljs-title{color:#61aeee}[data-bs-theme=dark] .hljs-built_in,[data-bs-theme=dark] .hljs-title.class_,[data-bs-theme=dark] .hljs-class .hljs-title{color:#e6c07b}[data-bs-theme=dark] .hljs-emphasis{font-style:italic}[data-bs-theme=dark] .hljs-strong{font-weight:700}[data-bs-theme=dark] .hljs-link{text-decoration:underline}pre:has(.code-copy-button){position:relative}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:transparent}.code-copy-button>.bi{display:flex;gap:.25em}.code-copy-button>.bi:after{content:"";display:block;height:1rem;width:1rem;mask-image:url('data:image/svg+xml,');background-color:var(--bs-body-color, #222)}.code-copy-button-checked>.bi:before{content:"Copied!";font-size:.75em;vertical-align:.25em}.code-copy-button-checked>.bi:after{mask-image:url('data:image/svg+xml,');background-color:var(--bs-success, #198754)}@keyframes markdown-stream-dot-pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(.4);opacity:.4}to{transform:scale(1);opacity:1}}.markdown-stream-dot{animation:markdown-stream-dot-pulse 2s infinite cubic-bezier(.18,.89,.32,1.28);display:inline-block;transform-origin:center} /*# sourceMappingURL=markdown-stream.css.map */ diff --git a/shiny/www/py-shiny/markdown-stream/markdown-stream.css.map b/shiny/www/py-shiny/markdown-stream/markdown-stream.css.map index 48a08d4a1..366fafc78 100644 --- a/shiny/www/py-shiny/markdown-stream/markdown-stream.css.map +++ b/shiny/www/py-shiny/markdown-stream/markdown-stream.css.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../../js/markdown-stream/markdown-stream.scss"], - "sourcesContent": ["/************************************************************\n From ../node_modules/highlight.js/styles/atom-one-light.css\n with minor adjustments\n************************************************************/\n/************************************************************\n From ../node_modules/highlight.js/styles/atom-one-dark.css\n with minor adjustments\n************************************************************/\n/* Code highlighting (for both light and dark mode) */\npre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\ncode.hljs {\n padding: 3px 5px;\n}\n\n/*\n\nAtom One Light by Daniel Gamage\nOriginal One Light Syntax theme from https://github.com/atom/one-light-syntax\n\nbase: #fafafa\nmono-1: #383a42\nmono-2: #686b77\nmono-3: #a0a1a7\nhue-1: #0184bb\nhue-2: #4078f2\nhue-3: #a626a4\nhue-4: #50a14f\nhue-5: #e45649\nhue-5-2: #c91243\nhue-6: #986801\nhue-6-2: #c18401\n\n*/\npre:has(> code.hljs) {\n color: #383a42;\n background: #fafafa;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #a0a1a7;\n font-style: italic;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-formula {\n color: #a626a4;\n}\n\n.hljs-section,\n.hljs-name,\n.hljs-selector-tag,\n.hljs-deletion,\n.hljs-subst {\n color: #e45649;\n}\n\n.hljs-literal {\n color: #0184bb;\n}\n\n.hljs-string,\n.hljs-regexp,\n.hljs-addition,\n.hljs-attribute,\n.hljs-meta .hljs-string {\n color: #50a14f;\n}\n\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-type,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-number {\n color: #986801;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link,\n.hljs-meta,\n.hljs-selector-id,\n.hljs-title {\n color: #4078f2;\n}\n\n.hljs-built_in,\n.hljs-title.class_,\n.hljs-class .hljs-title {\n color: #c18401;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-link {\n text-decoration: underline;\n}\n\n[data-bs-theme=dark] {\n /*\n\n Atom One Dark by Daniel Gamage\n Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax\n\n base: #282c34\n mono-1: #abb2bf\n mono-2: #818896\n mono-3: #5c6370\n hue-1: #56b6c2\n hue-2: #61aeee\n hue-3: #c678dd\n hue-4: #98c379\n hue-5: #e06c75\n hue-5-2: #be5046\n hue-6: #d19a66\n hue-6-2: #e6c07b\n\n */\n}\n[data-bs-theme=dark] pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n[data-bs-theme=dark] code.hljs {\n padding: 3px 5px;\n}\n[data-bs-theme=dark] pre:has(> code.hljs) {\n color: #abb2bf;\n background: #282c34;\n}\n[data-bs-theme=dark] .hljs-comment,\n[data-bs-theme=dark] .hljs-quote {\n color: #5c6370;\n font-style: italic;\n}\n[data-bs-theme=dark] .hljs-doctag,\n[data-bs-theme=dark] .hljs-keyword,\n[data-bs-theme=dark] .hljs-formula {\n color: #c678dd;\n}\n[data-bs-theme=dark] .hljs-section,\n[data-bs-theme=dark] .hljs-name,\n[data-bs-theme=dark] .hljs-selector-tag,\n[data-bs-theme=dark] .hljs-deletion,\n[data-bs-theme=dark] .hljs-subst {\n color: #e06c75;\n}\n[data-bs-theme=dark] .hljs-literal {\n color: #56b6c2;\n}\n[data-bs-theme=dark] .hljs-string,\n[data-bs-theme=dark] .hljs-regexp,\n[data-bs-theme=dark] .hljs-addition,\n[data-bs-theme=dark] .hljs-attribute,\n[data-bs-theme=dark] .hljs-meta .hljs-string {\n color: #98c379;\n}\n[data-bs-theme=dark] .hljs-attr,\n[data-bs-theme=dark] .hljs-variable,\n[data-bs-theme=dark] .hljs-template-variable,\n[data-bs-theme=dark] .hljs-type,\n[data-bs-theme=dark] .hljs-selector-class,\n[data-bs-theme=dark] .hljs-selector-attr,\n[data-bs-theme=dark] .hljs-selector-pseudo,\n[data-bs-theme=dark] .hljs-number {\n color: #d19a66;\n}\n[data-bs-theme=dark] .hljs-symbol,\n[data-bs-theme=dark] .hljs-bullet,\n[data-bs-theme=dark] .hljs-link,\n[data-bs-theme=dark] .hljs-meta,\n[data-bs-theme=dark] .hljs-selector-id,\n[data-bs-theme=dark] .hljs-title {\n color: #61aeee;\n}\n[data-bs-theme=dark] .hljs-built_in,\n[data-bs-theme=dark] .hljs-title.class_,\n[data-bs-theme=dark] .hljs-class .hljs-title {\n color: #e6c07b;\n}\n[data-bs-theme=dark] .hljs-emphasis {\n font-style: italic;\n}\n[data-bs-theme=dark] .hljs-strong {\n font-weight: bold;\n}\n[data-bs-theme=dark] .hljs-link {\n text-decoration: underline;\n}\n\n/*\n Styling for the code-copy button (inspired by Quarto's code-copy feature)\n*/\npre:has(.code-copy-button) {\n position: relative;\n}\n\n.code-copy-button {\n position: absolute;\n top: 0;\n right: 0;\n border: 0;\n margin-top: 5px;\n margin-right: 5px;\n background-color: transparent;\n}\n.code-copy-button > .bi {\n display: flex;\n gap: 0.25em;\n}\n.code-copy-button > .bi::after {\n content: \"\";\n display: block;\n height: 1rem;\n width: 1rem;\n mask-image: url('data:image/svg+xml,');\n background-color: var(--bs-body-color, #222);\n}\n\n.code-copy-button-checked > .bi::before {\n content: \"Copied!\";\n font-size: 0.75em;\n vertical-align: 0.25em;\n}\n.code-copy-button-checked > .bi::after {\n mask-image: url('data:image/svg+xml,');\n background-color: var(--bs-success, #198754);\n}"], - "mappings": "AASA,cACE,cACA,gBAXF,YAeA,UAfA,gBAsCA,qBACE,cACA,mBAGF,0BAEE,cACA,kBAGF,yCAGE,cAGF,uEAKE,cAGF,cACE,cAGF,iFAKE,cAGF,yIAQE,cAGF,8EAME,cAGF,0DAGE,cAGF,eACE,kBAGF,aACE,gBAGF,WACE,0BAwBF,mCACE,cACA,gBAxIF,YA2IA,+BA3IA,gBA8IA,0CACE,cACA,mBAEF,oEAEE,cACA,kBAEF,wGAGE,cAEF,gLAKE,cAEF,mCACE,cAEF,0LAKE,cAEF,iTAQE,cAEF,4MAME,cAEF,yHAGE,cAEF,oCACE,kBAEF,kCACE,gBAEF,gCACE,0BAMF,2BACE,kBAGF,kBACE,kBACA,MACA,QACA,SACA,eACA,iBACA,6BAEF,sBACE,aACA,UAEF,4BACE,WACA,cACA,YACA,WACA,ufACA,4CAGF,qCACE,kBACA,gBACA,qBAEF,oCACE,6RACA", + "sourcesContent": ["/************************************************************\n From ../node_modules/highlight.js/styles/atom-one-light.css\n with minor adjustments\n************************************************************/\n/************************************************************\n From ../node_modules/highlight.js/styles/atom-one-dark.css\n with minor adjustments\n************************************************************/\n/* Code highlighting (for both light and dark mode) */\npre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n\ncode.hljs {\n padding: 3px 5px;\n}\n\n/*\n\nAtom One Light by Daniel Gamage\nOriginal One Light Syntax theme from https://github.com/atom/one-light-syntax\n\nbase: #fafafa\nmono-1: #383a42\nmono-2: #686b77\nmono-3: #a0a1a7\nhue-1: #0184bb\nhue-2: #4078f2\nhue-3: #a626a4\nhue-4: #50a14f\nhue-5: #e45649\nhue-5-2: #c91243\nhue-6: #986801\nhue-6-2: #c18401\n\n*/\npre:has(> code.hljs) {\n color: #383a42;\n background: #fafafa;\n}\n\n.hljs-comment,\n.hljs-quote {\n color: #a0a1a7;\n font-style: italic;\n}\n\n.hljs-doctag,\n.hljs-keyword,\n.hljs-formula {\n color: #a626a4;\n}\n\n.hljs-section,\n.hljs-name,\n.hljs-selector-tag,\n.hljs-deletion,\n.hljs-subst {\n color: #e45649;\n}\n\n.hljs-literal {\n color: #0184bb;\n}\n\n.hljs-string,\n.hljs-regexp,\n.hljs-addition,\n.hljs-attribute,\n.hljs-meta .hljs-string {\n color: #50a14f;\n}\n\n.hljs-attr,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-type,\n.hljs-selector-class,\n.hljs-selector-attr,\n.hljs-selector-pseudo,\n.hljs-number {\n color: #986801;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link,\n.hljs-meta,\n.hljs-selector-id,\n.hljs-title {\n color: #4078f2;\n}\n\n.hljs-built_in,\n.hljs-title.class_,\n.hljs-class .hljs-title {\n color: #c18401;\n}\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n\n.hljs-link {\n text-decoration: underline;\n}\n\n[data-bs-theme=dark] {\n /*\n\n Atom One Dark by Daniel Gamage\n Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax\n\n base: #282c34\n mono-1: #abb2bf\n mono-2: #818896\n mono-3: #5c6370\n hue-1: #56b6c2\n hue-2: #61aeee\n hue-3: #c678dd\n hue-4: #98c379\n hue-5: #e06c75\n hue-5-2: #be5046\n hue-6: #d19a66\n hue-6-2: #e6c07b\n\n */\n}\n[data-bs-theme=dark] pre code.hljs {\n display: block;\n overflow-x: auto;\n padding: 1em;\n}\n[data-bs-theme=dark] code.hljs {\n padding: 3px 5px;\n}\n[data-bs-theme=dark] pre:has(> code.hljs) {\n color: #abb2bf;\n background: #282c34;\n}\n[data-bs-theme=dark] .hljs-comment,\n[data-bs-theme=dark] .hljs-quote {\n color: #5c6370;\n font-style: italic;\n}\n[data-bs-theme=dark] .hljs-doctag,\n[data-bs-theme=dark] .hljs-keyword,\n[data-bs-theme=dark] .hljs-formula {\n color: #c678dd;\n}\n[data-bs-theme=dark] .hljs-section,\n[data-bs-theme=dark] .hljs-name,\n[data-bs-theme=dark] .hljs-selector-tag,\n[data-bs-theme=dark] .hljs-deletion,\n[data-bs-theme=dark] .hljs-subst {\n color: #e06c75;\n}\n[data-bs-theme=dark] .hljs-literal {\n color: #56b6c2;\n}\n[data-bs-theme=dark] .hljs-string,\n[data-bs-theme=dark] .hljs-regexp,\n[data-bs-theme=dark] .hljs-addition,\n[data-bs-theme=dark] .hljs-attribute,\n[data-bs-theme=dark] .hljs-meta .hljs-string {\n color: #98c379;\n}\n[data-bs-theme=dark] .hljs-attr,\n[data-bs-theme=dark] .hljs-variable,\n[data-bs-theme=dark] .hljs-template-variable,\n[data-bs-theme=dark] .hljs-type,\n[data-bs-theme=dark] .hljs-selector-class,\n[data-bs-theme=dark] .hljs-selector-attr,\n[data-bs-theme=dark] .hljs-selector-pseudo,\n[data-bs-theme=dark] .hljs-number {\n color: #d19a66;\n}\n[data-bs-theme=dark] .hljs-symbol,\n[data-bs-theme=dark] .hljs-bullet,\n[data-bs-theme=dark] .hljs-link,\n[data-bs-theme=dark] .hljs-meta,\n[data-bs-theme=dark] .hljs-selector-id,\n[data-bs-theme=dark] .hljs-title {\n color: #61aeee;\n}\n[data-bs-theme=dark] .hljs-built_in,\n[data-bs-theme=dark] .hljs-title.class_,\n[data-bs-theme=dark] .hljs-class .hljs-title {\n color: #e6c07b;\n}\n[data-bs-theme=dark] .hljs-emphasis {\n font-style: italic;\n}\n[data-bs-theme=dark] .hljs-strong {\n font-weight: bold;\n}\n[data-bs-theme=dark] .hljs-link {\n text-decoration: underline;\n}\n\n/*\n Styling for the code-copy button (inspired by Quarto's code-copy feature)\n*/\npre:has(.code-copy-button) {\n position: relative;\n}\n\n.code-copy-button {\n position: absolute;\n top: 0;\n right: 0;\n border: 0;\n margin-top: 5px;\n margin-right: 5px;\n background-color: transparent;\n}\n.code-copy-button > .bi {\n display: flex;\n gap: 0.25em;\n}\n.code-copy-button > .bi::after {\n content: \"\";\n display: block;\n height: 1rem;\n width: 1rem;\n mask-image: url('data:image/svg+xml,');\n background-color: var(--bs-body-color, #222);\n}\n\n.code-copy-button-checked > .bi::before {\n content: \"Copied!\";\n font-size: 0.75em;\n vertical-align: 0.25em;\n}\n.code-copy-button-checked > .bi::after {\n mask-image: url('data:image/svg+xml,');\n background-color: var(--bs-success, #198754);\n}\n\n@keyframes markdown-stream-dot-pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(0.4);\n opacity: 0.4;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.markdown-stream-dot {\n animation: markdown-stream-dot-pulse 2s infinite cubic-bezier(0.18, 0.89, 0.32, 1.28);\n display: inline-block;\n transform-origin: center;\n}"], + "mappings": "AASA,cACE,cACA,gBAXF,YAeA,UAfA,gBAsCA,qBACE,cACA,mBAGF,0BAEE,cACA,kBAGF,yCAGE,cAGF,uEAKE,cAGF,cACE,cAGF,iFAKE,cAGF,yIAQE,cAGF,8EAME,cAGF,0DAGE,cAGF,eACE,kBAGF,aACE,gBAGF,WACE,0BAwBF,mCACE,cACA,gBAxIF,YA2IA,+BA3IA,gBA8IA,0CACE,cACA,mBAEF,oEAEE,cACA,kBAEF,wGAGE,cAEF,gLAKE,cAEF,mCACE,cAEF,0LAKE,cAEF,iTAQE,cAEF,4MAME,cAEF,yHAGE,cAEF,oCACE,kBAEF,kCACE,gBAEF,gCACE,0BAMF,2BACE,kBAGF,kBACE,kBACA,MACA,QACA,SACA,eACA,iBACA,6BAEF,sBACE,aACA,UAEF,4BACE,WACA,cACA,YACA,WACA,ufACA,4CAGF,qCACE,kBACA,gBACA,qBAEF,oCACE,6RACA,4CAGF,wCAEI,mBACA,cAGA,oBACA,cAGA,mBACA,WAGJ,qBACE,+EACA,qBACA", "names": [] }