@flamingo-stack/openframe-frontend-core 0.0.507 → 0.0.508-snapshot.20260802192916

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 (310) 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 +216 -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 +506 -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 +490 -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-3SQ5KXHQ.cjs → chunk-2T4GTV25.cjs} +9 -9
  22. package/dist/{chunk-3SQ5KXHQ.cjs.map → chunk-2T4GTV25.cjs.map} +1 -1
  23. package/dist/{chunk-CWAOV2FK.cjs → chunk-3CGZPAGR.cjs} +3 -3
  24. package/dist/{chunk-CWAOV2FK.cjs.map → chunk-3CGZPAGR.cjs.map} +1 -1
  25. package/dist/{chunk-TLMJHMXJ.js → chunk-3QSR22IC.js} +12 -12
  26. package/dist/chunk-3QSR22IC.js.map +1 -0
  27. package/dist/{chunk-TWYNR4TZ.cjs → chunk-4G5TLHJD.cjs} +7141 -4799
  28. package/dist/chunk-4G5TLHJD.cjs.map +1 -0
  29. package/dist/{chunk-ADPMHWOE.js → chunk-72XAID7Y.js} +4 -4
  30. package/dist/{chunk-PAGKRNWK.js → chunk-7WZHBQ4J.js} +2 -2
  31. package/dist/{chunk-OCEKO5CW.js → chunk-AEELJC4N.js} +12106 -9764
  32. package/dist/chunk-AEELJC4N.js.map +1 -0
  33. package/dist/{chunk-Z42BGM6Q.cjs → chunk-BT2WWDFP.cjs} +5 -5
  34. package/dist/{chunk-Z42BGM6Q.cjs.map → chunk-BT2WWDFP.cjs.map} +1 -1
  35. package/dist/{chunk-7LEL3RIX.cjs → chunk-C7OY3PQP.cjs} +11 -11
  36. package/dist/{chunk-7LEL3RIX.cjs.map → chunk-C7OY3PQP.cjs.map} +1 -1
  37. package/dist/{chunk-RHGGEKPQ.cjs → chunk-CIOLOQKQ.cjs} +4 -4
  38. package/dist/{chunk-RHGGEKPQ.cjs.map → chunk-CIOLOQKQ.cjs.map} +1 -1
  39. package/dist/{chunk-TSZHM74B.js → chunk-DC2TKS7C.js} +2 -2
  40. package/dist/{chunk-M2GOR3XQ.cjs → chunk-DYPYR7FR.cjs} +87 -87
  41. package/dist/{chunk-M2GOR3XQ.cjs.map → chunk-DYPYR7FR.cjs.map} +1 -1
  42. package/dist/{chunk-I64ABCDX.js → chunk-I2B6X77L.js} +2 -2
  43. package/dist/{chunk-NIZDKTGL.cjs → chunk-K5MSCMDK.cjs} +37 -37
  44. package/dist/{chunk-NIZDKTGL.cjs.map → chunk-K5MSCMDK.cjs.map} +1 -1
  45. package/dist/{chunk-DTYRYB2N.js → chunk-K6QTZ7CZ.js} +2 -2
  46. package/dist/{chunk-4LTMXDUS.js → chunk-KBN7PMFT.js} +2 -2
  47. package/dist/{chunk-TBMV7I5N.js → chunk-KXZO2WZX.js} +2 -2
  48. package/dist/{chunk-QTYZMP6D.cjs → chunk-LBAKLT6T.cjs} +62 -62
  49. package/dist/chunk-LBAKLT6T.cjs.map +1 -0
  50. package/dist/{chunk-KEBYLU3U.js → chunk-LFUPI7VX.js} +2 -2
  51. package/dist/{chunk-LDTR4IVZ.cjs → chunk-M37PBG4N.cjs} +31 -31
  52. package/dist/{chunk-LDTR4IVZ.cjs.map → chunk-M37PBG4N.cjs.map} +1 -1
  53. package/dist/{chunk-WA7RR64F.js → chunk-PO5O654H.js} +6 -5
  54. package/dist/chunk-PO5O654H.js.map +1 -0
  55. package/dist/{chunk-WK4N5VBX.cjs → chunk-QJJISLPA.cjs} +28 -27
  56. package/dist/chunk-QJJISLPA.cjs.map +1 -0
  57. package/dist/{chunk-2F44PLTV.cjs → chunk-T7MCSA55.cjs} +26 -26
  58. package/dist/{chunk-2F44PLTV.cjs.map → chunk-T7MCSA55.cjs.map} +1 -1
  59. package/dist/{chunk-WJQHJD7J.js → chunk-TWSKTJHW.js} +2 -2
  60. package/dist/{chunk-ZSQHZYCO.cjs → chunk-UQDMJ6DH.cjs} +13 -13
  61. package/dist/{chunk-ZSQHZYCO.cjs.map → chunk-UQDMJ6DH.cjs.map} +1 -1
  62. package/dist/{chunk-TZRUCD56.js → chunk-V3ZAAFE3.js} +5 -5
  63. package/dist/{chunk-LRGHJPET.js → chunk-XGIFOHKE.js} +2 -2
  64. package/dist/{chunk-POOMO3PA.cjs → chunk-YQEPRYT5.cjs} +7 -7
  65. package/dist/{chunk-POOMO3PA.cjs.map → chunk-YQEPRYT5.cjs.map} +1 -1
  66. package/dist/components/case-studies/index.cjs +8 -8
  67. package/dist/components/case-studies/index.js +2 -2
  68. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  69. package/dist/components/chat/chat-message-list.d.ts.map +1 -1
  70. package/dist/components/chat/hooks/index.d.ts +0 -1
  71. package/dist/components/chat/hooks/index.d.ts.map +1 -1
  72. package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
  73. package/dist/components/chat/hooks/use-chunk-catchup.d.ts.map +1 -1
  74. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +15 -48
  75. package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
  76. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +10 -57
  77. package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
  78. package/dist/components/chat/index.cjs +10 -2
  79. package/dist/components/chat/index.cjs.map +1 -1
  80. package/dist/components/chat/index.d.ts +1 -0
  81. package/dist/components/chat/index.d.ts.map +1 -1
  82. package/dist/components/chat/index.js +21 -13
  83. package/dist/components/chat/stream/chat-dialog-store.d.ts +184 -0
  84. package/dist/components/chat/stream/chat-dialog-store.d.ts.map +1 -0
  85. package/dist/components/chat/stream/chat-stream-reducer.d.ts +380 -0
  86. package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -0
  87. package/dist/components/chat/stream/delta-batcher.d.ts +51 -0
  88. package/dist/components/chat/stream/delta-batcher.d.ts.map +1 -0
  89. package/dist/components/chat/stream/index.d.ts +17 -0
  90. package/dist/components/chat/stream/index.d.ts.map +1 -0
  91. package/dist/components/chat/stream/message-mutations.d.ts +77 -0
  92. package/dist/components/chat/stream/message-mutations.d.ts.map +1 -0
  93. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +22 -0
  94. package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +1 -0
  95. package/dist/components/chat/types/api.types.d.ts +1 -81
  96. package/dist/components/chat/types/api.types.d.ts.map +1 -1
  97. package/dist/components/chat/types/processing.types.d.ts +2 -93
  98. package/dist/components/chat/types/processing.types.d.ts.map +1 -1
  99. package/dist/components/chat/types/unified-chat-state.types.d.ts +15 -0
  100. package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -1
  101. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +34 -6
  102. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  103. package/dist/components/chat/utils/history-merge.d.ts.map +1 -1
  104. package/dist/components/chat/utils/index.d.ts +2 -3
  105. package/dist/components/chat/utils/index.d.ts.map +1 -1
  106. package/dist/components/chat/utils/process-historical-messages.d.ts +59 -11
  107. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  108. package/dist/components/contact/index.cjs +3 -3
  109. package/dist/components/contact/index.js +2 -2
  110. package/dist/components/docs/index.cjs +5 -5
  111. package/dist/components/docs/index.js +4 -4
  112. package/dist/components/embeds/index.cjs +3 -3
  113. package/dist/components/embeds/index.js +2 -2
  114. package/dist/components/faq/index.cjs +3 -3
  115. package/dist/components/faq/index.js +2 -2
  116. package/dist/components/features/index.cjs +2 -2
  117. package/dist/components/features/index.js +1 -1
  118. package/dist/components/help-center-pages/index.cjs +22 -22
  119. package/dist/components/help-center-pages/index.js +13 -13
  120. package/dist/components/index.cjs +174 -132
  121. package/dist/components/index.cjs.map +1 -1
  122. package/dist/components/index.js +65 -23
  123. package/dist/components/index.js.map +1 -1
  124. package/dist/components/meeting-scheduler/directory.d.ts.map +1 -1
  125. package/dist/components/meeting-scheduler/index.cjs +35 -35
  126. package/dist/components/meeting-scheduler/index.cjs.map +1 -1
  127. package/dist/components/meeting-scheduler/index.js +5 -5
  128. package/dist/components/meeting-scheduler/index.js.map +1 -1
  129. package/dist/components/navigation/index.cjs +2 -2
  130. package/dist/components/navigation/index.js +1 -1
  131. package/dist/components/onboarding-guides/index.cjs +5 -5
  132. package/dist/components/onboarding-guides/index.js +4 -4
  133. package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
  134. package/dist/components/related-content/index.cjs +3 -3
  135. package/dist/components/related-content/index.js +2 -2
  136. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  137. package/dist/components/tickets/index.cjs +6 -6
  138. package/dist/components/tickets/index.js +5 -5
  139. package/dist/components/ui/index.cjs +44 -2
  140. package/dist/components/ui/index.cjs.map +1 -1
  141. package/dist/components/ui/index.d.ts +1 -2
  142. package/dist/components/ui/index.d.ts.map +1 -1
  143. package/dist/components/ui/index.js +55 -13
  144. package/dist/components/ui/markdown/base-components.d.ts +51 -0
  145. package/dist/components/ui/markdown/base-components.d.ts.map +1 -0
  146. package/dist/components/ui/markdown/engine.d.ts +99 -0
  147. package/dist/components/ui/markdown/engine.d.ts.map +1 -0
  148. package/dist/components/ui/markdown/heading-ids.d.ts +65 -0
  149. package/dist/components/ui/markdown/heading-ids.d.ts.map +1 -0
  150. package/dist/components/ui/markdown/index.d.ts +18 -0
  151. package/dist/components/ui/markdown/index.d.ts.map +1 -0
  152. package/dist/components/ui/markdown/mermaid-diagram.d.ts +79 -0
  153. package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -0
  154. package/dist/components/ui/markdown/rich/embed-overrides.d.ts +14 -0
  155. package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -0
  156. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +40 -0
  157. package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -0
  158. package/dist/components/ui/markdown/rich/shortcodes.d.ts +8 -0
  159. package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +1 -0
  160. package/dist/components/ui/markdown/sanitize.d.ts +153 -0
  161. package/dist/components/ui/markdown/sanitize.d.ts.map +1 -0
  162. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +23 -0
  163. package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -0
  164. package/dist/components/ui/markdown/streaming.d.ts +78 -0
  165. package/dist/components/ui/markdown/streaming.d.ts.map +1 -0
  166. package/dist/components/ui/markdown/text-size.d.ts +34 -0
  167. package/dist/components/ui/markdown/text-size.d.ts.map +1 -0
  168. package/dist/index.cjs +60 -2
  169. package/dist/index.cjs.map +1 -1
  170. package/dist/index.js +71 -13
  171. package/dist/utils/index.cjs +169 -40
  172. package/dist/utils/index.cjs.map +1 -1
  173. package/dist/utils/index.d.ts +1 -0
  174. package/dist/utils/index.d.ts.map +1 -1
  175. package/dist/utils/index.js +162 -41
  176. package/dist/utils/index.js.map +1 -1
  177. package/dist/utils/markdown-fences.d.ts +42 -0
  178. package/dist/utils/markdown-fences.d.ts.map +1 -0
  179. package/dist/utils/markdown-heading-id.d.ts +85 -0
  180. package/dist/utils/markdown-heading-id.d.ts.map +1 -0
  181. package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
  182. package/package.json +7 -1
  183. package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +319 -0
  184. package/src/chat-protocol/__tests__/chat-protocol.test.ts +516 -0
  185. package/src/chat-protocol/__tests__/env-flag.test.ts +52 -0
  186. package/src/chat-protocol/__tests__/ip-normalize.test.ts +136 -0
  187. package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +237 -0
  188. package/src/chat-protocol/decode.ts +278 -0
  189. package/src/chat-protocol/encode.ts +71 -0
  190. package/src/chat-protocol/env-flag.ts +39 -0
  191. package/src/chat-protocol/events.ts +254 -0
  192. package/src/chat-protocol/frames.ts +245 -0
  193. package/src/chat-protocol/index.ts +21 -0
  194. package/src/chat-protocol/ip-normalize.ts +146 -0
  195. package/src/chat-protocol/nats-decoder.ts +264 -0
  196. package/src/components/chat/.chat-message-list.md +10 -6
  197. package/src/components/chat/__tests__/chat-message-list.test.tsx +450 -9
  198. package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +207 -0
  199. package/src/components/chat/__tests__/chat-pending-turn.test.tsx +250 -0
  200. package/src/components/chat/chat-message-enhanced.tsx +122 -20
  201. package/src/components/chat/chat-message-list.tsx +515 -133
  202. package/src/components/chat/embeddable-chat.tsx +6 -0
  203. package/src/components/chat/hooks/.index.md +30 -33
  204. package/src/components/chat/hooks/.use-nats-chat-adapter.md +36 -55
  205. package/src/components/chat/hooks/__tests__/__snapshots__/conversation-id-persistence-golden.test.ts.snap +37 -0
  206. package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
  207. package/src/components/chat/hooks/__tests__/chunk-catchup-dialog-staleness.test.ts +92 -0
  208. package/src/components/chat/hooks/__tests__/conversation-id-persistence-golden.test.ts +438 -0
  209. package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +318 -0
  210. package/src/components/chat/hooks/index.ts +0 -1
  211. package/src/components/chat/hooks/use-chat.ts +8 -0
  212. package/src/components/chat/hooks/use-chunk-catchup.ts +26 -1
  213. package/src/components/chat/hooks/use-nats-chat-adapter.ts +254 -825
  214. package/src/components/chat/hooks/use-sse-chat-adapter.ts +380 -684
  215. package/src/components/chat/index.ts +5 -0
  216. package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +944 -0
  217. package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +806 -0
  218. package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +467 -0
  219. package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +1330 -0
  220. package/src/components/chat/stream/__tests__/delta-batcher.test.ts +255 -0
  221. package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +105 -0
  222. package/src/components/chat/stream/chat-dialog-store.ts +536 -0
  223. package/src/components/chat/stream/chat-stream-reducer.ts +1928 -0
  224. package/src/components/chat/stream/delta-batcher.ts +168 -0
  225. package/src/components/chat/stream/index.ts +55 -0
  226. package/src/components/chat/stream/message-mutations.ts +340 -0
  227. package/src/components/chat/stream/use-chat-stream-reducer.ts +126 -0
  228. package/src/components/chat/thinking-display.tsx +1 -1
  229. package/src/components/chat/types/.api.types.md +39 -49
  230. package/src/components/chat/types/.processing.types.md +29 -58
  231. package/src/components/chat/types/.unified-chat-state.types.md +2 -2
  232. package/src/components/chat/types/api.types.ts +6 -73
  233. package/src/components/chat/types/processing.types.ts +11 -53
  234. package/src/components/chat/types/unified-chat-state.types.ts +16 -0
  235. package/src/components/chat/utils/.extract-incomplete-message-state.md +21 -3
  236. package/src/components/chat/utils/.history-merge.md +44 -3
  237. package/src/components/chat/utils/.index.md +31 -40
  238. package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +420 -0
  239. package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +605 -0
  240. package/src/components/chat/utils/__tests__/extract-incomplete-message-state.test.ts +106 -0
  241. package/src/components/chat/utils/__tests__/history-merge.test.ts +160 -0
  242. package/src/components/chat/utils/__tests__/process-historical-messages-approvals.test.ts +61 -0
  243. package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +394 -0
  244. package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +270 -0
  245. package/src/components/chat/utils/extract-incomplete-message-state.ts +93 -6
  246. package/src/components/chat/utils/history-merge.ts +85 -5
  247. package/src/components/chat/utils/index.ts +5 -8
  248. package/src/components/chat/utils/process-historical-messages.ts +361 -385
  249. package/src/components/meeting-scheduler/directory.tsx +5 -2
  250. package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +22 -4
  251. package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
  252. package/src/components/shared/product-release/release-detail-page.tsx +19 -4
  253. package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +2420 -0
  254. package/src/components/ui/__tests__/markdown-parity.test.tsx +2540 -0
  255. package/src/components/ui/index.ts +1 -2
  256. package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +176 -0
  257. package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +151 -0
  258. package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +354 -0
  259. package/src/components/ui/markdown/__tests__/sanitize-render.test.tsx +118 -0
  260. package/src/components/ui/markdown/__tests__/streaming.test.tsx +436 -0
  261. package/src/components/ui/markdown/base-components.tsx +360 -0
  262. package/src/components/ui/markdown/engine.tsx +315 -0
  263. package/src/components/ui/markdown/heading-ids.ts +239 -0
  264. package/src/components/ui/markdown/index.ts +49 -0
  265. package/src/components/ui/markdown/mermaid-diagram.tsx +323 -0
  266. package/src/components/ui/markdown/rich/embed-overrides.tsx +199 -0
  267. package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +184 -0
  268. package/src/components/ui/markdown/rich/shortcodes.ts +170 -0
  269. package/src/components/ui/markdown/sanitize.ts +3584 -0
  270. package/src/components/ui/markdown/simple-markdown-renderer.tsx +28 -0
  271. package/src/components/ui/markdown/streaming.ts +390 -0
  272. package/src/components/ui/markdown/text-size.ts +106 -0
  273. package/src/components/ui/release-changelog-section.tsx +1 -1
  274. package/src/components/ui/ticket-info-section.tsx +1 -1
  275. package/src/utils/index.ts +1 -0
  276. package/src/utils/markdown-fences.ts +127 -0
  277. package/src/utils/markdown-heading-id.ts +348 -0
  278. package/src/utils/markdown-section-extractor.ts +41 -56
  279. package/dist/chunk-OCEKO5CW.js.map +0 -1
  280. package/dist/chunk-QTYZMP6D.cjs.map +0 -1
  281. package/dist/chunk-TLMJHMXJ.js.map +0 -1
  282. package/dist/chunk-TWYNR4TZ.cjs.map +0 -1
  283. package/dist/chunk-WA7RR64F.js.map +0 -1
  284. package/dist/chunk-WK4N5VBX.cjs.map +0 -1
  285. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +0 -6
  286. package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +0 -1
  287. package/dist/components/chat/utils/chunk-parser.d.ts +0 -25
  288. package/dist/components/chat/utils/chunk-parser.d.ts.map +0 -1
  289. package/dist/components/ui/rich-markdown-renderer.d.ts +0 -34
  290. package/dist/components/ui/rich-markdown-renderer.d.ts.map +0 -1
  291. package/dist/components/ui/simple-markdown-renderer.d.ts +0 -73
  292. package/dist/components/ui/simple-markdown-renderer.d.ts.map +0 -1
  293. package/src/components/chat/hooks/.use-realtime-chunk-processor.md +0 -77
  294. package/src/components/chat/hooks/use-realtime-chunk-processor.ts +0 -489
  295. package/src/components/chat/utils/.chunk-parser.md +0 -62
  296. package/src/components/chat/utils/chunk-parser.ts +0 -262
  297. package/src/components/ui/.simple-markdown-renderer.md +0 -52
  298. package/src/components/ui/rich-markdown-renderer.tsx +0 -1223
  299. package/src/components/ui/simple-markdown-renderer.tsx +0 -964
  300. /package/dist/{chunk-ADPMHWOE.js.map → chunk-72XAID7Y.js.map} +0 -0
  301. /package/dist/{chunk-PAGKRNWK.js.map → chunk-7WZHBQ4J.js.map} +0 -0
  302. /package/dist/{chunk-TSZHM74B.js.map → chunk-DC2TKS7C.js.map} +0 -0
  303. /package/dist/{chunk-I64ABCDX.js.map → chunk-I2B6X77L.js.map} +0 -0
  304. /package/dist/{chunk-DTYRYB2N.js.map → chunk-K6QTZ7CZ.js.map} +0 -0
  305. /package/dist/{chunk-4LTMXDUS.js.map → chunk-KBN7PMFT.js.map} +0 -0
  306. /package/dist/{chunk-TBMV7I5N.js.map → chunk-KXZO2WZX.js.map} +0 -0
  307. /package/dist/{chunk-KEBYLU3U.js.map → chunk-LFUPI7VX.js.map} +0 -0
  308. /package/dist/{chunk-WJQHJD7J.js.map → chunk-TWSKTJHW.js.map} +0 -0
  309. /package/dist/{chunk-TZRUCD56.js.map → chunk-V3ZAAFE3.js.map} +0 -0
  310. /package/dist/{chunk-LRGHJPET.js.map → chunk-XGIFOHKE.js.map} +0 -0
