@flamingo-stack/openframe-frontend-core 0.0.491 → 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.
- package/dist/chat-protocol/decode.d.ts +58 -0
- package/dist/chat-protocol/decode.d.ts.map +1 -0
- package/dist/chat-protocol/encode.d.ts +44 -0
- package/dist/chat-protocol/encode.d.ts.map +1 -0
- package/dist/chat-protocol/env-flag.d.ts +35 -0
- package/dist/chat-protocol/env-flag.d.ts.map +1 -0
- package/dist/chat-protocol/events.d.ts +207 -0
- package/dist/chat-protocol/events.d.ts.map +1 -0
- package/dist/chat-protocol/frames.d.ts +213 -0
- package/dist/chat-protocol/frames.d.ts.map +1 -0
- package/dist/chat-protocol/index.cjs +500 -0
- package/dist/chat-protocol/index.cjs.map +1 -0
- package/dist/chat-protocol/index.d.ts +18 -0
- package/dist/chat-protocol/index.d.ts.map +1 -0
- package/dist/chat-protocol/index.js +484 -0
- package/dist/chat-protocol/index.js.map +1 -0
- package/dist/chat-protocol/ip-normalize.d.ts +44 -0
- package/dist/chat-protocol/ip-normalize.d.ts.map +1 -0
- package/dist/chat-protocol/nats-decoder.d.ts +26 -0
- package/dist/chat-protocol/nats-decoder.d.ts.map +1 -0
- package/dist/{chunk-6XNWT2KC.js → chunk-34TDA22K.js} +2 -2
- package/dist/{chunk-T4BUS6JV.js → chunk-3LKB722U.js} +2 -2
- package/dist/{chunk-2RTNC3KP.cjs → chunk-7N7YZCHR.cjs} +6958 -4785
- package/dist/chunk-7N7YZCHR.cjs.map +1 -0
- package/dist/{chunk-ITV6LSG7.cjs → chunk-A6FPYAUD.cjs} +15 -15
- package/dist/{chunk-ITV6LSG7.cjs.map → chunk-A6FPYAUD.cjs.map} +1 -1
- package/dist/{chunk-35CTCUJ7.js → chunk-BEEPU44B.js} +10 -10
- package/dist/chunk-BEEPU44B.js.map +1 -0
- package/dist/{chunk-HRMOCJKU.cjs → chunk-C65NCIMV.cjs} +9 -9
- package/dist/{chunk-HRMOCJKU.cjs.map → chunk-C65NCIMV.cjs.map} +1 -1
- package/dist/{chunk-QF54RPHZ.js → chunk-J3VBVR4W.js} +4 -4
- package/dist/{chunk-GTMW4KY7.js → chunk-JHEIOXXZ.js} +6 -5
- package/dist/chunk-JHEIOXXZ.js.map +1 -0
- package/dist/{chunk-QNFAZIFC.cjs → chunk-JSEJ5MH5.cjs} +5 -5
- package/dist/{chunk-QNFAZIFC.cjs.map → chunk-JSEJ5MH5.cjs.map} +1 -1
- package/dist/{chunk-J2V4B6FF.cjs → chunk-KX3K2EH4.cjs} +11 -11
- package/dist/{chunk-J2V4B6FF.cjs.map → chunk-KX3K2EH4.cjs.map} +1 -1
- package/dist/{chunk-EHHX22JL.cjs → chunk-M6FEGPQJ.cjs} +62 -62
- package/dist/{chunk-EHHX22JL.cjs.map → chunk-M6FEGPQJ.cjs.map} +1 -1
- package/dist/{chunk-GL33BHGZ.cjs → chunk-MEIGDK7M.cjs} +60 -60
- package/dist/chunk-MEIGDK7M.cjs.map +1 -0
- package/dist/{chunk-CYIUPI7J.js → chunk-MEMRQTOI.js} +12010 -9837
- package/dist/chunk-MEMRQTOI.js.map +1 -0
- package/dist/{chunk-6O3YTVLG.cjs → chunk-MPUQFRJG.cjs} +7 -7
- package/dist/{chunk-6O3YTVLG.cjs.map → chunk-MPUQFRJG.cjs.map} +1 -1
- package/dist/{chunk-PVSXTCJY.cjs → chunk-MSL5NE3N.cjs} +37 -37
- package/dist/{chunk-PVSXTCJY.cjs.map → chunk-MSL5NE3N.cjs.map} +1 -1
- package/dist/{chunk-CZTKQVIQ.js → chunk-MZRIRQYV.js} +2 -2
- package/dist/{chunk-ZDUJ6BDI.js → chunk-NCAN6VUF.js} +2 -2
- package/dist/{chunk-ZEC5U5T7.js → chunk-OL3MJKUI.js} +2 -2
- package/dist/{chunk-U2JIGUXF.js → chunk-PLB6CQSO.js} +2 -2
- package/dist/{chunk-IUGJAILN.js → chunk-PTXZB2KW.js} +2 -2
- package/dist/{chunk-YKE2KZ2Y.cjs → chunk-QDGB2DKY.cjs} +26 -26
- package/dist/{chunk-YKE2KZ2Y.cjs.map → chunk-QDGB2DKY.cjs.map} +1 -1
- package/dist/{chunk-VD4QDSP7.cjs → chunk-QG2EBIH5.cjs} +31 -31
- package/dist/{chunk-VD4QDSP7.cjs.map → chunk-QG2EBIH5.cjs.map} +1 -1
- package/dist/{chunk-7NRRONK5.cjs → chunk-W56JYDSC.cjs} +28 -27
- package/dist/chunk-W56JYDSC.cjs.map +1 -0
- package/dist/{chunk-2YQK6LHR.js → chunk-XOFE2RT4.js} +4 -4
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.d.ts +0 -1
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +15 -48
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +10 -57
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +10 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.d.ts +1 -0
- package/dist/components/chat/index.d.ts.map +1 -1
- package/dist/components/chat/index.js +21 -13
- package/dist/components/chat/stream/chat-dialog-store.d.ts +184 -0
- package/dist/components/chat/stream/chat-dialog-store.d.ts.map +1 -0
- package/dist/components/chat/stream/chat-stream-reducer.d.ts +367 -0
- package/dist/components/chat/stream/chat-stream-reducer.d.ts.map +1 -0
- package/dist/components/chat/stream/delta-batcher.d.ts +51 -0
- package/dist/components/chat/stream/delta-batcher.d.ts.map +1 -0
- package/dist/components/chat/stream/index.d.ts +17 -0
- package/dist/components/chat/stream/index.d.ts.map +1 -0
- package/dist/components/chat/stream/message-mutations.d.ts +77 -0
- package/dist/components/chat/stream/message-mutations.d.ts.map +1 -0
- package/dist/components/chat/stream/use-chat-stream-reducer.d.ts +22 -0
- package/dist/components/chat/stream/use-chat-stream-reducer.d.ts.map +1 -0
- package/dist/components/chat/types/api.types.d.ts +1 -81
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/chat/types/processing.types.d.ts +2 -93
- package/dist/components/chat/types/processing.types.d.ts.map +1 -1
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts +34 -6
- package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
- package/dist/components/chat/utils/index.d.ts +2 -3
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/process-historical-messages.d.ts +59 -11
- package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +172 -130
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +63 -21
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +44 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +1 -2
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +55 -13
- package/dist/components/ui/markdown/base-components.d.ts +51 -0
- package/dist/components/ui/markdown/base-components.d.ts.map +1 -0
- package/dist/components/ui/markdown/engine.d.ts +99 -0
- package/dist/components/ui/markdown/engine.d.ts.map +1 -0
- package/dist/components/ui/markdown/heading-ids.d.ts +65 -0
- package/dist/components/ui/markdown/heading-ids.d.ts.map +1 -0
- package/dist/components/ui/markdown/index.d.ts +18 -0
- package/dist/components/ui/markdown/index.d.ts.map +1 -0
- package/dist/components/ui/markdown/mermaid-diagram.d.ts +79 -0
- package/dist/components/ui/markdown/mermaid-diagram.d.ts.map +1 -0
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts +14 -0
- package/dist/components/ui/markdown/rich/embed-overrides.d.ts.map +1 -0
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts +40 -0
- package/dist/components/ui/markdown/rich/rich-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/markdown/rich/shortcodes.d.ts +8 -0
- package/dist/components/ui/markdown/rich/shortcodes.d.ts.map +1 -0
- package/dist/components/ui/markdown/sanitize.d.ts +153 -0
- package/dist/components/ui/markdown/sanitize.d.ts.map +1 -0
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts +23 -0
- package/dist/components/ui/markdown/simple-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/markdown/streaming.d.ts +78 -0
- package/dist/components/ui/markdown/streaming.d.ts.map +1 -0
- package/dist/components/ui/markdown/text-size.d.ts +34 -0
- package/dist/components/ui/markdown/text-size.d.ts.map +1 -0
- package/dist/index.cjs +60 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +71 -13
- package/dist/utils/index.cjs +169 -40
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +162 -41
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/markdown-fences.d.ts +42 -0
- package/dist/utils/markdown-fences.d.ts.map +1 -0
- package/dist/utils/markdown-heading-id.d.ts +85 -0
- package/dist/utils/markdown-heading-id.d.ts.map +1 -0
- package/dist/utils/markdown-section-extractor.d.ts.map +1 -1
- package/package.json +7 -1
- package/src/chat-protocol/__tests__/__snapshots__/nats-decoder-golden.test.ts.snap +317 -0
- package/src/chat-protocol/__tests__/chat-protocol.test.ts +516 -0
- package/src/chat-protocol/__tests__/env-flag.test.ts +52 -0
- package/src/chat-protocol/__tests__/ip-normalize.test.ts +136 -0
- package/src/chat-protocol/__tests__/nats-decoder-golden.test.ts +232 -0
- package/src/chat-protocol/decode.ts +278 -0
- package/src/chat-protocol/encode.ts +71 -0
- package/src/chat-protocol/env-flag.ts +39 -0
- package/src/chat-protocol/events.ts +245 -0
- package/src/chat-protocol/frames.ts +245 -0
- package/src/chat-protocol/index.ts +21 -0
- package/src/chat-protocol/ip-normalize.ts +146 -0
- package/src/chat-protocol/nats-decoder.ts +258 -0
- package/src/components/chat/__tests__/chat-message-list.test.tsx +293 -5
- package/src/components/chat/__tests__/chat-message-streaming-memo.test.tsx +207 -0
- package/src/components/chat/__tests__/chat-pending-turn.test.tsx +230 -0
- package/src/components/chat/chat-message-enhanced.tsx +122 -20
- package/src/components/chat/chat-message-list.tsx +358 -109
- package/src/components/chat/embeddable-chat.tsx +6 -0
- package/src/components/chat/hooks/.index.md +30 -33
- package/src/components/chat/hooks/.use-nats-chat-adapter.md +36 -55
- package/src/components/chat/hooks/__tests__/__snapshots__/conversation-id-persistence-golden.test.ts.snap +37 -0
- package/src/components/chat/hooks/__tests__/__snapshots__/sse-stream-golden.test.ts.snap +0 -0
- package/src/components/chat/hooks/__tests__/conversation-id-persistence-golden.test.ts +438 -0
- package/src/components/chat/hooks/__tests__/sse-stream-golden.test.ts +318 -0
- package/src/components/chat/hooks/index.ts +0 -1
- package/src/components/chat/hooks/use-chat.ts +8 -0
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +243 -825
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +380 -684
- package/src/components/chat/index.ts +5 -0
- package/src/components/chat/stream/__tests__/__snapshots__/chat-stream-reducer-golden.test.ts.snap +940 -0
- package/src/components/chat/stream/__tests__/chat-dialog-store.test.ts +756 -0
- package/src/components/chat/stream/__tests__/chat-stream-reducer-golden.test.ts +460 -0
- package/src/components/chat/stream/__tests__/chat-stream-reducer.test.ts +973 -0
- package/src/components/chat/stream/__tests__/delta-batcher.test.ts +255 -0
- package/src/components/chat/stream/__tests__/use-chat-stream-reducer.test.ts +98 -0
- package/src/components/chat/stream/chat-dialog-store.ts +536 -0
- package/src/components/chat/stream/chat-stream-reducer.ts +1808 -0
- package/src/components/chat/stream/delta-batcher.ts +168 -0
- package/src/components/chat/stream/index.ts +55 -0
- package/src/components/chat/stream/message-mutations.ts +340 -0
- package/src/components/chat/stream/use-chat-stream-reducer.ts +126 -0
- package/src/components/chat/thinking-display.tsx +1 -1
- package/src/components/chat/types/.api.types.md +39 -49
- package/src/components/chat/types/.processing.types.md +29 -58
- package/src/components/chat/types/api.types.ts +6 -73
- package/src/components/chat/types/processing.types.ts +11 -53
- package/src/components/chat/utils/.index.md +31 -40
- package/src/components/chat/utils/__tests__/__snapshots__/process-historical-messages-golden.test.ts.snap +420 -0
- package/src/components/chat/utils/__tests__/__snapshots__/segment-accumulator-golden.test.ts.snap +605 -0
- package/src/components/chat/utils/__tests__/process-historical-messages-golden.test.ts +394 -0
- package/src/components/chat/utils/__tests__/segment-accumulator-golden.test.ts +270 -0
- package/src/components/chat/utils/extract-incomplete-message-state.ts +63 -5
- package/src/components/chat/utils/index.ts +5 -8
- package/src/components/chat/utils/process-historical-messages.ts +358 -386
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +22 -4
- package/src/components/shared/legal-document/legal-document-page.tsx +1 -1
- package/src/components/shared/product-release/release-detail-page.tsx +19 -4
- package/src/components/ui/__tests__/__snapshots__/markdown-parity.test.tsx.snap +2420 -0
- package/src/components/ui/__tests__/markdown-parity.test.tsx +2528 -0
- package/src/components/ui/index.ts +1 -2
- package/src/components/ui/markdown/__tests__/mermaid-security.test.ts +115 -0
- package/src/components/ui/markdown/__tests__/mermaid-stale-render.test.tsx +95 -0
- package/src/components/ui/markdown/__tests__/sanitize-invariant.test.ts +309 -0
- package/src/components/ui/markdown/__tests__/streaming.test.tsx +388 -0
- package/src/components/ui/markdown/base-components.tsx +360 -0
- package/src/components/ui/markdown/engine.tsx +315 -0
- package/src/components/ui/markdown/heading-ids.ts +239 -0
- package/src/components/ui/markdown/index.ts +49 -0
- package/src/components/ui/markdown/mermaid-diagram.tsx +291 -0
- package/src/components/ui/markdown/rich/embed-overrides.tsx +199 -0
- package/src/components/ui/markdown/rich/rich-markdown-renderer.tsx +184 -0
- package/src/components/ui/markdown/rich/shortcodes.ts +170 -0
- package/src/components/ui/markdown/sanitize.ts +3499 -0
- package/src/components/ui/markdown/simple-markdown-renderer.tsx +28 -0
- package/src/components/ui/markdown/streaming.ts +362 -0
- package/src/components/ui/markdown/text-size.ts +106 -0
- package/src/components/ui/release-changelog-section.tsx +1 -1
- package/src/components/ui/ticket-info-section.tsx +1 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/markdown-fences.ts +127 -0
- package/src/utils/markdown-heading-id.ts +348 -0
- package/src/utils/markdown-section-extractor.ts +41 -56
- package/dist/chunk-2RTNC3KP.cjs.map +0 -1
- package/dist/chunk-35CTCUJ7.js.map +0 -1
- package/dist/chunk-7NRRONK5.cjs.map +0 -1
- package/dist/chunk-CYIUPI7J.js.map +0 -1
- package/dist/chunk-GL33BHGZ.cjs.map +0 -1
- package/dist/chunk-GTMW4KY7.js.map +0 -1
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts +0 -6
- package/dist/components/chat/hooks/use-realtime-chunk-processor.d.ts.map +0 -1
- package/dist/components/chat/utils/chunk-parser.d.ts +0 -25
- package/dist/components/chat/utils/chunk-parser.d.ts.map +0 -1
- package/dist/components/ui/rich-markdown-renderer.d.ts +0 -34
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +0 -1
- package/dist/components/ui/simple-markdown-renderer.d.ts +0 -73
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +0 -1
- package/src/components/chat/hooks/.use-realtime-chunk-processor.md +0 -77
- package/src/components/chat/hooks/use-realtime-chunk-processor.ts +0 -489
- package/src/components/chat/utils/.chunk-parser.md +0 -62
- package/src/components/chat/utils/chunk-parser.ts +0 -262
- package/src/components/ui/.simple-markdown-renderer.md +0 -52
- package/src/components/ui/rich-markdown-renderer.tsx +0 -1223
- package/src/components/ui/simple-markdown-renderer.tsx +0 -964
- /package/dist/{chunk-6XNWT2KC.js.map → chunk-34TDA22K.js.map} +0 -0
- /package/dist/{chunk-T4BUS6JV.js.map → chunk-3LKB722U.js.map} +0 -0
- /package/dist/{chunk-QF54RPHZ.js.map → chunk-J3VBVR4W.js.map} +0 -0
- /package/dist/{chunk-CZTKQVIQ.js.map → chunk-MZRIRQYV.js.map} +0 -0
- /package/dist/{chunk-ZDUJ6BDI.js.map → chunk-NCAN6VUF.js.map} +0 -0
- /package/dist/{chunk-ZEC5U5T7.js.map → chunk-OL3MJKUI.js.map} +0 -0
- /package/dist/{chunk-U2JIGUXF.js.map → chunk-PLB6CQSO.js.map} +0 -0
- /package/dist/{chunk-IUGJAILN.js.map → chunk-PTXZB2KW.js.map} +0 -0
- /package/dist/{chunk-2YQK6LHR.js.map → chunk-XOFE2RT4.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -196,8 +196,10 @@ import {
|
|
|
196
196
|
CveLink,
|
|
197
197
|
DEFAULT_CONTENT_SUFFIXES,
|
|
198
198
|
DEFAULT_CUSTOM_STATUS_COLOR,
|
|
199
|
+
DEFAULT_DIALOG_SIDE,
|
|
199
200
|
DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
|
|
200
201
|
DEFAULT_FOLDER_INDEX_FILE,
|
|
202
|
+
DEFAULT_MAX_REDUCERS,
|
|
201
203
|
DEFAULT_OS_PLATFORM,
|
|
202
204
|
DEFAULT_THEME,
|
|
203
205
|
DEFAULT_VIDEO_BITES_TITLE,
|
|
@@ -291,6 +293,7 @@ import {
|
|
|
291
293
|
GuideDisplay,
|
|
292
294
|
GuideModeBanner,
|
|
293
295
|
GuideWelcome,
|
|
296
|
+
HEADING_EMOJI_RE,
|
|
294
297
|
HEX_PATTERN,
|
|
295
298
|
Header,
|
|
296
299
|
HeaderButton,
|
|
@@ -337,12 +340,14 @@ import {
|
|
|
337
340
|
LogSeverityDot,
|
|
338
341
|
LoginForm,
|
|
339
342
|
LogsList,
|
|
343
|
+
MAX_PENDING_RETAIN_KEYS,
|
|
340
344
|
MESSAGE_ROLE,
|
|
341
345
|
MESSAGE_TYPE,
|
|
342
346
|
MOBILE_NAV_PANEL_ID,
|
|
343
347
|
MUX_IMAGE_ORIGIN,
|
|
344
348
|
MUX_STREAM_ORIGIN,
|
|
345
349
|
MarkdownEditor,
|
|
350
|
+
MarkdownEngine,
|
|
346
351
|
MarqueeWall,
|
|
347
352
|
MarqueeWallFades,
|
|
348
353
|
MediaGalleryManager,
|
|
@@ -364,6 +369,7 @@ import {
|
|
|
364
369
|
MenubarSubContent,
|
|
365
370
|
MenubarSubTrigger,
|
|
366
371
|
MenubarTrigger,
|
|
372
|
+
MermaidDiagram,
|
|
367
373
|
MessageSegmentAccumulator,
|
|
368
374
|
MingoAiButton,
|
|
369
375
|
MingoChatHistory,
|
|
@@ -487,6 +493,7 @@ import {
|
|
|
487
493
|
RoadmapCard,
|
|
488
494
|
RoadmapCardSkeleton,
|
|
489
495
|
RoadmapVoteButton,
|
|
496
|
+
SAFE_HTML_TAGS,
|
|
490
497
|
SCROLL_ANCHOR,
|
|
491
498
|
SCROLL_ANCHOR_WIRE_KEY,
|
|
492
499
|
SECTION_HEADING_CLASS,
|
|
@@ -499,6 +506,7 @@ import {
|
|
|
499
506
|
SOURCE_ICON_NAMES,
|
|
500
507
|
SOURCE_LABELS_BY_TABLE,
|
|
501
508
|
STRIP_CELL_MAX_WIDTH,
|
|
509
|
+
SVG_TAGS,
|
|
502
510
|
SYNTHETIC_REALTIME_ID_PREFIXES,
|
|
503
511
|
ScriptArguments,
|
|
504
512
|
ScriptInfoSection,
|
|
@@ -556,6 +564,7 @@ import {
|
|
|
556
564
|
TAG_BADGE_CLASS,
|
|
557
565
|
TASK_TYPE_LABELS,
|
|
558
566
|
TASK_TYPE_TEXT_COLORS,
|
|
567
|
+
TEXT_SIZE_PRESETS,
|
|
559
568
|
THEME_ATTRIBUTE,
|
|
560
569
|
THEME_STORAGE_KEY,
|
|
561
570
|
TICKET_STATUS_COLOR_PRESETS,
|
|
@@ -661,13 +670,17 @@ import {
|
|
|
661
670
|
buildDefaultHref,
|
|
662
671
|
buildDiscussAddendum,
|
|
663
672
|
buildDocumentTree,
|
|
673
|
+
buildEffectiveTagSet,
|
|
674
|
+
buildHeadingIdMap,
|
|
664
675
|
buildListUrl,
|
|
665
676
|
buildNatsWsUrl,
|
|
666
677
|
buildProductReleaseCardProps,
|
|
678
|
+
buildSanitizeSchema,
|
|
667
679
|
buildStreamFrames,
|
|
668
680
|
buildSuggestionUrl,
|
|
669
681
|
canonicalContentRefType,
|
|
670
682
|
captureFirstTouchAttribution,
|
|
683
|
+
cardAwareUrlTransform,
|
|
671
684
|
changelogLabels,
|
|
672
685
|
chatChipClass,
|
|
673
686
|
cleanEmailDomain,
|
|
@@ -678,12 +691,20 @@ import {
|
|
|
678
691
|
clearWalkthroughDismissal,
|
|
679
692
|
clickupTaskUrl,
|
|
680
693
|
columnFromTicketStatus,
|
|
694
|
+
completeStreamingTail,
|
|
681
695
|
computeHistoryPrepend,
|
|
682
696
|
computeIsNewTab,
|
|
697
|
+
createChatDialogStore,
|
|
698
|
+
createChatStreamReducer,
|
|
683
699
|
createColumnHelper,
|
|
700
|
+
createDeltaBatcher,
|
|
701
|
+
createEmptyTurnMeta,
|
|
702
|
+
createFenceTracker,
|
|
703
|
+
createHeadingIdDeduper,
|
|
684
704
|
createMessageSegmentAccumulator,
|
|
685
705
|
createUTCTimestamp,
|
|
686
706
|
decideNewTab,
|
|
707
|
+
decodeHistoricalMessageData,
|
|
687
708
|
deepClone,
|
|
688
709
|
defaultBuildProductReleaseCardProps,
|
|
689
710
|
defaultTableIdForDocumentType,
|
|
@@ -697,6 +718,7 @@ import {
|
|
|
697
718
|
dismissWalkthrough,
|
|
698
719
|
ensureBiteIds,
|
|
699
720
|
escapeMarkdownInline,
|
|
721
|
+
escapeUnknownHtmlTags,
|
|
700
722
|
executeNavigation,
|
|
701
723
|
executeNavigationImperative,
|
|
702
724
|
exportToCSV,
|
|
@@ -706,10 +728,11 @@ import {
|
|
|
706
728
|
extractErrorMessages,
|
|
707
729
|
extractImageEdgeColorAsync,
|
|
708
730
|
extractIncompleteMessageState,
|
|
731
|
+
extractIncompleteTailState,
|
|
709
732
|
extractItemId,
|
|
710
733
|
extractItems,
|
|
711
734
|
extractSections,
|
|
712
|
-
|
|
735
|
+
extractText,
|
|
713
736
|
extractYouTubeId,
|
|
714
737
|
faqItemAnchor,
|
|
715
738
|
faqSectionSlug,
|
|
@@ -836,15 +859,13 @@ import {
|
|
|
836
859
|
interleave,
|
|
837
860
|
isAnnouncementDismissed,
|
|
838
861
|
isApprovalNotification,
|
|
839
|
-
|
|
862
|
+
isBlankLine,
|
|
840
863
|
isCrossOriginUrl,
|
|
841
864
|
isDismissedCookieValue,
|
|
842
|
-
isErrorChunk,
|
|
843
865
|
isFigmaSlidesUrl,
|
|
844
866
|
isGenericDomain,
|
|
845
867
|
isGenericWebsiteDomain,
|
|
846
868
|
isHistoricalUserTurn,
|
|
847
|
-
isMetadataChunk,
|
|
848
869
|
isModifierClick,
|
|
849
870
|
isOSPlatform,
|
|
850
871
|
isQuickActionIconSpec,
|
|
@@ -878,7 +899,6 @@ import {
|
|
|
878
899
|
orderContentRefTypes,
|
|
879
900
|
osLabels,
|
|
880
901
|
parseAttributionFromUrl,
|
|
881
|
-
parseChunkToAction,
|
|
882
902
|
parseFaqHash,
|
|
883
903
|
parseScrollAnchor,
|
|
884
904
|
parseWireCommandOverride,
|
|
@@ -886,10 +906,12 @@ import {
|
|
|
886
906
|
pickReadableTextColor,
|
|
887
907
|
processHistoricalMessages,
|
|
888
908
|
processHistoricalMessagesWithErrors,
|
|
909
|
+
processShortcodes,
|
|
889
910
|
programItemToStripProfile,
|
|
890
911
|
ratioToCategory,
|
|
891
912
|
readDismissCookie,
|
|
892
913
|
readLeadingDecisionFrame,
|
|
914
|
+
rehypeStripUnsafe,
|
|
893
915
|
releaseStatusOptions,
|
|
894
916
|
releaseTypeOptions,
|
|
895
917
|
releaseTypeToBadgeColor,
|
|
@@ -905,20 +927,26 @@ import {
|
|
|
905
927
|
resolveSourceIcon,
|
|
906
928
|
resolveSourceRowCTA,
|
|
907
929
|
resolveStatusTagProps,
|
|
930
|
+
resolveTextSizeConfig,
|
|
908
931
|
resolveTicketStatus,
|
|
909
932
|
rgbToHex,
|
|
910
933
|
safeHref,
|
|
911
934
|
sanitizeLandingUrl,
|
|
912
935
|
sanitizeTitleForChat,
|
|
913
936
|
saveDataEnabled,
|
|
937
|
+
scanHeadings,
|
|
914
938
|
serializeJsonLd,
|
|
915
939
|
shellLabels,
|
|
916
940
|
shouldProxyImage,
|
|
941
|
+
slugifyHeadingBase,
|
|
942
|
+
slugifyHeadingText,
|
|
917
943
|
sortBitesByCreatedAtDesc,
|
|
918
944
|
sortTreeChildren,
|
|
945
|
+
splitStreamingBlocks,
|
|
919
946
|
statusBadgeVariants,
|
|
920
947
|
stripChatAttachmentMarkdown,
|
|
921
948
|
stripFolderIndexFromPath,
|
|
949
|
+
stripHeadingEmojis,
|
|
922
950
|
stripHtml,
|
|
923
951
|
stripInlineMarkdown,
|
|
924
952
|
stripSameOriginToPath,
|
|
@@ -945,6 +973,7 @@ import {
|
|
|
945
973
|
useChatAttachments,
|
|
946
974
|
useChatCardItem,
|
|
947
975
|
useChatIdentity,
|
|
976
|
+
useChatStreamReducer,
|
|
948
977
|
useChunkCatchup,
|
|
949
978
|
useCloseOnNavigation,
|
|
950
979
|
useCollapsible,
|
|
@@ -954,6 +983,7 @@ import {
|
|
|
954
983
|
useDynamicTheme,
|
|
955
984
|
useEmptyStateConfig,
|
|
956
985
|
useFiltersDropdown,
|
|
986
|
+
useHeadingIdMap,
|
|
957
987
|
useJetStreamDialogSubscription,
|
|
958
988
|
useLoading,
|
|
959
989
|
useMarqueeSync,
|
|
@@ -964,7 +994,6 @@ import {
|
|
|
964
994
|
useOptionalTimeTracker,
|
|
965
995
|
usePageActionsBottomPadding,
|
|
966
996
|
useProxiedImageUrl,
|
|
967
|
-
useRealtimeChunkProcessor,
|
|
968
997
|
useSSE,
|
|
969
998
|
useScriptedStream,
|
|
970
999
|
useScrollFade,
|
|
@@ -988,7 +1017,7 @@ import {
|
|
|
988
1017
|
walkthroughDismissCookieName,
|
|
989
1018
|
withFirstTouchAttribution,
|
|
990
1019
|
writeDismissCookie
|
|
991
|
-
} from "./chunk-
|
|
1020
|
+
} from "./chunk-MEMRQTOI.js";
|
|
992
1021
|
import {
|
|
993
1022
|
CommandApprovalToast,
|
|
994
1023
|
DEFAULT_MIN_FILL_MS,
|
|
@@ -1542,8 +1571,10 @@ export {
|
|
|
1542
1571
|
CveLink,
|
|
1543
1572
|
DEFAULT_CONTENT_SUFFIXES,
|
|
1544
1573
|
DEFAULT_CUSTOM_STATUS_COLOR,
|
|
1574
|
+
DEFAULT_DIALOG_SIDE,
|
|
1545
1575
|
DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID,
|
|
1546
1576
|
DEFAULT_FOLDER_INDEX_FILE,
|
|
1577
|
+
DEFAULT_MAX_REDUCERS,
|
|
1547
1578
|
DEFAULT_MIN_FILL_MS,
|
|
1548
1579
|
DEFAULT_OS_PLATFORM,
|
|
1549
1580
|
DEFAULT_THEME,
|
|
@@ -1685,6 +1716,7 @@ export {
|
|
|
1685
1716
|
GuideDisplay,
|
|
1686
1717
|
GuideModeBanner,
|
|
1687
1718
|
GuideWelcome,
|
|
1719
|
+
HEADING_EMOJI_RE,
|
|
1688
1720
|
HEX_PATTERN,
|
|
1689
1721
|
HONEYPOT_FIELD,
|
|
1690
1722
|
HUB_HEADER_OFFSET_PX,
|
|
@@ -1754,6 +1786,7 @@ export {
|
|
|
1754
1786
|
CheckCircleIcon2 as LucideCheckCircleIcon,
|
|
1755
1787
|
XIcon2 as LucideXIcon,
|
|
1756
1788
|
LumaIcon,
|
|
1789
|
+
MAX_PENDING_RETAIN_KEYS,
|
|
1757
1790
|
MESSAGE_ROLE,
|
|
1758
1791
|
MESSAGE_TYPE,
|
|
1759
1792
|
MOBILE_NAV_PANEL_ID,
|
|
@@ -1762,6 +1795,7 @@ export {
|
|
|
1762
1795
|
MacOSIcon,
|
|
1763
1796
|
MarginCrisisIcon,
|
|
1764
1797
|
MarkdownEditor,
|
|
1798
|
+
MarkdownEngine,
|
|
1765
1799
|
MarqueeWall,
|
|
1766
1800
|
MarqueeWallFades,
|
|
1767
1801
|
MediaGalleryManager,
|
|
@@ -1783,6 +1817,7 @@ export {
|
|
|
1783
1817
|
MenubarSubContent,
|
|
1784
1818
|
MenubarSubTrigger,
|
|
1785
1819
|
MenubarTrigger,
|
|
1820
|
+
MermaidDiagram,
|
|
1786
1821
|
MessageCircleIcon,
|
|
1787
1822
|
MessageSegmentAccumulator,
|
|
1788
1823
|
MiamiCyberGangLogo,
|
|
@@ -1942,6 +1977,7 @@ export {
|
|
|
1942
1977
|
RoadmapCard,
|
|
1943
1978
|
RoadmapCardSkeleton,
|
|
1944
1979
|
RoadmapVoteButton,
|
|
1980
|
+
SAFE_HTML_TAGS,
|
|
1945
1981
|
SCROLL_ANCHOR,
|
|
1946
1982
|
SCROLL_ANCHOR_WIRE_KEY,
|
|
1947
1983
|
SECTION_HEADING_CLASS,
|
|
@@ -1957,6 +1993,7 @@ export {
|
|
|
1957
1993
|
SSOConfigurationIcon,
|
|
1958
1994
|
STICKY_HEADER_OFFSET_PX,
|
|
1959
1995
|
STRIP_CELL_MAX_WIDTH,
|
|
1996
|
+
SVG_TAGS,
|
|
1960
1997
|
SYNTHETIC_REALTIME_ID_PREFIXES,
|
|
1961
1998
|
ScriptArguments,
|
|
1962
1999
|
ScriptGenerationIcon,
|
|
@@ -2041,6 +2078,7 @@ export {
|
|
|
2041
2078
|
TAG_BADGE_CLASS,
|
|
2042
2079
|
TASK_TYPE_LABELS,
|
|
2043
2080
|
TASK_TYPE_TEXT_COLORS,
|
|
2081
|
+
TEXT_SIZE_PRESETS,
|
|
2044
2082
|
THEME_ATTRIBUTE,
|
|
2045
2083
|
THEME_STORAGE_KEY,
|
|
2046
2084
|
TICKET_STATUS_COLOR_PRESETS,
|
|
@@ -2169,15 +2207,19 @@ export {
|
|
|
2169
2207
|
buildDefaultHref,
|
|
2170
2208
|
buildDiscussAddendum,
|
|
2171
2209
|
buildDocumentTree,
|
|
2210
|
+
buildEffectiveTagSet,
|
|
2211
|
+
buildHeadingIdMap,
|
|
2172
2212
|
buildListUrl,
|
|
2173
2213
|
buildNatsWsUrl,
|
|
2174
2214
|
buildOgPlaceholderUrl,
|
|
2175
2215
|
buildProductReleaseCardProps,
|
|
2216
|
+
buildSanitizeSchema,
|
|
2176
2217
|
buildStreamFrames,
|
|
2177
2218
|
buildSuggestionUrl,
|
|
2178
2219
|
buttonVariants,
|
|
2179
2220
|
canonicalContentRefType,
|
|
2180
2221
|
captureFirstTouchAttribution,
|
|
2222
|
+
cardAwareUrlTransform,
|
|
2181
2223
|
changelogLabels,
|
|
2182
2224
|
embedAuthedFetch as chatAuthedFetch,
|
|
2183
2225
|
chatChipClass,
|
|
@@ -2195,16 +2237,24 @@ export {
|
|
|
2195
2237
|
cn,
|
|
2196
2238
|
coerceValue,
|
|
2197
2239
|
columnFromTicketStatus,
|
|
2240
|
+
completeStreamingTail,
|
|
2198
2241
|
computeHistoryPrepend,
|
|
2199
2242
|
computeIsNewTab,
|
|
2200
2243
|
configureAuthenticatedImage,
|
|
2201
2244
|
configureBatchImageFetch,
|
|
2202
2245
|
consumeAccessCode,
|
|
2246
|
+
createChatDialogStore,
|
|
2247
|
+
createChatStreamReducer,
|
|
2203
2248
|
createColumnHelper,
|
|
2249
|
+
createDeltaBatcher,
|
|
2250
|
+
createEmptyTurnMeta,
|
|
2251
|
+
createFenceTracker,
|
|
2252
|
+
createHeadingIdDeduper,
|
|
2204
2253
|
createMessageSegmentAccumulator,
|
|
2205
2254
|
createSearchParams,
|
|
2206
2255
|
createUTCTimestamp,
|
|
2207
2256
|
decideNewTab,
|
|
2257
|
+
decodeHistoricalMessageData,
|
|
2208
2258
|
deepClone,
|
|
2209
2259
|
defaultBuildProductReleaseCardProps,
|
|
2210
2260
|
defaultTableIdForDocumentType,
|
|
@@ -2220,6 +2270,7 @@ export {
|
|
|
2220
2270
|
embedAuthedFetch,
|
|
2221
2271
|
ensureBiteIds,
|
|
2222
2272
|
escapeMarkdownInline,
|
|
2273
|
+
escapeUnknownHtmlTags,
|
|
2223
2274
|
evaluateHumanitySignals,
|
|
2224
2275
|
executeNavigation,
|
|
2225
2276
|
executeNavigationImperative,
|
|
@@ -2231,10 +2282,11 @@ export {
|
|
|
2231
2282
|
extractHumanitySignals,
|
|
2232
2283
|
extractImageEdgeColorAsync,
|
|
2233
2284
|
extractIncompleteMessageState,
|
|
2285
|
+
extractIncompleteTailState,
|
|
2234
2286
|
extractItemId,
|
|
2235
2287
|
extractItems,
|
|
2236
2288
|
extractSections,
|
|
2237
|
-
|
|
2289
|
+
extractText,
|
|
2238
2290
|
extractVariablesFromQuery,
|
|
2239
2291
|
extractYouTubeId,
|
|
2240
2292
|
faqItemAnchor,
|
|
@@ -2384,16 +2436,14 @@ export {
|
|
|
2384
2436
|
introspector,
|
|
2385
2437
|
isAnnouncementDismissed,
|
|
2386
2438
|
isApprovalNotification,
|
|
2387
|
-
|
|
2439
|
+
isBlankLine,
|
|
2388
2440
|
isCrossOriginUrl,
|
|
2389
2441
|
isDismissedCookieValue,
|
|
2390
|
-
isErrorChunk,
|
|
2391
2442
|
isFigmaSlidesUrl,
|
|
2392
2443
|
isGenericDomain,
|
|
2393
2444
|
isGenericWebsiteDomain,
|
|
2394
2445
|
isHistoricalUserTurn,
|
|
2395
2446
|
isInputObjectType,
|
|
2396
|
-
isMetadataChunk,
|
|
2397
2447
|
isModifierClick,
|
|
2398
2448
|
isOSPlatform,
|
|
2399
2449
|
isQuickActionIconSpec,
|
|
@@ -2432,7 +2482,6 @@ export {
|
|
|
2432
2482
|
orderContentRefTypes,
|
|
2433
2483
|
osLabels,
|
|
2434
2484
|
parseAttributionFromUrl,
|
|
2435
|
-
parseChunkToAction,
|
|
2436
2485
|
parseFaqHash,
|
|
2437
2486
|
parseScrollAnchor,
|
|
2438
2487
|
parseWireCommandOverride,
|
|
@@ -2447,11 +2496,13 @@ export {
|
|
|
2447
2496
|
platformSlogans,
|
|
2448
2497
|
processHistoricalMessages,
|
|
2449
2498
|
processHistoricalMessagesWithErrors,
|
|
2499
|
+
processShortcodes,
|
|
2450
2500
|
programItemToStripProfile,
|
|
2451
2501
|
progressColorByVariant,
|
|
2452
2502
|
ratioToCategory,
|
|
2453
2503
|
readDismissCookie,
|
|
2454
2504
|
readLeadingDecisionFrame,
|
|
2505
|
+
rehypeStripUnsafe,
|
|
2455
2506
|
releaseStatusOptions,
|
|
2456
2507
|
releaseTypeOptions,
|
|
2457
2508
|
releaseTypeToBadgeColor,
|
|
@@ -2468,12 +2519,14 @@ export {
|
|
|
2468
2519
|
resolveSourceIcon,
|
|
2469
2520
|
resolveSourceRowCTA,
|
|
2470
2521
|
resolveStatusTagProps,
|
|
2522
|
+
resolveTextSizeConfig,
|
|
2471
2523
|
resolveTicketStatus,
|
|
2472
2524
|
rgbToHex,
|
|
2473
2525
|
safeHref,
|
|
2474
2526
|
sanitizeLandingUrl,
|
|
2475
2527
|
sanitizeTitleForChat,
|
|
2476
2528
|
saveDataEnabled,
|
|
2529
|
+
scanHeadings,
|
|
2477
2530
|
scrollElementIntoView,
|
|
2478
2531
|
serializeJsonLd,
|
|
2479
2532
|
setEmbedProxyAuth as setChatProxyAuth,
|
|
@@ -2485,12 +2538,16 @@ export {
|
|
|
2485
2538
|
shouldProxyImage,
|
|
2486
2539
|
showCommandApprovalToast,
|
|
2487
2540
|
showToast,
|
|
2541
|
+
slugifyHeadingBase,
|
|
2542
|
+
slugifyHeadingText,
|
|
2488
2543
|
sortBitesByCreatedAtDesc,
|
|
2489
2544
|
sortTreeChildren,
|
|
2490
2545
|
splitCsvEnv,
|
|
2546
|
+
splitStreamingBlocks,
|
|
2491
2547
|
statusBadgeVariants,
|
|
2492
2548
|
stripChatAttachmentMarkdown,
|
|
2493
2549
|
stripFolderIndexFromPath,
|
|
2550
|
+
stripHeadingEmojis,
|
|
2494
2551
|
stripHtml,
|
|
2495
2552
|
stripInlineMarkdown,
|
|
2496
2553
|
stripSameOriginToPath,
|
|
@@ -2527,6 +2584,7 @@ export {
|
|
|
2527
2584
|
useChatAttachments,
|
|
2528
2585
|
useChatCardItem,
|
|
2529
2586
|
useChatIdentity,
|
|
2587
|
+
useChatStreamReducer,
|
|
2530
2588
|
useChunkCatchup,
|
|
2531
2589
|
useCloseOnNavigation,
|
|
2532
2590
|
useCollapsible,
|
|
@@ -2544,6 +2602,7 @@ export {
|
|
|
2544
2602
|
useFiltersDropdown,
|
|
2545
2603
|
useFocusTrap,
|
|
2546
2604
|
useHeaderHeight,
|
|
2605
|
+
useHeadingIdMap,
|
|
2547
2606
|
useHorizontalScrollbar,
|
|
2548
2607
|
useHumanitySignals,
|
|
2549
2608
|
useImageEdgeColor,
|
|
@@ -2573,7 +2632,6 @@ export {
|
|
|
2573
2632
|
usePreventScroll,
|
|
2574
2633
|
useProxiedImageUrl,
|
|
2575
2634
|
useQueryParams,
|
|
2576
|
-
useRealtimeChunkProcessor,
|
|
2577
2635
|
useResetOnPageHidden,
|
|
2578
2636
|
useSSE,
|
|
2579
2637
|
useScriptedStream,
|
package/dist/utils/index.cjs
CHANGED
|
@@ -3996,6 +3996,151 @@ function buildDocumentTree(docs, mapFn, getParentPath, getPath) {
|
|
|
3996
3996
|
return sortTreeChildren(rootNodes);
|
|
3997
3997
|
}
|
|
3998
3998
|
|
|
3999
|
+
// src/utils/markdown-fences.ts
|
|
4000
|
+
var FENCE_RE = /^ {0,3}(`{3,}|~{3,})([^\n]*?)\r?$/;
|
|
4001
|
+
var BLANK_LINE_RE = /^[ \t\r]*$/;
|
|
4002
|
+
function isBlankLine(line) {
|
|
4003
|
+
return BLANK_LINE_RE.test(line);
|
|
4004
|
+
}
|
|
4005
|
+
function createFenceTracker() {
|
|
4006
|
+
let fenceChar = null;
|
|
4007
|
+
let fenceLength = 0;
|
|
4008
|
+
return {
|
|
4009
|
+
push(line) {
|
|
4010
|
+
const fence = FENCE_RE.exec(line);
|
|
4011
|
+
if (fence) {
|
|
4012
|
+
const run = fence[1];
|
|
4013
|
+
if (fenceChar === null) {
|
|
4014
|
+
fenceChar = run[0];
|
|
4015
|
+
fenceLength = run.length;
|
|
4016
|
+
return "open";
|
|
4017
|
+
}
|
|
4018
|
+
if (run[0] === fenceChar && run.length >= fenceLength && isBlankLine(fence[2])) {
|
|
4019
|
+
fenceChar = null;
|
|
4020
|
+
fenceLength = 0;
|
|
4021
|
+
return "close";
|
|
4022
|
+
}
|
|
4023
|
+
return "inside";
|
|
4024
|
+
}
|
|
4025
|
+
return fenceChar === null ? "text" : "inside";
|
|
4026
|
+
},
|
|
4027
|
+
openChar: () => fenceChar,
|
|
4028
|
+
openLength: () => fenceLength
|
|
4029
|
+
};
|
|
4030
|
+
}
|
|
4031
|
+
|
|
4032
|
+
// src/utils/markdown-heading-id.ts
|
|
4033
|
+
var HEADING_EMOJI_RE = /[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]/gu;
|
|
4034
|
+
function stripHeadingEmojis(text) {
|
|
4035
|
+
return text.replace(HEADING_EMOJI_RE, "").trim();
|
|
4036
|
+
}
|
|
4037
|
+
function slugifyHeadingBase(text) {
|
|
4038
|
+
return text.trim().toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/^-+|-+$/g, "");
|
|
4039
|
+
}
|
|
4040
|
+
function slugifyHeadingText(text) {
|
|
4041
|
+
return slugifyHeadingBase(stripHeadingEmojis(text));
|
|
4042
|
+
}
|
|
4043
|
+
var ATX_HEADING_RE = /^ {0,3}(#{1,6})[ \t]+(.*?)(?:[ \t]+#+)?[ \t]*\r?$/;
|
|
4044
|
+
var ATX_EMPTY_RE = /^ {0,3}(#{1,6})[ \t]*#*[ \t]*\r?$/;
|
|
4045
|
+
var RAW_HEADING_RE = /<h([1-6])\b[^>]*>([\s\S]*?)(?:<\/h\1>|$)/gi;
|
|
4046
|
+
var CONTAINER_PREFIX_RE = /^ {0,3}(?:(?:>[ \t]?)+|(?:[-+*]|\d{1,9}[.)])[ \t]+)+/;
|
|
4047
|
+
var SETEXT_UNDERLINE_RE = /^ {0,3}(=+|-+)[ \t]*\r?$/;
|
|
4048
|
+
var THEMATIC_BREAK_RE = /^ {0,3}(\*|_){3,}[ \t]*\r?$/;
|
|
4049
|
+
var HTML_BLOCK_TAGS = "address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";
|
|
4050
|
+
var HTML_BLOCK_OPENER_RE = new RegExp(
|
|
4051
|
+
`^ {0,3}(?:<(?:script|pre|style|textarea)(?:[\\s>]|$)|<!--|<\\?|<![a-zA-Z]|<!\\[CDATA\\[|</?(?:${HTML_BLOCK_TAGS})(?:[\\s/>]|$)|<[a-zA-Z][a-zA-Z0-9-]*(?:\\s[^>]*)?/?>[ \\t]*\\r?$|</[a-zA-Z][a-zA-Z0-9-]*[ \\t]*>[ \\t]*\\r?$)`,
|
|
4052
|
+
"i"
|
|
4053
|
+
);
|
|
4054
|
+
function scanHeadings(content, options = {}) {
|
|
4055
|
+
const { skipFrontmatter = true, includeRawHtml = true, skipFences = true } = options;
|
|
4056
|
+
const out = [];
|
|
4057
|
+
const lines = content.split("\n");
|
|
4058
|
+
const fences = skipFences ? createFenceTracker() : null;
|
|
4059
|
+
let start = 0;
|
|
4060
|
+
if (skipFrontmatter && lines[0]?.trim() === "---") {
|
|
4061
|
+
for (let i = 1; i < lines.length; i++) {
|
|
4062
|
+
if (lines[i].trim() === "---" || lines[i].trim() === "...") {
|
|
4063
|
+
start = i + 1;
|
|
4064
|
+
break;
|
|
4065
|
+
}
|
|
4066
|
+
}
|
|
4067
|
+
}
|
|
4068
|
+
let setextRun = null;
|
|
4069
|
+
for (let i = start; i < lines.length; i++) {
|
|
4070
|
+
const line = lines[i];
|
|
4071
|
+
if (fences) {
|
|
4072
|
+
const role = fences.push(line);
|
|
4073
|
+
if (role !== "text") {
|
|
4074
|
+
setextRun = null;
|
|
4075
|
+
continue;
|
|
4076
|
+
}
|
|
4077
|
+
}
|
|
4078
|
+
const prefix = CONTAINER_PREFIX_RE.exec(line)?.[0] ?? "";
|
|
4079
|
+
const body = prefix ? line.slice(prefix.length) : line;
|
|
4080
|
+
const setext = SETEXT_UNDERLINE_RE.exec(body);
|
|
4081
|
+
if (setext) {
|
|
4082
|
+
if (setextRun && !setextRun.disqualified && setextRun.prefix === prefix) {
|
|
4083
|
+
out.push({
|
|
4084
|
+
line: setextRun.line,
|
|
4085
|
+
level: setext[1][0] === "=" ? 1 : 2,
|
|
4086
|
+
text: setextRun.lines.join("\n")
|
|
4087
|
+
});
|
|
4088
|
+
}
|
|
4089
|
+
setextRun = null;
|
|
4090
|
+
continue;
|
|
4091
|
+
}
|
|
4092
|
+
const atx = ATX_HEADING_RE.exec(body) ?? ATX_EMPTY_RE.exec(body);
|
|
4093
|
+
if (atx) {
|
|
4094
|
+
out.push({ line: i + 1, level: atx[1].length, text: (atx[2] ?? "").trim() });
|
|
4095
|
+
setextRun = null;
|
|
4096
|
+
continue;
|
|
4097
|
+
}
|
|
4098
|
+
if (includeRawHtml && line.indexOf("<") !== -1) {
|
|
4099
|
+
RAW_HEADING_RE.lastIndex = 0;
|
|
4100
|
+
let raw;
|
|
4101
|
+
let matched = false;
|
|
4102
|
+
while ((raw = RAW_HEADING_RE.exec(line)) !== null) {
|
|
4103
|
+
matched = true;
|
|
4104
|
+
out.push({
|
|
4105
|
+
line: i + 1,
|
|
4106
|
+
level: Number(raw[1]),
|
|
4107
|
+
text: raw[2].replace(/<[^>]*>/g, "").trim()
|
|
4108
|
+
});
|
|
4109
|
+
}
|
|
4110
|
+
if (matched) {
|
|
4111
|
+
setextRun = null;
|
|
4112
|
+
continue;
|
|
4113
|
+
}
|
|
4114
|
+
}
|
|
4115
|
+
if (isBlankLine(body) || THEMATIC_BREAK_RE.test(body)) {
|
|
4116
|
+
setextRun = null;
|
|
4117
|
+
continue;
|
|
4118
|
+
}
|
|
4119
|
+
if (setextRun && setextRun.prefix === prefix) {
|
|
4120
|
+
setextRun.lines.push(body.trim());
|
|
4121
|
+
} else {
|
|
4122
|
+
setextRun = {
|
|
4123
|
+
line: i + 1,
|
|
4124
|
+
prefix,
|
|
4125
|
+
lines: [body.trim()],
|
|
4126
|
+
disqualified: HTML_BLOCK_OPENER_RE.test(body)
|
|
4127
|
+
};
|
|
4128
|
+
}
|
|
4129
|
+
}
|
|
4130
|
+
return out;
|
|
4131
|
+
}
|
|
4132
|
+
function createHeadingIdDeduper() {
|
|
4133
|
+
const counts = {};
|
|
4134
|
+
return (cleanId) => {
|
|
4135
|
+
if (counts[cleanId]) {
|
|
4136
|
+
counts[cleanId]++;
|
|
4137
|
+
return `${cleanId}-${counts[cleanId]}`;
|
|
4138
|
+
}
|
|
4139
|
+
counts[cleanId] = 1;
|
|
4140
|
+
return cleanId;
|
|
4141
|
+
};
|
|
4142
|
+
}
|
|
4143
|
+
|
|
3999
4144
|
// src/utils/markdown-to-plain.ts
|
|
4000
4145
|
function stripInlineMarkdown(s) {
|
|
4001
4146
|
return s.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/\*\*([^*]+)\*\*/g, "$1").replace(/\*([^*]+)\*/g, "$1").replace(/`([^`]+)`/g, "$1");
|
|
@@ -4026,50 +4171,26 @@ var DEFAULT_OPTIONS = {
|
|
|
4026
4171
|
function extractSections(markdown, options = {}) {
|
|
4027
4172
|
const opts = { ...DEFAULT_OPTIONS, ...options };
|
|
4028
4173
|
const sections = [];
|
|
4029
|
-
const
|
|
4030
|
-
const
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
continue;
|
|
4038
|
-
}
|
|
4039
|
-
if (line === "---") {
|
|
4040
|
-
inYamlBlock = !inYamlBlock;
|
|
4041
|
-
continue;
|
|
4042
|
-
}
|
|
4043
|
-
if (inCodeBlock || inYamlBlock) continue;
|
|
4044
|
-
}
|
|
4045
|
-
const pattern = new RegExp(`^(#{1,${opts.maxLevel}})\\s+(.+)`);
|
|
4046
|
-
const match = line.match(pattern);
|
|
4047
|
-
if (!match) continue;
|
|
4048
|
-
const level = match[1].length;
|
|
4049
|
-
if (level > opts.maxLevel) continue;
|
|
4050
|
-
let title = match[2].trim();
|
|
4174
|
+
const dedupe = createHeadingIdDeduper();
|
|
4175
|
+
const scanned = scanHeadings(markdown, {
|
|
4176
|
+
skipFrontmatter: opts.skipCodeAndYamlBlocks,
|
|
4177
|
+
skipFences: opts.skipCodeAndYamlBlocks
|
|
4178
|
+
});
|
|
4179
|
+
for (const heading of scanned) {
|
|
4180
|
+
if (heading.level > opts.maxLevel) continue;
|
|
4181
|
+
let title = heading.text;
|
|
4051
4182
|
if (opts.stripFormattingMarkers) {
|
|
4052
4183
|
title = stripInlineMarkdown(title).trim();
|
|
4053
4184
|
}
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
/[\u{1F300}-\u{1F9FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]/gu,
|
|
4058
|
-
""
|
|
4059
|
-
).trim();
|
|
4060
|
-
}
|
|
4061
|
-
baseId = baseId.toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/^-+|-+$/g, "");
|
|
4185
|
+
const baseId = slugifyHeadingBase(
|
|
4186
|
+
opts.removeEmojis ? stripHeadingEmojis(title) : title
|
|
4187
|
+
);
|
|
4062
4188
|
const cleanId = baseId || `section-${sections.length + 1}`;
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
} else {
|
|
4069
|
-
idCounts[cleanId] = 1;
|
|
4070
|
-
}
|
|
4071
|
-
}
|
|
4072
|
-
sections.push({ id, title, level });
|
|
4189
|
+
sections.push({
|
|
4190
|
+
id: opts.handleDuplicateIds ? dedupe(cleanId) : cleanId,
|
|
4191
|
+
title,
|
|
4192
|
+
level: heading.level
|
|
4193
|
+
});
|
|
4073
4194
|
}
|
|
4074
4195
|
return sections;
|
|
4075
4196
|
}
|
|
@@ -4235,6 +4356,7 @@ exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS;
|
|
|
4235
4356
|
exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD;
|
|
4236
4357
|
exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY;
|
|
4237
4358
|
exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS;
|
|
4359
|
+
exports.HEADING_EMOJI_RE = HEADING_EMOJI_RE;
|
|
4238
4360
|
exports.HEX_PATTERN = HEX_PATTERN;
|
|
4239
4361
|
exports.HONEYPOT_FIELD = HONEYPOT_FIELD;
|
|
4240
4362
|
exports.HUB_HEADER_OFFSET_PX = HUB_HEADER_OFFSET_PX;
|
|
@@ -4277,6 +4399,8 @@ exports.clearWalkthroughDismissal = clearWalkthroughDismissal;
|
|
|
4277
4399
|
exports.clickupTaskUrl = clickupTaskUrl;
|
|
4278
4400
|
exports.cn = cn;
|
|
4279
4401
|
exports.consumeAccessCode = consumeAccessCode;
|
|
4402
|
+
exports.createFenceTracker = createFenceTracker;
|
|
4403
|
+
exports.createHeadingIdDeduper = createHeadingIdDeduper;
|
|
4280
4404
|
exports.createUTCTimestamp = createUTCTimestamp;
|
|
4281
4405
|
exports.deepClone = deepClone;
|
|
4282
4406
|
exports.delay = delay;
|
|
@@ -4400,6 +4524,7 @@ exports.getTrendColors = getTrendColors;
|
|
|
4400
4524
|
exports.hasGenericEmailDomain = hasGenericEmailDomain;
|
|
4401
4525
|
exports.hexToRgb = hexToRgb2;
|
|
4402
4526
|
exports.isAnnouncementDismissed = isAnnouncementDismissed;
|
|
4527
|
+
exports.isBlankLine = isBlankLine;
|
|
4403
4528
|
exports.isCrossOriginUrl = isCrossOriginUrl;
|
|
4404
4529
|
exports.isDismissedCookieValue = isDismissedCookieValue;
|
|
4405
4530
|
exports.isFigmaSlidesUrl = isFigmaSlidesUrl;
|
|
@@ -4445,15 +4570,19 @@ exports.resolveReleaseCover = resolveReleaseCover;
|
|
|
4445
4570
|
exports.rgbToHex = rgbToHex;
|
|
4446
4571
|
exports.sanitizeLandingUrl = sanitizeLandingUrl;
|
|
4447
4572
|
exports.sanitizeTitleForChat = sanitizeTitleForChat;
|
|
4573
|
+
exports.scanHeadings = scanHeadings;
|
|
4448
4574
|
exports.scrollElementIntoView = scrollElementIntoView;
|
|
4449
4575
|
exports.serializeJsonLd = serializeJsonLd;
|
|
4450
4576
|
exports.setEmbedAuthAdapter = setEmbedAuthAdapter;
|
|
4451
4577
|
exports.setEmbedProxyAuth = setEmbedProxyAuth;
|
|
4452
4578
|
exports.shouldProxyImage = shouldProxyImage;
|
|
4579
|
+
exports.slugifyHeadingBase = slugifyHeadingBase;
|
|
4580
|
+
exports.slugifyHeadingText = slugifyHeadingText;
|
|
4453
4581
|
exports.sortTreeChildren = sortTreeChildren;
|
|
4454
4582
|
exports.splitCsvEnv = splitCsvEnv;
|
|
4455
4583
|
exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown;
|
|
4456
4584
|
exports.stripFolderIndexFromPath = stripFolderIndexFromPath;
|
|
4585
|
+
exports.stripHeadingEmojis = stripHeadingEmojis;
|
|
4457
4586
|
exports.stripHtml = stripHtml;
|
|
4458
4587
|
exports.stripInlineMarkdown = stripInlineMarkdown;
|
|
4459
4588
|
exports.toDocSlug = toDocSlug;
|