@flamingo-stack/openframe-frontend-core 0.0.490 → 0.0.492-1506.3956.1

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 (353) hide show
  1. package/dist/chat-protocol/decode.d.ts +58 -0
  2. package/dist/chat-protocol/decode.d.ts.map +1 -0
  3. package/dist/chat-protocol/encode.d.ts +44 -0
  4. package/dist/chat-protocol/encode.d.ts.map +1 -0
  5. package/dist/chat-protocol/env-flag.d.ts +35 -0
  6. package/dist/chat-protocol/env-flag.d.ts.map +1 -0
  7. package/dist/chat-protocol/events.d.ts +207 -0
  8. package/dist/chat-protocol/events.d.ts.map +1 -0
  9. package/dist/chat-protocol/frames.d.ts +213 -0
  10. package/dist/chat-protocol/frames.d.ts.map +1 -0
  11. package/dist/chat-protocol/index.cjs +500 -0
  12. package/dist/chat-protocol/index.cjs.map +1 -0
  13. package/dist/chat-protocol/index.d.ts +18 -0
  14. package/dist/chat-protocol/index.d.ts.map +1 -0
  15. package/dist/chat-protocol/index.js +484 -0
  16. package/dist/chat-protocol/index.js.map +1 -0
  17. package/dist/chat-protocol/ip-normalize.d.ts +44 -0
  18. package/dist/chat-protocol/ip-normalize.d.ts.map +1 -0
  19. package/dist/chat-protocol/nats-decoder.d.ts +26 -0
  20. package/dist/chat-protocol/nats-decoder.d.ts.map +1 -0
  21. package/dist/{chunk-WLM3F3WU.js → chunk-34TDA22K.js} +3 -3
  22. package/dist/{chunk-EGXCWZYP.js → chunk-3LKB722U.js} +3 -3
  23. package/dist/{chunk-RW2LPL72.js → chunk-6WTCJI5R.js} +2 -2
  24. package/dist/{chunk-VUXNXWOQ.cjs → chunk-7N7YZCHR.cjs} +7503 -5167
  25. package/dist/chunk-7N7YZCHR.cjs.map +1 -0
  26. package/dist/{chunk-AW63ET2A.cjs → chunk-A6FPYAUD.cjs} +19 -19
  27. package/dist/{chunk-AW63ET2A.cjs.map → chunk-A6FPYAUD.cjs.map} +1 -1
  28. package/dist/{chunk-BZMOEWWS.js → chunk-BEEPU44B.js} +12 -12
  29. package/dist/chunk-BEEPU44B.js.map +1 -0
  30. package/dist/{chunk-EJQUYZXF.cjs → chunk-C65NCIMV.cjs} +12 -12
  31. package/dist/{chunk-EJQUYZXF.cjs.map → chunk-C65NCIMV.cjs.map} +1 -1
  32. package/dist/{chunk-VL2YMDPH.js → chunk-J3VBVR4W.js} +6 -6
  33. package/dist/{chunk-AIRNG27G.js → chunk-JHEIOXXZ.js} +8 -7
  34. package/dist/chunk-JHEIOXXZ.js.map +1 -0
  35. package/dist/{chunk-D5LQMRPU.cjs → chunk-JSEJ5MH5.cjs} +5 -5
  36. package/dist/{chunk-D5LQMRPU.cjs.map → chunk-JSEJ5MH5.cjs.map} +1 -1
  37. package/dist/{chunk-FY5XAW3H.cjs → chunk-KX3K2EH4.cjs} +18 -18
  38. package/dist/{chunk-FY5XAW3H.cjs.map → chunk-KX3K2EH4.cjs.map} +1 -1
  39. package/dist/{chunk-3IEVA5AO.cjs → chunk-M6FEGPQJ.cjs} +93 -93
  40. package/dist/{chunk-3IEVA5AO.cjs.map → chunk-M6FEGPQJ.cjs.map} +1 -1
  41. package/dist/{chunk-7I42V2OD.cjs → chunk-MEIGDK7M.cjs} +74 -74
  42. package/dist/chunk-MEIGDK7M.cjs.map +1 -0
  43. package/dist/{chunk-OQIMH2WQ.js → chunk-MEMRQTOI.js} +12263 -9927
  44. package/dist/chunk-MEMRQTOI.js.map +1 -0
  45. package/dist/{chunk-GUTYUMGV.cjs → chunk-MPUQFRJG.cjs} +12 -12
  46. package/dist/{chunk-GUTYUMGV.cjs.map → chunk-MPUQFRJG.cjs.map} +1 -1
  47. package/dist/{chunk-UZZT65PQ.cjs → chunk-MSL5NE3N.cjs} +40 -40
  48. package/dist/{chunk-UZZT65PQ.cjs.map → chunk-MSL5NE3N.cjs.map} +1 -1
  49. package/dist/{chunk-6CJ2K7BD.js → chunk-MZRIRQYV.js} +3 -3
  50. package/dist/{chunk-NGEFYPY7.js → chunk-NCAN6VUF.js} +4 -4
  51. package/dist/{chunk-6QK3ONDD.js → chunk-OL3MJKUI.js} +2 -2
  52. package/dist/{chunk-MPYDX5WX.js → chunk-PLB6CQSO.js} +4 -4
  53. package/dist/{chunk-6CFFISUC.js → chunk-PTXZB2KW.js} +3 -3
  54. package/dist/{chunk-GMPYR3MX.cjs → chunk-QDGB2DKY.cjs} +33 -33
  55. package/dist/{chunk-GMPYR3MX.cjs.map → chunk-QDGB2DKY.cjs.map} +1 -1
  56. package/dist/{chunk-2MKUHJ3O.cjs → chunk-QG2EBIH5.cjs} +40 -40
  57. package/dist/{chunk-2MKUHJ3O.cjs.map → chunk-QG2EBIH5.cjs.map} +1 -1
  58. package/dist/{chunk-GZK7FWJJ.js → chunk-QKWOBV55.js} +12 -12
  59. package/dist/chunk-QKWOBV55.js.map +1 -0
  60. package/dist/{chunk-STYA77PH.cjs → chunk-SGL6URIJ.cjs} +12 -12
  61. package/dist/chunk-SGL6URIJ.cjs.map +1 -0
  62. package/dist/{chunk-KP5KRRD6.cjs → chunk-THC3K262.cjs} +3 -3
  63. package/dist/{chunk-KP5KRRD6.cjs.map → chunk-THC3K262.cjs.map} +1 -1
  64. package/dist/{chunk-BIKOJ4FH.cjs → chunk-TTYJAZ7P.cjs} +58 -32
  65. package/dist/chunk-TTYJAZ7P.cjs.map +1 -0
  66. package/dist/{chunk-IEZ3YBAP.cjs → chunk-W56JYDSC.cjs} +34 -33
  67. package/dist/chunk-W56JYDSC.cjs.map +1 -0
  68. package/dist/{chunk-PB3BTZDU.js → chunk-WEUNPE3S.js} +139 -113
  69. package/dist/chunk-WEUNPE3S.js.map +1 -0
  70. package/dist/{chunk-VDZO6IDR.js → chunk-XOFE2RT4.js} +5 -5
  71. package/dist/components/case-studies/index.cjs +10 -10
  72. package/dist/components/case-studies/index.js +4 -4
  73. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  74. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  75. package/dist/components/chat/hooks/index.d.ts +0 -1
  76. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  77. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  78. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +15 -48
  79. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  80. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +10 -57
  81. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  82. package/dist/components/chat/index.cjs +12 -4
  83. package/dist/components/chat/index.cjs.map +1 -1
  84. package/dist/components/chat/index.d.ts +1 -0
  85. package/dist/components/chat/index.d.ts.map +1 -1
  86. package/dist/components/chat/index.js +23 -15
  87. package/dist/components/chat/stream/chat-dialog-store.d.ts +184 -0
  88. package/dist/components/chat/stream/chat-dialog-store.d.ts.map +1 -0
  89. package/dist/components/chat/stream/chat-stream-reducer.d.ts +367 -0
  90. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -0
  91. package/dist/components/chat/stream/delta-batcher.d.ts +51 -0
  92. package/dist/components/chat/stream/delta-batcher.d.ts.map +1 -0
  93. package/dist/components/chat/stream/index.d.ts +17 -0
  94. package/dist/components/chat/stream/index.d.ts.map +1 -0
  95. package/dist/components/chat/stream/message-mutations.d.ts +77 -0
  96. package/dist/components/chat/stream/message-mutations.d.ts.map +1 -0
  97. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +22 -0
  98. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +1 -0
  99. package/dist/components/chat/types/api.types.d.ts +1 -81
  100. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  101. package/dist/components/chat/types/processing.types.d.ts +2 -93
  102. package/dist/components/chat/types/processing.types.d.ts.map +1 -1
  103. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +34 -6
  104. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  105. package/dist/components/chat/utils/index.d.ts +2 -3
  106. package/dist/components/chat/utils/index.d.ts.map +1 -1
  107. package/dist/components/chat/utils/process-historical-messages.d.ts +59 -11
  108. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  109. package/dist/components/contact/index.cjs +5 -5
  110. package/dist/components/contact/index.js +4 -4
  111. package/dist/components/docs/index.cjs +7 -7
  112. package/dist/components/docs/index.js +6 -6
  113. package/dist/components/embeds/index.cjs +5 -5
  114. package/dist/components/embeds/index.js +4 -4
  115. package/dist/components/faq/index.cjs +6 -6
  116. package/dist/components/faq/index.js +5 -5
  117. package/dist/components/features/index.cjs +4 -4
  118. package/dist/components/features/index.js +3 -3
  119. package/dist/components/features/select-button.d.ts.map +1 -1
  120. package/dist/components/help-center-pages/index.cjs +23 -23
  121. package/dist/components/help-center-pages/index.js +14 -14
  122. package/dist/components/index.cjs +203 -161
  123. package/dist/components/index.cjs.map +1 -1
  124. package/dist/components/index.js +66 -24
  125. package/dist/components/index.js.map +1 -1
  126. package/dist/components/layout/page-layout.d.ts +7 -1
  127. package/dist/components/layout/page-layout.d.ts.map +1 -1
  128. package/dist/components/layout/title-block.d.ts +23 -1
  129. package/dist/components/layout/title-block.d.ts.map +1 -1
  130. package/dist/components/navigation/index.cjs +4 -4
  131. package/dist/components/navigation/index.js +3 -3
  132. package/dist/components/onboarding-guides/index.cjs +8 -8
  133. package/dist/components/onboarding-guides/index.js +7 -7
  134. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  135. package/dist/components/related-content/index.cjs +6 -6
  136. package/dist/components/related-content/index.js +5 -5
  137. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  138. package/dist/components/tickets/index.cjs +7 -7
  139. package/dist/components/tickets/index.js +6 -6
  140. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  141. package/dist/components/ui/checkbox-block.d.ts.map +1 -1
  142. package/dist/components/ui/date-picker.d.ts.map +1 -1
  143. package/dist/components/ui/field-wrapper.d.ts +10 -1
  144. package/dist/components/ui/field-wrapper.d.ts.map +1 -1
  145. package/dist/components/ui/file-manager/index.cjs +50 -50
  146. package/dist/components/ui/file-manager/index.js +1 -1
  147. package/dist/components/ui/floating-tooltip.d.ts +8 -1
  148. package/dist/components/ui/floating-tooltip.d.ts.map +1 -1
  149. package/dist/components/ui/index.cjs +46 -4
  150. package/dist/components/ui/index.cjs.map +1 -1
  151. package/dist/components/ui/index.d.ts +1 -2
  152. package/dist/components/ui/index.d.ts.map +1 -1
  153. package/dist/components/ui/index.js +57 -15
  154. package/dist/components/ui/input-trigger.d.ts.map +1 -1
  155. package/dist/components/ui/input.d.ts.map +1 -1
  156. package/dist/components/ui/markdown/base-components.d.ts +51 -0
  157. package/dist/components/ui/markdown/base-components.d.ts.map +1 -0
  158. package/dist/components/ui/markdown/engine.d.ts +99 -0
  159. package/dist/components/ui/markdown/engine.d.ts.map +1 -0
  160. package/dist/components/ui/markdown/heading-ids.d.ts +65 -0
  161. package/dist/components/ui/markdown/heading-ids.d.ts.map +1 -0
  162. package/dist/components/ui/markdown/index.d.ts +18 -0
  163. package/dist/components/ui/markdown/index.d.ts.map +1 -0
  164. package/dist/components/ui/markdown/mermaid-diagram.d.ts +79 -0
  165. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -0
  166. package/dist/components/ui/markdown/rich/embed-overrides.d.ts +14 -0
  167. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -0
  168. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +40 -0
  169. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -0
  170. package/dist/components/ui/markdown/rich/shortcodes.d.ts +8 -0
  171. package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +1 -0
  172. package/dist/components/ui/markdown/sanitize.d.ts +153 -0
  173. package/dist/components/ui/markdown/sanitize.d.ts.map +1 -0
  174. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +23 -0
  175. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -0
  176. package/dist/components/ui/markdown/streaming.d.ts +78 -0
  177. package/dist/components/ui/markdown/streaming.d.ts.map +1 -0
  178. package/dist/components/ui/markdown/text-size.d.ts +34 -0
  179. package/dist/components/ui/markdown/text-size.d.ts.map +1 -0
  180. package/dist/components/ui/page-actions.d.ts +7 -1
  181. package/dist/components/ui/page-actions.d.ts.map +1 -1
  182. package/dist/components/ui/radio-group.d.ts.map +1 -1
  183. package/dist/components/ui/search-input.d.ts.map +1 -1
  184. package/dist/components/ui/select.d.ts.map +1 -1
  185. package/dist/components/ui/tab-navigation.d.ts +10 -1
  186. package/dist/components/ui/tab-navigation.d.ts.map +1 -1
  187. package/dist/components/ui/tag-search-input.d.ts.map +1 -1
  188. package/dist/components/ui/textarea.d.ts.map +1 -1
  189. package/dist/components/ui/truncate-text.d.ts +2 -2
  190. package/dist/components/ui/truncate-text.d.ts.map +1 -1
  191. package/dist/hooks/index.cjs +4 -2
  192. package/dist/hooks/index.cjs.map +1 -1
  193. package/dist/hooks/index.js +3 -1
  194. package/dist/hooks/ui/index.d.ts +1 -0
  195. package/dist/hooks/ui/index.d.ts.map +1 -1
  196. package/dist/hooks/ui/use-is-truncated.d.ts +33 -0
  197. package/dist/hooks/ui/use-is-truncated.d.ts.map +1 -0
  198. package/dist/index.cjs +64 -4
  199. package/dist/index.cjs.map +1 -1
  200. package/dist/index.js +75 -15
  201. package/dist/utils/index.cjs +169 -40
  202. package/dist/utils/index.cjs.map +1 -1
  203. package/dist/utils/index.d.ts +1 -0
  204. package/dist/utils/index.d.ts.map +1 -1
  205. package/dist/utils/index.js +162 -41
  206. package/dist/utils/index.js.map +1 -1
  207. package/dist/utils/markdown-fences.d.ts +42 -0
  208. package/dist/utils/markdown-fences.d.ts.map +1 -0
  209. package/dist/utils/markdown-heading-id.d.ts +85 -0
  210. package/dist/utils/markdown-heading-id.d.ts.map +1 -0
  211. package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
  212. package/package.json +7 -1
  213. package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +317 -0
  214. package/src/chat-protocol/__tests__/chat-protocol.test.ts +516 -0
  215. package/src/chat-protocol/__tests__/env-flag.test.ts +52 -0
  216. package/src/chat-protocol/__tests__/ip-normalize.test.ts +136 -0
  217. package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +232 -0
  218. package/src/chat-protocol/decode.ts +278 -0
  219. package/src/chat-protocol/encode.ts +71 -0
  220. package/src/chat-protocol/env-flag.ts +39 -0
  221. package/src/chat-protocol/events.ts +245 -0
  222. package/src/chat-protocol/frames.ts +245 -0
  223. package/src/chat-protocol/index.ts +21 -0
  224. package/src/chat-protocol/ip-normalize.ts +146 -0
  225. package/src/chat-protocol/nats-decoder.ts +258 -0
  226. package/src/components/chat/__tests__/chat-message-list.test.tsx +293 -5
  227. package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +207 -0
  228. package/src/components/chat/__tests__/chat-pending-turn.test.tsx +230 -0
  229. package/src/components/chat/chat-message-enhanced.tsx +122 -20
  230. package/src/components/chat/chat-message-list.tsx +358 -109
  231. package/src/components/chat/embeddable-chat.tsx +6 -0
  232. package/src/components/chat/hooks/.index.md +30 -33
  233. package/src/components/chat/hooks/.use-nats-chat-adapter.md +36 -55
  234. package/src/components/chat/hooks/__tests__/__snapshots__/conversation-id-persistence-golden.test.ts.snap +37 -0
  235. package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
  236. package/src/components/chat/hooks/__tests__/conversation-id-persistence-golden.test.ts +438 -0
  237. package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +318 -0
  238. package/src/components/chat/hooks/index.ts +0 -1
  239. package/src/components/chat/hooks/use-chat.ts +8 -0
  240. package/src/components/chat/hooks/use-nats-chat-adapter.ts +243 -825
  241. package/src/components/chat/hooks/use-sse-chat-adapter.ts +380 -684
  242. package/src/components/chat/index.ts +5 -0
  243. package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +940 -0
  244. package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +756 -0
  245. package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +460 -0
  246. package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +973 -0
  247. package/src/components/chat/stream/__tests__/delta-batcher.test.ts +255 -0
  248. package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +98 -0
  249. package/src/components/chat/stream/chat-dialog-store.ts +536 -0
  250. package/src/components/chat/stream/chat-stream-reducer.ts +1808 -0
  251. package/src/components/chat/stream/delta-batcher.ts +168 -0
  252. package/src/components/chat/stream/index.ts +55 -0
  253. package/src/components/chat/stream/message-mutations.ts +340 -0
  254. package/src/components/chat/stream/use-chat-stream-reducer.ts +126 -0
  255. package/src/components/chat/thinking-display.tsx +1 -1
  256. package/src/components/chat/types/.api.types.md +39 -49
  257. package/src/components/chat/types/.processing.types.md +29 -58
  258. package/src/components/chat/types/api.types.ts +6 -73
  259. package/src/components/chat/types/processing.types.ts +11 -53
  260. package/src/components/chat/utils/.index.md +31 -40
  261. package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +420 -0
  262. package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +605 -0
  263. package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +394 -0
  264. package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +270 -0
  265. package/src/components/chat/utils/extract-incomplete-message-state.ts +63 -5
  266. package/src/components/chat/utils/index.ts +5 -8
  267. package/src/components/chat/utils/process-historical-messages.ts +358 -386
  268. package/src/components/features/select-button.tsx +4 -1
  269. package/src/components/layout/page-layout.tsx +16 -0
  270. package/src/components/layout/title-block.tsx +106 -7
  271. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +22 -4
  272. package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
  273. package/src/components/shared/product-release/release-detail-page.tsx +19 -4
  274. package/src/components/ui/.field-wrapper.md +5 -4
  275. package/src/components/ui/.tab-navigation.md +14 -1
  276. package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +2420 -0
  277. package/src/components/ui/__tests__/markdown-parity.test.tsx +2528 -0
  278. package/src/components/ui/autocomplete.tsx +13 -1
  279. package/src/components/ui/button/button.tsx +1 -1
  280. package/src/components/ui/checkbox-block.tsx +27 -3
  281. package/src/components/ui/date-picker.tsx +15 -1
  282. package/src/components/ui/field-wrapper.tsx +12 -6
  283. package/src/components/ui/floating-tooltip.tsx +9 -1
  284. package/src/components/ui/index.ts +1 -2
  285. package/src/components/ui/input-trigger.tsx +8 -1
  286. package/src/components/ui/input.tsx +8 -1
  287. package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +115 -0
  288. package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +95 -0
  289. package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +309 -0
  290. package/src/components/ui/markdown/__tests__/streaming.test.tsx +388 -0
  291. package/src/components/ui/markdown/base-components.tsx +360 -0
  292. package/src/components/ui/markdown/engine.tsx +315 -0
  293. package/src/components/ui/markdown/heading-ids.ts +239 -0
  294. package/src/components/ui/markdown/index.ts +49 -0
  295. package/src/components/ui/markdown/mermaid-diagram.tsx +291 -0
  296. package/src/components/ui/markdown/rich/embed-overrides.tsx +199 -0
  297. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +184 -0
  298. package/src/components/ui/markdown/rich/shortcodes.ts +170 -0
  299. package/src/components/ui/markdown/sanitize.ts +3499 -0
  300. package/src/components/ui/markdown/simple-markdown-renderer.tsx +28 -0
  301. package/src/components/ui/markdown/streaming.ts +362 -0
  302. package/src/components/ui/markdown/text-size.ts +106 -0
  303. package/src/components/ui/page-actions.tsx +142 -30
  304. package/src/components/ui/radio-group.tsx +28 -3
  305. package/src/components/ui/release-changelog-section.tsx +1 -1
  306. package/src/components/ui/search-input.tsx +2 -1
  307. package/src/components/ui/select.tsx +7 -0
  308. package/src/components/ui/tab-navigation.tsx +26 -4
  309. package/src/components/ui/tag-search-input.tsx +9 -2
  310. package/src/components/ui/textarea.tsx +8 -1
  311. package/src/components/ui/ticket-info-section.tsx +1 -1
  312. package/src/components/ui/truncate-text.tsx +3 -18
  313. package/src/hooks/ui/index.ts +1 -0
  314. package/src/hooks/ui/use-is-truncated.ts +66 -0
  315. package/src/utils/index.ts +1 -0
  316. package/src/utils/markdown-fences.ts +127 -0
  317. package/src/utils/markdown-heading-id.ts +348 -0
  318. package/src/utils/markdown-section-extractor.ts +41 -56
  319. package/dist/chunk-7I42V2OD.cjs.map +0 -1
  320. package/dist/chunk-AIRNG27G.js.map +0 -1
  321. package/dist/chunk-BIKOJ4FH.cjs.map +0 -1
  322. package/dist/chunk-BZMOEWWS.js.map +0 -1
  323. package/dist/chunk-GZK7FWJJ.js.map +0 -1
  324. package/dist/chunk-IEZ3YBAP.cjs.map +0 -1
  325. package/dist/chunk-OQIMH2WQ.js.map +0 -1
  326. package/dist/chunk-PB3BTZDU.js.map +0 -1
  327. package/dist/chunk-STYA77PH.cjs.map +0 -1
  328. package/dist/chunk-VUXNXWOQ.cjs.map +0 -1
  329. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +0 -6
  330. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +0 -1
  331. package/dist/components/chat/utils/chunk-parser.d.ts +0 -25
  332. package/dist/components/chat/utils/chunk-parser.d.ts.map +0 -1
  333. package/dist/components/ui/rich-markdown-renderer.d.ts +0 -34
  334. package/dist/components/ui/rich-markdown-renderer.d.ts.map +0 -1
  335. package/dist/components/ui/simple-markdown-renderer.d.ts +0 -73
  336. package/dist/components/ui/simple-markdown-renderer.d.ts.map +0 -1
  337. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +0 -77
  338. package/src/components/chat/hooks/use-realtime-chunk-processor.ts +0 -489
  339. package/src/components/chat/utils/.chunk-parser.md +0 -62
  340. package/src/components/chat/utils/chunk-parser.ts +0 -262
  341. package/src/components/ui/.simple-markdown-renderer.md +0 -52
  342. package/src/components/ui/rich-markdown-renderer.tsx +0 -1223
  343. package/src/components/ui/simple-markdown-renderer.tsx +0 -964
  344. /package/dist/{chunk-WLM3F3WU.js.map → chunk-34TDA22K.js.map} +0 -0
  345. /package/dist/{chunk-EGXCWZYP.js.map → chunk-3LKB722U.js.map} +0 -0
  346. /package/dist/{chunk-RW2LPL72.js.map → chunk-6WTCJI5R.js.map} +0 -0
  347. /package/dist/{chunk-VL2YMDPH.js.map → chunk-J3VBVR4W.js.map} +0 -0
  348. /package/dist/{chunk-6CJ2K7BD.js.map → chunk-MZRIRQYV.js.map} +0 -0
  349. /package/dist/{chunk-NGEFYPY7.js.map → chunk-NCAN6VUF.js.map} +0 -0
  350. /package/dist/{chunk-6QK3ONDD.js.map → chunk-OL3MJKUI.js.map} +0 -0
  351. /package/dist/{chunk-MPYDX5WX.js.map → chunk-PLB6CQSO.js.map} +0 -0
  352. /package/dist/{chunk-6CFFISUC.js.map → chunk-PTXZB2KW.js.map} +0 -0
  353. /package/dist/{chunk-VDZO6IDR.js.map → chunk-XOFE2RT4.js.map} +0 -0