@@ -107,7 +107,10 @@ function DirectoryRow({
107
107
  <StatusBadge text={`For ${audienceLabel}`} singleLine className="shrink-0 hidden sm:inline-flex" />
108
108
  )}
109
109
 
110
- <AvatarStack people={link.hosts} max={3} size="md" className="hidden sm:flex shrink-0" />
110
+ {/* Hosts stay visible on mobile too — the facepile is the row's "who
111
+ you're booking with" signal; only the chip and next-available meta
112
+ collapse on narrow widths. */}
113
+ <AvatarStack people={link.hosts} max={3} size="md" className="flex shrink-0" />
111
114
 
112
115
  <div className="hidden md:flex w-44 shrink-0 flex-col items-end justify-center">
113
116
  <p className="text-h6 text-ods-text-secondary">Next available</p>
@@ -134,7 +137,7 @@ export function MeetingSchedulerDirectoryRowSkeleton() {
134
137
  <Skeleton className="h-4 w-1/3" />
135
138
  </div>
136
139
  <Skeleton className="hidden sm:block h-6 w-28 shrink-0" />
137
- <Skeleton className="hidden sm:block h-10 w-10 shrink-0 rounded-full" />
140
+ <Skeleton className="h-10 w-10 shrink-0 rounded-full" />
138
141
  <div className="hidden md:flex w-44 shrink-0 flex-col items-end gap-1">
139
142
  <Skeleton className="h-4 w-24" />
140
143
  <Skeleton className="h-5 w-32" />
@@ -15,7 +15,7 @@
15
15
  * renderer with extra plugins.
16
16
  */
17
17
 
18
- import { type ComponentType, type ReactNode } from 'react'
18
+ import { Fragment, type ComponentType, type ReactNode } from 'react'
19
19
  import { PageLayout } from '../layout/page-layout'
20
20
 
21
21
  import { useRouter } from '../../embed-shims'
@@ -30,7 +30,7 @@ import { VideoBitesStrip } from '../features/video-bites-strip'
30
30
  import { toStripProfile } from '../features/video-bites-shared'
31
31
  import { useVideoWarmup } from '../features/use-video-warmup'
32
32
  import { getCaptionsUrl } from '../features/captions-url'
33
- import { RichMarkdownRenderer } from '../ui/rich-markdown-renderer'
33
+ import { RichMarkdownRenderer } from '../ui/markdown'
34
34
  import { EntityTagBadges } from '../features/entity-tag-badges'
35
35
  import { LoadError } from '../ui/error-state'
36
36
  import { ArticleAuthorByline } from '../shared/article-author-byline'
@@ -244,8 +244,26 @@ export function OnboardingGuideDetailView({
244
244
  </div>
245
245
  )}
246
246
 
247
- {/* Host slot — cross-type related-content / FAQ rail. */}
248
- {relatedContent}
247
+ {/*
248
+ * Host slot — cross-type related-content / FAQ rail.
249
+ *
250
+ * KEYED DELIBERATELY. This is one member of PageLayout's static children
251
+ * array, and the only member whose element may be created in a SERVER
252
+ * component and crossed over the RSC boundary. Static JSX children are
253
+ * normally exempt from the key warning because `jsxs` runs
254
+ * `validateChildKeys` and stamps `_store.validated = 1` on each element —
255
+ * but a slot arriving over the wire is referenced as a lazy chunk wrapper,
256
+ * so validation marks the WRAPPER and the fulfilled path never copies the
257
+ * flag onto the revived element. It reaches the reconciler with
258
+ * `validated: 0, key: null` and warns, blaming PageLayout (the owner of the
259
+ * enclosing element) rather than anything actually at fault.
260
+ *
261
+ * A keyed Fragment emits no DOM, so rendered output is byte-identical.
262
+ * Do NOT "fix" this in PageLayout via `React.Children.toArray` — that would
263
+ * auto-key every consumer's children and change reconciliation identity for
264
+ * all of them, and that file carries an explicit FROZEN contract.
265
+ */}
266
+ <Fragment key="related-content">{relatedContent}</Fragment>
249
267
  </PageLayout>
250
268
  )
