@carbon/ai-chat-components 0.5.0 → 0.6.0-rc.0
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.
- package/custom-elements.json +9201 -295
- package/dist/16-dhcD1XnN.js +91 -0
- package/dist/apl-DqFn9Cbk.js +91 -0
- package/dist/asciiarmor-CQVR_D9L.js +91 -0
- package/dist/asn1-Bdl290ll.js +91 -0
- package/dist/asterisk-CHhwduFx.js +91 -0
- package/dist/button-C7jiyqgq.js +157 -0
- package/dist/button-skeleton-CmP7IJd9.js +116 -0
- package/dist/carbon-element-Bx5dT_rO.js +91 -0
- package/dist/carbon-element-GZbOyRvd.js +91 -0
- package/dist/chain-of-thought.min.js +276 -0
- package/dist/chat-button.min.js +71 -81
- package/dist/checkbox-skeleton-DwliWSxe.js +166 -0
- package/dist/class-map-C991A_SZ.js +106 -0
- package/dist/clike-D_BRCCKx.js +91 -0
- package/dist/clojure-DJgQfSNr.js +91 -0
- package/dist/cmake-B-ZvYGPj.js +91 -0
- package/dist/cobol-DQkSt8H4.js +91 -0
- package/dist/code-snippet.min.js +91 -0
- package/dist/codemirror-runtime-BNdgITbn.js +173 -0
- package/dist/coffeescript-BLbmGaLw.js +91 -0
- package/dist/collection-helpers-CFQuvZZA.js +91 -0
- package/dist/commonlisp-C9udfub_.js +91 -0
- package/dist/crystal-Cx264mZy.js +91 -0
- package/dist/css-C3wBe_UD.js +91 -0
- package/dist/custom-element-Cn0sJQhF.js +96 -0
- package/dist/cypher-B6v9gzB5.js +91 -0
- package/dist/d-TP3OUaM_.js +91 -0
- package/dist/diff-Y92SrBOy.js +91 -0
- package/dist/dockerfile-b9e_zbYe.js +91 -0
- package/dist/dtd-CyzcM_UR.js +91 -0
- package/dist/dylan-CLgWKLaP.js +91 -0
- package/dist/ebnf-Cj21Kqae.js +91 -0
- package/dist/ecl-BcwtDAaq.js +91 -0
- package/dist/eiffel-Dgs2eMt8.js +91 -0
- package/dist/elm-Lz8luKdH.js +91 -0
- package/dist/erlang-M1-xYwsL.js +91 -0
- package/dist/factor-DMuLpKP7.js +91 -0
- package/dist/fcl-6D51jO4g.js +91 -0
- package/dist/feedback.min.js +300 -0
- package/dist/forth-C50AZvgy.js +91 -0
- package/dist/fortran-Dpu0QrPi.js +91 -0
- package/dist/gas-B9QnMcpy.js +91 -0
- package/dist/gherkin-DTyHG7By.js +91 -0
- package/dist/groovy-C5hIRvZS.js +91 -0
- package/dist/haskell-riE-Rg6U.js +91 -0
- package/dist/haxe-BKi5Bt6T.js +91 -0
- package/dist/http-CCf5f1Lw.js +91 -0
- package/dist/icon-button-slcp5_YI.js +143 -0
- package/dist/icon-loader-B470ctm0.js +101 -0
- package/dist/idl-ChujC8hT.js +91 -0
- package/dist/if-defined-KYZWA80L.js +96 -0
- package/dist/index-BE2hQiYV.js +91 -0
- package/dist/index-BJSu7ZrY.js +91 -0
- package/dist/index-BNCWBho3.js +91 -0
- package/dist/index-Bo9Cedlp.js +91 -0
- package/dist/index-BtGjzzQh.js +91 -0
- package/dist/index-BvcTcg8N.js +91 -0
- package/dist/index-CL7jwlI7.js +91 -0
- package/dist/index-CPho0oBg.js +91 -0
- package/dist/index-CSzVoPB_.js +91 -0
- package/dist/index-CbsQNetX.js +91 -0
- package/dist/index-CdZ_a1WB.js +91 -0
- package/dist/index-Ce_RTZPK.js +91 -0
- package/dist/index-Cic4krlv.js +91 -0
- package/dist/index-CqP0C8Q_.js +91 -0
- package/dist/index-CsEIBvob.js +91 -0
- package/dist/index-D5o8uLCI.js +168 -0
- package/dist/index-D8SIiSq6.js +367 -0
- package/dist/index-DP_9bMys.js +91 -0
- package/dist/index-DofS9KDk.js +91 -0
- package/dist/index-Duo7vkZg.js +91 -0
- package/dist/index-DxcNpyu9.js +91 -0
- package/dist/index-ET89Rloy.js +91 -0
- package/dist/index-LQA85hjt.js +91 -0
- package/dist/index-T4fwu_xG.js +91 -0
- package/dist/javascript-BXzknqbJ.js +91 -0
- package/dist/julia-Ks6uUXS_.js +91 -0
- package/dist/{settings-XW6XylsZ.js → lit-element-Cj6JUqRW.js} +70 -12
- package/dist/livescript-C-N_oa0B.js +91 -0
- package/dist/lua-DyvKK1uJ.js +91 -0
- package/dist/markdown.min.js +296 -0
- package/dist/mathematica-DEg7Ra1Y.js +91 -0
- package/dist/mbox-DreqCmNH.js +91 -0
- package/dist/mirc-Cf2JTO1B.js +91 -0
- package/dist/mllike-BrIsM2v2.js +91 -0
- package/dist/modelica-B8SYrhCg.js +91 -0
- package/dist/mscgen-Ci9STQqX.js +91 -0
- package/dist/mumps-DdZIEnoV.js +91 -0
- package/dist/nginx-csHLvOI4.js +91 -0
- package/dist/nsis-BJ14NiV_.js +91 -0
- package/dist/ntriples-r4TsB1vg.js +91 -0
- package/dist/octave-DAywLo7W.js +91 -0
- package/dist/oz-DF39EOLJ.js +91 -0
- package/dist/pascal-Cdx2JBFI.js +91 -0
- package/dist/perl-CUDzEjb5.js +91 -0
- package/dist/pig-BgGDN3Fs.js +91 -0
- package/dist/powershell-yf7ZzrwA.js +91 -0
- package/dist/processing.min.js +71 -4
- package/dist/properties-Cna57Jh2.js +91 -0
- package/dist/protobuf-CWUMO8BP.js +91 -0
- package/dist/pug-D44aRpDl.js +91 -0
- package/dist/puppet-9oZPpLZK.js +91 -0
- package/dist/python-BzmgDs2d.js +91 -0
- package/dist/q-DDRrIilQ.js +91 -0
- package/dist/query-CIc5rDzI.js +101 -0
- package/dist/r-DT4JIpvb.js +91 -0
- package/dist/radio-group-manager-Dy7yXQky.js +91 -0
- package/dist/reasoning-steps.min.js +171 -0
- package/dist/repeat-DA7noZfi.js +96 -0
- package/dist/rpm-Q94njsnC.js +91 -0
- package/dist/ruby-p6VwoSsc.js +91 -0
- package/dist/sas-C8r72_Ai.js +91 -0
- package/dist/scheme-Bw1qfPdY.js +91 -0
- package/dist/settings-Bx1fCry0.js +99 -0
- package/dist/shell-B0162WXP.js +91 -0
- package/dist/sieve-DcAl9TNY.js +91 -0
- package/dist/simple-mode-dBIHJK_w.js +91 -0
- package/dist/smalltalk-BRpoyy0q.js +91 -0
- package/dist/solr-CntivwdY.js +91 -0
- package/dist/sparql-CPxRv-GB.js +91 -0
- package/dist/spreadsheet-DiWzltX0.js +91 -0
- package/dist/sql-BZFWK8-D.js +91 -0
- package/dist/state-ldHJ0lGt.js +96 -0
- package/dist/stex-DVnajZzj.js +91 -0
- package/dist/stylus-BCkTgCvi.js +91 -0
- package/dist/swift-DumH6rGA.js +91 -0
- package/dist/sync-BrWXU4C6.js +91 -0
- package/dist/table-runtime-C-85Ozvo.js +510 -0
- package/dist/table.min.js +91 -0
- package/dist/tcl-Ds60z3Ro.js +91 -0
- package/dist/text-input-BNmEJ8ys.js +158 -0
- package/dist/textile-CgTb_UUX.js +91 -0
- package/dist/throttle-CT5ZAUBU.js +91 -0
- package/dist/tiddlywiki-D0BukLzX.js +91 -0
- package/dist/tiki-DlrtqA5_.js +91 -0
- package/dist/tile-container.min.js +70 -14
- package/dist/toml-CG0tgYZ1.js +91 -0
- package/dist/toolbar.min.js +180 -0
- package/dist/troff-DZdS2uzR.js +91 -0
- package/dist/ttcn-D2NdeEoM.js +91 -0
- package/dist/ttcn-cfg-dCpHFW8J.js +91 -0
- package/dist/turtle-DBImhCBD.js +91 -0
- package/dist/vb-BdASAZha.js +91 -0
- package/dist/vbscript-DlJph2V7.js +91 -0
- package/dist/velocity-ds6Akj1B.js +91 -0
- package/dist/verilog-KFajwNWD.js +91 -0
- package/dist/vhdl-DWozufY6.js +91 -0
- package/dist/webidl-BSUbcB__.js +91 -0
- package/dist/workspace-shell.min.js +162 -0
- package/dist/xquery-CvISDSSw.js +91 -0
- package/dist/yacas-BNn6e9ff.js +91 -0
- package/dist/z80-BwinLJKG.js +91 -0
- package/es/components/chain-of-thought/index.d.ts +4 -0
- package/es/components/chain-of-thought/index.js +11 -0
- package/es/components/chain-of-thought/index.js.map +1 -0
- package/es/components/chain-of-thought/src/cds-aichat-chain-of-thought.d.ts +15 -0
- package/es/components/chain-of-thought/src/cds-aichat-chain-of-thought.js +36 -0
- package/es/components/chain-of-thought/src/cds-aichat-chain-of-thought.js.map +1 -0
- package/es/components/chain-of-thought/src/chain-of-thought.d.ts +87 -0
- package/es/components/chain-of-thought/src/chain-of-thought.js +189 -0
- package/es/components/chain-of-thought/src/chain-of-thought.js.map +1 -0
- package/es/components/chain-of-thought/src/chain-of-thought.scss.js +13 -0
- package/es/components/chain-of-thought/src/chain-of-thought.scss.js.map +1 -0
- package/es/components/chain-of-thought/src/chain-of-thought.template.d.ts +5 -0
- package/es/components/chain-of-thought/src/chain-of-thought.template.js +206 -0
- package/es/components/chain-of-thought/src/chain-of-thought.template.js.map +1 -0
- package/es/components/chain-of-thought/src/parse-unknown-data-to-markdown.d.ts +10 -0
- package/es/components/chain-of-thought/src/parse-unknown-data-to-markdown.js +50 -0
- package/es/components/chain-of-thought/src/parse-unknown-data-to-markdown.js.map +1 -0
- package/es/components/chain-of-thought/src/types.d.ts +73 -0
- package/es/components/chain-of-thought/src/types.js +29 -0
- package/es/components/chain-of-thought/src/types.js.map +1 -0
- package/es/components/chat-button/defs.d.ts +25 -0
- package/es/components/chat-button/defs.js +36 -0
- package/es/components/chat-button/defs.js.map +1 -0
- package/es/components/chat-button/index.d.ts +1 -1
- package/es/components/chat-button/index.js +1 -1
- package/es/components/chat-button/src/chat-button.d.ts +32 -0
- package/es/components/chat-button/{chat-button.js → src/chat-button.js} +16 -10
- package/es/components/chat-button/src/chat-button.js.map +1 -0
- package/es/components/chat-button/src/chat-button.scss.js +1 -1
- package/es/components/code-snippet/index.d.ts +3 -0
- package/es/components/code-snippet/index.js +10 -0
- package/es/components/code-snippet/index.js.map +1 -0
- package/es/components/code-snippet/src/code-snippet-tile-container.d.ts +32 -0
- package/es/components/code-snippet/src/code-snippet-tile-container.js +143 -0
- package/es/components/code-snippet/src/code-snippet-tile-container.js.map +1 -0
- package/es/components/code-snippet/src/code-snippet.d.ts +482 -0
- package/es/components/code-snippet/src/code-snippet.js +592 -0
- package/es/components/code-snippet/src/code-snippet.js.map +1 -0
- package/es/components/code-snippet/src/code-snippet.scss.js +13 -0
- package/es/components/code-snippet/src/code-snippet.scss.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/base-setup.d.ts +12 -0
- package/es/components/code-snippet/src/codemirror/base-setup.js +65 -0
- package/es/components/code-snippet/src/codemirror/base-setup.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/codemirror-loader.d.ts +12 -0
- package/es/components/code-snippet/src/codemirror/codemirror-loader.js +36 -0
- package/es/components/code-snippet/src/codemirror/codemirror-loader.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/codemirror-runtime.d.ts +7 -0
- package/es/components/code-snippet/src/codemirror/codemirror-runtime.js +13 -0
- package/es/components/code-snippet/src/codemirror/codemirror-runtime.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/content-sync.d.ts +12 -0
- package/es/components/code-snippet/src/codemirror/content-sync.js +72 -0
- package/es/components/code-snippet/src/codemirror/content-sync.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/editor-manager.d.ts +28 -0
- package/es/components/code-snippet/src/codemirror/editor-manager.js +75 -0
- package/es/components/code-snippet/src/codemirror/editor-manager.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/language-controller.d.ts +38 -0
- package/es/components/code-snippet/src/codemirror/language-controller.js +220 -0
- package/es/components/code-snippet/src/codemirror/language-controller.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/language-data.d.ts +6 -0
- package/es/components/code-snippet/src/codemirror/language-data.js +1043 -0
- package/es/components/code-snippet/src/codemirror/language-data.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/language-utils.d.ts +79 -0
- package/es/components/code-snippet/src/codemirror/language-utils.js +219 -0
- package/es/components/code-snippet/src/codemirror/language-utils.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/marker-utils.d.ts +123 -0
- package/es/components/code-snippet/src/codemirror/marker-utils.js +183 -0
- package/es/components/code-snippet/src/codemirror/marker-utils.js.map +1 -0
- package/es/components/code-snippet/src/codemirror/theme.d.ts +54 -0
- package/es/components/code-snippet/src/codemirror/theme.js +320 -0
- package/es/components/code-snippet/src/codemirror/theme.js.map +1 -0
- package/es/components/code-snippet/src/dom-utils.d.ts +24 -0
- package/es/components/code-snippet/src/dom-utils.js +63 -0
- package/es/components/code-snippet/src/dom-utils.js.map +1 -0
- package/es/components/code-snippet/src/formatters.d.ts +4 -0
- package/es/components/code-snippet/src/formatters.js +19 -0
- package/es/components/code-snippet/src/formatters.js.map +1 -0
- package/es/components/code-snippet/src/layout-utils.d.ts +22 -0
- package/es/components/code-snippet/src/layout-utils.js +63 -0
- package/es/components/code-snippet/src/layout-utils.js.map +1 -0
- package/es/components/code-snippet/src/streaming-manager.d.ts +24 -0
- package/es/components/code-snippet/src/streaming-manager.js +120 -0
- package/es/components/code-snippet/src/streaming-manager.js.map +1 -0
- package/es/components/feedback/index.d.ts +7 -0
- package/es/components/feedback/index.js +12 -0
- package/es/components/feedback/index.js.map +1 -0
- package/es/components/feedback/src/cds-aichat-feedback-buttons.d.ts +15 -0
- package/es/components/feedback/src/cds-aichat-feedback-buttons.js +36 -0
- package/es/components/feedback/src/cds-aichat-feedback-buttons.js.map +1 -0
- package/es/components/feedback/src/cds-aichat-feedback.d.ts +15 -0
- package/es/components/feedback/src/cds-aichat-feedback.js +36 -0
- package/es/components/feedback/src/cds-aichat-feedback.js.map +1 -0
- package/es/components/feedback/src/feedback-buttons.d.ts +56 -0
- package/es/components/feedback/src/feedback-buttons.js +104 -0
- package/es/components/feedback/src/feedback-buttons.js.map +1 -0
- package/es/components/feedback/src/feedback-buttons.scss.js +13 -0
- package/es/components/feedback/src/feedback-buttons.scss.js.map +1 -0
- package/es/components/feedback/src/feedback-buttons.template.d.ts +4 -0
- package/es/components/feedback/src/feedback-buttons.template.js +79 -0
- package/es/components/feedback/src/feedback-buttons.template.js.map +1 -0
- package/es/components/feedback/src/feedback.d.ts +114 -0
- package/es/components/feedback/src/feedback.js +182 -0
- package/es/components/feedback/src/feedback.js.map +1 -0
- package/es/components/feedback/src/feedback.scss.js +13 -0
- package/es/components/feedback/src/feedback.scss.js.map +1 -0
- package/es/components/feedback/src/feedback.template.d.ts +12 -0
- package/es/components/feedback/src/feedback.template.js +115 -0
- package/es/components/feedback/src/feedback.template.js.map +1 -0
- package/es/components/markdown/index.d.ts +2 -0
- package/es/components/markdown/index.js +9 -0
- package/es/components/markdown/index.js.map +1 -0
- package/es/components/markdown/src/cds-aichat-markdown.d.ts +13 -0
- package/es/components/markdown/src/cds-aichat-markdown.js +35 -0
- package/es/components/markdown/src/cds-aichat-markdown.js.map +1 -0
- package/es/components/markdown/src/markdown-renderer.d.ts +62 -0
- package/es/components/markdown/src/markdown-renderer.js +353 -0
- package/es/components/markdown/src/markdown-renderer.js.map +1 -0
- package/es/components/markdown/src/markdown-token-tree.d.ts +32 -0
- package/es/components/markdown/src/markdown-token-tree.js +178 -0
- package/es/components/markdown/src/markdown-token-tree.js.map +1 -0
- package/es/components/markdown/src/markdown.d.ts +44 -0
- package/es/components/markdown/src/markdown.js +238 -0
- package/es/components/markdown/src/markdown.js.map +1 -0
- package/es/components/markdown/src/markdown.scss.js +13 -0
- package/es/components/markdown/src/markdown.scss.js.map +1 -0
- package/es/components/markdown/src/markdown.template.d.ts +3 -0
- package/es/components/markdown/src/markdown.template.js +24 -0
- package/es/components/markdown/src/markdown.template.js.map +1 -0
- package/es/components/markdown/src/plugins/markdown-it-attrs.d.ts +7 -0
- package/es/components/markdown/src/plugins/markdown-it-attrs.js +84 -0
- package/es/components/markdown/src/plugins/markdown-it-attrs.js.map +1 -0
- package/es/components/markdown/src/plugins/markdown-it-highlight.d.ts +7 -0
- package/es/components/markdown/src/plugins/markdown-it-highlight.js +59 -0
- package/es/components/markdown/src/plugins/markdown-it-highlight.js.map +1 -0
- package/es/components/markdown/src/plugins/markdown-it-task-lists.d.ts +12 -0
- package/es/components/markdown/src/plugins/markdown-it-task-lists.js +73 -0
- package/es/components/markdown/src/plugins/markdown-it-task-lists.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/core.d.ts +26 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/core.js +330 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/core.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/blocks.d.ts +6 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/blocks.js +63 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/blocks.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/code.d.ts +6 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/code.js +43 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/code.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/index.d.ts +5 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/index.js +55 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/index.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/inline.d.ts +19 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/inline.js +210 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/inline.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/lists.d.ts +13 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/lists.js +156 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/lists.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/tables.d.ts +13 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/tables.js +216 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/patterns/tables.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/types.d.ts +34 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/types.js +8 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/types.js.map +1 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/utils.d.ts +25 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/utils.js +62 -0
- package/es/components/markdown/src/plugins/markdownItAttrs/utils.js.map +1 -0
- package/es/components/markdown/src/utils/html-helpers.d.ts +2 -0
- package/es/components/markdown/src/utils/html-helpers.js +204 -0
- package/es/components/markdown/src/utils/html-helpers.js.map +1 -0
- package/es/components/markdown/src/utils/table-helpers.d.ts +31 -0
- package/es/components/markdown/src/utils/table-helpers.js +106 -0
- package/es/components/markdown/src/utils/table-helpers.js.map +1 -0
- package/es/components/markdown/src/utils.d.ts +8 -0
- package/es/components/markdown/src/utils.js +31 -0
- package/es/components/markdown/src/utils.js.map +1 -0
- package/es/components/reasoning-steps/index.d.ts +2 -0
- package/es/components/reasoning-steps/index.js +10 -0
- package/es/components/reasoning-steps/index.js.map +1 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-step.d.ts +29 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-step.js +231 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-step.js.map +1 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-step.scss.js +13 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-step.scss.js.map +1 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-steps.d.ts +13 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-steps.js +96 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-steps.js.map +1 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-steps.scss.js +13 -0
- package/es/components/reasoning-steps/src/cds-aichat-reasoning-steps.scss.js.map +1 -0
- package/es/components/table/index.d.ts +3 -0
- package/es/components/table/index.js +9 -0
- package/es/components/table/index.js.map +1 -0
- package/es/components/table/src/cds-aichat-table.d.ts +262 -0
- package/es/components/table/src/cds-aichat-table.js +511 -0
- package/es/components/table/src/cds-aichat-table.js.map +1 -0
- package/es/components/table/src/table-loader.d.ts +4 -0
- package/es/components/table/src/table-loader.js +28 -0
- package/es/components/table/src/table-loader.js.map +1 -0
- package/es/components/table/src/table-pagination.template.d.ts +27 -0
- package/es/components/table/src/table-pagination.template.js +55 -0
- package/es/components/table/src/table-pagination.template.js.map +1 -0
- package/es/components/table/src/table-runtime.d.ts +2 -0
- package/es/components/table/src/table-runtime.js +10 -0
- package/es/components/table/src/table-runtime.js.map +1 -0
- package/es/components/table/src/table-skeleton.template.d.ts +6 -0
- package/es/components/table/src/table-skeleton.template.js +34 -0
- package/es/components/table/src/table-skeleton.template.js.map +1 -0
- package/es/components/table/src/table.scss.js +13 -0
- package/es/components/table/src/table.scss.js.map +1 -0
- package/es/components/table/src/table.template.d.ts +10 -0
- package/es/components/table/src/table.template.js +89 -0
- package/es/components/table/src/table.template.js.map +1 -0
- package/es/components/table/src/types.d.ts +13 -0
- package/es/components/table/src/types.js +8 -0
- package/es/components/table/src/types.js.map +1 -0
- package/es/components/tile-container/src/styles.scss.js +1 -1
- package/es/components/toolbar/index.d.ts +1 -0
- package/es/components/toolbar/index.js +9 -0
- package/es/components/toolbar/index.js.map +1 -0
- package/es/components/toolbar/src/toolbar.d.ts +39 -0
- package/es/components/toolbar/src/toolbar.js +179 -0
- package/es/components/toolbar/src/toolbar.js.map +1 -0
- package/es/components/toolbar/src/toolbar.scss.js +13 -0
- package/es/components/toolbar/src/toolbar.scss.js.map +1 -0
- package/es/components/workspace-shell/index.d.ts +5 -0
- package/es/components/workspace-shell/index.js +13 -0
- package/es/components/workspace-shell/index.js.map +1 -0
- package/es/components/workspace-shell/src/styles.scss.js +13 -0
- package/es/components/workspace-shell/src/styles.scss.js.map +1 -0
- package/es/components/workspace-shell/src/workspace-shell-body.d.ts +16 -0
- package/es/components/workspace-shell/src/workspace-shell-body.js +50 -0
- package/es/components/workspace-shell/src/workspace-shell-body.js.map +1 -0
- package/es/components/workspace-shell/src/workspace-shell-footer.d.ts +19 -0
- package/es/components/workspace-shell/src/workspace-shell-footer.js +53 -0
- package/es/components/workspace-shell/src/workspace-shell-footer.js.map +1 -0
- package/es/components/workspace-shell/src/workspace-shell-header.d.ts +27 -0
- package/es/components/workspace-shell/src/workspace-shell-header.js +77 -0
- package/es/components/workspace-shell/src/workspace-shell-header.js.map +1 -0
- package/es/components/workspace-shell/src/workspace-shell-toolbar.d.ts +22 -0
- package/es/components/workspace-shell/src/workspace-shell-toolbar.js +61 -0
- package/es/components/workspace-shell/src/workspace-shell-toolbar.js.map +1 -0
- package/es/components/workspace-shell/src/workspace-shell.d.ts +20 -0
- package/es/components/workspace-shell/src/workspace-shell.js +83 -0
- package/es/components/workspace-shell/src/workspace-shell.js.map +1 -0
- package/es/components/workspace-shell/src/workspace-shell.scss.js +13 -0
- package/es/components/workspace-shell/src/workspace-shell.scss.js.map +1 -0
- package/es/globals/utils/uuid.d.ts +5 -0
- package/es/globals/utils/uuid.js +32 -0
- package/es/globals/utils/uuid.js.map +1 -0
- package/es/node_modules/@carbon/utilities/es/documentLang/documentLang.js +9 -0
- package/es/node_modules/@carbon/utilities/es/documentLang/documentLang.js.map +1 -0
- package/es/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js +11 -0
- package/es/node_modules/@carbon/utilities/es/overflowHandler/overflowHandler.js.map +1 -0
- package/es/node_modules/@codemirror/autocomplete/dist/index.js +258 -0
- package/es/node_modules/@codemirror/autocomplete/dist/index.js.map +1 -0
- package/es/node_modules/@codemirror/commands/dist/index.js +1140 -0
- package/es/node_modules/@codemirror/commands/dist/index.js.map +1 -0
- package/es/node_modules/@codemirror/lint/dist/index.js +636 -0
- package/es/node_modules/@codemirror/lint/dist/index.js.map +1 -0
- package/es/node_modules/@lezer/common/dist/index.js +253 -0
- package/es/node_modules/@lezer/common/dist/index.js.map +1 -0
- package/es/node_modules/crelt/index.js +37 -0
- package/es/node_modules/crelt/index.js.map +1 -0
- package/es/react/ai-label.d.ts +2 -1
- package/es/react/ai-label.js +3 -2
- package/es/react/ai-label.js.map +1 -1
- package/es/react/button.d.ts +2 -1
- package/es/react/button.js +3 -2
- package/es/react/button.js.map +1 -1
- package/es/react/chain-of-thought.d.ts +7 -0
- package/es/react/chain-of-thought.js +29 -0
- package/es/react/chain-of-thought.js.map +1 -0
- package/es/react/chat-button.d.ts +4 -4
- package/es/react/chat-button.js +6 -4
- package/es/react/chat-button.js.map +1 -1
- package/es/react/code-snippet-tile-container.d.ts +5 -0
- package/es/react/code-snippet-tile-container.js +30 -0
- package/es/react/code-snippet-tile-container.js.map +1 -0
- package/es/react/code-snippet.d.ts +4 -0
- package/es/react/code-snippet.js +31 -0
- package/es/react/code-snippet.js.map +1 -0
- package/es/react/content-switcher.d.ts +7 -0
- package/es/react/content-switcher.js +37 -0
- package/es/react/content-switcher.js.map +1 -0
- package/es/react/feedback-buttons.d.ts +4 -0
- package/es/react/feedback-buttons.js +28 -0
- package/es/react/feedback-buttons.js.map +1 -0
- package/es/react/feedback.d.ts +6 -0
- package/es/react/feedback.js +32 -0
- package/es/react/feedback.js.map +1 -0
- package/es/react/icon-button.d.ts +2 -1
- package/es/react/icon-button.js +3 -2
- package/es/react/icon-button.js.map +1 -1
- package/es/react/icon.d.ts +4 -0
- package/es/react/icon.js +28 -0
- package/es/react/icon.js.map +1 -0
- package/es/react/markdown.d.ts +4 -0
- package/es/react/markdown.js +28 -0
- package/es/react/markdown.js.map +1 -0
- package/es/react/overflow-menu.d.ts +9 -0
- package/es/react/overflow-menu.js +40 -0
- package/es/react/overflow-menu.js.map +1 -0
- package/es/react/processing.d.ts +2 -1
- package/es/react/processing.js +3 -2
- package/es/react/processing.js.map +1 -1
- package/es/react/reasoning-step.d.ts +6 -0
- package/es/react/reasoning-step.js +31 -0
- package/es/react/reasoning-step.js.map +1 -0
- package/es/react/reasoning-steps.d.ts +3 -0
- package/es/react/reasoning-steps.js +27 -0
- package/es/react/reasoning-steps.js.map +1 -0
- package/es/react/tile-container.d.ts +2 -1
- package/es/react/tile-container.js +3 -2
- package/es/react/tile-container.js.map +1 -1
- package/es/react/tile.d.ts +3 -2
- package/es/react/tile.js +5 -4
- package/es/react/tile.js.map +1 -1
- package/es/react/toolbar.d.ts +4 -0
- package/es/react/toolbar.js +28 -0
- package/es/react/toolbar.js.map +1 -0
- package/es/react/utils/withWebComponentBridge.d.ts +15 -0
- package/es/react/utils/withWebComponentBridge.js +95 -0
- package/es/react/utils/withWebComponentBridge.js.map +1 -0
- package/es/testing/load-all-lazy-deps.d.ts +10 -0
- package/es/testing/load-all-lazy-deps.js +30 -0
- package/es/testing/load-all-lazy-deps.js.map +1 -0
- package/package.json +39 -5
- package/dist/carbon-element-CMR7BOhG.js +0 -24
- package/dist/class-map-h7IEvsL_.js +0 -39
- package/es/components/chat-button/chat-button.d.ts +0 -23
- package/es/components/chat-button/chat-button.js.map +0 -1
- package/es/components/chat-button/src/chat-button.template.d.ts +0 -16
- package/es/components/chat-button/src/chat-button.template.js +0 -27
- package/es/components/chat-button/src/chat-button.template.js.map +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { TemplateResult } from "lit";
|
|
2
|
+
import "@carbon/web-components/es/components/list/index.js";
|
|
3
|
+
import "@carbon/web-components/es/components/checkbox/index.js";
|
|
4
|
+
import "../../code-snippet/index.js";
|
|
5
|
+
import "../../table/index.js";
|
|
6
|
+
import type { TokenTree } from "./markdown-token-tree.js";
|
|
7
|
+
/**
|
|
8
|
+
* Configuration options for rendering TokenTrees into HTML.
|
|
9
|
+
*/
|
|
10
|
+
export interface RenderTokenTreeOptions {
|
|
11
|
+
/** Whether to sanitize HTML content using DOMPurify */
|
|
12
|
+
sanitize: boolean;
|
|
13
|
+
/** Whether content is being streamed (affects loading states) */
|
|
14
|
+
streaming?: boolean;
|
|
15
|
+
/** Context information for nested rendering */
|
|
16
|
+
context?: {
|
|
17
|
+
/** Whether we're currently inside a table header */
|
|
18
|
+
isInThead?: boolean;
|
|
19
|
+
/** All children of the parent node */
|
|
20
|
+
parentChildren?: TokenTree[];
|
|
21
|
+
/** Current index in parent's children array */
|
|
22
|
+
currentIndex?: number;
|
|
23
|
+
};
|
|
24
|
+
/** Whether to enable syntax highlighting in code blocks */
|
|
25
|
+
highlight?: boolean;
|
|
26
|
+
/** Placeholder text for table filter input */
|
|
27
|
+
filterPlaceholderText?: string;
|
|
28
|
+
/** Text for previous page button tooltip */
|
|
29
|
+
previousPageText?: string;
|
|
30
|
+
/** Text for next page button tooltip */
|
|
31
|
+
nextPageText?: string;
|
|
32
|
+
/** Text for items per page label */
|
|
33
|
+
itemsPerPageText?: string;
|
|
34
|
+
/** Locale for table sorting and formatting */
|
|
35
|
+
locale?: string;
|
|
36
|
+
/** Function to get supplemental pagination text */
|
|
37
|
+
getPaginationSupplementalText?: ({ count }: {
|
|
38
|
+
count: number;
|
|
39
|
+
}) => string;
|
|
40
|
+
/** Function to get pagination status text */
|
|
41
|
+
getPaginationStatusText?: ({ start, end, count, }: {
|
|
42
|
+
start: number;
|
|
43
|
+
end: number;
|
|
44
|
+
count: number;
|
|
45
|
+
}) => string;
|
|
46
|
+
/** Feedback text shown after copying */
|
|
47
|
+
feedback?: string;
|
|
48
|
+
/** Text for show less button */
|
|
49
|
+
showLessText?: string;
|
|
50
|
+
/** Text for show more button */
|
|
51
|
+
showMoreText?: string;
|
|
52
|
+
/** Tooltip text for copy button */
|
|
53
|
+
tooltipContent?: string;
|
|
54
|
+
/** Function to get formatted line count text */
|
|
55
|
+
getLineCountText?: ({ count }: {
|
|
56
|
+
count: number;
|
|
57
|
+
}) => string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Converts TokenTree to Lit TemplateResult.
|
|
61
|
+
*/
|
|
62
|
+
export declare function renderTokenTree(node: TokenTree, options: RenderTokenTreeOptions): TemplateResult;
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import DOMPurify from 'dompurify';
|
|
9
|
+
import { nothing, html } from 'lit';
|
|
10
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
11
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
12
|
+
import { directive, Directive } from 'lit/directive.js';
|
|
13
|
+
import '@carbon/web-components/es/components/list/index.js';
|
|
14
|
+
import '@carbon/web-components/es/components/checkbox/index.js';
|
|
15
|
+
import '../../code-snippet/src/code-snippet-tile-container.js';
|
|
16
|
+
import '@carbon/web-components/es/components/code-snippet/defs.js';
|
|
17
|
+
import '../../table/src/cds-aichat-table.js';
|
|
18
|
+
import { extractTableData, DEFAULT_PAGINATION_SUPPLEMENTAL_TEXT, DEFAULT_PAGINATION_STATUS_TEXT } from './utils/table-helpers.js';
|
|
19
|
+
import { combineConsecutiveHtmlInline } from './utils/html-helpers.js';
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* Copyright IBM Corp. 2025
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
25
|
+
* LICENSE file in the root directory of this source tree.
|
|
26
|
+
*
|
|
27
|
+
* @license
|
|
28
|
+
*/
|
|
29
|
+
// Generic attribute spread for Lit templates
|
|
30
|
+
class SpreadAttrs extends Directive {
|
|
31
|
+
render(_attrs) {
|
|
32
|
+
return nothing;
|
|
33
|
+
}
|
|
34
|
+
update(part, [attrs]) {
|
|
35
|
+
const el = part.element;
|
|
36
|
+
for (const [k, v] of Object.entries(attrs ?? {})) {
|
|
37
|
+
if (v === false || v === null || v === undefined) {
|
|
38
|
+
el.removeAttribute(k);
|
|
39
|
+
}
|
|
40
|
+
else if (v === true) {
|
|
41
|
+
el.setAttribute(k, "");
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
el.setAttribute(k, String(v));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return nothing;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const spread = directive(SpreadAttrs);
|
|
51
|
+
const EMPTY_ATTRS = {};
|
|
52
|
+
const EMPTY_TABLE_HEADERS = [];
|
|
53
|
+
const EMPTY_TABLE_ROWS = [];
|
|
54
|
+
/**
|
|
55
|
+
* Converts TokenTree to Lit TemplateResult.
|
|
56
|
+
*/
|
|
57
|
+
function renderTokenTree(node, options) {
|
|
58
|
+
const { token, children } = node;
|
|
59
|
+
const { context, sanitize } = options;
|
|
60
|
+
// Handle raw HTML blocks and inline HTML
|
|
61
|
+
if (token.type === "html_block" || token.type === "html_inline") {
|
|
62
|
+
let content = token.content || "";
|
|
63
|
+
// Apply HTML sanitization if requested
|
|
64
|
+
if (sanitize && content) {
|
|
65
|
+
content = DOMPurify.sanitize(content, {
|
|
66
|
+
CUSTOM_ELEMENT_HANDLING: {
|
|
67
|
+
tagNameCheck: () => true, // Allow custom elements
|
|
68
|
+
attributeNameCheck: () => true,
|
|
69
|
+
allowCustomizedBuiltInElements: true,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return html `${unsafeHTML(content)}`;
|
|
74
|
+
}
|
|
75
|
+
// Handle plain text content
|
|
76
|
+
if (token.type === "text") {
|
|
77
|
+
return html `${token.content}`;
|
|
78
|
+
}
|
|
79
|
+
// Handle inline code spans
|
|
80
|
+
if (token.type === "code_inline") {
|
|
81
|
+
return html `<code>${token.content}</code>`;
|
|
82
|
+
}
|
|
83
|
+
// Handle fenced code blocks
|
|
84
|
+
if (token.type === "fence") {
|
|
85
|
+
const language = token.info?.trim() ?? "";
|
|
86
|
+
const { highlight = true, feedback, showLessText, showMoreText, tooltipContent, getLineCountText, } = options;
|
|
87
|
+
return html `<cds-aichat-code-snippet-tile-container
|
|
88
|
+
.language=${language}
|
|
89
|
+
.highlight=${highlight}
|
|
90
|
+
.feedback=${feedback}
|
|
91
|
+
.showLessText=${showLessText}
|
|
92
|
+
.showMoreText=${showMoreText}
|
|
93
|
+
.tooltipContent=${tooltipContent}
|
|
94
|
+
.getLineCountText=${getLineCountText}
|
|
95
|
+
>${token.content}</cds-aichat-code-snippet-tile-container
|
|
96
|
+
>`;
|
|
97
|
+
}
|
|
98
|
+
// Handle structural elements (paragraphs, headings, lists, etc.)
|
|
99
|
+
const tag = token.tag;
|
|
100
|
+
// Convert markdown-it attributes (array of [key, value]) into an object.
|
|
101
|
+
const rawAttrs = (token.attrs || []).reduce((acc, [key, value]) => {
|
|
102
|
+
acc[key] = value;
|
|
103
|
+
return acc;
|
|
104
|
+
}, {});
|
|
105
|
+
// Apply attribute sanitization if requested
|
|
106
|
+
let attrs = rawAttrs;
|
|
107
|
+
const isCustomElement = !!token.tag && token.tag.includes("-");
|
|
108
|
+
if (sanitize && !isCustomElement) {
|
|
109
|
+
attrs = Object.fromEntries(Object.entries(rawAttrs).filter(([key, value]) => {
|
|
110
|
+
// Use DOMPurify to check if attribute is safe
|
|
111
|
+
const fragment = DOMPurify.sanitize(`<a ${key}="${value}">`, {
|
|
112
|
+
RETURN_DOM: true,
|
|
113
|
+
});
|
|
114
|
+
const element = fragment.firstChild;
|
|
115
|
+
return element?.getAttribute(key) !== null;
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
// Set up context for child rendering
|
|
119
|
+
let childContext = context;
|
|
120
|
+
if (tag === "thead") {
|
|
121
|
+
childContext = { ...context, isInThead: true };
|
|
122
|
+
}
|
|
123
|
+
// Render child content
|
|
124
|
+
let content;
|
|
125
|
+
if (children.length === 1 && children[0].token.type === "text") {
|
|
126
|
+
// Optimization: single text child doesn't need repeat wrapper
|
|
127
|
+
content = html `${children[0].token.content}`;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const normalizedChildren = combineConsecutiveHtmlInline(children);
|
|
131
|
+
// Multiple or complex children: use repeat for stable keying
|
|
132
|
+
content = html `${repeat(normalizedChildren, (c, index) => {
|
|
133
|
+
// Generate stable key that doesn't depend on line positions
|
|
134
|
+
// This prevents unnecessary re-renders during streaming
|
|
135
|
+
const stableKey = `${index}:${c.token.type}:${c.token.tag}`;
|
|
136
|
+
if (c.token.type?.includes("table")) {
|
|
137
|
+
return `table-${stableKey}`;
|
|
138
|
+
}
|
|
139
|
+
return `stable-${stableKey}`;
|
|
140
|
+
}, (c, index) => renderTokenTree(c, {
|
|
141
|
+
...options,
|
|
142
|
+
context: {
|
|
143
|
+
...childContext,
|
|
144
|
+
parentChildren: normalizedChildren,
|
|
145
|
+
currentIndex: index,
|
|
146
|
+
},
|
|
147
|
+
}))}`;
|
|
148
|
+
}
|
|
149
|
+
// Handle tokens without HTML tags (just return content)
|
|
150
|
+
if (!tag) {
|
|
151
|
+
return content;
|
|
152
|
+
}
|
|
153
|
+
// Render the final HTML element with appropriate tag
|
|
154
|
+
return renderWithStaticTag(tag, token, content, attrs, options, childContext, node);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Renders HTML elements with static tag names.
|
|
158
|
+
*/
|
|
159
|
+
function renderWithStaticTag(tag, token, content, attrs, options, _context, node) {
|
|
160
|
+
// Handle root token specially
|
|
161
|
+
if (token.type === "root") {
|
|
162
|
+
return content;
|
|
163
|
+
}
|
|
164
|
+
const hasTaskListItems = (listNode) => !!listNode?.children?.some((child) => {
|
|
165
|
+
if (child.token.type !== "list_item_open") {
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
const classAttr = child.token.attrs?.find(([key]) => key === "class");
|
|
169
|
+
return classAttr?.[1]?.split(/\s+/).includes("task-list-item");
|
|
170
|
+
});
|
|
171
|
+
switch (tag) {
|
|
172
|
+
// Basic block elements
|
|
173
|
+
case "p":
|
|
174
|
+
return html `<p ${spread(attrs)}>${content}</p>`;
|
|
175
|
+
case "blockquote":
|
|
176
|
+
return html `<blockquote ${spread(attrs)}>${content}</blockquote>`;
|
|
177
|
+
case "pre":
|
|
178
|
+
return html `<pre ${spread(attrs)}>${content}</pre>`;
|
|
179
|
+
// Headings
|
|
180
|
+
case "h1":
|
|
181
|
+
return html `<h1 ${spread(attrs)}>${content}</h1>`;
|
|
182
|
+
case "h2":
|
|
183
|
+
return html `<h2 ${spread(attrs)}>${content}</h2>`;
|
|
184
|
+
case "h3":
|
|
185
|
+
return html `<h3 ${spread(attrs)}>${content}</h3>`;
|
|
186
|
+
case "h4":
|
|
187
|
+
return html `<h4 ${spread(attrs)}>${content}</h4>`;
|
|
188
|
+
case "h5":
|
|
189
|
+
return html `<h5 ${spread(attrs)}>${content}</h5>`;
|
|
190
|
+
case "h6":
|
|
191
|
+
return html `<h6 ${spread(attrs)}>${content}</h6>`;
|
|
192
|
+
// Lists with Carbon components
|
|
193
|
+
case "ul": {
|
|
194
|
+
const nested = token.level > 1;
|
|
195
|
+
if (hasTaskListItems(node)) {
|
|
196
|
+
return html `<ul ${spread(attrs)}>
|
|
197
|
+
${content}
|
|
198
|
+
</ul>`;
|
|
199
|
+
}
|
|
200
|
+
return html `<cds-unordered-list ?nested=${nested} ${spread(attrs)}>
|
|
201
|
+
${content}
|
|
202
|
+
</cds-unordered-list>`;
|
|
203
|
+
}
|
|
204
|
+
case "ol": {
|
|
205
|
+
const nested = token.level > 1;
|
|
206
|
+
if (hasTaskListItems(node)) {
|
|
207
|
+
return html `<ol ${spread(attrs)}>
|
|
208
|
+
${content}
|
|
209
|
+
</ol>`;
|
|
210
|
+
}
|
|
211
|
+
return html `<cds-ordered-list native ?nested=${nested} ${spread(attrs)}>
|
|
212
|
+
${content}
|
|
213
|
+
</cds-ordered-list>`;
|
|
214
|
+
}
|
|
215
|
+
case "li": {
|
|
216
|
+
const classList = attrs.class?.split(/\s+/) ?? [];
|
|
217
|
+
if (classList.includes("task-list-item")) {
|
|
218
|
+
return html `<li ${spread(attrs)}>${content}</li>`;
|
|
219
|
+
}
|
|
220
|
+
return html `<cds-list-item ${spread(attrs)}>${content}</cds-list-item>`;
|
|
221
|
+
}
|
|
222
|
+
case "cds-checkbox": {
|
|
223
|
+
const { checked, disabled, ...otherAttrs } = attrs;
|
|
224
|
+
const isChecked = checked === "true";
|
|
225
|
+
const isDisabled = disabled === undefined ? true : disabled === "" || disabled === "true";
|
|
226
|
+
return html `<cds-checkbox
|
|
227
|
+
?checked=${isChecked}
|
|
228
|
+
?disabled=${isDisabled}
|
|
229
|
+
${spread(otherAttrs)}
|
|
230
|
+
>${content}</cds-checkbox
|
|
231
|
+
>`;
|
|
232
|
+
}
|
|
233
|
+
// Inline formatting
|
|
234
|
+
case "strong":
|
|
235
|
+
return html `<strong ${spread(attrs)}>${content}</strong>`;
|
|
236
|
+
case "em":
|
|
237
|
+
return html `<em ${spread(attrs)}>${content}</em>`;
|
|
238
|
+
case "code":
|
|
239
|
+
return html `<code ${spread(attrs)}>${content}</code>`;
|
|
240
|
+
case "del":
|
|
241
|
+
return html `<del ${spread(attrs)}>${content}</del>`;
|
|
242
|
+
case "sub":
|
|
243
|
+
return html `<sub ${spread(attrs)}>${content}</sub>`;
|
|
244
|
+
case "sup":
|
|
245
|
+
return html `<sup ${spread(attrs)}>${content}</sup>`;
|
|
246
|
+
case "span":
|
|
247
|
+
return html `<span ${spread(attrs)}>${content}</span>`;
|
|
248
|
+
case "i":
|
|
249
|
+
return html `<i ${spread(attrs)}>${content}</i>`;
|
|
250
|
+
case "b":
|
|
251
|
+
return html `<b ${spread(attrs)}>${content}</b>`;
|
|
252
|
+
case "small":
|
|
253
|
+
return html `<small ${spread(attrs)}>${content}</small>`;
|
|
254
|
+
case "mark":
|
|
255
|
+
return html `<mark ${spread(attrs)}>${content}</mark>`;
|
|
256
|
+
case "ins":
|
|
257
|
+
return html `<ins ${spread(attrs)}>${content}</ins>`;
|
|
258
|
+
case "s":
|
|
259
|
+
return html `<s ${spread(attrs)}>${content}</s>`;
|
|
260
|
+
case "kbd":
|
|
261
|
+
return html `<kbd ${spread(attrs)}>${content}</kbd>`;
|
|
262
|
+
case "var":
|
|
263
|
+
return html `<var ${spread(attrs)}>${content}</var>`;
|
|
264
|
+
case "samp":
|
|
265
|
+
return html `<samp ${spread(attrs)}>${content}</samp>`;
|
|
266
|
+
case "cite":
|
|
267
|
+
return html `<cite ${spread(attrs)}>${content}</cite>`;
|
|
268
|
+
case "abbr":
|
|
269
|
+
return html `<abbr ${spread(attrs)}>${content}</abbr>`;
|
|
270
|
+
case "dfn":
|
|
271
|
+
return html `<dfn ${spread(attrs)}>${content}</dfn>`;
|
|
272
|
+
case "time":
|
|
273
|
+
return html `<time ${spread(attrs)}>${content}</time>`;
|
|
274
|
+
case "q":
|
|
275
|
+
return html `<q ${spread(attrs)}>${content}</q>`;
|
|
276
|
+
// Links with automatic target="_blank"
|
|
277
|
+
case "a":
|
|
278
|
+
if (!attrs.target) {
|
|
279
|
+
attrs.target = "_blank";
|
|
280
|
+
}
|
|
281
|
+
return html `<a ${spread(attrs)}>${content}</a>`;
|
|
282
|
+
// Tables with Carbon component and streaming support
|
|
283
|
+
case "table": {
|
|
284
|
+
if (!node) {
|
|
285
|
+
return html `<div>Error: Missing table data</div>`;
|
|
286
|
+
}
|
|
287
|
+
const { streaming, context: parentContext, filterPlaceholderText, previousPageText, nextPageText, itemsPerPageText, locale, getPaginationSupplementalText, getPaginationStatusText, } = options;
|
|
288
|
+
// Determine if we should show loading state during streaming
|
|
289
|
+
let isLoading = false;
|
|
290
|
+
if (streaming &&
|
|
291
|
+
parentContext?.parentChildren &&
|
|
292
|
+
parentContext?.currentIndex !== undefined) {
|
|
293
|
+
const { parentChildren, currentIndex } = parentContext;
|
|
294
|
+
const hasNodesAfterTable = currentIndex < parentChildren.length - 1;
|
|
295
|
+
isLoading = !hasNodesAfterTable;
|
|
296
|
+
}
|
|
297
|
+
const renderCellTokens = (tokens, contextOverrides = {}) => html `${repeat(tokens, (child, index) => `cell-${index}:${child.token.type}:${child.token.tag}`, (child, index) => renderTokenTree(child, {
|
|
298
|
+
...options,
|
|
299
|
+
context: {
|
|
300
|
+
...options.context,
|
|
301
|
+
...contextOverrides,
|
|
302
|
+
parentChildren: tokens,
|
|
303
|
+
currentIndex: index,
|
|
304
|
+
},
|
|
305
|
+
}))}`;
|
|
306
|
+
const createCellContent = (cell, contextOverrides) => ({
|
|
307
|
+
text: cell.text,
|
|
308
|
+
template: cell.tokens
|
|
309
|
+
? renderCellTokens(cell.tokens, contextOverrides)
|
|
310
|
+
: null,
|
|
311
|
+
});
|
|
312
|
+
// Extract table data or use empty placeholders for loading state
|
|
313
|
+
let headers;
|
|
314
|
+
let tableRows;
|
|
315
|
+
if (!isLoading) {
|
|
316
|
+
const extractedData = extractTableData(node);
|
|
317
|
+
headers = extractedData.headers.map((cell) => createCellContent(cell, { isInThead: true }));
|
|
318
|
+
tableRows = extractedData.rows.map((row) => ({
|
|
319
|
+
cells: row.map((cell) => createCellContent(cell)),
|
|
320
|
+
}));
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
// Use static empty arrays to prevent re-renders during streaming
|
|
324
|
+
headers = EMPTY_TABLE_HEADERS;
|
|
325
|
+
tableRows = EMPTY_TABLE_ROWS;
|
|
326
|
+
}
|
|
327
|
+
const tableAttrs = isLoading ? EMPTY_ATTRS : attrs;
|
|
328
|
+
return html `<div class="cds-aichat-table-holder">
|
|
329
|
+
<cds-aichat-table
|
|
330
|
+
.headers=${headers}
|
|
331
|
+
.rows=${tableRows}
|
|
332
|
+
.loading=${isLoading}
|
|
333
|
+
.filterPlaceholderText=${filterPlaceholderText || "Filter table..."}
|
|
334
|
+
.previousPageText=${previousPageText || "Previous page"}
|
|
335
|
+
.nextPageText=${nextPageText || "Next page"}
|
|
336
|
+
.itemsPerPageText=${itemsPerPageText || "Items per page:"}
|
|
337
|
+
.locale=${locale || "en"}
|
|
338
|
+
.getPaginationSupplementalText=${getPaginationSupplementalText ||
|
|
339
|
+
DEFAULT_PAGINATION_SUPPLEMENTAL_TEXT}
|
|
340
|
+
.getPaginationStatusText=${getPaginationStatusText ||
|
|
341
|
+
DEFAULT_PAGINATION_STATUS_TEXT}
|
|
342
|
+
...=${tableAttrs}
|
|
343
|
+
></cds-aichat-table>
|
|
344
|
+
</div>`;
|
|
345
|
+
}
|
|
346
|
+
// Fallback for unknown tags
|
|
347
|
+
default:
|
|
348
|
+
return html `<div ${spread(attrs)}>${content}</div>`;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export { renderTokenTree };
|
|
353
|
+
//# sourceMappingURL=markdown-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-renderer.js","sources":["../../../../src/components/markdown/src/markdown-renderer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;AAOG;AA2BH;AACA,MAAM,WAAY,SAAQ,SAAS,CAAA;AACjC,IAAA,MAAM,CAAC,MAA+B,EAAA;AACpC,QAAA,OAAO,OAAO;IAChB;AACA,IAAA,MAAM,CAAC,IAAS,EAAE,CAAC,KAAK,CAA4B,EAAA;AAClD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAkB;AAClC,QAAA,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE;AAChD,YAAA,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AAChD,gBAAA,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;YACvB;AAAO,iBAAA,IAAI,CAAC,KAAK,IAAI,EAAE;AACrB,gBAAA,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC;YACxB;iBAAO;gBACL,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/B;QACF;AACA,QAAA,OAAO,OAAO;IAChB;AACD;AACD,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC;AA8DrC,MAAM,WAAW,GAAG,EAAE;AACtB,MAAM,mBAAmB,GAAuB,EAAE;AAClD,MAAM,gBAAgB,GAAsB,EAAE;AAE9C;;AAEG;AACG,SAAU,eAAe,CAC7B,IAAe,EACf,OAA+B,EAAA;AAE/B,IAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;AAChC,IAAA,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO;;AAGrC,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/D,QAAA,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE;;AAGjC,QAAA,IAAI,QAAQ,IAAI,OAAO,EAAE;AACvB,YAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;AACpC,gBAAA,uBAAuB,EAAE;AACvB,oBAAA,YAAY,EAAE,MAAM,IAAI;AACxB,oBAAA,kBAAkB,EAAE,MAAM,IAAI;AAC9B,oBAAA,8BAA8B,EAAE,IAAI;AACrC,iBAAA;AACF,aAAA,CAAC;QACJ;QAEA,OAAO,IAAI,CAAA,CAAA,EAAG,UAAU,CAAC,OAAO,CAAC,EAAE;IACrC;;AAGA,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACzB,QAAA,OAAO,IAAI,CAAA,CAAA,EAAG,KAAK,CAAC,OAAO,EAAE;IAC/B;;AAGA,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAChC,QAAA,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,KAAK,CAAC,OAAO,SAAS;IAC5C;;AAGA,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AACzC,QAAA,MAAM,EACJ,SAAS,GAAG,IAAI,EAChB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,GAAG,OAAO;AAEX,QAAA,OAAO,IAAI,CAAA,CAAA;kBACG,QAAQ;mBACP,SAAS;kBACV,QAAQ;sBACJ,YAAY;sBACZ,YAAY;wBACV,cAAc;0BACZ,gBAAgB;AACjC,OAAA,EAAA,KAAK,CAAC,OAAO,CAAA;MAChB;IACJ;;AAGA,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;;IAGrB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CACzC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AACpB,QAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChB,QAAA,OAAO,GAAG;IACZ,CAAC,EACD,EAA4B,CAC7B;;IAGD,IAAI,KAAK,GAAG,QAAQ;AACpB,IAAA,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9D,IAAA,IAAI,QAAQ,IAAI,CAAC,eAAe,EAAE;QAChC,KAAK,GAAG,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;;YAE/C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA,GAAA,EAAM,GAAG,CAAA,EAAA,EAAK,KAAK,CAAA,EAAA,CAAI,EAAE;AAC3D,gBAAA,UAAU,EAAE,IAAI;AACjB,aAAA,CAAC;AACF,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,UAA4B;YACrD,OAAO,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI;QAC5C,CAAC,CAAC,CACH;IACH;;IAGA,IAAI,YAAY,GAAG,OAAO;AAC1B,IAAA,IAAI,GAAG,KAAK,OAAO,EAAE;QACnB,YAAY,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;IAChD;;AAGA,IAAA,IAAI,OAAuB;AAE3B,IAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;;AAE9D,QAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE;IAC9C;SAAO;AACL,QAAA,MAAM,kBAAkB,GAAG,4BAA4B,CAAC,QAAQ,CAAC;;AAGjE,QAAA,OAAO,GAAG,IAAI,CAAA,CAAA,EAAG,MAAM,CACrB,kBAAkB,EAClB,CAAC,CAAC,EAAE,KAAK,KAAI;;;AAGX,YAAA,MAAM,SAAS,GAAG,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAE3D,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACnC,OAAO,CAAA,MAAA,EAAS,SAAS,CAAA,CAAE;YAC7B;YAEA,OAAO,CAAA,OAAA,EAAU,SAAS,CAAA,CAAE;QAC9B,CAAC,EACD,CAAC,CAAC,EAAE,KAAK,KACP,eAAe,CAAC,CAAC,EAAE;AACjB,YAAA,GAAG,OAAO;AACV,YAAA,OAAO,EAAE;AACP,gBAAA,GAAG,YAAY;AACf,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,YAAY,EAAE,KAAK;AACpB,aAAA;SACF,CAAC,CACL,EAAE;IACL;;IAGA,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,OAAO,OAAO;IAChB;;AAGA,IAAA,OAAO,mBAAmB,CACxB,GAAG,EACH,KAAc,EACd,OAAO,EACP,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,CACL;AACH;AAEA;;AAEG;AACH,SAAS,mBAAmB,CAC1B,GAAW,EACX,KAAY,EACZ,OAAuB,EACvB,KAA6B,EAC7B,OAA+B,EAC/B,QAAkC,EAClC,IAAgB,EAAA;;AAGhB,IAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACzB,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,MAAM,gBAAgB,GAAG,CAAC,QAAoB,KAC5C,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,KAAI;QACnC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE;AACzC,YAAA,OAAO,KAAK;QACd;QAEA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,OAAO,CAAC;AACrE,QAAA,OAAO,SAAS,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAChE,IAAA,CAAC,CAAC;IAEJ,QAAQ,GAAG;;AAET,QAAA,KAAK,GAAG;YACN,OAAO,IAAI,CAAA,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAM;AAEjD,QAAA,KAAK,YAAY;YACf,OAAO,IAAI,CAAA,CAAA,YAAA,EAAe,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,aAAA,CAAe;AAEnE,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;;AAGrD,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;AACnD,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;AACnD,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;AACnD,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;AACnD,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;AACnD,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;;QAGnD,KAAK,IAAI,EAAE;AACT,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AAC9B,YAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3B,OAAO;cACL;YACR;YACA,OAAO,IAAI,CAAA,CAAA,4BAAA,EAA+B,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;UAC7D,OAAO;4BACW;QACxB;QAEA,KAAK,IAAI,EAAE;AACT,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC;AAC9B,YAAA,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;AAC1B,gBAAA,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3B,OAAO;cACL;YACR;YACA,OAAO,IAAI,CAAA,CAAA,iCAAA,EAAoC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAA;UAClE,OAAO;0BACS;QACtB;QAEA,KAAK,IAAI,EAAE;AACT,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AACjD,YAAA,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;gBACxC,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;YACnD;YACA,OAAO,IAAI,CAAA,CAAA,eAAA,EAAkB,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,gBAAA,CAAkB;QACzE;QAEA,KAAK,cAAc,EAAE;YACnB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK;AAClD,YAAA,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM;AACpC,YAAA,MAAM,UAAU,GACd,QAAQ,KAAK,SAAS,GAAG,IAAI,GAAG,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,MAAM;AAExE,YAAA,OAAO,IAAI,CAAA,CAAA;mBACE,SAAS;oBACR,UAAU;UACpB,MAAM,CAAC,UAAU,CAAC;WACjB,OAAO,CAAA;QACV;QACJ;;AAGA,QAAA,KAAK,QAAQ;YACX,OAAO,IAAI,CAAA,CAAA,QAAA,EAAW,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,SAAA,CAAW;AAC3D,QAAA,KAAK,IAAI;YACP,OAAO,IAAI,CAAA,CAAA,IAAA,EAAO,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO;AACnD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,GAAG;YACN,OAAO,IAAI,CAAA,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAM;AACjD,QAAA,KAAK,GAAG;YACN,OAAO,IAAI,CAAA,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAM;AACjD,QAAA,KAAK,OAAO;YACV,OAAO,IAAI,CAAA,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,QAAA,CAAU;AACzD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,GAAG;YACN,OAAO,IAAI,CAAA,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAM;AACjD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,KAAK;YACR,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;AACrD,QAAA,KAAK,MAAM;YACT,OAAO,IAAI,CAAA,CAAA,MAAA,EAAS,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,OAAA,CAAS;AACvD,QAAA,KAAK,GAAG;YACN,OAAO,IAAI,CAAA,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAM;;AAGjD,QAAA,KAAK,GAAG;AACN,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,gBAAA,KAAK,CAAC,MAAM,GAAG,QAAQ;YACzB;YACA,OAAO,IAAI,CAAA,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,IAAA,CAAM;;QAGjD,KAAK,OAAO,EAAE;YACZ,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,IAAI,CAAA,CAAA,oCAAA,CAAsC;YACnD;YAEA,MAAM,EACJ,SAAS,EACT,OAAO,EAAE,aAAa,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,6BAA6B,EAC7B,uBAAuB,GACxB,GAAG,OAAO;;YAGX,IAAI,SAAS,GAAG,KAAK;AACrB,YAAA,IACE,SAAS;AACT,gBAAA,aAAa,EAAE,cAAc;AAC7B,gBAAA,aAAa,EAAE,YAAY,KAAK,SAAS,EACzC;AACA,gBAAA,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,aAAa;gBACtD,MAAM,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC;gBACnE,SAAS,GAAG,CAAC,kBAAkB;YACjC;YAEA,MAAM,gBAAgB,GAAG,CAAC,MAAmB,EAAE,gBAAgB,GAAG,EAAE,KAClE,IAAI,CAAA,CAAA,EAAG,MAAM,CACX,MAAM,EACN,CAAC,KAAK,EAAE,KAAK,KACX,QAAQ,KAAK,CAAA,CAAA,EAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,EACxD,CAAC,KAAK,EAAE,KAAK,KACX,eAAe,CAAC,KAAK,EAAE;AACrB,gBAAA,GAAG,OAAO;AACV,gBAAA,OAAO,EAAE;oBACP,GAAG,OAAO,CAAC,OAAO;AAClB,oBAAA,GAAG,gBAAgB;AACnB,oBAAA,cAAc,EAAE,MAAM;AACtB,oBAAA,YAAY,EAAE,KAAK;AACpB,iBAAA;aACF,CAAC,CACL,EAAE;YAEL,MAAM,iBAAiB,GAAG,CACxB,IAAmB,EACnB,gBAA0C,MACpB;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC;sBACX,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB;AAChD,sBAAE,IAAI;AACT,aAAA,CAAC;;AAGF,YAAA,IAAI,OAA2B;AAC/B,YAAA,IAAI,SAA4B;YAEhC,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC;gBAE5C,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KACvC,iBAAiB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAC7C;AAED,gBAAA,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC3C,oBAAA,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAClD,iBAAA,CAAC,CAAC;YACL;iBAAO;;gBAEL,OAAO,GAAG,mBAAmB;gBAC7B,SAAS,GAAG,gBAAgB;YAC9B;YAEA,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK;AAElD,YAAA,OAAO,IAAI,CAAA,CAAA;;qBAEI,OAAO;kBACV,SAAS;qBACN,SAAS;AACK,iCAAA,EAAA,qBAAqB,IAAI,iBAAiB;AAC/C,4BAAA,EAAA,gBAAgB,IAAI,eAAe;AACvC,wBAAA,EAAA,YAAY,IAAI,WAAW;AACvB,4BAAA,EAAA,gBAAgB,IAAI,iBAAiB;AAC/C,kBAAA,EAAA,MAAM,IAAI,IAAI;2CACS,6BAA6B;gBAC9D,oCAAoC;qCACT,uBAAuB;gBAClD,8BAA8B;gBACxB,UAAU;;aAEb;QACT;;AAGA,QAAA;YACE,OAAO,IAAI,CAAA,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAC,CAAA,CAAA,EAAI,OAAO,CAAA,MAAA,CAAQ;;AAEzD;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Token } from "markdown-it";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a node in the token tree structure.
|
|
4
|
+
*/
|
|
5
|
+
export interface TokenTree {
|
|
6
|
+
/** Unique identifier for this node, used for efficient diffing */
|
|
7
|
+
key: string;
|
|
8
|
+
/** The original markdown-it token data */
|
|
9
|
+
token: Partial<Token>;
|
|
10
|
+
/** Child nodes for nested content */
|
|
11
|
+
children: TokenTree[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Parses markdown text into a flat array of markdown-it tokens.
|
|
15
|
+
*/
|
|
16
|
+
export declare function markdownToMarkdownItTokens(fullText: string, allowHtml?: boolean): Token[];
|
|
17
|
+
/**
|
|
18
|
+
* Converts a flat list of markdown-it tokens into a tree.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildTokenTree(tokens: Token[]): TokenTree;
|
|
21
|
+
/**
|
|
22
|
+
* Compares two TokenTree structures and creates a new tree that reuses
|
|
23
|
+
* unchanged nodes from the old tree.
|
|
24
|
+
*
|
|
25
|
+
* This optimization is crucial for performance when content is being streamed
|
|
26
|
+
* or updated incrementally.
|
|
27
|
+
*/
|
|
28
|
+
export declare function diffTokenTree(oldTree: TokenTree | undefined, newTree: TokenTree): TokenTree;
|
|
29
|
+
/**
|
|
30
|
+
* Converts markdown into a tree with keys on it for Lit.
|
|
31
|
+
*/
|
|
32
|
+
export declare function markdownToTokenTree(markdown: string, lastTree?: TokenTree, allowHtml?: boolean): TokenTree;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import MarkdownIt from 'markdown-it';
|
|
9
|
+
import { markdownItAttrs } from './plugins/markdown-it-attrs.js';
|
|
10
|
+
import { markdownItHighlight } from './plugins/markdown-it-highlight.js';
|
|
11
|
+
import { markdownItTaskLists } from './plugins/markdown-it-task-lists.js';
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* Copyright IBM Corp. 2025
|
|
15
|
+
*
|
|
16
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
17
|
+
* LICENSE file in the root directory of this source tree.
|
|
18
|
+
*
|
|
19
|
+
* @license
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Pre-configured markdown-it instance that allows HTML content.
|
|
23
|
+
* Uses CommonMark preset for GitHub Flavored Markdown compatibility.
|
|
24
|
+
*/
|
|
25
|
+
const htmlMarkdown = new MarkdownIt("commonmark", {
|
|
26
|
+
html: true,
|
|
27
|
+
breaks: true,
|
|
28
|
+
linkify: true,
|
|
29
|
+
})
|
|
30
|
+
.enable("table")
|
|
31
|
+
.enable("strikethrough")
|
|
32
|
+
.use(markdownItAttrs, {
|
|
33
|
+
leftDelimiter: "{{",
|
|
34
|
+
rightDelimiter: "}}",
|
|
35
|
+
allowedAttributes: ["target", "rel", "class", "id"],
|
|
36
|
+
})
|
|
37
|
+
.use(markdownItHighlight)
|
|
38
|
+
.use(markdownItTaskLists);
|
|
39
|
+
/**
|
|
40
|
+
* Pre-configured markdown-it instance that strips HTML content.
|
|
41
|
+
* Same features as htmlMarkdown but with HTML disabled for security.
|
|
42
|
+
*/
|
|
43
|
+
const noHtmlMarkdown = new MarkdownIt("commonmark", {
|
|
44
|
+
html: false,
|
|
45
|
+
breaks: true,
|
|
46
|
+
linkify: true,
|
|
47
|
+
})
|
|
48
|
+
.enable("table")
|
|
49
|
+
.enable("strikethrough")
|
|
50
|
+
.use(markdownItAttrs, {
|
|
51
|
+
leftDelimiter: "{{",
|
|
52
|
+
rightDelimiter: "}}",
|
|
53
|
+
allowedAttributes: ["target", "rel", "class", "id"],
|
|
54
|
+
})
|
|
55
|
+
.use(markdownItHighlight)
|
|
56
|
+
.use(markdownItTaskLists);
|
|
57
|
+
/**
|
|
58
|
+
* Parses markdown text into a flat array of markdown-it tokens.
|
|
59
|
+
*/
|
|
60
|
+
function markdownToMarkdownItTokens(fullText, allowHtml = true) {
|
|
61
|
+
return allowHtml
|
|
62
|
+
? htmlMarkdown.parse(fullText, {})
|
|
63
|
+
: noHtmlMarkdown.parse(fullText, {});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Generates a unique string key for a markdown-it token.
|
|
67
|
+
*
|
|
68
|
+
* The key combines the token type, HTML tag, and source position to create
|
|
69
|
+
* a stable identifier that can be used by Lit's repeat() directive for
|
|
70
|
+
* efficient DOM updates.
|
|
71
|
+
*/
|
|
72
|
+
function generateKey(token) {
|
|
73
|
+
const map = token.map ? token.map.join("-") : "";
|
|
74
|
+
return `${token.type}:${token.tag}:${map}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Converts a flat list of markdown-it tokens into a tree.
|
|
78
|
+
*/
|
|
79
|
+
function buildTokenTree(tokens) {
|
|
80
|
+
// Create the root node that will contain all top-level content
|
|
81
|
+
const root = {
|
|
82
|
+
key: "root",
|
|
83
|
+
token: {
|
|
84
|
+
type: "root",
|
|
85
|
+
tag: "",
|
|
86
|
+
nesting: 0,
|
|
87
|
+
level: 0,
|
|
88
|
+
content: "",
|
|
89
|
+
attrs: null,
|
|
90
|
+
children: null,
|
|
91
|
+
markup: "",
|
|
92
|
+
block: true,
|
|
93
|
+
hidden: false,
|
|
94
|
+
map: null,
|
|
95
|
+
info: "",
|
|
96
|
+
meta: null,
|
|
97
|
+
},
|
|
98
|
+
children: [],
|
|
99
|
+
};
|
|
100
|
+
// Stack tracks the current nesting context while building the tree
|
|
101
|
+
const stack = [root];
|
|
102
|
+
tokens.forEach((token) => {
|
|
103
|
+
// Create a new node for this token
|
|
104
|
+
const node = {
|
|
105
|
+
key: generateKey(token),
|
|
106
|
+
token,
|
|
107
|
+
children: [],
|
|
108
|
+
};
|
|
109
|
+
// Handle inline tokens that contain their own child tokens
|
|
110
|
+
// (e.g., a paragraph containing bold, italic, and text tokens)
|
|
111
|
+
if (token.type === "inline" && token.children?.length) {
|
|
112
|
+
node.children = buildTokenTree(token.children).children;
|
|
113
|
+
}
|
|
114
|
+
const current = stack[stack.length - 1];
|
|
115
|
+
if (token.nesting === 1) {
|
|
116
|
+
// Opening tag: add node to current container and descend into it
|
|
117
|
+
current.children.push(node);
|
|
118
|
+
stack.push(node);
|
|
119
|
+
}
|
|
120
|
+
else if (token.nesting === -1) {
|
|
121
|
+
// Closing tag: exit current container
|
|
122
|
+
stack.pop();
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Self-contained token: add to current container
|
|
126
|
+
current.children.push(node);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return root;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Compares two TokenTree structures and creates a new tree that reuses
|
|
133
|
+
* unchanged nodes from the old tree.
|
|
134
|
+
*
|
|
135
|
+
* This optimization is crucial for performance when content is being streamed
|
|
136
|
+
* or updated incrementally.
|
|
137
|
+
*/
|
|
138
|
+
function diffTokenTree(oldTree, newTree) {
|
|
139
|
+
// If keys don't match, the entire subtree changed - use new tree
|
|
140
|
+
if (!oldTree || oldTree.key !== newTree.key) {
|
|
141
|
+
return newTree;
|
|
142
|
+
}
|
|
143
|
+
// Keys match so create merged tree reusing unchanged children
|
|
144
|
+
const merged = {
|
|
145
|
+
key: newTree.key,
|
|
146
|
+
token: newTree.token,
|
|
147
|
+
children: [],
|
|
148
|
+
};
|
|
149
|
+
// Create lookup map of old children by key for efficient comparison
|
|
150
|
+
const oldChildrenByKey = new Map(oldTree.children.map((child) => [child.key, child]));
|
|
151
|
+
// Process each new child, reusing old ones where possible
|
|
152
|
+
newTree.children.forEach((newChild) => {
|
|
153
|
+
const oldChild = oldChildrenByKey.get(newChild.key);
|
|
154
|
+
if (oldChild) {
|
|
155
|
+
// Recursively diff matching children
|
|
156
|
+
merged.children.push(diffTokenTree(oldChild, newChild));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Use new child as-is
|
|
160
|
+
merged.children.push(newChild);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return merged;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Converts markdown into a tree with keys on it for Lit.
|
|
167
|
+
*/
|
|
168
|
+
function markdownToTokenTree(markdown, lastTree, allowHtml = true) {
|
|
169
|
+
// Parse markdown into flat token array
|
|
170
|
+
const tokens = markdownToMarkdownItTokens(markdown, allowHtml);
|
|
171
|
+
// Build hierarchical tree structure
|
|
172
|
+
const tree = buildTokenTree(tokens);
|
|
173
|
+
// Optimize by reusing unchanged parts of previous tree
|
|
174
|
+
return diffTokenTree(lastTree, tree);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
export { buildTokenTree, diffTokenTree, markdownToMarkdownItTokens, markdownToTokenTree };
|
|
178
|
+
//# sourceMappingURL=markdown-token-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown-token-tree.js","sources":["../../../../src/components/markdown/src/markdown-token-tree.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|