@@ -132,7 +132,6 @@ export * from './ticket-attachments-list';
132
132
  export * from './ticket-note-card';
133
133
  export * from './ticket-notes-section';
134
134
  export * from './marquee-wall';
135
- export * from './simple-markdown-renderer';
136
- export { RichMarkdownRenderer, type RichMarkdownRendererProps } from './rich-markdown-renderer';
135
+ export * from './markdown';
137
136
  export * from './filter-pill-row';
138
137
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"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"}
@@ -153,7 +153,9 @@ import {
153
153
  CustomerInterviewCard,
154
154
  CustomerInterviewCardSkeleton,
155
155
  DEFAULT_CUSTOM_STATUS_COLOR,
156
+ DEFAULT_DIALOG_SIDE,
156
157
  DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
158
+ DEFAULT_MAX_REDUCERS,
157
159
  DashboardInfoCard,
158
160
  DataRoomDocCard,
159
161
  DataRoomDocCardSkeleton,
@@ -255,9 +257,11 @@ import {
255
257
  ListPageContainer,
256
258
  ListPageLayout,
257
259
  LoadError,
260
+ MAX_PENDING_RETAIN_KEYS,
258
261
  MESSAGE_ROLE,
259
262
  MESSAGE_TYPE,
260
263
  MarkdownEditor,
264
+ MarkdownEngine,
261
265
  MarqueeWall,
262
266
  MarqueeWallFades,
263
267
  MediaTypeSelector,
@@ -278,6 +282,7 @@ import {
278
282
  MenubarSubContent,
279
283
  MenubarSubTrigger,
280
284
  MenubarTrigger,
285
+ MermaidDiagram,
281
286
  MessageSegmentAccumulator,
282
287
  MingoChatHistory,
283
288
  MingoChatHistorySkeleton,
@@ -360,11 +365,13 @@ import {
360
365
  RoadmapCard,
361
366
  RoadmapCardSkeleton,
362
367
  RoadmapVoteButton,
368
+ SAFE_HTML_TAGS,
363
369
  SCROLL_ANCHOR,
364
370
  SCROLL_ANCHOR_WIRE_KEY,
365
371
  SECTION_HEADING_CLASS,
366
372
  SOURCE_ICON_NAMES,
367
373
  SOURCE_LABELS_BY_TABLE,
374
+ SVG_TAGS,
368
375
  SYNTHETIC_REALTIME_ID_PREFIXES,
369
376
  ScrollFadeOverlay,
370
377
  ScrollShadow,
@@ -404,6 +411,7 @@ import {
404
411
  StatusBadge,
405
412
  StatusIndicator,
406
413
  Switch,
414
+ TEXT_SIZE_PRESETS,
407
415
  TICKET_STATUS_COLOR_PRESETS,
408
416
  TITLE_BLOCK_MIN_HEIGHT,
409
417
  TabContent,
@@ -468,27 +476,39 @@ import {
468
476
  buildChatAttachmentViewUrl,
469
477
  buildChatRefKey,
470
478
  buildDiscussAddendum,
479
+ buildEffectiveTagSet,
480
+ buildHeadingIdMap,
471
481
  buildNatsWsUrl,
472
482
  buildProductReleaseCardProps,
483
+ buildSanitizeSchema,
473
484
  buildStreamFrames,
485
+ cardAwareUrlTransform,
474
486
  chatChipClass,
475
487
  clickupTaskUrl,
488
+ completeStreamingTail,
476
489
  computeHistoryPrepend,
477
490
  computeIsNewTab,
491
+ createChatDialogStore,
492
+ createChatStreamReducer,
478
493
  createColumnHelper,
494
+ createDeltaBatcher,
495
+ createEmptyTurnMeta,
479
496
  createMessageSegmentAccumulator,
480
497
  decideNewTab,
498
+ decodeHistoricalMessageData,
481
499
  defaultBuildProductReleaseCardProps,
482
500
  defaultTableIdForDocumentType,
483
501
  deriveColumns,
484
502
  escapeMarkdownInline,
503
+ escapeUnknownHtmlTags,
485
504
  executeNavigation,
486
505
  executeNavigationImperative,
487
506
  exportToCSV,
488
507
  extractEntityIdFilter,
489
508
  extractErrorMessages,
490
509
  extractIncompleteMessageState,
491
- extractTextFromChunk,
510
+ extractIncompleteTailState,
511
+ extractText,
492
512
  fetchEmptyStateConfig,
493
513
  fetchSlashCommands,
494
514
  flattenAssistantContent,
@@ -528,11 +548,8 @@ import {
528
548
  hideOnError,
529
549
  historicalToUnified,
530
550
  interleave,
531
- isControlChunk,
532
551
  isCrossOriginUrl,
533
- isErrorChunk,
534
552
  isHistoricalUserTurn,
535
- isMetadataChunk,
536
553
  isModifierClick,
537
554
  isQuickActionIconSpec,
538
555
  isStructuredContent,
@@ -548,12 +565,13 @@ import {
548
565
  normalizeContent,
549
566
  normalizeHistoricalMessageData,
550
567
  normalizeIconKey,
551
- parseChunkToAction,
552
568
  parseScrollAnchor,
553
569
  parseWireCommandOverride,
554
570
  processHistoricalMessages,
555
571
  processHistoricalMessagesWithErrors,
572
+ processShortcodes,
556
573
  programItemToStripProfile,
574
+ rehypeStripUnsafe,
557
575
  remarkCardLinks,
558
576
  remarkMentionChips,
559
577
  renderChatInlineEntityCard,
@@ -563,9 +581,11 @@ import {
563
581
  resolveSourceIcon,
564
582
  resolveSourceRowCTA,
565
583
  resolveStatusTagProps,
584
+ resolveTextSizeConfig,
566
585
  resolveTicketStatus,
567
586
  safeHref,
568
587
  sanitizeTitleForChat,
588
+ splitStreamingBlocks,
569
589
  statusBadgeVariants,
570
590
  stripChatAttachmentMarkdown,
571
591
  stripSameOriginToPath,
@@ -580,6 +600,7 @@ import {
580
600
  useChatAttachments,
581
601
  useChatCardItem,
582
602
  useChatIdentity,
603
+ useChatStreamReducer,
583
604
  useChunkCatchup,
584
605
  useCloseOnNavigation,
585
606
  useCollapsible,
@@ -587,13 +608,13 @@ import {
587
608
  useDataTable,
588
609
  useDataTableContext,
589
610
  useEmptyStateConfig,
611
+ useHeadingIdMap,
590
612
  useJetStreamDialogSubscription,
591
613
  useMarqueeSync,
592
614
  useNatsChatAdapter,
593
615
  useNatsDialogSubscription,
594
616
  usePageActionsBottomPadding,
595
617
  useProxiedImageUrl,
596
- useRealtimeChunkProcessor,
597
618
  useSSE,
598
619
  useScriptedStream,
599
620
  useScrollFade,
@@ -603,7 +624,7 @@ import {
603
624
  useTestRunState,
604
625
  useUnifiedChat,
605
626
  usesCanonicalStatusStyle
606
- } from "../../chunk-OQIMH2WQ.js";
627
+ } from "../../chunk-MEMRQTOI.js";
607
628
  import {
608
629
  CommandApprovalToast,
609
630
  ToastCard,
@@ -618,7 +639,7 @@ import {
618
639
  setEmbedProxyAuth,
619
640
  showCommandApprovalToast,
620
641
  showToast
621
- } from "../../chunk-PB3BTZDU.js";
642
+ } from "../../chunk-WEUNPE3S.js";
622
643
  import "../../chunk-OYGFWWLQ.js";
623
644
  import "../../chunk-6GT557KN.js";
624
645
  import "../../chunk-7EUIW46X.js";
@@ -655,7 +676,7 @@ import {
655
676
  SkeletonText,
656
677
  SplitButton,
657
678
  buttonVariants
658
- } from "../../chunk-GZK7FWJJ.js";
679
+ } from "../../chunk-QKWOBV55.js";
659
680
  import "../../chunk-6U3IUD57.js";
660
681
  import "../../chunk-OHPI2HRK.js";
661
682
  import "../../chunk-SZMA65OW.js";
@@ -819,7 +840,9 @@ export {
819
840
  CustomerInterviewCard,
820
841
  CustomerInterviewCardSkeleton,
821
842
  DEFAULT_CUSTOM_STATUS_COLOR,
843
+ DEFAULT_DIALOG_SIDE,
822
844
  DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
845
+ DEFAULT_MAX_REDUCERS,
823
846
  DashboardInfoCard,
824
847
  DataRoomDocCard,
825
848
  DataRoomDocCardSkeleton,
@@ -940,9 +963,11 @@ export {
940
963
  LoadError,
941
964
  CheckCircleIcon as LucideCheckCircleIcon,
942
965
  XIcon as LucideXIcon,
966
+ MAX_PENDING_RETAIN_KEYS,
943
967
  MESSAGE_ROLE,
944
968
  MESSAGE_TYPE,
945
969
  MarkdownEditor,
970
+ MarkdownEngine,
946
971
  MarqueeWall,
947
972
  MarqueeWallFades,
948
973
  MediaTypeSelector,
@@ -962,6 +987,7 @@ export {
962
987
  MenubarSubContent,
963
988
  MenubarSubTrigger,
964
989
  MenubarTrigger,
990
+ MermaidDiagram,
965
991
  MessageSegmentAccumulator,
966
992
  MingoChatHistory,
967
993
  MingoChatHistorySkeleton,
@@ -1044,11 +1070,13 @@ export {
1044
1070
  RoadmapCard,
1045
1071
  RoadmapCardSkeleton,
1046
1072
  RoadmapVoteButton,
1073
+ SAFE_HTML_TAGS,
1047
1074
  SCROLL_ANCHOR,
1048
1075
  SCROLL_ANCHOR_WIRE_KEY,
1049
1076
  SECTION_HEADING_CLASS,
1050
1077
  SOURCE_ICON_NAMES,
1051
1078
  SOURCE_LABELS_BY_TABLE,
1079
+ SVG_TAGS,
1052
1080
  SYNTHETIC_REALTIME_ID_PREFIXES,
1053
1081
  ScrollFadeOverlay,
1054
1082
  ScrollShadow,
@@ -1097,6 +1125,7 @@ export {
1097
1125
  StatusBadge,
1098
1126
  StatusIndicator,
1099
1127
  Switch,
1128
+ TEXT_SIZE_PRESETS,
1100
1129
  TICKET_STATUS_COLOR_PRESETS,
1101
1130
  TITLE_BLOCK_MIN_HEIGHT,
1102
1131
  TabContent,
@@ -1163,31 +1192,43 @@ export {
1163
1192
  buildChatAttachmentViewUrl,
1164
1193
  buildChatRefKey,
1165
1194
  buildDiscussAddendum,
1195
+ buildEffectiveTagSet,
1196
+ buildHeadingIdMap,
1166
1197
  buildNatsWsUrl,
1167
1198
  buildProductReleaseCardProps,
1199
+ buildSanitizeSchema,
1168
1200
  buildStreamFrames,
1169
1201
  buttonVariants,
1202
+ cardAwareUrlTransform,
1170
1203
  embedAuthedFetch as chatAuthedFetch,
1171
1204
  chatChipClass,
1172
1205
  clearEmbedProxyAuth as clearChatProxyAuth,
1173
1206
  clickupTaskUrl,
1207
+ completeStreamingTail,
1174
1208
  computeHistoryPrepend,
1175
1209
  computeIsNewTab,
1210
+ createChatDialogStore,
1211
+ createChatStreamReducer,
1176
1212
  createColumnHelper,
1213
+ createDeltaBatcher,
1214
+ createEmptyTurnMeta,
1177
1215
  createMessageSegmentAccumulator,
1178
1216
  decideNewTab,
1217
+ decodeHistoricalMessageData,
1179
1218
  defaultBuildProductReleaseCardProps,
1180
1219
  defaultTableIdForDocumentType,
1181
1220
  deriveColumns,
1182
1221
  dotColorByVariant,
1183
1222
  escapeMarkdownInline,
1223
+ escapeUnknownHtmlTags,
1184
1224
  executeNavigation,
1185
1225
  executeNavigationImperative,
1186
1226
  exportToCSV,
1187
1227
  extractEntityIdFilter,
1188
1228
  extractErrorMessages,
1189
1229
  extractIncompleteMessageState,
1190
- extractTextFromChunk,
1230
+ extractIncompleteTailState,
1231
+ extractText,
1191
1232
  fetchEmptyStateConfig,
1192
1233
  fetchSlashCommands,
1193
1234
  flattenAssistantContent,
@@ -1229,11 +1270,8 @@ export {
1229
1270
  hideOnError,
1230
1271
  historicalToUnified,
1231
1272
  interleave,
1232
- isControlChunk,
1233
1273
  isCrossOriginUrl,
1234
- isErrorChunk,
1235
1274
  isHistoricalUserTurn,
1236
- isMetadataChunk,
1237
1275
  isModifierClick,
1238
1276
  isQuickActionIconSpec,
1239
1277
  isStructuredContent,
@@ -1249,13 +1287,14 @@ export {
1249
1287
  normalizeContent,
1250
1288
  normalizeHistoricalMessageData,
1251
1289
  normalizeIconKey,
1252
- parseChunkToAction,
1253
1290
  parseScrollAnchor,
1254
1291
  parseWireCommandOverride,
1255
1292
  processHistoricalMessages,
1256
1293
  processHistoricalMessagesWithErrors,
1294
+ processShortcodes,
1257
1295
  programItemToStripProfile,
1258
1296
  progressColorByVariant,
1297
+ rehypeStripUnsafe,
1259
1298
  remarkCardLinks,
1260
1299
  remarkMentionChips,
1261
1300
  renderChatInlineEntityCard,
@@ -1265,12 +1304,14 @@ export {
1265
1304
  resolveSourceIcon,
1266
1305
  resolveSourceRowCTA,
1267
1306
  resolveStatusTagProps,
1307
+ resolveTextSizeConfig,
1268
1308
  resolveTicketStatus,
1269
1309
  safeHref,
1270
1310
  sanitizeTitleForChat,
1271
1311
  setEmbedProxyAuth as setChatProxyAuth,
1272
1312
  showCommandApprovalToast,
1273
1313
  showToast,
1314
+ splitStreamingBlocks,
1274
1315
  statusBadgeVariants,
1275
1316
  stripChatAttachmentMarkdown,
1276
1317
  stripSameOriginToPath,
@@ -1285,6 +1326,7 @@ export {
1285
1326
  useChatAttachments,
1286
1327
  useChatCardItem,
1287
1328
  useChatIdentity,
1329
+ useChatStreamReducer,
1288
1330
  useChunkCatchup,
1289
1331
  useCloseOnNavigation,
1290
1332
  useCollapsible,
@@ -1293,13 +1335,13 @@ export {
1293
1335
  useDataTableContext,
1294
1336
  useSseChatAdapter as useEmbeddedChat,
1295
1337
  useEmptyStateConfig,
1338
+ useHeadingIdMap,
1296
1339
  useJetStreamDialogSubscription,
1297
1340
  useMarqueeSync,
1298
1341
  useNatsChatAdapter,
1299
1342
  useNatsDialogSubscription,
1300
1343
  usePageActionsBottomPadding,
1301
1344
  useProxiedImageUrl,
1302
- useRealtimeChunkProcessor,
1303
1345
  useSSE,
1304
1346
  useScriptedStream,
1305
1347
  useScrollFade,
@@ -1 +1 @@
1
- {"version":3,"file":"input-trigger.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input-trigger.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,iBAChB,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,6FAiDxB,CAAC"}
1
+ {"version":3,"file":"input-trigger.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input-trigger.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,iBAChB,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY,6FAwDxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC7E,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,wDAAwD;IACxD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;8EAC0E;IAC1E,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACzD,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,QAAA,MAAM,KAAK,qFAwGV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/ui/input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,MAAM,WAAW,UAAW,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC7E,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,wDAAwD;IACxD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;8EAC0E;IAC1E,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACzD,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,QAAA,MAAM,KAAK,qFA+GV,CAAA;AAGD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { Components } from 'react-markdown';
2
+ import type { ResolveLinkResult } from '../../../types/doc-source';
3
+ import type { TextSizeElement } from './text-size';
4
+ export declare function hasRenderableSrc(src: unknown): src is string;
5
+ export interface BuildBaseComponentsOptions {
6
+ textSizes: Record<TextSizeElement, string>;
7
+ demoteMarkdownH1ToH2: boolean;
8
+ brokenLinks: readonly string[];
9
+ currentPath?: string;
10
+ onInternalLinkClick?: (path: string, options?: {
11
+ expandFolder?: boolean;
12
+ fromInternalLink?: boolean;
13
+ }) => void;
14
+ onResolveLink?: (href: string, currentPath: string) => Promise<ResolveLinkResult>;
15
+ }
16
+ /**
17
+ * The standard leaf renderers (`code` block + inline, `blockquote`, `div`
18
+ * pass-through) as standalone functions.
19
+ *
20
+ * SSOT for compositions that must OVERRIDE these renderers for a narrow
21
+ * special case and then fall through: the rich composition intercepts embed
22
+ * fence languages, shortcode-expanded `div`s and Reddit's `reddit-embed-bq`
23
+ * blockquote, and delegates everything else here. Previously it reproduced
24
+ * these renderers byte-for-byte, so any class change here silently drifted
25
+ * on content surfaces.
26
+ *
27
+ * THESE MUST STAY HOOK-FREE: the rich composition calls them as plain
28
+ * functions from inside its own renderers (`standard.code(props)`), which is
29
+ * not a React render of a component and would break the rules of hooks.
30
+ * Hook-using renderers (the headings, which read the heading-line offset
31
+ * from context) live in `buildBaseComponents` below and are never delegated
32
+ * to this way.
33
+ *
34
+ * ODS-TOKENS FLAG (ODS_TOKEN_RULES §Typography / §General): inline code keeps
35
+ * an inline `text-[0.9em]`, carried over verbatim from the pre-unification
36
+ * renderers — ODS has no relative-to-parent code size, so mapping it onto an
37
+ * existing token would visibly change every inline code span. Same shape as
38
+ * the flag in ./text-size.ts — flagged for addition to ODS, not copied
39
+ * anywhere else.
40
+ *
41
+ * The code BLOCK's font is NOT flagged: the raw "JetBrains Mono", "SF Mono",
42
+ * Consolas stack the old renderer inlined is gone, replaced by Tailwind's
43
+ * `font-mono` (→ `var(--font-family-heading)`, the Azeret Mono ODS stack) —
44
+ * the same class the inline-code branch below already used, so the two code
45
+ * surfaces no longer disagree about their family.
46
+ */
47
+ export declare function buildStandardLeafRenderers({ textSizes, }: {
48
+ textSizes: Record<TextSizeElement, string>;
49
+ }): Pick<Components, 'code' | 'blockquote' | 'div'>;
50
+ export declare function buildBaseComponents({ textSizes, demoteMarkdownH1ToH2, brokenLinks, currentPath: propCurrentPath, onInternalLinkClick, onResolveLink, }: BuildBaseComponentsOptions): Components;
51
+ //# sourceMappingURL=base-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-components.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/markdown/base-components.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA4CnD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAE5D;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC3C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,GACV,EAAE;IACD,SAAS,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;CAC5C,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,KAAK,CAAC,CA4DlD;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,oBAAoB,EACpB,WAAW,EACX,WAAW,EAAE,eAAe,EAC5B,mBAAmB,EACnB,aAAa,GACd,EAAE,0BAA0B,GAAG,UAAU,CAwLzC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * MarkdownEngine — THE one react-markdown pipeline for every surface
3
+ * (chat messages, blog, docs, KB articles, legal, releases, admin previews).
4
+ *
5
+ * `SimpleMarkdownRenderer` and `RichMarkdownRenderer` are thin compositions
6
+ * over this engine (see ./simple-markdown-renderer.tsx and ./rich/) — there
7
+ * is exactly ONE parse path, ONE sanitizer stack, ONE mermaid, ONE
8
+ * heading-id algorithm, ONE link-click model. Do not fork this pipeline;
9
+ * extend via `componentOverrides` / `additionalRemarkPlugins` /
10
+ * `preprocessContent` / `extraAllowedHtmlTags`.
11
+ *
12
+ * Pipeline order (each stage documented in ./sanitize.ts):
13
+ * preprocessContent (composition hook, e.g. shortcodes)
14
+ * → completeStreamingTail (streaming only — MUST precede the escape pass)
15
+ * → escapeUnknownHtmlTags (text pre-pass, React 19 crash guard)
16
+ * → remark: remarkGfm, remarkBreaks, ...additionalRemarkPlugins
17
+ * → rehype: rehypeRaw → rehypeSanitize(schema) → rehypeStripUnsafe
18
+ * → rehypeHighlight
19
+ * → urlTransform: cardAwareUrlTransform
20
+ * → components: buildBaseComponents(...) spread-last componentOverrides
21
+ */
22
+ import React from 'react';
23
+ import { type Components } from 'react-markdown';
24
+ import type { PluggableList } from 'unified';
25
+ import type { ResolveLinkResult } from '../../../types/doc-source';
26
+ import { type TextSizeConfig } from './text-size';
27
+ import { type HeadingSection } from './heading-ids';
28
+ export type { ResolveLinkResult };
29
+ /**
30
+ * Module-scope empty default for `brokenLinks`.
31
+ *
32
+ * A `brokenLinks = []` DEFAULT PARAMETER allocates a fresh array on every
33
+ * render, so the `components` useMemo (which lists it as a dep) recomputed
34
+ * every render, which changed `StreamingBlockRenderer`'s `components` prop
35
+ * identity, which made its `memo` bail EVERY time — every completed block
36
+ * re-parsed on every streamed token, defeating the entire atomic-block
37
+ * optimization. Any new default that is an object/array/function MUST be
38
+ * hoisted here for the same reason.
39
+ *
40
+ * Exported so the compositions that apply the SAME default before handing
41
+ * props down (rich) share this ONE identity instead of declaring a second
42
+ * module-scope empty array with a copy of this rationale. Deliberately NOT
43
+ * re-exported from ./index — it is an internal identity contract between the
44
+ * engine and its compositions, not public API.
45
+ */
46
+ export declare const NO_BROKEN_LINKS: readonly string[];
47
+ export interface MarkdownEngineProps {
48
+ content: string;
49
+ className?: string;
50
+ /** Backend-provided heading IDs for deep-link anchors */
51
+ sectionIds?: HeadingSection[];
52
+ /** When the page already has an H1, render markdown `#` as `<h2>` */
53
+ demoteMarkdownH1ToH2?: boolean;
54
+ /** List of broken link hrefs detected server-side (shown with [BROKEN] badge) */
55
+ brokenLinks?: readonly string[];
56
+ /** Callback for internal (non-http, non-anchor) link clicks */
57
+ onInternalLinkClick?: (path: string, options?: {
58
+ expandFolder?: boolean;
59
+ fromInternalLink?: boolean;
60
+ }) => void;
61
+ /** Current documentation path — enables internal-link mode when set */
62
+ currentPath?: string;
63
+ /** Resolve an internal link href to a navigation path. */
64
+ onResolveLink?: (href: string, currentPath: string) => Promise<ResolveLinkResult>;
65
+ /** Pre-process the raw markdown string before rendering (e.g. shortcode expansion) */
66
+ preprocessContent?: (content: string) => string;
67
+ /** Merge additional or override react-markdown component renderers (spread LAST — caller wins) */
68
+ componentOverrides?: Partial<Components>;
69
+ /** Extra remark plugins appended after the built-in remarkGfm + remarkBreaks */
70
+ additionalRemarkPlugins?: PluggableList;
71
+ /** Text sizing preset / per-element overrides */
72
+ textSize?: TextSizeConfig;
73
+ /**
74
+ * Extra raw-HTML tags this composition admits. Unioned into BOTH the
75
+ * text pre-pass allowlist AND the sanitize schema together (the
76
+ * coupled-allowlist invariant — see ./sanitize.ts).
77
+ */
78
+ extraAllowedHtmlTags?: string[];
79
+ /**
80
+ * Set true for the actively streaming message ONLY. Enables atomic-block
81
+ * memoization + fence tail-completion + an aria-live wrapper. The caller
82
+ * MUST flip back to false on completion — that final render is one
83
+ * authoritative whole-document parse (block cache discarded), so
84
+ * streaming can never permanently diverge from the settled output.
85
+ */
86
+ streaming?: boolean;
87
+ }
88
+ /**
89
+ * Memoized so a parent re-render with UNCHANGED props (same `content`
90
+ * string, same memoized `componentOverrides`/plugins) does NOT re-parse the
91
+ * markdown. Re-parsing rebuilds the entire react-markdown subtree, which
92
+ * RE-MOUNTS any embedded inline entity cards — closing their open menus and
93
+ * re-triggering their fetch on every chat re-render (streaming chunk AND
94
+ * scroll). With stable props the renderer bails, so completed messages'
95
+ * cards stay mounted. The streaming path additionally memoizes completed
96
+ * atomic blocks so the in-flight message re-parses only its live tail.
97
+ */
98
+ export declare const MarkdownEngine: React.NamedExoticComponent<MarkdownEngineProps>;
99
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/markdown/engine.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAM7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQnE,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAIvB,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAAO,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,qEAAqE;IACrE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,iFAAiF;IACjF,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,+DAA+D;IAC/D,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/G,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClF,sFAAsF;IACtF,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,gFAAgF;IAChF,uBAAuB,CAAC,EAAE,aAAa,CAAC;IACxC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAqMD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,iDAA2B,CAAC"}
@@ -0,0 +1,65 @@
1
+ export interface HeadingSection {
2
+ id: string;
3
+ title: string;
4
+ level: number;
5
+ }
6
+ /** `line (1-based, document-wide) → heading id`. */
7
+ export type HeadingIdMap = ReadonlyMap<number, string>;
8
+ /**
9
+ * Line offset added to unit-relative hast positions. Non-zero only on the
10
+ * streaming path, where each atomic unit is parsed by its own
11
+ * `ReactMarkdown` (see `StreamingBlock.startLine`).
12
+ */
13
+ export declare const HeadingLineOffsetContext: import("react").Context<number>;
14
+ /**
15
+ * The document's heading-id map, delivered by CONTEXT rather than baked into
16
+ * the react-markdown `components` map on purpose: the map is rebuilt on every
17
+ * streamed token (its input is the growing `processedContent`), so listing it
18
+ * as a `components` memo dep would change that map's identity each token and
19
+ * make every completed streaming block's `memo` bail — the exact regression
20
+ * `NO_BROKEN_LINKS` was introduced to fix. Through context only the heading
21
+ * renderers re-render.
22
+ */
23
+ export declare const HeadingIdMapContext: import("react").Context<HeadingIdMap>;
24
+ /** Look up the pre-computed id for a heading hast node. Pure. */
25
+ export declare function useHeadingId(node: any): string | undefined;
26
+ /**
27
+ * Build the document's `line → id` map. Pure: same content + same
28
+ * `sectionIds` always yields the same map.
29
+ */
30
+ export declare function buildHeadingIdMap(content: string, sectionIds?: HeadingSection[]): HeadingIdMap;
31
+ /**
32
+ * Memoized `buildHeadingIdMap` for the engine, with the map's IDENTITY held
33
+ * stable across content changes that don't touch any heading.
34
+ *
35
+ * `content` changes on every streamed token, so the `useMemo` alone rebuilt
36
+ * a fresh `Map` per token; that map is the context value, so EVERY heading
37
+ * consumer in every already-completed block re-rendered on every token —
38
+ * the same identity-churn class `NO_BROKEN_LINKS` exists to prevent, just
39
+ * one layer down. Rebuilding is cheap; re-rendering the consumers is not, so
40
+ * the newly built map is compared to the previous one and the previous
41
+ * object is returned when the entries match.
42
+ */
43
+ export declare function useHeadingIdMap(content: string, sectionIds?: HeadingSection[]): HeadingIdMap;
44
+ /**
45
+ * Fallback id for a heading the source scan could NOT see — in practice only
46
+ * a heading synthesized by a caller remark/rehype plugin, which carries no
47
+ * source position. (Setext, blockquote/list-nested ATX and multiple raw
48
+ * `<hN>`s on one line are all scanned now, so they no longer land here.)
49
+ *
50
+ * Routed through the SAME dedupe shape as the map so a fallback id can never
51
+ * collide with an assigned one. It stays PURE — `taken` is derived from the
52
+ * map, not from render order — which is why two position-less headings with
53
+ * IDENTICAL text still collide with each other: disambiguating those would
54
+ * require the shared mutable counter this module deleted.
55
+ */
56
+ export declare function resolveFallbackHeadingId(base: string, taken: ReadonlySet<string>): string;
57
+ /**
58
+ * The ids already assigned by the document's heading-id map. Cached per map
59
+ * IDENTITY, which `useHeadingIdMap` now keeps stable across heading-free
60
+ * token growth — so this is O(headings) once, not per heading per token.
61
+ */
62
+ export declare function useAssignedHeadingIds(): ReadonlySet<string>;
63
+ /** Extract plain text from React children (headings receive mixed nodes). */
64
+ export declare function extractText(node: any): string;
65
+ //# sourceMappingURL=heading-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading-ids.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/markdown/heading-ids.ts"],"names":[],"mappings":"AAoCA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAUtD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,iCAAmB,CAAA;AAIxD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,uCAAiD,CAAA;AAEjF,iEAAiE;AAEjE,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAK1D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,cAAc,EAAE,GAC5B,YAAY,CAoEd;AAYD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,cAAc,EAAE,GAC5B,YAAY,CAQd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAMzF;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CAAC,MAAM,CAAC,CAO3D;AAED,6EAA6E;AAE7E,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAK7C"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Unified markdown module — public surface.
3
+ *
4
+ * ONE engine (`MarkdownEngine`), two named compositions:
5
+ * - `SimpleMarkdownRenderer` — chat/doc surfaces (embed-free bundle)
6
+ * - `RichMarkdownRenderer` — authored-content surfaces (shortcodes,
7
+ * social embeds, Video SSOT, OG previews)
8
+ */
9
+ export { MarkdownEngine, type MarkdownEngineProps } from './engine';
10
+ export { SimpleMarkdownRenderer, type SimpleMarkdownRendererProps, type ResolveLinkResult, } from './simple-markdown-renderer';
11
+ export { RichMarkdownRenderer, type RichMarkdownRendererProps, } from './rich/rich-markdown-renderer';
12
+ export { processShortcodes } from './rich/shortcodes';
13
+ export { SAFE_HTML_TAGS, SVG_TAGS, buildEffectiveTagSet, buildSanitizeSchema, cardAwareUrlTransform, escapeUnknownHtmlTags, rehypeStripUnsafe, } from './sanitize';
14
+ export { TEXT_SIZE_PRESETS, resolveTextSizeConfig, type TextSizeConfig, type TextSizeClassMap, type TextSizeElement, type TextSizePreset, } from './text-size';
15
+ export { MermaidDiagram } from './mermaid-diagram';
16
+ export { buildHeadingIdMap, useHeadingIdMap, extractText, type HeadingSection, type HeadingIdMap, } from './heading-ids';
17
+ export { splitStreamingBlocks, completeStreamingTail, type StreamingBlock } from './streaming';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,KAAK,yBAAyB,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,cAAc,EACd,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,KAAK,cAAc,EACnB,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}