251
269
  }
@@ -19,7 +19,7 @@
19
19
 
20
20
  import type { ComponentType } from 'react';
21
21
  import { PageShell, PageLayout } from '../../ui';
22
- import { RichMarkdownRenderer } from '../../ui/rich-markdown-renderer';
22
+ import { RichMarkdownRenderer } from '../../ui/markdown';
23
23
  import { useRouter } from '../../../embed-shims/next-navigation';
24
24
  import { useLegalDocs, type LegalDocument } from './use-legal-docs';
25
25
  import { formatLegalDate } from '../../../utils/format';
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useState, useEffect, ComponentType, type ReactNode } from 'react';
3
+ import { useState, useEffect, Fragment, ComponentType, type ReactNode } from 'react';
4
4
  import Link from '../../../embed-shims/next-link';
5
5
  import { useRouter } from '../../../embed-shims/next-navigation';
6
6
  import { Card, CardContent } from '../../ui/card';
@@ -11,7 +11,7 @@ import { PageShell } from '../../layout/article-detail-layout';
11
11
  import { PageLayout } from '../../layout/page-layout';
12
12
  import { FadePreview } from '../../ui/fade-preview';
13
13
  import { ReleaseChangelogSection } from '../../ui/release-changelog-section';
14
- import { RichMarkdownRenderer } from '../../ui/rich-markdown-renderer';
14
+ import { RichMarkdownRenderer } from '../../ui/markdown';
15
15
  import { EntityTagBadges } from '../../features/entity-tag-badges';
16
16
  import { EntityMetadataAuthorCell } from '../../chat/entity-cards/entity-author-card';
17
17
  import type { EntityAuthor } from '../../../types/entity-author';
@@ -582,8 +582,23 @@ export function ReleaseDetailPage({
582
582
  )}
583
583
  </div>
584
584
 
585
- {/* Host slot — end-of-article byline + related-content / FAQ rail. */}
586
- {relatedContent}
585
+ {/*
586
+ * Host slot — end-of-article byline + related-content / FAQ rail.
587
+ *
588
+ * KEYED for the same reason as `onboarding-guide-detail-view.tsx`: this is a
589
+ * member of PageLayout's static children array, and a slot element built in a
590
+ * SERVER component crosses the RSC boundary as a lazy chunk wrapper, so
591
+ * `validateChildKeys` marks the wrapper and the fulfilled path never copies
592
+ * `_store.validated` onto the revived element — it reaches the reconciler
593
+ * unvalidated and warns.
594
+ *
595
+ * Today the hub's only consumer of this view is a `'use client'` wrapper that
596
+ * builds the slot locally, so no element actually crosses the boundary and
597
+ * this is pre-emptive. It is kept because the trap is invisible from here: a
598
+ * future server-built slot would warn with no clue pointing at this line.
599
+ * A keyed Fragment emits no DOM, so output is byte-identical either way.
600
+ */}
601
+ <Fragment key="related-content">{relatedContent}</Fragment>
587
602
  </PageLayout>
588
603
  );
589
604
  }