@mastra/playground-ui 68.0.0 → 69.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -8
- package/dist/AgentIndicator-Dnv_1hvF.js +1995 -0
- package/dist/AgentIndicator-Dnv_1hvF.js.map +1 -0
- package/dist/AgentIndicator-zCokR2zb.cjs +2012 -0
- package/dist/AgentIndicator-zCokR2zb.cjs.map +1 -0
- package/dist/{AttachmentCard-DbGp7TYl.js → AttachmentCard-Bt3-QAxJ.js} +3 -3
- package/dist/{AttachmentCard-DbGp7TYl.js.map → AttachmentCard-Bt3-QAxJ.js.map} +1 -1
- package/dist/{AttachmentCard-CciBqu7E.cjs → AttachmentCard-BycDEelL.cjs} +3 -3
- package/dist/{AttachmentCard-CciBqu7E.cjs.map → AttachmentCard-BycDEelL.cjs.map} +1 -1
- package/dist/{Avatar-Dj8aP7OI.js → Avatar-DOoEXudh.js} +3 -3
- package/dist/{Avatar-Dj8aP7OI.js.map → Avatar-DOoEXudh.js.map} +1 -1
- package/dist/{Avatar-Iiqjad9K.cjs → Avatar-Dxpc0YUx.cjs} +3 -3
- package/dist/{Avatar-Iiqjad9K.cjs.map → Avatar-Dxpc0YUx.cjs.map} +1 -1
- package/dist/{Badge-aVu5iGAF.js → Badge-C7NnqmMx.js} +3 -3
- package/dist/{Badge-aVu5iGAF.js.map → Badge-C7NnqmMx.js.map} +1 -1
- package/dist/{Badge-DZ6r6bcw.cjs → Badge-DqaMg7Gy.cjs} +3 -3
- package/dist/{Badge-DZ6r6bcw.cjs.map → Badge-DqaMg7Gy.cjs.map} +1 -1
- package/dist/{Button-DLcMcuUL.cjs → Button-BfICfyxD.cjs} +5 -5
- package/dist/Button-BfICfyxD.cjs.map +1 -0
- package/dist/{Button-CLXTbAY8.js → Button-Bi7aXd_G.js} +5 -5
- package/dist/Button-Bi7aXd_G.js.map +1 -0
- package/dist/{Card-C6iEBgVq.cjs → Card-C9oCXvxU.cjs} +3 -3
- package/dist/{Card-C6iEBgVq.cjs.map → Card-C9oCXvxU.cjs.map} +1 -1
- package/dist/{Card-LU1aWO7U.js → Card-ClDoUQNb.js} +3 -3
- package/dist/{Card-LU1aWO7U.js.map → Card-ClDoUQNb.js.map} +1 -1
- package/dist/{CodeEditor-CLzs0yVc.cjs → CodeEditor-DHIDfP5g.cjs} +8 -8
- package/dist/{CodeEditor-CLzs0yVc.cjs.map → CodeEditor-DHIDfP5g.cjs.map} +1 -1
- package/dist/{CodeEditor-COnz9c6B.js → CodeEditor-ZoBu3Gjw.js} +8 -8
- package/dist/{CodeEditor-COnz9c6B.js.map → CodeEditor-ZoBu3Gjw.js.map} +1 -1
- package/dist/{Comment-0n98b_f_.js → Comment-2q9SomE2.js} +5 -5
- package/dist/{Comment-0n98b_f_.js.map → Comment-2q9SomE2.js.map} +1 -1
- package/dist/{Comment-Cg0f7eLa.cjs → Comment-rQxuMDQv.cjs} +6 -6
- package/dist/{Comment-Cg0f7eLa.cjs.map → Comment-rQxuMDQv.cjs.map} +1 -1
- package/dist/{Composer-D1gF-0jZ.js → Composer-bVE8qK52.js} +19 -14
- package/dist/Composer-bVE8qK52.js.map +1 -0
- package/dist/{Composer-BcueJvdX.cjs → Composer-u1K6edoZ.cjs} +18 -13
- package/dist/Composer-u1K6edoZ.cjs.map +1 -0
- package/dist/{DataCodeSection-CFxXsQWH.cjs → DataCodeSection-7SvRJj6f.cjs} +8 -8
- package/dist/{DataCodeSection-CFxXsQWH.cjs.map → DataCodeSection-7SvRJj6f.cjs.map} +1 -1
- package/dist/{DataCodeSection-PY9XEg2C.js → DataCodeSection-CTodi9wg.js} +8 -8
- package/dist/{DataCodeSection-PY9XEg2C.js.map → DataCodeSection-CTodi9wg.js.map} +1 -1
- package/dist/{DataDetailsPanel-DiyjEXqK.cjs → DataDetailsPanel-BDoD6pxx.cjs} +7 -7
- package/dist/{DataDetailsPanel-DiyjEXqK.cjs.map → DataDetailsPanel-BDoD6pxx.cjs.map} +1 -1
- package/dist/{DataDetailsPanel-CohEKPm4.js → DataDetailsPanel-BU05psHL.js} +7 -7
- package/dist/{DataDetailsPanel-CohEKPm4.js.map → DataDetailsPanel-BU05psHL.js.map} +1 -1
- package/dist/{DataKeysAndValues-PwOmGxyp.js → DataKeysAndValues-B56je3sK.js} +2 -2
- package/dist/{DataKeysAndValues-PwOmGxyp.js.map → DataKeysAndValues-B56je3sK.js.map} +1 -1
- package/dist/{DataKeysAndValues-DsH6AbAo.cjs → DataKeysAndValues-BbKeVxrQ.cjs} +2 -2
- package/dist/{DataKeysAndValues-DsH6AbAo.cjs.map → DataKeysAndValues-BbKeVxrQ.cjs.map} +1 -1
- package/dist/{DataList-CUhRQAv6.js → DataList-B7ho6PrJ.js} +8 -8
- package/dist/{DataList-CUhRQAv6.js.map → DataList-B7ho6PrJ.js.map} +1 -1
- package/dist/{DataList-Cj0mfk19.cjs → DataList-DTIdllb-.cjs} +8 -8
- package/dist/{DataList-Cj0mfk19.cjs.map → DataList-DTIdllb-.cjs.map} +1 -1
- package/dist/{DataPanel-Coc9h35I.cjs → DataPanel-BRRAvWYQ.cjs} +10 -10
- package/dist/{DataPanel-Coc9h35I.cjs.map → DataPanel-BRRAvWYQ.cjs.map} +1 -1
- package/dist/{DataPanel-IgB9D5PO.js → DataPanel-pVr5LVaK.js} +10 -10
- package/dist/{DataPanel-IgB9D5PO.js.map → DataPanel-pVr5LVaK.js.map} +1 -1
- package/dist/{Dialog-BvWF9HE-.cjs → Dialog-Duy3M1ny.cjs} +3 -3
- package/dist/{Dialog-BvWF9HE-.cjs.map → Dialog-Duy3M1ny.cjs.map} +1 -1
- package/dist/{Dialog-DaWtxwd9.js → Dialog-OBPu3rl2.js} +3 -3
- package/dist/{Dialog-DaWtxwd9.js.map → Dialog-OBPu3rl2.js.map} +1 -1
- package/dist/{EmptyState-DxDHlYqD.cjs → EmptyState-Dc-sP95H.cjs} +2 -2
- package/dist/{EmptyState-DxDHlYqD.cjs.map → EmptyState-Dc-sP95H.cjs.map} +1 -1
- package/dist/{EmptyState-P-Gy898T.js → EmptyState-i88y1x75.js} +2 -2
- package/dist/{EmptyState-P-Gy898T.js.map → EmptyState-i88y1x75.js.map} +1 -1
- package/dist/{ErrorBoundary-B5GjmA6V.cjs → ErrorBoundary-Bwoum0sT.cjs} +3 -3
- package/dist/{ErrorBoundary-B5GjmA6V.cjs.map → ErrorBoundary-Bwoum0sT.cjs.map} +1 -1
- package/dist/{ErrorBoundary-Cat3KU86.js → ErrorBoundary-BzmaWe2y.js} +3 -3
- package/dist/{ErrorBoundary-Cat3KU86.js.map → ErrorBoundary-BzmaWe2y.js.map} +1 -1
- package/dist/{FilterBar-PSQ1OwqH.js → FilterBar-Kmn6gMgO.js} +14 -15
- package/dist/FilterBar-Kmn6gMgO.js.map +1 -0
- package/dist/{FilterBar-BSP2UTjc.cjs → FilterBar-jBz6yaNu.cjs} +13 -14
- package/dist/FilterBar-jBz6yaNu.cjs.map +1 -0
- package/dist/{LogsDataList-BI2C5OJz.js → LogsDataList-Cdo_U0Ei.js} +5 -5
- package/dist/{LogsDataList-BI2C5OJz.js.map → LogsDataList-Cdo_U0Ei.js.map} +1 -1
- package/dist/{LogsDataList-CCIfUPGo.cjs → LogsDataList-z0Y2X8P5.cjs} +5 -5
- package/dist/{LogsDataList-CCIfUPGo.cjs.map → LogsDataList-z0Y2X8P5.cjs.map} +1 -1
- package/dist/{MarkdownRenderer-y65WGBhC.cjs → MarkdownRenderer-CUYpmuPh.cjs} +6 -6
- package/dist/{MarkdownRenderer-y65WGBhC.cjs.map → MarkdownRenderer-CUYpmuPh.cjs.map} +1 -1
- package/dist/{MarkdownRenderer-CI30RqdB.js → MarkdownRenderer-CY8LGt-l.js} +6 -6
- package/dist/{MarkdownRenderer-CI30RqdB.js.map → MarkdownRenderer-CY8LGt-l.js.map} +1 -1
- package/dist/MarkdownRenderer.css +77 -6
- package/dist/{Message-jj56lxNL.cjs → Message-CgO_SxI4.cjs} +20 -9
- package/dist/Message-CgO_SxI4.cjs.map +1 -0
- package/dist/{Message-CWzi5F_Q.js → Message-DnnCoSef.js} +20 -9
- package/dist/{Message-CWzi5F_Q.js.map → Message-DnnCoSef.js.map} +1 -1
- package/dist/{MessageScroller-CGsfTd1Z.cjs → MessageScroller-D-mK1uuu.cjs} +50 -26
- package/dist/MessageScroller-D-mK1uuu.cjs.map +1 -0
- package/dist/{MessageScroller-DvaKlm4O.js → MessageScroller-nV_zBF3H.js} +50 -26
- package/dist/MessageScroller-nV_zBF3H.js.map +1 -0
- package/dist/Metadata-5GJlO4GU.cjs +32 -0
- package/dist/Metadata-5GJlO4GU.cjs.map +1 -0
- package/dist/Metadata-DlVgmRTA.js +27 -0
- package/dist/Metadata-DlVgmRTA.js.map +1 -0
- package/dist/{MetricsCard-BEwiS7Pe.cjs → MetricsCard-DojbLiEx.cjs} +19 -6
- package/dist/MetricsCard-DojbLiEx.cjs.map +1 -0
- package/dist/{MetricsCard-ua6C6b8a.js → MetricsCard-kAqSCPPe.js} +20 -7
- package/dist/MetricsCard-kAqSCPPe.js.map +1 -0
- package/dist/{MetricsKpiCard-OHbAElTl.js → MetricsKpiCard-1blTbzUs.js} +6 -6
- package/dist/{MetricsKpiCard-OHbAElTl.js.map → MetricsKpiCard-1blTbzUs.js.map} +1 -1
- package/dist/{MetricsKpiCard-By_-sagx.cjs → MetricsKpiCard-C_9GvRAp.cjs} +6 -6
- package/dist/{MetricsKpiCard-By_-sagx.cjs.map → MetricsKpiCard-C_9GvRAp.cjs.map} +1 -1
- package/dist/{MetricsLineChart-4SwxBbQx.js → MetricsLineChart-4w5lpH63.js} +3 -3
- package/dist/{MetricsLineChart-4SwxBbQx.js.map → MetricsLineChart-4w5lpH63.js.map} +1 -1
- package/dist/{MetricsLineChart-tZxsauau.cjs → MetricsLineChart-BnY9JKzc.cjs} +3 -3
- package/dist/{MetricsLineChart-tZxsauau.cjs.map → MetricsLineChart-BnY9JKzc.cjs.map} +1 -1
- package/dist/{MetricsStackedBarChart-D2QyS4-z.js → MetricsStackedBarChart-Bmk0OjYp.js} +7 -7
- package/dist/{MetricsStackedBarChart-D2QyS4-z.js.map → MetricsStackedBarChart-Bmk0OjYp.js.map} +1 -1
- package/dist/{MetricsStackedBarChart-CDLE76IB.cjs → MetricsStackedBarChart-CJQF99sc.cjs} +7 -7
- package/dist/{MetricsStackedBarChart-CDLE76IB.cjs.map → MetricsStackedBarChart-CJQF99sc.cjs.map} +1 -1
- package/dist/{MetricsTable-BSl81oNe.cjs → MetricsTable-CvMoo2vg.cjs} +3 -3
- package/dist/{MetricsTable-BSl81oNe.cjs.map → MetricsTable-CvMoo2vg.cjs.map} +1 -1
- package/dist/{MetricsTable-DID6LRoP.js → MetricsTable-DIjbD5Xk.js} +3 -3
- package/dist/{MetricsTable-DID6LRoP.js.map → MetricsTable-DIjbD5Xk.js.map} +1 -1
- package/dist/{Notice-JZ7SW7q6.cjs → Notice-B_KjMmA6.cjs} +3 -3
- package/dist/{Notice-JZ7SW7q6.cjs.map → Notice-B_KjMmA6.cjs.map} +1 -1
- package/dist/{Notice-C-8oOZZF.js → Notice-OSlG42lD.js} +2 -2
- package/dist/{Notice-C-8oOZZF.js.map → Notice-OSlG42lD.js.map} +1 -1
- package/dist/{PageLayout-DFRzcnkf.cjs → PageLayout-C0Fo3ZQC.cjs} +3 -3
- package/dist/{PageLayout-DFRzcnkf.cjs.map → PageLayout-C0Fo3ZQC.cjs.map} +1 -1
- package/dist/{PageLayout-CyM_Op3c.js → PageLayout-DLll7ZwB.js} +3 -3
- package/dist/{PageLayout-CyM_Op3c.js.map → PageLayout-DLll7ZwB.js.map} +1 -1
- package/dist/{SankeyChart-E68mYEs2.js → SankeyChart-lkM5cpOC.js} +3 -3
- package/dist/{SankeyChart-E68mYEs2.js.map → SankeyChart-lkM5cpOC.js.map} +1 -1
- package/dist/{SankeyChart-DHeJ45KN.cjs → SankeyChart-m50vrsBS.cjs} +3 -3
- package/dist/{SankeyChart-DHeJ45KN.cjs.map → SankeyChart-m50vrsBS.cjs.map} +1 -1
- package/dist/{Section-CyGQZR7U.cjs → Section-B8MIbDDs.cjs} +3 -3
- package/dist/{Section-CyGQZR7U.cjs.map → Section-B8MIbDDs.cjs.map} +1 -1
- package/dist/{Section-CWFQ8jNS.js → Section-C9Fgv-IF.js} +3 -3
- package/dist/{Section-CWFQ8jNS.js.map → Section-C9Fgv-IF.js.map} +1 -1
- package/dist/{ShareBar-3Z5np-NY.cjs → ShareBar-DERy_egz.cjs} +2 -2
- package/dist/{ShareBar-3Z5np-NY.cjs.map → ShareBar-DERy_egz.cjs.map} +1 -1
- package/dist/{ShareBar-D6dWWl4C.js → ShareBar-KrzzdcyI.js} +2 -2
- package/dist/{ShareBar-D6dWWl4C.js.map → ShareBar-KrzzdcyI.js.map} +1 -1
- package/dist/{Tree-BplQcY8u.cjs → Tree-Caz4FTCU.cjs} +3 -3
- package/dist/{Tree-BplQcY8u.cjs.map → Tree-Caz4FTCU.cjs.map} +1 -1
- package/dist/{Tree-CoLkeBCL.js → Tree-od43gLMO.js} +3 -3
- package/dist/{Tree-CoLkeBCL.js.map → Tree-od43gLMO.js.map} +1 -1
- package/dist/{Txt-BM6TVV_c.js → Txt-5efBsb2p.js} +2 -2
- package/dist/{Txt-BM6TVV_c.js.map → Txt-5efBsb2p.js.map} +1 -1
- package/dist/{Txt-BnoSqxKE.cjs → Txt-_00wWxTd.cjs} +2 -2
- package/dist/{Txt-BnoSqxKE.cjs.map → Txt-_00wWxTd.cjs.map} +1 -1
- package/dist/{Workflow-DSWQ-ROz.cjs → Workflow-XR5L-3cJ.cjs} +15 -14
- package/dist/Workflow-XR5L-3cJ.cjs.map +1 -0
- package/dist/{Workflow-C3SlEdP-.js → Workflow-mIbUYdv0.js} +15 -14
- package/dist/Workflow-mIbUYdv0.js.map +1 -0
- package/dist/{activity-CcQZeDYi.cjs → activity-BprmG6yH.cjs} +10 -10
- package/dist/activity-BprmG6yH.cjs.map +1 -0
- package/dist/{activity-C8Ql81WM.js → activity-ClFChYfl.js} +10 -10
- package/dist/activity-ClFChYfl.js.map +1 -0
- package/dist/annotations.css +8 -0
- package/dist/{ask-user-DPznrqGO.js → ask-user-D4ezQ6pt.js} +5 -5
- package/dist/{ask-user-DPznrqGO.js.map → ask-user-D4ezQ6pt.js.map} +1 -1
- package/dist/{ask-user-C1p2PEYe.cjs → ask-user-DcnUNMM5.cjs} +5 -5
- package/dist/{ask-user-C1p2PEYe.cjs.map → ask-user-DcnUNMM5.cjs.map} +1 -1
- package/dist/{buttons-group-DkFlnMiL.js → buttons-group-DA_wORqQ.js} +2 -2
- package/dist/{buttons-group-DkFlnMiL.js.map → buttons-group-DA_wORqQ.js.map} +1 -1
- package/dist/{buttons-group-Dc6R7YSs.cjs → buttons-group-DM6_Kohs.cjs} +2 -2
- package/dist/{buttons-group-Dc6R7YSs.cjs.map → buttons-group-DM6_Kohs.cjs.map} +1 -1
- package/dist/chat-shell-context-0m1GVhS7.js +16 -0
- package/dist/chat-shell-context-0m1GVhS7.js.map +1 -0
- package/dist/chat-shell-context-ONCslAGn.cjs +39 -0
- package/dist/chat-shell-context-ONCslAGn.cjs.map +1 -0
- package/dist/{clear-filters-button-CNrRuHOY.js → clear-filters-button-C79dzuzA.js} +2 -2
- package/dist/{clear-filters-button-CNrRuHOY.js.map → clear-filters-button-C79dzuzA.js.map} +1 -1
- package/dist/{clear-filters-button-Buc973vw.cjs → clear-filters-button-CCO-y7kt.cjs} +2 -2
- package/dist/{clear-filters-button-Buc973vw.cjs.map → clear-filters-button-CCO-y7kt.cjs.map} +1 -1
- package/dist/{combobox-DIT_6xiG.cjs → combobox-i723LxeC.cjs} +33 -29
- package/dist/combobox-i723LxeC.cjs.map +1 -0
- package/dist/{combobox-D21no8t5.js → combobox-lbSxWRMl.js} +33 -29
- package/dist/combobox-lbSxWRMl.js.map +1 -0
- package/dist/{combobox-parts-C4phOq4t.cjs → combobox-parts-BeNqgCbj.cjs} +27 -12
- package/dist/combobox-parts-BeNqgCbj.cjs.map +1 -0
- package/dist/{combobox-parts-D90ir0Py.js → combobox-parts-C9o4UfH_.js} +22 -13
- package/dist/combobox-parts-C9o4UfH_.js.map +1 -0
- package/dist/components/AgentIndicator.cjs.js +1 -1
- package/dist/components/AgentIndicator.es.js +1 -1
- package/dist/components/AlertDialog.cjs.js +2 -2
- package/dist/components/AlertDialog.es.js +2 -2
- package/dist/components/AttachmentCard.cjs.js +1 -1
- package/dist/components/AttachmentCard.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +6 -5
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +6 -5
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/Button.cjs.js +2 -2
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ChartSkeleton.cjs.js +2 -2
- package/dist/components/ChartSkeleton.es.js +2 -2
- package/dist/components/ChartTooltip.cjs.js +1 -1
- package/dist/components/ChartTooltip.es.js +1 -1
- package/dist/components/ChatShell.cjs.js +33 -9
- package/dist/components/ChatShell.cjs.js.map +1 -1
- package/dist/components/ChatShell.es.js +33 -9
- package/dist/components/ChatShell.es.js.map +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +3 -3
- package/dist/components/ClampedText.es.js +3 -3
- package/dist/components/ClearFiltersButton.cjs.js +1 -1
- package/dist/components/ClearFiltersButton.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +5 -5
- package/dist/components/CodeBlock.es.js +5 -5
- package/dist/components/CodeDiff.cjs.js +3 -3
- package/dist/components/CodeDiff.es.js +2 -2
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/CollapsibleBox.cjs.js +1 -1
- package/dist/components/CollapsibleBox.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +5 -5
- package/dist/components/Command.es.js +5 -5
- package/dist/components/CommandPalette.cjs.js +7 -7
- package/dist/components/CommandPalette.cjs.js.map +1 -1
- package/dist/components/CommandPalette.es.js +7 -7
- package/dist/components/CommandPalette.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/CompactNumber.cjs.js +2 -2
- package/dist/components/CompactNumber.es.js +2 -2
- package/dist/components/Composer.cjs.js +1 -1
- package/dist/components/Composer.es.js +1 -1
- package/dist/components/ContextMenu.cjs.js +1 -1
- package/dist/components/ContextMenu.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +1 -1
- package/dist/components/DataDetailsPanel.es.js +1 -1
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +9 -9
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +9 -9
- package/dist/components/DateRangeTimeline.es.js.map +1 -1
- package/dist/components/DateTimePicker.cjs.js +75 -142
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +79 -146
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/DiffStat.cjs.js +1 -1
- package/dist/components/DiffStat.es.js +1 -1
- package/dist/components/DisabledFeatureButton.cjs.js +3 -3
- package/dist/components/DisabledFeatureButton.es.js +3 -3
- package/dist/components/DisclosureChevron.cjs.js +1 -1
- package/dist/components/DisclosureChevron.es.js +1 -1
- package/dist/components/Drawer.cjs.js +2 -2
- package/dist/components/Drawer.es.js +2 -2
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/Entity.cjs.js +3 -3
- package/dist/components/Entity.es.js +3 -3
- package/dist/components/EntityHeader.cjs.js +2 -2
- package/dist/components/EntityHeader.es.js +2 -2
- package/dist/components/Entry.cjs.js +1 -1
- package/dist/components/Entry.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +6 -6
- package/dist/components/EnvironmentVariablesEditor.es.js +6 -6
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/Field.cjs.js +2 -2
- package/dist/components/Field.es.js +2 -2
- package/dist/components/FileDropBackdrop.cjs.js +1 -1
- package/dist/components/FileDropBackdrop.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +3 -3
- package/dist/components/FilterBar.es.js +3 -3
- package/dist/components/FormFieldBlocks.cjs.js +5 -5
- package/dist/components/FormFieldBlocks.es.js +6 -6
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/HoverCard.cjs.js +1 -1
- package/dist/components/HoverCard.es.js +1 -1
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +3 -3
- package/dist/components/InputNumber.es.js +3 -3
- package/dist/components/JSONSchemaForm.cjs.js +4 -4
- package/dist/components/JSONSchemaForm.es.js +4 -4
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +2 -2
- package/dist/components/KeyValueList.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainHeader.cjs.js +1 -1
- package/dist/components/MainHeader.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.es.js +1 -1
- package/dist/components/Metadata.cjs.js +3 -0
- package/dist/components/Metadata.d.ts +1 -0
- package/dist/components/Metadata.es.js +1 -0
- package/dist/components/Meter.cjs.js +3 -3
- package/dist/components/Meter.es.js +3 -3
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
- package/dist/components/MetricsStackedBarChart.es.js +1 -1
- package/dist/components/MetricsTable.cjs.js +1 -1
- package/dist/components/MetricsTable.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/ProductAvatar.cjs.js +2 -2
- package/dist/components/ProductAvatar.es.js +2 -2
- package/dist/components/ProductBadge.cjs.js +2 -2
- package/dist/components/ProductBadge.es.js +2 -2
- package/dist/components/PropertyFilter.cjs.js +9 -9
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +9 -9
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +6 -30
- package/dist/components/RelativeTimestamp.cjs.js.map +1 -1
- package/dist/components/RelativeTimestamp.es.js +7 -31
- package/dist/components/RelativeTimestamp.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +22 -22
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +5 -5
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +9 -9
- package/dist/components/SavedViews.es.js +9 -9
- package/dist/components/ScatterPlotChart.cjs.js +2 -2
- package/dist/components/ScatterPlotChart.es.js +2 -2
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/SearchInput.cjs.js +2 -2
- package/dist/components/SearchInput.es.js +2 -2
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SectionCard.cjs.js +1 -1
- package/dist/components/SectionCard.es.js +1 -1
- package/dist/components/SegmentedControl.cjs.js +3 -3
- package/dist/components/SegmentedControl.es.js +3 -3
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/ShareBar.cjs.js +1 -1
- package/dist/components/ShareBar.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +8 -8
- package/dist/components/SideDialog.es.js +8 -8
- package/dist/components/Sidebar.cjs.js +14 -14
- package/dist/components/Sidebar.cjs.js.map +1 -1
- package/dist/components/Sidebar.es.js +15 -15
- package/dist/components/Sidebar.es.js.map +1 -1
- package/dist/components/Skeleton.cjs.js +1 -1
- package/dist/components/Skeleton.es.js +1 -1
- package/dist/components/Spinner.cjs.js +1 -1
- package/dist/components/Spinner.es.js +1 -1
- package/dist/components/StatusIndicators.cjs.js +3 -3
- package/dist/components/StatusIndicators.es.js +3 -3
- package/dist/components/Steps.cjs.js +73 -3
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +73 -4
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Switch.cjs.js +2 -2
- package/dist/components/Switch.es.js +2 -2
- package/dist/components/Table.cjs.js +4 -4
- package/dist/components/Table.es.js +4 -4
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/Text.cjs.js +1 -1
- package/dist/components/Text.es.js +1 -1
- package/dist/components/Textarea.cjs.js +2 -2
- package/dist/components/Textarea.es.js +2 -2
- package/dist/components/ThinkingLevel.cjs.js +5 -5
- package/dist/components/ThinkingLevel.cjs.js.map +1 -1
- package/dist/components/ThinkingLevel.es.js +5 -5
- package/dist/components/ThinkingLevel.es.js.map +1 -1
- package/dist/components/ThreadList.cjs.js +2 -2
- package/dist/components/ThreadList.es.js +2 -2
- package/dist/components/ThreadRail.cjs.js +8 -8
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +8 -8
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Toaster.cjs.js +4 -4
- package/dist/components/Toaster.es.js +3 -3
- package/dist/components/TokenBudget.cjs.js +3 -3
- package/dist/components/TokenBudget.es.js +2 -2
- package/dist/components/Tooltip.cjs.js +2 -2
- package/dist/components/Tooltip.es.js +2 -2
- package/dist/components/Tree.cjs.js +1 -1
- package/dist/components/Tree.es.js +1 -1
- package/dist/components/Truncate.cjs.js +3 -3
- package/dist/components/Truncate.es.js +3 -3
- package/dist/components/Txt.cjs.js +1 -1
- package/dist/components/Txt.es.js +1 -1
- package/dist/components/Workflow.cjs.js +1 -1
- package/dist/components/Workflow.es.js +1 -1
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/annotations.cjs.js +836 -0
- package/dist/components/ai/annotations.cjs.js.map +1 -0
- package/dist/components/ai/annotations.d.ts +1 -0
- package/dist/components/ai/annotations.es.js +831 -0
- package/dist/components/ai/annotations.es.js.map +1 -0
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +6 -6
- package/dist/components/ai/plan.es.js +6 -6
- package/dist/components/ai/task-list.cjs.js +4 -4
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +4 -4
- package/dist/components/ai/task-list.es.js.map +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +7 -2
- package/dist/components/ai/tool-call.es.js +3 -3
- package/dist/components/ai/transcript-divider.cjs.js +1 -1
- package/dist/components/ai/transcript-divider.es.js +1 -1
- package/dist/{context-menu-Dv0NU0oM.js → context-menu-6_Kcs8kj.js} +3 -3
- package/dist/{context-menu-Dv0NU0oM.js.map → context-menu-6_Kcs8kj.js.map} +1 -1
- package/dist/{context-menu-DTFPCyae.cjs → context-menu-DwB7u7fB.cjs} +3 -3
- package/dist/{context-menu-DTFPCyae.cjs.map → context-menu-DwB7u7fB.cjs.map} +1 -1
- package/dist/{copy-button-BXrbevLn.js → copy-button-B-_Z6N6y.js} +2 -2
- package/dist/{copy-button-BXrbevLn.js.map → copy-button-B-_Z6N6y.js.map} +1 -1
- package/dist/{copy-button-DJAQ6_3o.cjs → copy-button-DuEUYvS2.cjs} +2 -2
- package/dist/{copy-button-DJAQ6_3o.cjs.map → copy-button-DuEUYvS2.cjs.map} +1 -1
- package/dist/{data-list-C4Vmq5HA.cjs → data-list-072hHK9L.cjs} +7 -7
- package/dist/{data-list-C4Vmq5HA.cjs.map → data-list-072hHK9L.cjs.map} +1 -1
- package/dist/{data-list-DHCOoLmj.js → data-list-GzbzPmYR.js} +7 -7
- package/dist/{data-list-DHCOoLmj.js.map → data-list-GzbzPmYR.js.map} +1 -1
- package/dist/{date-time-range-picker-CWGjoR3j.cjs → date-time-range-picker-Bq-8IPtS.cjs} +141 -112
- package/dist/date-time-range-picker-Bq-8IPtS.cjs.map +1 -0
- package/dist/{date-time-range-picker-CdSiXwB4.js → date-time-range-picker-DdNgKD87.js} +144 -115
- package/dist/date-time-range-picker-DdNgKD87.js.map +1 -0
- package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
- package/dist/domains/auth/components/permission-denied.es.js +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +3 -3
- package/dist/domains/auth/components/session-expired.es.js +3 -3
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +2 -2
- package/dist/domains/chat/activity/activity-stretch-line.es.js +2 -2
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +54 -58
- package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +54 -58
- package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +2 -2
- package/dist/domains/chat/activity/components/calls-panel.es.js +2 -2
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +2 -2
- package/dist/domains/chat/activity/components/stretch-content.es.js +2 -2
- package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.cjs.js +7 -11
- package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
- package/dist/domains/chat/activity/model/activity-words.es.js +8 -11
- package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
- package/dist/domains/chat/activity.cjs.js +2 -5
- package/dist/domains/chat/activity.es.js +4 -5
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +3 -3
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +3 -3
- package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-entry.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +4 -4
- package/dist/domains/chat/attachments/composer-attachment.es.js +4 -4
- package/dist/domains/chat/attachments/message-attachment.cjs.js +2 -2
- package/dist/domains/chat/attachments/message-attachment.es.js +2 -2
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js +2 -2
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/message-image-attachment.es.js +2 -2
- package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
- package/dist/domains/chat/components/loading-badge.cjs.js +2 -2
- package/dist/domains/chat/components/loading-badge.es.js +2 -2
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
- package/dist/domains/chat/components/section-label.cjs.js +1 -1
- package/dist/domains/chat/components/section-label.es.js +1 -1
- package/dist/domains/chat/context/chat-context.cjs.js +2 -0
- package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
- package/dist/domains/chat/context/chat-context.es.js +2 -1
- package/dist/domains/chat/context/chat-context.es.js.map +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.es.js +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +3 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +3 -3
- package/dist/domains/chat/knowledge.cjs.js +1 -1
- package/dist/domains/chat/knowledge.es.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +10 -10
- package/dist/domains/chat/messages/dataset-save-action.es.js +11 -11
- package/dist/domains/chat/messages/message-row.cjs.js +20 -20
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +20 -20
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +5 -5
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +5 -5
- package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
- package/dist/domains/chat/messages/renderers/data-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/data-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +5 -5
- package/dist/domains/chat/messages/renderers/message-text.es.js +5 -5
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +5 -5
- package/dist/domains/chat/messages/signal-badge.es.js +5 -5
- package/dist/domains/chat/messages/skill-message.cjs.js +4 -4
- package/dist/domains/chat/messages/skill-message.es.js +4 -4
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +4 -4
- package/dist/domains/chat/messages/tripwire-notice.es.js +4 -4
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +5 -5
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +7 -6
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +7 -6
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +5 -5
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +5 -5
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +34 -28
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +34 -28
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +28 -24
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +28 -24
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +8 -7
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +8 -7
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +3 -3
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +25 -34
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +27 -36
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +19 -26
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +19 -26
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +12 -10
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +12 -10
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js +13 -0
- package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.es.js +13 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +8 -8
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +8 -8
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +5 -5
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js +5 -5
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +4 -4
- package/dist/domains/chat/tools/submit-plan-tool.es.js +4 -4
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +10 -5
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +10 -5
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +2 -2
- package/dist/domains/chat/tools/tool-groups.es.js +2 -2
- package/dist/domains/chat.cjs.js +6 -5
- package/dist/domains/chat.es.js +6 -6
- package/dist/domains/connect.cjs.js +1 -1
- package/dist/domains/connect.es.js +1 -1
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js +11 -8
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-grid.es.js +11 -8
- package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +18 -7
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +18 -7
- package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
- package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
- package/dist/domains/dashboards/components/widget-controls.cjs.js +16 -1
- package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/widget-controls.es.js +16 -2
- package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -1
- package/dist/domains/dashboards/components/widget-error.cjs.js +6 -3
- package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/widget-error.es.js +6 -3
- package/dist/domains/dashboards/components/widget-error.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +18 -4
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +19 -5
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/kpis.es.js +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +18 -9
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +18 -9
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-cells.es.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +12 -5
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +12 -5
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js +7 -7
- package/dist/domains/dashboards/kinds/table/table-view.es.js +7 -7
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +5 -2
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +5 -2
- package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/table.es.js +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +21 -14
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +22 -15
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/timeseries.es.js +1 -1
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
- package/dist/domains/dashboards/lib/format.cjs.js +1 -1
- package/dist/domains/dashboards/lib/format.es.js +1 -1
- package/dist/domains/dashboards/lib/pin-actions.cjs.js +16 -0
- package/dist/domains/dashboards/lib/pin-actions.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/pin-actions.d.ts +1 -0
- package/dist/domains/dashboards/lib/pin-actions.es.js +15 -0
- package/dist/domains/dashboards/lib/pin-actions.es.js.map +1 -0
- package/dist/domains/dashboards/lib/requests.cjs.js +2 -2
- package/dist/domains/dashboards/lib/requests.es.js +2 -2
- package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
- package/dist/domains/dashboards.cjs.js +11 -10
- package/dist/domains/dashboards.es.js +11 -11
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +11 -11
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +11 -11
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +3 -3
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +3 -3
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +6 -6
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +6 -6
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -7
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +7 -7
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +3 -2
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js +3 -2
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +11 -16
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +11 -16
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +5 -5
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +5 -5
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +11 -10
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +10 -9
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +1 -1
- package/dist/domains/llm/models-dev-logo-slugs.cjs.js +230 -0
- package/dist/domains/llm/models-dev-logo-slugs.cjs.js.map +1 -0
- package/dist/domains/llm/models-dev-logo-slugs.d.ts +1 -0
- package/dist/domains/llm/models-dev-logo-slugs.es.js +229 -0
- package/dist/domains/llm/models-dev-logo-slugs.es.js.map +1 -0
- package/dist/domains/llm/provider-logo-monogram.cjs.js +37 -0
- package/dist/domains/llm/provider-logo-monogram.cjs.js.map +1 -0
- package/dist/domains/llm/provider-logo-monogram.d.ts +1 -0
- package/dist/domains/llm/provider-logo-monogram.es.js +36 -0
- package/dist/domains/llm/provider-logo-monogram.es.js.map +1 -0
- package/dist/domains/llm/provider-logo.cjs.js +46 -17
- package/dist/domains/llm/provider-logo.cjs.js.map +1 -1
- package/dist/domains/llm/provider-logo.es.js +46 -17
- package/dist/domains/llm/provider-logo.es.js.map +1 -1
- package/dist/domains/llm/provider-map-icon.cjs.js +1 -1
- package/dist/domains/llm/provider-map-icon.es.js +1 -1
- package/dist/domains/llm.cjs.js +1 -1
- package/dist/domains/llm.es.js +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +11 -7
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +11 -7
- package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +3 -3
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +3 -3
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
- package/dist/domains/logs.cjs.js +2 -2
- package/dist/domains/logs.es.js +2 -2
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +7 -8
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js +6 -7
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +2 -108
- package/dist/domains/mcps/components/mcp-app-viewer.es.js +1 -108
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js +36 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +1 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +35 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -0
- package/dist/domains/memory/components/flame-graph.cjs.js +4 -4
- package/dist/domains/memory/components/flame-graph.es.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +6 -6
- package/dist/domains/memory/components/memory-studio-panel.es.js +6 -6
- package/dist/domains/memory/components/observation-detail-view.cjs.js +6 -6
- package/dist/domains/memory/components/observation-detail-view.es.js +6 -6
- package/dist/domains/memory/components/thread-context-progress.cjs.js +2 -2
- package/dist/domains/memory/components/thread-context-progress.es.js +2 -2
- package/dist/domains/memory/components.cjs.js +1 -1
- package/dist/domains/memory/components.es.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +7 -7
- package/dist/domains/metrics/components/agent-runs-card.es.js +7 -7
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-figure.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-figure.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +8 -8
- package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +8 -8
- package/dist/domains/metrics/components/breakdown/breakdown-text.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-text.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +2 -2
- package/dist/domains/metrics/components/breakdown-card.cjs.js +4 -4
- package/dist/domains/metrics/components/breakdown-card.es.js +4 -4
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +2 -2
- package/dist/domains/metrics/components/chart-card-error.es.js +2 -2
- package/dist/domains/metrics/components/chart-card.cjs.js +21 -5
- package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +21 -5
- package/dist/domains/metrics/components/chart-card.es.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +5 -5
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +5 -5
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +7 -7
- package/dist/domains/metrics/components/failure-rate-card.es.js +7 -7
- package/dist/domains/metrics/components/kpi-card.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +7 -7
- package/dist/domains/metrics/components/latency-card.es.js +7 -7
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +2 -2
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +2 -2
- package/dist/domains/metrics/components/scores-card.cjs.js +4 -4
- package/dist/domains/metrics/components/scores-card.es.js +4 -4
- package/dist/domains/metrics/components/token-usage-card.cjs.js +8 -8
- package/dist/domains/metrics/components/token-usage-card.es.js +8 -8
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +4 -4
- package/dist/domains/metrics/components/trace-volume-card.es.js +4 -4
- package/dist/domains/metrics/components/usage-card.cjs.js +5 -5
- package/dist/domains/metrics/components/usage-card.es.js +5 -5
- package/dist/domains/metrics/components.cjs.js +9 -9
- package/dist/domains/metrics/components.es.js +9 -9
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +2 -2
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +2 -2
- package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics.es.js +1 -1
- package/dist/domains/metrics/hooks.cjs.js +5 -5
- package/dist/domains/metrics/hooks.es.js +5 -5
- package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
- package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
- package/dist/domains/metrics/lib/series-colors.cjs.js +279 -0
- package/dist/domains/metrics/lib/series-colors.cjs.js.map +1 -0
- package/dist/domains/metrics/lib/series-colors.d.ts +1 -0
- package/dist/domains/metrics/lib/series-colors.es.js +272 -0
- package/dist/domains/metrics/lib/series-colors.es.js.map +1 -0
- package/dist/domains/metrics/lib.cjs.js +9 -3
- package/dist/domains/metrics/lib.es.js +5 -4
- package/dist/domains/metrics.cjs.js +7 -1
- package/dist/domains/metrics.es.js +3 -2
- package/dist/domains/observability/components/observability-capability-gate.cjs.js +3 -3
- package/dist/domains/observability/components/observability-capability-gate.es.js +3 -3
- package/dist/domains/observability/components/observability-histogram.cjs.js +5 -5
- package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +5 -5
- package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
- package/dist/domains/observability/components/observability-page-layout.cjs.js +2 -2
- package/dist/domains/observability/components/observability-page-layout.es.js +2 -2
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +3 -3
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js +3 -3
- package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
- package/dist/domains/observability/observability-list-url-state.es.js +1 -1
- package/dist/domains/observability/saved-view-state.cjs.js +3 -3
- package/dist/domains/observability/saved-view-state.es.js +3 -3
- package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views.cjs.js +2 -2
- package/dist/domains/observability/saved-views.es.js +2 -2
- package/dist/domains/observability.cjs.js +6 -6
- package/dist/domains/observability.es.js +6 -6
- package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
- package/dist/domains/review/components/review-status-badge.es.js +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +7 -7
- package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +7 -7
- package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
- package/dist/domains/scores/components/span-scoring.es.js +4 -4
- package/dist/domains/scores/components/trace-scores-list.cjs.js +5 -5
- package/dist/domains/scores/components/trace-scores-list.es.js +5 -5
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +15 -19
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +15 -19
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/scores/components.cjs.js +1 -1
- package/dist/domains/scores/components.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +4 -4
- package/dist/domains/skills/skill-simple-form.es.js +4 -4
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +6 -6
- package/dist/domains/spans/components/spans-explorer-body.es.js +7 -7
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +3 -3
- package/dist/domains/spans/components/spans-filter-bar.es.js +3 -3
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +2 -2
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +2 -2
- package/dist/domains/spans/hooks/use-spans-list-source.cjs.js +1 -1
- package/dist/domains/spans/hooks/use-spans-list-source.es.js +1 -1
- package/dist/domains/spans/hooks.cjs.js +1 -1
- package/dist/domains/spans/hooks.es.js +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +6 -6
- package/dist/domains/threads/components/threads-explorer-body.es.js +7 -7
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
- package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +2 -2
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +2 -2
- package/dist/domains/threads/hooks/use-threads-list-source.cjs.js +1 -1
- package/dist/domains/threads/hooks/use-threads-list-source.es.js +1 -1
- package/dist/domains/threads/hooks.cjs.js +1 -1
- package/dist/domains/threads/hooks.es.js +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js +2 -2
- package/dist/domains/traces/components/feedback-thread.cjs.js +9 -9
- package/dist/domains/traces/components/feedback-thread.es.js +9 -9
- package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +1 -1
- package/dist/domains/traces/components/format-trace-thread-messages.es.js +1 -1
- package/dist/domains/traces/components/no-traces-info.cjs.js +2 -2
- package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +2 -2
- package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
- package/dist/domains/traces/components/shared.cjs.js +3 -3
- package/dist/domains/traces/components/shared.es.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +23 -23
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +23 -23
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.cjs.js +3 -3
- package/dist/domains/traces/components/span-details-view.es.js +3 -3
- package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
- package/dist/domains/traces/components/span-outcome.es.js +1 -1
- package/dist/domains/traces/components/span-outcome.utils.cjs.js +3 -3
- package/dist/domains/traces/components/span-outcome.utils.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-outcome.utils.es.js +3 -3
- package/dist/domains/traces/components/span-outcome.utils.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +5 -5
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +5 -5
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +7 -7
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -7
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +14 -9
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +14 -9
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +7 -7
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +7 -7
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-signal-details.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-signal-details.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +6 -6
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +6 -6
- package/dist/domains/traces/components/span-payload.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload.es.js +4 -4
- package/dist/domains/traces/components/span-prompt-changes.cjs.js +17 -10
- package/dist/domains/traces/components/span-prompt-changes.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-prompt-changes.es.js +17 -10
- package/dist/domains/traces/components/span-prompt-changes.es.js.map +1 -1
- package/dist/domains/traces/components/span-rows.cjs.js +1 -1
- package/dist/domains/traces/components/span-rows.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +3 -3
- package/dist/domains/traces/components/span-summary-description.es.js +3 -3
- package/dist/domains/traces/components/span-timeline-row.cjs.js +10 -10
- package/dist/domains/traces/components/span-timeline-row.es.js +10 -10
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +3 -3
- package/dist/domains/traces/components/span-timing-hover-card.es.js +3 -3
- package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
- package/dist/domains/traces/components/span-token-usage.es.js +2 -2
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js +2 -2
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.utils.es.js +2 -2
- package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -1
- package/dist/domains/traces/components/span-type-badge.cjs.js +1 -1
- package/dist/domains/traces/components/span-type-badge.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +5 -5
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +5 -5
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +6 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +6 -6
- package/dist/domains/traces/components/thread-trace.cjs.js +3 -3
- package/dist/domains/traces/components/thread-trace.es.js +3 -3
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +7 -7
- package/dist/domains/traces/components/thread-view-by-trace.es.js +7 -7
- package/dist/domains/traces/components/thread-view-skeleton.cjs.js +5 -5
- package/dist/domains/traces/components/thread-view-skeleton.es.js +5 -5
- package/dist/domains/traces/components/timeline-name-col.cjs.js +6 -6
- package/dist/domains/traces/components/timeline-name-col.es.js +6 -6
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +4 -4
- package/dist/domains/traces/components/timeline-timing-col.es.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
- package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +13 -13
- package/dist/domains/traces/components/trace-data-panel-view.es.js +13 -13
- package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
- package/dist/domains/traces/components/trace-details-view.cjs.js +3 -3
- package/dist/domains/traces/components/trace-details-view.es.js +3 -3
- package/dist/domains/traces/components/trace-error-cell.cjs.js +2 -2
- package/dist/domains/traces/components/trace-error-cell.es.js +2 -2
- package/dist/domains/traces/components/trace-error-summary.cjs.js +2 -2
- package/dist/domains/traces/components/trace-error-summary.es.js +2 -2
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-skeleton.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +3 -3
- package/dist/domains/traces/components/trace-span-panel.es.js +3 -3
- package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +6 -6
- package/dist/domains/traces/components/trace-span-timeline-markers.es.js +6 -6
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +5 -5
- package/dist/domains/traces/components/trace-span-timeline.es.js +5 -5
- package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +2 -2
- package/dist/domains/traces/components/trace-span-tree.cjs.js +2 -2
- package/dist/domains/traces/components/trace-span-tree.es.js +2 -2
- package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +5 -5
- package/dist/domains/traces/components/trace-summary-description.es.js +5 -5
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +5 -5
- package/dist/domains/traces/components/trace-thread-item-view.es.js +5 -5
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-timeline.cjs.js +1 -1
- package/dist/domains/traces/components/trace-timeline.es.js +1 -1
- package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
- package/dist/domains/traces/components/traces-error-content.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-body.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-body.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +6 -6
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +6 -6
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +3 -3
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer.cjs.js +4 -4
- package/dist/domains/traces/components/traces-explorer.es.js +4 -4
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view.cjs.js +10 -10
- package/dist/domains/traces/components/traces-list-view.es.js +10 -10
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
- package/dist/domains/traces/components/traces-spans-switch.cjs.js +3 -3
- package/dist/domains/traces/components/traces-spans-switch.es.js +3 -3
- package/dist/domains/traces/components.cjs.js +15 -15
- package/dist/domains/traces/components.es.js +15 -15
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.es.js +1 -1
- package/dist/domains/traces/hooks.cjs.js +4 -4
- package/dist/domains/traces/hooks.es.js +4 -4
- package/dist/domains/traces/utils/span-utils.cjs.js +2 -2
- package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
- package/dist/domains/traces/utils/span-utils.es.js +2 -2
- package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
- package/dist/domains/traces/utils.cjs.js +2 -2
- package/dist/domains/traces/utils.es.js +2 -2
- package/dist/domains/traces.cjs.js +2 -2
- package/dist/domains/traces.es.js +2 -2
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -3
- package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +4 -3
- package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -6
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -6
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +10 -10
- package/dist/domains/workflows/components/workflow-information.es.js +10 -10
- package/dist/domains/workflows/components/workflow-layout.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-layout.es.js +2 -2
- package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-run-status-icon.es.js +3 -3
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +4 -4
- package/dist/domains/workflows/components/workflow-step-detail.es.js +4 -4
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +11 -11
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +11 -11
- package/dist/domains/workflows/context/playground-workflow-run-provider.cjs.js +1 -1
- package/dist/domains/workflows/context/playground-workflow-run-provider.es.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-details.cjs.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-details.es.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +26 -21
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +26 -21
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
- package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/use-workflow-data.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +5 -5
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +5 -5
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +8 -8
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +8 -8
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
- package/dist/domains/workflows/workflow/utils.cjs.js +2 -2
- package/dist/domains/workflows/workflow/utils.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-card.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-card.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +6 -6
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +6 -6
- package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-groups.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-groups.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +6 -6
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +6 -6
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +6 -6
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +6 -6
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +7 -7
- package/dist/domains/workflows/workflow/workflow-status.es.js +7 -7
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +10 -10
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +10 -10
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +12 -12
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +12 -12
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +9 -9
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +9 -9
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +5 -5
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +5 -5
- package/dist/domains/workflows.cjs.js +4 -4
- package/dist/domains/workflows.es.js +4 -4
- package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-active-file.es.js +4 -4
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +10 -10
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +10 -10
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-context.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-context.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-create-directory.es.js +4 -4
- package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-parts.es.js +5 -5
- package/dist/domains/workspace/components/workspace-search.cjs.js +17 -20
- package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +18 -21
- package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree-view.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-tree-view.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +11 -11
- package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +11 -11
- package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace.es.js +1 -1
- package/dist/domains/workspace.cjs.js +3 -3
- package/dist/domains/workspace.es.js +3 -3
- package/dist/{dropdown-menu-B4jY3J9e.js → dropdown-menu-DKoWI8kD.js} +2 -2
- package/dist/{dropdown-menu-B4jY3J9e.js.map → dropdown-menu-DKoWI8kD.js.map} +1 -1
- package/dist/{dropdown-menu-BETTTPBB.cjs → dropdown-menu-Dx-jCOIv.cjs} +2 -2
- package/dist/{dropdown-menu-BETTTPBB.cjs.map → dropdown-menu-Dx-jCOIv.cjs.map} +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/entity-index-status.cjs.js +2 -2
- package/dist/ee/signals/components/entity-index-status.es.js +2 -2
- package/dist/ee/signals/components/signals-empty-state.cjs.js +12 -21
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +12 -21
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -5
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -5
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +13 -13
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +14 -14
- package/dist/ee/signals/examples-pager.cjs.js +2 -2
- package/dist/ee/signals/examples-pager.es.js +2 -2
- package/dist/ee/signals/flow-card.cjs.js +4 -4
- package/dist/ee/signals/flow-card.es.js +4 -4
- package/dist/ee/signals/lifeline-point.cjs.js +2 -2
- package/dist/ee/signals/lifeline-point.es.js +2 -2
- package/dist/ee/signals/lifeline-row.cjs.js +6 -6
- package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-row.es.js +6 -6
- package/dist/ee/signals/lifeline-row.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +6 -6
- package/dist/ee/signals/noise-detail-panel.es.js +6 -6
- package/dist/ee/signals/sankey-signals-data.cjs.js +9 -5
- package/dist/ee/signals/sankey-signals-data.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals-data.es.js +9 -5
- package/dist/ee/signals/sankey-signals-data.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +21 -12
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +21 -12
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +4 -4
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -4
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +7 -7
- package/dist/ee/signals/settings/trace-signal-settings.es.js +7 -7
- package/dist/ee/signals/signal-delta-column.cjs.js +3 -3
- package/dist/ee/signals/signal-delta-column.es.js +3 -3
- package/dist/ee/signals/signal-lifelines.cjs.js +5 -5
- package/dist/ee/signals/signal-lifelines.es.js +5 -5
- package/dist/ee/signals/signals-error-state.cjs.js +2 -2
- package/dist/ee/signals/signals-error-state.es.js +2 -2
- package/dist/ee/signals/snapshot-summary.cjs.js +15 -0
- package/dist/ee/signals/snapshot-summary.cjs.js.map +1 -0
- package/dist/ee/signals/snapshot-summary.d.ts +1 -0
- package/dist/ee/signals/snapshot-summary.es.js +14 -0
- package/dist/ee/signals/snapshot-summary.es.js.map +1 -0
- package/dist/ee/signals/snapshot-timeline.cjs.js +4 -4
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +4 -4
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +6 -6
- package/dist/ee/signals/sortable-signal-headers.es.js +6 -6
- package/dist/ee/signals/theme-compare.cjs.js +15 -7
- package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare.es.js +15 -7
- package/dist/ee/signals/theme-compare.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +13 -17
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +13 -17
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +7 -7
- package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +7 -7
- package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js +8 -5
- package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.es.js +8 -5
- package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +3 -3
- package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +3 -3
- package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +11 -13
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +11 -13
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +10 -15
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +10 -15
- package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
- package/dist/ee/signals/view-mode-tab.es.js +2 -2
- package/dist/ee/signals.cjs.js +5 -5
- package/dist/ee/signals.es.js +5 -5
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +4 -4
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +4 -4
- package/dist/ee/topics/components/topics-layout.cjs.js +1 -1
- package/dist/ee/topics/components/topics-layout.es.js +1 -1
- package/dist/{field-error-id-DBSuJ3HM.js → field-error-id-6ZynvsRO.js} +2 -2
- package/dist/{field-error-id-DBSuJ3HM.js.map → field-error-id-6ZynvsRO.js.map} +1 -1
- package/dist/{field-error-id-nGAF0330.cjs → field-error-id-VimPQI_b.cjs} +2 -2
- package/dist/{field-error-id-nGAF0330.cjs.map → field-error-id-VimPQI_b.cjs.map} +1 -1
- package/dist/{filter-bar-chip-Cg-UbIwP.cjs → filter-bar-chip-DFsbUZ-V.cjs} +10 -10
- package/dist/{filter-bar-chip-Cg-UbIwP.cjs.map → filter-bar-chip-DFsbUZ-V.cjs.map} +1 -1
- package/dist/{filter-bar-chip-CABeKrtf.js → filter-bar-chip-NBtfDca9.js} +11 -11
- package/dist/{filter-bar-chip-CABeKrtf.js.map → filter-bar-chip-NBtfDca9.js.map} +1 -1
- package/dist/{filter-bar-time-range-qlV8p7hp.js → filter-bar-time-range-D9SnzR2J.js} +3 -3
- package/dist/{filter-bar-time-range-qlV8p7hp.js.map → filter-bar-time-range-D9SnzR2J.js.map} +1 -1
- package/dist/{filter-bar-time-range-zdM024JD.cjs → filter-bar-time-range-DlVNjw43.cjs} +3 -3
- package/dist/{filter-bar-time-range-zdM024JD.cjs.map → filter-bar-time-range-DlVNjw43.cjs.map} +1 -1
- package/dist/hooks/use-clock.cjs.js +34 -0
- package/dist/hooks/use-clock.cjs.js.map +1 -0
- package/dist/hooks/use-clock.d.ts +1 -0
- package/dist/hooks/use-clock.es.js +33 -0
- package/dist/hooks/use-clock.es.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
- package/dist/hooks/use-text-highlight.cjs.js +3 -5
- package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
- package/dist/hooks/use-text-highlight.es.js +1 -3
- package/dist/hooks/use-text-highlight.es.js.map +1 -1
- package/dist/icons/ByteDanceIcon.cjs.js +37 -0
- package/dist/icons/ByteDanceIcon.cjs.js.map +1 -0
- package/dist/icons/ByteDanceIcon.d.ts +1 -0
- package/dist/icons/ByteDanceIcon.es.js +34 -0
- package/dist/icons/ByteDanceIcon.es.js.map +1 -0
- package/dist/icons/CohereBrandIcon.cjs.js +34 -0
- package/dist/icons/CohereBrandIcon.cjs.js.map +1 -0
- package/dist/icons/CohereBrandIcon.d.ts +1 -0
- package/dist/icons/CohereBrandIcon.es.js +31 -0
- package/dist/icons/CohereBrandIcon.es.js.map +1 -0
- package/dist/icons/FireworksIcon.cjs.js +22 -0
- package/dist/icons/FireworksIcon.cjs.js.map +1 -0
- package/dist/icons/FireworksIcon.d.ts +1 -0
- package/dist/icons/FireworksIcon.es.js +19 -0
- package/dist/icons/FireworksIcon.es.js.map +1 -0
- package/dist/icons/Icon.cjs.js +1 -1
- package/dist/icons/Icon.es.js +1 -1
- package/dist/icons/LongCatIcon.cjs.js +22 -0
- package/dist/icons/LongCatIcon.cjs.js.map +1 -0
- package/dist/icons/LongCatIcon.d.ts +1 -0
- package/dist/icons/LongCatIcon.es.js +19 -0
- package/dist/icons/LongCatIcon.es.js.map +1 -0
- package/dist/icons/MicrosoftIcon.cjs.js +34 -0
- package/dist/icons/MicrosoftIcon.cjs.js.map +1 -0
- package/dist/icons/MicrosoftIcon.d.ts +1 -0
- package/dist/icons/MicrosoftIcon.es.js +31 -0
- package/dist/icons/MicrosoftIcon.es.js.map +1 -0
- package/dist/icons/MorphIcon.cjs.js +20 -0
- package/dist/icons/MorphIcon.cjs.js.map +1 -0
- package/dist/icons/MorphIcon.d.ts +1 -0
- package/dist/icons/MorphIcon.es.js +17 -0
- package/dist/icons/MorphIcon.es.js.map +1 -0
- package/dist/icons/NousResearchIcon.cjs.js +19 -0
- package/dist/icons/NousResearchIcon.cjs.js.map +1 -0
- package/dist/icons/NousResearchIcon.d.ts +1 -0
- package/dist/icons/NousResearchIcon.es.js +16 -0
- package/dist/icons/NousResearchIcon.es.js.map +1 -0
- package/dist/icons/NovaIcon.cjs.js +41 -0
- package/dist/icons/NovaIcon.cjs.js.map +1 -0
- package/dist/icons/NovaIcon.d.ts +1 -0
- package/dist/icons/NovaIcon.es.js +38 -0
- package/dist/icons/NovaIcon.es.js.map +1 -0
- package/dist/icons/PerplexityIcon.cjs.js +21 -0
- package/dist/icons/PerplexityIcon.cjs.js.map +1 -0
- package/dist/icons/PerplexityIcon.d.ts +1 -0
- package/dist/icons/PerplexityIcon.es.js +18 -0
- package/dist/icons/PerplexityIcon.es.js.map +1 -0
- package/dist/icons/SakanaIcon.cjs.js +20 -0
- package/dist/icons/SakanaIcon.cjs.js.map +1 -0
- package/dist/icons/SakanaIcon.d.ts +1 -0
- package/dist/icons/SakanaIcon.es.js +17 -0
- package/dist/icons/SakanaIcon.es.js.map +1 -0
- package/dist/icons/StepFunIcon.cjs.js +35 -0
- package/dist/icons/StepFunIcon.cjs.js.map +1 -0
- package/dist/icons/StepFunIcon.d.ts +1 -0
- package/dist/icons/StepFunIcon.es.js +32 -0
- package/dist/icons/StepFunIcon.es.js.map +1 -0
- package/dist/icons/TencentIcon.cjs.js +21 -0
- package/dist/icons/TencentIcon.cjs.js.map +1 -0
- package/dist/icons/TencentIcon.d.ts +1 -0
- package/dist/icons/TencentIcon.es.js +18 -0
- package/dist/icons/TencentIcon.es.js.map +1 -0
- package/dist/icons/UpstageIcon.cjs.js +36 -0
- package/dist/icons/UpstageIcon.cjs.js.map +1 -0
- package/dist/icons/UpstageIcon.d.ts +1 -0
- package/dist/icons/UpstageIcon.es.js +33 -0
- package/dist/icons/UpstageIcon.es.js.map +1 -0
- package/dist/{input-2hRXcZIu.cjs → input-BpnUsQSt.cjs} +4 -4
- package/dist/{input-2hRXcZIu.cjs.map → input-BpnUsQSt.cjs.map} +1 -1
- package/dist/{input-0l1uzOBZ.js → input-Cyit5ZSc.js} +4 -4
- package/dist/{input-0l1uzOBZ.js.map → input-Cyit5ZSc.js.map} +1 -1
- package/dist/{input-group-DVJLZDBL.cjs → input-group-DBCilXjT.cjs} +4 -4
- package/dist/{input-group-DVJLZDBL.cjs.map → input-group-DBCilXjT.cjs.map} +1 -1
- package/dist/{input-group-QKKV_ouF.js → input-group-NV4ZzKOk.js} +4 -4
- package/dist/{input-group-QKKV_ouF.js.map → input-group-NV4ZzKOk.js.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/lib/form/auto-form.cjs.js +1 -1
- package/dist/lib/form/auto-form.es.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.cjs.js +4 -4
- package/dist/lib/form/components/array-element-wrapper.es.js +4 -4
- package/dist/lib/form/components/array-wrapper.cjs.js +2 -2
- package/dist/lib/form/components/array-wrapper.es.js +2 -2
- package/dist/lib/form/components/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +5 -5
- package/dist/lib/form/components/date-field.es.js +5 -5
- package/dist/lib/form/components/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +2 -2
- package/dist/lib/form/components/form-submit-row.es.js +2 -2
- package/dist/lib/form/components/number-field.cjs.js +1 -1
- package/dist/lib/form/components/number-field.es.js +1 -1
- package/dist/lib/form/components/object-wrapper.cjs.js +3 -3
- package/dist/lib/form/components/object-wrapper.es.js +3 -3
- package/dist/lib/form/components/record-field.cjs.js +2 -2
- package/dist/lib/form/components/record-field.es.js +2 -2
- package/dist/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/string-field.cjs.js +1 -1
- package/dist/lib/form/components/string-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/lib/form/components/union-field.cjs.js +1 -1
- package/dist/lib/form/components/union-field.es.js +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/{list-search-CkhsTFdG.js → list-search-DUcIMJTk.js} +2 -2
- package/dist/{list-search-CkhsTFdG.js.map → list-search-DUcIMJTk.js.map} +1 -1
- package/dist/{list-search-BtRno5As.cjs → list-search-yF02rvZt.cjs} +2 -2
- package/dist/{list-search-BtRno5As.cjs.map → list-search-yF02rvZt.cjs.map} +1 -1
- package/dist/mcp-app-viewer-BV7FI498.js +2051 -0
- package/dist/mcp-app-viewer-BV7FI498.js.map +1 -0
- package/dist/mcp-app-viewer-M3-pqAlo.cjs +2058 -0
- package/dist/mcp-app-viewer-M3-pqAlo.cjs.map +1 -0
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/{observability-saved-views-CjKTEp1V.js → observability-saved-views-Ch53fh5_.js} +9 -9
- package/dist/{observability-saved-views-CjKTEp1V.js.map → observability-saved-views-Ch53fh5_.js.map} +1 -1
- package/dist/{observability-saved-views-Daizz4tU.cjs → observability-saved-views-DgABvgat.cjs} +9 -9
- package/dist/{observability-saved-views-Daizz4tU.cjs.map → observability-saved-views-DgABvgat.cjs.map} +1 -1
- package/dist/{page-header-BykBsHUy.js → page-header-Maytcmgh.js} +3 -3
- package/dist/{page-header-BB6yjtce.cjs.map → page-header-Maytcmgh.js.map} +1 -1
- package/dist/{page-header-BB6yjtce.cjs → page-header-pZCts_WC.cjs} +3 -3
- package/dist/page-header-pZCts_WC.cjs.map +1 -0
- package/dist/{popover-CzHvTPk2.js → popover-BpMi52Tb.js} +3 -3
- package/dist/{popover-CzHvTPk2.js.map → popover-BpMi52Tb.js.map} +1 -1
- package/dist/{popover-BJqa6Hz6.cjs → popover-D9AfJmla.cjs} +3 -3
- package/dist/{popover-BJqa6Hz6.cjs.map → popover-D9AfJmla.cjs.map} +1 -1
- package/dist/primitives/chart-frame.cjs.js +2 -2
- package/dist/primitives/chart-frame.es.js +2 -2
- package/dist/primitives/chart-time-tick.cjs.js +2 -2
- package/dist/primitives/chart-time-tick.es.js +2 -2
- package/dist/primitives/charts/drag-selection.cjs.js +1 -1
- package/dist/primitives/charts/drag-selection.es.js +1 -1
- package/dist/primitives/menu-item.cjs.js +2 -2
- package/dist/primitives/menu-item.es.js +2 -2
- package/dist/primitives/menu-scroll-area.cjs.js +1 -1
- package/dist/primitives/menu-scroll-area.es.js +1 -1
- package/dist/primitives/resize-handle-indicator.cjs.js +1 -1
- package/dist/primitives/resize-handle-indicator.es.js +1 -1
- package/dist/primitives/trigger-button.cjs.js +2 -2
- package/dist/primitives/trigger-button.es.js +2 -2
- package/dist/{property-filter-applied--U5EZdaA.js → property-filter-applied-DoxQHG09.js} +8 -8
- package/dist/{property-filter-applied--U5EZdaA.js.map → property-filter-applied-DoxQHG09.js.map} +1 -1
- package/dist/{property-filter-applied-BkkIObRq.cjs → property-filter-applied-DuyL4S_K.cjs} +8 -8
- package/dist/{property-filter-applied-BkkIObRq.cjs.map → property-filter-applied-DuyL4S_K.cjs.map} +1 -1
- package/dist/resize/collapsible-panel.cjs.js +4 -4
- package/dist/resize/collapsible-panel.cjs.js.map +1 -1
- package/dist/resize/collapsible-panel.es.js +4 -4
- package/dist/resize/collapsible-panel.es.js.map +1 -1
- package/dist/resize/panel-drawer.cjs.js +3 -3
- package/dist/resize/panel-drawer.es.js +3 -3
- package/dist/resize/panel-icon-button.cjs.js +1 -2
- package/dist/resize/panel-icon-button.cjs.js.map +1 -1
- package/dist/resize/panel-icon-button.es.js +1 -1
- package/dist/resize/separator.cjs.js +1 -1
- package/dist/resize/separator.es.js +1 -1
- package/dist/{scroll-area-C226l0v0.js → scroll-area-9-S7wfSs.js} +2 -2
- package/dist/{scroll-area-C226l0v0.js.map → scroll-area-9-S7wfSs.js.map} +1 -1
- package/dist/{scroll-area-BP4gPZ4G.cjs → scroll-area-BU_TorPW.cjs} +2 -2
- package/dist/{scroll-area-BP4gPZ4G.cjs.map → scroll-area-BU_TorPW.cjs.map} +1 -1
- package/dist/{select-Dg8L5ROX.cjs → select-CeukeSn_.cjs} +5 -5
- package/dist/{select-Dg8L5ROX.cjs.map → select-CeukeSn_.cjs.map} +1 -1
- package/dist/{select-BdIZEdcy.js → select-dNX9If-s.js} +5 -5
- package/dist/{select-BdIZEdcy.js.map → select-dNX9If-s.js.map} +1 -1
- package/dist/{settings-BaUeaO96.js → settings-BEw_bg12.js} +2 -2
- package/dist/{settings-BaUeaO96.js.map → settings-BEw_bg12.js.map} +1 -1
- package/dist/{settings-CUVqhBbf.cjs → settings-Bminohri.cjs} +2 -2
- package/dist/{settings-CUVqhBbf.cjs.map → settings-Bminohri.cjs.map} +1 -1
- package/dist/{span-payload-primitives-CKKIAVPJ.js → span-payload-primitives-BKkRpVVO.js} +12 -12
- package/dist/{span-payload-primitives-CKKIAVPJ.js.map → span-payload-primitives-BKkRpVVO.js.map} +1 -1
- package/dist/{span-payload-primitives-D4tHWN2W.cjs → span-payload-primitives-D2NWznGy.cjs} +12 -12
- package/dist/{span-payload-primitives-D4tHWN2W.cjs.map → span-payload-primitives-D2NWznGy.cjs.map} +1 -1
- package/dist/{spinner-CnLgLj9R.js → spinner-B9ykw74u.js} +2 -2
- package/dist/{spinner-CnLgLj9R.js.map → spinner-B9ykw74u.js.map} +1 -1
- package/dist/{spinner-C8ZxiA5C.cjs → spinner-oS6q4pwx.cjs} +3 -3
- package/dist/{spinner-C8ZxiA5C.cjs.map → spinner-oS6q4pwx.cjs.map} +1 -1
- package/dist/src/domains/chat/activity/index.d.ts +1 -3
- package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -2
- package/dist/src/domains/chat/activity/model/activity-words.d.ts +1 -2
- package/dist/src/domains/chat/context/chat-context.d.ts +9 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +2 -1
- package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -1
- package/dist/src/domains/chat/tools/badges/workspace-data-parts.d.ts +6 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +12 -2
- package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +4 -1
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +22 -2
- package/dist/src/domains/dashboards/components/widget-controls.d.ts +3 -0
- package/dist/src/domains/dashboards/components/widget-error.d.ts +7 -2
- package/dist/src/domains/dashboards/index.d.ts +2 -2
- package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/lib/chrome.d.ts +5 -2
- package/dist/src/domains/dashboards/lib/pin-actions.d.ts +7 -0
- package/dist/src/domains/dashboards/widget-kind.d.ts +13 -0
- package/dist/src/domains/llm/models-dev-logo-slugs.d.ts +1 -0
- package/dist/src/domains/llm/provider-logo-monogram.d.ts +8 -0
- package/dist/src/domains/llm/provider-logo.d.ts +0 -4
- package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +2 -1
- package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +7 -2
- package/dist/src/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +5 -0
- package/dist/src/domains/metrics/components/chart-card.d.ts +6 -2
- package/dist/src/domains/metrics/components/kpi-card.d.ts +2 -1
- package/dist/src/domains/metrics/lib/index.d.ts +1 -0
- package/dist/src/domains/metrics/lib/series-colors.d.ts +39 -0
- package/dist/src/domains/traces/components/span-token-usage.utils.d.ts +1 -1
- package/dist/src/domains/workflows/components/workflow-combobox.d.ts +2 -1
- package/dist/src/ds/components/AgentIndicator/paint.d.ts +6 -2
- package/dist/src/ds/components/AgentIndicator/poses/coordination.d.ts +7 -0
- package/dist/src/ds/components/AgentIndicator/poses/documents.d.ts +2 -0
- package/dist/src/ds/components/AgentIndicator/poses/files.d.ts +5 -0
- package/dist/src/ds/components/AgentIndicator/poses/interface.d.ts +8 -0
- package/dist/src/ds/components/AgentIndicator/poses/knowledge-actions.d.ts +6 -0
- package/dist/src/ds/components/AgentIndicator/poses/knowledge.d.ts +2 -0
- package/dist/src/ds/components/AgentIndicator/poses/skills.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/poses/terminal.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/poses/thinking.d.ts +2 -0
- package/dist/src/ds/components/AgentIndicator/poses.d.ts +1 -1
- package/dist/src/ds/components/AgentIndicator/shapes.d.ts +7 -1
- package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +1 -0
- package/dist/src/ds/components/ChatShell/chat-shell-context.d.ts +9 -0
- package/dist/src/ds/components/ChatShell/chat-shell.d.ts +5 -0
- package/dist/src/ds/components/ChatShell/index.d.ts +2 -1
- package/dist/src/ds/components/Combobox/combobox-parts.d.ts +2 -1
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +9 -4
- package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
- package/dist/src/ds/components/CommandPalette/command-palette.d.ts +1 -1
- package/dist/src/ds/components/DateTimePicker/date-picker.d.ts +6 -1
- package/dist/src/ds/components/DateTimePicker/index.d.ts +0 -1
- package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -2
- package/dist/src/ds/components/Message/message-timestamp.d.ts +1 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +3 -2
- package/dist/src/ds/components/MessageScroller/message-scroller-geometry.d.ts +1 -1
- package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +2 -8
- package/dist/src/ds/components/MessageScroller/message-scroller-visibility-store.d.ts +8 -0
- package/dist/src/ds/components/Metadata/index.d.ts +2 -0
- package/dist/src/ds/components/Metadata/metadata.d.ts +10 -0
- package/dist/src/ds/components/MetricsCard/index.d.ts +1 -0
- package/dist/src/ds/components/MetricsCard/metrics-card-drag-handle.d.ts +12 -0
- package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -0
- package/dist/src/ds/components/Steps/index.d.ts +1 -0
- package/dist/src/ds/components/Steps/step.d.ts +13 -0
- package/dist/src/ds/components/Steps/steps-context.d.ts +2 -0
- package/dist/src/ds/components/Steps/steps-root.d.ts +18 -0
- package/dist/src/ds/components/Steps/steps.d.ts +7 -0
- package/dist/src/ds/components/ai/annotations/annotatable-selection.d.ts +25 -0
- package/dist/src/ds/components/ai/annotations/annotation-comment-card.d.ts +11 -0
- package/dist/src/ds/components/ai/annotations/annotation-comment-popover.d.ts +15 -0
- package/dist/src/ds/components/ai/annotations/annotation-highlights.d.ts +1 -0
- package/dist/src/ds/components/ai/annotations/annotation-marker.d.ts +13 -0
- package/dist/src/ds/components/ai/annotations/annotation-markers.d.ts +9 -0
- package/dist/src/ds/components/ai/annotations/annotation-number.d.ts +4 -0
- package/dist/src/ds/components/ai/annotations/annotation-selection-toolbar.d.ts +7 -0
- package/dist/src/ds/components/ai/annotations/chat-annotations.d.ts +27 -0
- package/dist/src/ds/components/ai/annotations/composer-annotation-list.d.ts +6 -0
- package/dist/src/ds/components/ai/annotations/composer-annotations.d.ts +5 -0
- package/dist/src/ds/components/ai/annotations/format-annotated-message.d.ts +11 -0
- package/dist/src/ds/components/ai/annotations/index.d.ts +5 -0
- package/dist/src/ds/components/ai/annotations/transcript-annotations.d.ts +6 -0
- package/dist/src/ds/components/ai/annotations/use-annotation-placement.d.ts +11 -0
- package/dist/src/ds/components/ai/annotations/use-annotation-selection.d.ts +12 -0
- package/dist/src/ds/components/ai/tool-call/index.d.ts +3 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-body.d.ts +6 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-exit-status.d.ts +11 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-output.d.ts +1 -2
- package/dist/src/ds/components/ai/tool-call/tool-call-view.d.ts +17 -0
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +127 -138
- package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +2 -0
- package/dist/src/ds/components/ai/tool-call/tool-styles.d.ts +10 -0
- package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +2 -2
- package/dist/src/ds/icons/ByteDanceIcon.d.ts +2 -0
- package/dist/src/ds/icons/CohereBrandIcon.d.ts +2 -0
- package/dist/src/ds/icons/FireworksIcon.d.ts +2 -0
- package/dist/src/ds/icons/LongCatIcon.d.ts +2 -0
- package/dist/src/ds/icons/MicrosoftIcon.d.ts +2 -0
- package/dist/src/ds/icons/MorphIcon.d.ts +2 -0
- package/dist/src/ds/icons/NousResearchIcon.d.ts +2 -0
- package/dist/src/ds/icons/NovaIcon.d.ts +2 -0
- package/dist/src/ds/icons/PerplexityIcon.d.ts +2 -0
- package/dist/src/ds/icons/SakanaIcon.d.ts +2 -0
- package/dist/src/ds/icons/StepFunIcon.d.ts +2 -0
- package/dist/src/ds/icons/TencentIcon.d.ts +2 -0
- package/dist/src/ds/icons/UpstageIcon.d.ts +2 -0
- package/dist/src/ds/icons/index.d.ts +13 -0
- package/dist/src/ds/tokens/colors.d.ts +12 -0
- package/dist/src/ee/signals/sankey-signals-data.d.ts +2 -2
- package/dist/src/ee/signals/snapshot-summary.d.ts +7 -0
- package/dist/src/ee/signals/snapshot-timeline.d.ts +2 -1
- package/dist/src/hooks/use-clock.d.ts +5 -0
- package/dist/src/lib/resize/collapsible-panel.d.ts +5 -3
- package/dist/src/lib/string.d.ts +1 -0
- package/dist/{string-CNKDIc_4.js → string-CA5M0mj_.js} +5 -2
- package/dist/{string-CNKDIc_4.js.map → string-CA5M0mj_.js.map} +1 -1
- package/dist/{string-DdJJdCv2.cjs → string-EyTazW-F.cjs} +10 -1
- package/dist/{string-DdJJdCv2.cjs.map → string-EyTazW-F.cjs.map} +1 -1
- package/dist/style.css +321 -144
- package/dist/{tabbed-container-B4lCBgRP.cjs → tabbed-container-Bhfi-DWr.cjs} +9 -9
- package/dist/{tabbed-container-B4lCBgRP.cjs.map → tabbed-container-Bhfi-DWr.cjs.map} +1 -1
- package/dist/{tabbed-container-DI1GI1Qv.js → tabbed-container-DOkHshha.js} +8 -8
- package/dist/{tabbed-container-DI1GI1Qv.js.map → tabbed-container-DOkHshha.js.map} +1 -1
- package/dist/{tabs-content-CmXe5ML0.cjs → tabs-content-BACwMrMG.cjs} +3 -3
- package/dist/{tabs-content-CmXe5ML0.cjs.map → tabs-content-BACwMrMG.cjs.map} +1 -1
- package/dist/{tabs-content-D__B9hd-.js → tabs-content-DwU_eA-a.js} +3 -3
- package/dist/{tabs-content-D__B9hd-.js.map → tabs-content-DwU_eA-a.js.map} +1 -1
- package/dist/{tabs-tab-CYTZevdV.js → tabs-tab-BHs639jL.js} +4 -4
- package/dist/{tabs-tab-CYTZevdV.js.map → tabs-tab-BHs639jL.js.map} +1 -1
- package/dist/{tabs-tab-DGwfHVDr.cjs → tabs-tab-CANh2eAD.cjs} +4 -4
- package/dist/{tabs-tab-DGwfHVDr.cjs.map → tabs-tab-CANh2eAD.cjs.map} +1 -1
- package/dist/{toast-api-D_rrRhNG.js → toast-api-Cak5N8pT.js} +2 -2
- package/dist/{toast-api-D_rrRhNG.js.map → toast-api-Cak5N8pT.js.map} +1 -1
- package/dist/{toast-api-qtkOucy2.cjs → toast-api-DDcGCbIw.cjs} +2 -2
- package/dist/{toast-api-qtkOucy2.cjs.map → toast-api-DDcGCbIw.cjs.map} +1 -1
- package/dist/tokens.cjs.js +12 -0
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +12 -0
- package/dist/tokens.es.js.map +1 -1
- package/dist/{tool-approval-CJvPDL7D.cjs → tool-approval-CguPaikn.cjs} +7 -7
- package/dist/{tool-approval-CJvPDL7D.cjs.map → tool-approval-CguPaikn.cjs.map} +1 -1
- package/dist/{tool-approval-DyN11vFA.js → tool-approval-Cjz0yAzw.js} +7 -7
- package/dist/{tool-approval-DyN11vFA.js.map → tool-approval-Cjz0yAzw.js.map} +1 -1
- package/dist/tool-call-BqDI9mrY.cjs +600 -0
- package/dist/tool-call-BqDI9mrY.cjs.map +1 -0
- package/dist/tool-call-ChJKYCfu.js +505 -0
- package/dist/tool-call-ChJKYCfu.js.map +1 -0
- package/dist/{tool-card-BOLXeKIp.cjs → tool-card-Dg4VOYV6.cjs} +24 -15
- package/dist/tool-card-Dg4VOYV6.cjs.map +1 -0
- package/dist/{tool-card-HZ5bm7ue.js → tool-card-GSiCfxMz.js} +25 -16
- package/dist/tool-card-GSiCfxMz.js.map +1 -0
- package/dist/tool-presentation-C2bYQ7gB.js +874 -0
- package/dist/tool-presentation-C2bYQ7gB.js.map +1 -0
- package/dist/tool-presentation-DPp9h-n2.cjs +915 -0
- package/dist/tool-presentation-DPp9h-n2.cjs.map +1 -0
- package/dist/{tooltip-BiRLT3Th.cjs → tooltip-BsExuMO8.cjs} +2 -2
- package/dist/{tooltip-BiRLT3Th.cjs.map → tooltip-BsExuMO8.cjs.map} +1 -1
- package/dist/{tooltip-HzcLyGtV.js → tooltip-DJcze2VZ.js} +2 -2
- package/dist/{tooltip-HzcLyGtV.js.map → tooltip-DJcze2VZ.js.map} +1 -1
- package/dist/{transcript-divider-CvdgElIC.js → transcript-divider-DM2HkdeO.js} +5 -11
- package/dist/transcript-divider-DM2HkdeO.js.map +1 -0
- package/dist/{transcript-divider-CQ6sc3nt.cjs → transcript-divider-DroC3feH.cjs} +4 -10
- package/dist/transcript-divider-DroC3feH.cjs.map +1 -0
- package/dist/{use-workflow-graph-runtime-BKNhOKsH.js → use-workflow-graph-runtime-B3VUuhUE.js} +12 -12
- package/dist/{use-workflow-graph-runtime-BKNhOKsH.js.map → use-workflow-graph-runtime-B3VUuhUE.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-DYao-08R.cjs → use-workflow-graph-runtime-BfCL6nd4.cjs} +12 -12
- package/dist/{use-workflow-graph-runtime-DYao-08R.cjs.map → use-workflow-graph-runtime-BfCL6nd4.cjs.map} +1 -1
- package/dist/utils/string.cjs.js +2 -1
- package/dist/utils/string.es.js +1 -1
- package/dist/utils/toast.cjs.js +1 -1
- package/dist/utils/toast.es.js +1 -1
- package/oxlint/copy-rules.d.ts +4 -0
- package/oxlint/copy-rules.js +29 -0
- package/oxlint/copy-sources.js +223 -0
- package/oxlint/index.d.ts +5 -0
- package/oxlint/index.js +17 -0
- package/package.json +13 -10
- package/theme/data-viz.css +33 -0
- package/dist/AgentIndicator-Bs2S8AWJ.js +0 -847
- package/dist/AgentIndicator-Bs2S8AWJ.js.map +0 -1
- package/dist/AgentIndicator-to30W73z.cjs +0 -864
- package/dist/AgentIndicator-to30W73z.cjs.map +0 -1
- package/dist/Button-CLXTbAY8.js.map +0 -1
- package/dist/Button-DLcMcuUL.cjs.map +0 -1
- package/dist/Composer-BcueJvdX.cjs.map +0 -1
- package/dist/Composer-D1gF-0jZ.js.map +0 -1
- package/dist/FilterBar-BSP2UTjc.cjs.map +0 -1
- package/dist/FilterBar-PSQ1OwqH.js.map +0 -1
- package/dist/Message-jj56lxNL.cjs.map +0 -1
- package/dist/MessageScroller-CGsfTd1Z.cjs.map +0 -1
- package/dist/MessageScroller-DvaKlm4O.js.map +0 -1
- package/dist/MetricsCard-BEwiS7Pe.cjs.map +0 -1
- package/dist/MetricsCard-ua6C6b8a.js.map +0 -1
- package/dist/Workflow-C3SlEdP-.js.map +0 -1
- package/dist/Workflow-DSWQ-ROz.cjs.map +0 -1
- package/dist/activity-C8Ql81WM.js.map +0 -1
- package/dist/activity-CcQZeDYi.cjs.map +0 -1
- package/dist/combobox-D21no8t5.js.map +0 -1
- package/dist/combobox-DIT_6xiG.cjs.map +0 -1
- package/dist/combobox-parts-C4phOq4t.cjs.map +0 -1
- package/dist/combobox-parts-D90ir0Py.js.map +0 -1
- package/dist/date-time-range-picker-CWGjoR3j.cjs.map +0 -1
- package/dist/date-time-range-picker-CdSiXwB4.js.map +0 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +0 -29
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js.map +0 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +0 -28
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js.map +0 -1
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +0 -1
- package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +0 -1
- package/dist/page-header-BykBsHUy.js.map +0 -1
- package/dist/src/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -9
- package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +0 -7
- package/dist/tool-call-DBn14X-3.cjs +0 -497
- package/dist/tool-call-DBn14X-3.cjs.map +0 -1
- package/dist/tool-call-Dsj43lvJ.js +0 -426
- package/dist/tool-call-Dsj43lvJ.js.map +0 -1
- package/dist/tool-card-BOLXeKIp.cjs.map +0 -1
- package/dist/tool-card-HZ5bm7ue.js.map +0 -1
- package/dist/tool-presentation-CvibOP1J.js +0 -256
- package/dist/tool-presentation-CvibOP1J.js.map +0 -1
- package/dist/tool-presentation-D6nzVruN.cjs +0 -291
- package/dist/tool-presentation-D6nzVruN.cjs.map +0 -1
- package/dist/transcript-divider-CQ6sc3nt.cjs.map +0 -1
- package/dist/transcript-divider-CvdgElIC.js.map +0 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { t as Txt } from "./Txt-5efBsb2p.js";
|
|
2
|
+
import "./primitives/message-surface.es.js";
|
|
1
3
|
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
4
|
+
import { t as CopyButton } from "./copy-button-B-_Z6N6y.js";
|
|
5
|
+
import { i as TooltipTrigger, n as TooltipContent, t as Tooltip } from "./tooltip-DJcze2VZ.js";
|
|
6
|
+
import { useClock } from "./hooks/use-clock.es.js";
|
|
2
7
|
import { formatDate, toDate } from "./utils/date-format.es.js";
|
|
3
|
-
import { t as Txt } from "./Txt-BM6TVV_c.js";
|
|
4
|
-
import { t as CopyButton } from "./copy-button-BXrbevLn.js";
|
|
5
|
-
import "./primitives/message-surface.es.js";
|
|
6
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
9
|
// src/ds/components/Message/message.tsx
|
|
8
10
|
function Message({ from, avatar, footer, attachments, pending, children, className, ...props }) {
|
|
@@ -62,15 +64,24 @@ function MessageCopyButton({ text }) {
|
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
// src/ds/components/Message/message-timestamp.tsx
|
|
67
|
+
/** `just now` for a message's first minute, then `7 minutes ago`, `yesterday`, `last week`. */
|
|
68
|
+
function sentAgo(time, now) {
|
|
69
|
+
return now - time.getTime() < 6e4 ? "just now" : formatDate(time, "relative-long", { now });
|
|
70
|
+
}
|
|
71
|
+
/** When a message was sent, as how long ago, kept current; the full date and time show on hover. */
|
|
65
72
|
function MessageTimestamp({ value }) {
|
|
66
73
|
const time = toDate(value);
|
|
74
|
+
const ago = useClock((now) => time && sentAgo(time, now));
|
|
67
75
|
if (!time) return null;
|
|
68
|
-
return /* @__PURE__ */
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
77
|
+
render: /* @__PURE__ */ jsx(MessageMetadata, { tabIndex: 0 }),
|
|
78
|
+
children: /* @__PURE__ */ jsx("time", {
|
|
79
|
+
dateTime: time.toISOString(),
|
|
80
|
+
className: "whitespace-nowrap",
|
|
81
|
+
children: ago
|
|
82
|
+
})
|
|
83
|
+
}), /* @__PURE__ */ jsx(TooltipContent, { children: formatDate(time, "date-time") })] });
|
|
73
84
|
}
|
|
74
85
|
export { MessageMetadata as a, MessageActions as i, MessageCopyButton as n, Message as r, MessageTimestamp as t };
|
|
75
86
|
|
|
76
|
-
//# sourceMappingURL=Message-
|
|
87
|
+
//# sourceMappingURL=Message-DnnCoSef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message-
|
|
1
|
+
{"version":3,"file":"Message-DnnCoSef.js","names":[],"sources":["../src/ds/components/Message/message.tsx","../src/ds/components/Message/message-copy-button.tsx","../src/ds/components/Message/message-timestamp.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { messageSurfaceStyle } from '@/ds/primitives/message-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface MessageProps extends ComponentProps<'div'> {\n from: 'user' | 'assistant';\n avatar?: ReactNode;\n footer?: ReactNode;\n /** Sent files, displayed above and outside the text bubble. */\n attachments?: ReactNode;\n pending?: boolean;\n}\n\nexport function Message({ from, avatar, footer, attachments, pending, children, className, ...props }: MessageProps) {\n const isUser = from === 'user';\n\n return (\n <div\n {...props}\n data-slot=\"message\"\n data-from={from}\n data-message-pending={pending || undefined}\n className={cn(\n 'group/message max-w-full min-w-0',\n isUser && 'my-3 ml-auto flex w-fit max-w-[70%] items-start gap-2',\n !isUser && footer && 'mb-3',\n className,\n )}\n >\n {avatar}\n <div className={cn('min-w-0', isUser && 'flex flex-col items-end')}>\n {attachments && (\n <div data-slot=\"message-attachments\" className=\"mb-2 max-w-full min-w-0\">\n {attachments}\n </div>\n )}\n {children !== undefined && children !== null && children !== false && (\n <div\n data-slot=\"message-content\"\n className={cn(\n 'max-w-full min-w-0 text-body break-words',\n isUser && cn(messageSurfaceStyle, 'px-4 py-2'),\n isUser && pending && 'border border-dashed border-border',\n !isUser && footer && '[&>:last-child]:mb-0',\n )}\n >\n {children}\n </div>\n )}\n {footer && <div className=\"mt-1 max-w-full\">{footer}</div>}\n </div>\n </div>\n );\n}\n\nexport interface MessageActionsProps extends ComponentProps<'div'> {\n visibility?: 'hover' | 'always';\n}\n\nexport function MessageActions({ visibility = 'hover', children, className, ...props }: MessageActionsProps) {\n return (\n <div\n {...props}\n data-slot=\"message-actions\"\n className={cn(\n 'flex flex-wrap items-center gap-1 group-data-[from=user]/message:flex-row-reverse',\n 'motion-safe:transition-opacity [&_button]:pointer-coarse:min-h-11 [&_button]:pointer-coarse:min-w-11',\n visibility === 'hover' &&\n 'group-focus-within/message:opacity-100 group-hover/message:opacity-100 pointer-fine:opacity-0',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nexport function MessageMetadata({ className, ...props }: ComponentProps<'span'>) {\n return (\n <Txt\n {...props}\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn('inline-flex items-center gap-1', className)}\n />\n );\n}\n","import { CopyButton } from '../CopyButton';\n\nexport function MessageCopyButton({ text }: { text: string }) {\n return <CopyButton content={text} size=\"icon-sm\" variant=\"ghost\" tooltip=\"Copy message\" showToast={false} />;\n}\n","import { MessageMetadata } from './message';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { useClock } from '@/hooks/use-clock';\nimport { formatDate, toDate } from '@/utils/date-format';\n\n/** `just now` for a message's first minute, then `7 minutes ago`, `yesterday`, `last week`. */\nfunction sentAgo(time: Date, now: number) {\n return now - time.getTime() < 60_000 ? 'just now' : formatDate(time, 'relative-long', { now });\n}\n\n/** When a message was sent, as how long ago, kept current; the full date and time show on hover. */\nexport function MessageTimestamp({ value }: { value: Date | string }) {\n const time = toDate(value);\n const ago = useClock(now => time && sentAgo(time, now));\n if (!time) return null;\n\n return (\n <Tooltip>\n <TooltipTrigger render={<MessageMetadata tabIndex={0} />}>\n <time dateTime={time.toISOString()} className=\"whitespace-nowrap\">\n {ago}\n </time>\n </TooltipTrigger>\n <TooltipContent>{formatDate(time, 'date-time')}</TooltipContent>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;;;;;AAcA,SAAgB,QAAQ,EAAE,MAAM,QAAQ,QAAQ,aAAa,SAAS,UAAU,WAAW,GAAG,SAAuB;CACnH,MAAM,SAAS,SAAS;CAExB,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,aAAU;EACV,aAAW;EACX,wBAAsB,WAAW,KAAA;EACjC,WAAW,GACT,oCACA,UAAU,yDACV,CAAC,UAAU,UAAU,QACrB,SACF;EAVF,UAAA,CAYG,QACD,qBAAC,OAAD;GAAK,WAAW,GAAG,WAAW,UAAU,yBAAyB;GAAjE,UAAA;IACG,eACC,oBAAC,OAAD;KAAK,aAAU;KAAsB,WAAU;KAC5C,UAAA;IACE,CAAA;IAEN,aAAa,KAAA,KAAa,aAAa,QAAQ,aAAa,SAC3D,oBAAC,OAAD;KACE,aAAU;KACV,WAAW,GACT,4CACA,UAAU,GAAA,yEAAwB,WAAW,GAC7C,UAAU,WAAW,sCACrB,CAAC,UAAU,UAAU,sBACvB;KAEC;IACE,CAAA;IAEN,UAAU,oBAAC,OAAD;KAAK,WAAU;KAAmB,UAAA;IAAY,CAAA;GACtD;EACF,CAAA,CAAA;;AAET;AAMA,SAAgB,eAAe,EAAE,aAAa,SAAS,UAAU,WAAW,GAAG,SAA8B;CAC3G,OACE,oBAAC,OAAD;EACE,GAAI;EACJ,aAAU;EACV,WAAW,GACT,qFACA,wGACA,eAAe,WACb,iGACF,SACF;EAEC;CACE,CAAA;AAET;AAEA,SAAgB,gBAAgB,EAAE,WAAW,GAAG,SAAiC;CAC/E,OACE,oBAAC,KAAD;EACE,GAAI;EACJ,IAAG;EACH,SAAQ;EACR,MAAK;EACL,WAAW,GAAG,kCAAkC,SAAS;CAC1D,CAAA;AAEL;;ACtFA,SAAgB,kBAAkB,EAAE,QAA0B;CAC5D,OAAO,oBAAC,YAAD;EAAY,SAAS;EAAM,MAAK;EAAU,SAAQ;EAAQ,SAAQ;EAAe,WAAW;CAAQ,CAAA;AAC7G;;;ACEA,SAAS,QAAQ,MAAY,KAAa;CACxC,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAS,aAAa,WAAW,MAAM,iBAAiB,EAAE,IAAI,CAAC;AAC/F;;AAGA,SAAgB,iBAAiB,EAAE,SAAmC;CACpE,MAAM,OAAO,OAAO,KAAK;CACzB,MAAM,MAAM,UAAS,QAAO,QAAQ,QAAQ,MAAM,GAAG,CAAC;CACtD,IAAI,CAAC,MAAM,OAAO;CAElB,OACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD;EAAgB,QAAQ,oBAAC,iBAAD,EAAiB,UAAU,EAAI,CAAA;EACrD,UAAA,oBAAC,QAAD;GAAM,UAAU,KAAK,YAAY;GAAG,WAAU;GAC3C,UAAA;EACG,CAAA;CACQ,CAAA,GAChB,oBAAC,gBAAD,EAAA,UAAiB,WAAW,MAAM,WAAW,EAAkB,CAAA,CACxD,EAAA,CAAA;AAEb"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime-CmQyd0Gu.cjs");
|
|
2
|
-
const require_utils = require("./utils-uDc1ofX1.cjs");
|
|
3
2
|
const require_primitives_raised_surface = require("./primitives/raised-surface.cjs.js");
|
|
4
3
|
const require_merge_refs = require("./merge-refs-C0BDbPAW.cjs");
|
|
4
|
+
const require_utils = require("./utils-uDc1ofX1.cjs");
|
|
5
5
|
let react = require("react");
|
|
6
6
|
react = require_rolldown_runtime.__toESM(react, 1);
|
|
7
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -26,6 +26,9 @@ var useRequiredContext = (context, hookName) => {
|
|
|
26
26
|
var useRequiredMessageScrollerActionsContext = (hookName) => useRequiredContext(MessageScrollerActionsContext, hookName);
|
|
27
27
|
var useRequiredMessageScrollerScrollableContext = (hookName) => useRequiredContext(MessageScrollerScrollableContext, hookName);
|
|
28
28
|
var useRequiredMessageScrollerVisibilityContext = (hookName) => useRequiredContext(MessageScrollerVisibilityContext, hookName);
|
|
29
|
+
// src/ds/components/MessageScroller/message-scroller-geometry.ts
|
|
30
|
+
/** Sub-pixel slack, so a message resting exactly on the anchor line still counts. */
|
|
31
|
+
var VISIBILITY_EPSILON = .5;
|
|
29
32
|
var getContentPadding = (contentElement) => {
|
|
30
33
|
if (!contentElement) return {
|
|
31
34
|
start: 0,
|
|
@@ -60,7 +63,13 @@ var getScrollTarget = ({ align, contentElement, element, scrollMargin, viewportE
|
|
|
60
63
|
return elementTop - contentPadding.start - scrollMargin;
|
|
61
64
|
};
|
|
62
65
|
/**
|
|
63
|
-
*
|
|
66
|
+
* Whether a row has a box to measure. A row hidden by `display: none` — its own or
|
|
67
|
+
* an ancestor's — stays registered but has none, and reports a zero rect at the
|
|
68
|
+
* window origin: read as a position, it sits wherever the reader happens to be.
|
|
69
|
+
*/
|
|
70
|
+
var isDrawn = (element) => element.getClientRects().length > 0;
|
|
71
|
+
/**
|
|
72
|
+
* Where the reader must sit for the last drawn row to rest at the end of the view.
|
|
64
73
|
*
|
|
65
74
|
* Not the end of the scroll: a chat reserves room under a live turn so a reply
|
|
66
75
|
* grows into empty space, and docks its composer in the flow. Both sit below the
|
|
@@ -70,7 +79,7 @@ var getScrollTarget = ({ align, contentElement, element, scrollMargin, viewportE
|
|
|
70
79
|
*/
|
|
71
80
|
var getFollowTarget = ({ contentElement, items, viewportElement }) => {
|
|
72
81
|
const end = getMaxScroll(viewportElement);
|
|
73
|
-
const lastRow = items.
|
|
82
|
+
const lastRow = items.findLast(([, item]) => isDrawn(item.element))?.[1].element;
|
|
74
83
|
if (!lastRow || !contentElement) return end;
|
|
75
84
|
const contentBottom = getRelativeTop(contentElement, viewportElement) + contentElement.getBoundingClientRect().height;
|
|
76
85
|
const belowContent = Math.max(0, viewportElement.scrollHeight - contentBottom);
|
|
@@ -80,8 +89,15 @@ var getFollowTarget = ({ contentElement, items, viewportElement }) => {
|
|
|
80
89
|
var getCurrentAnchorId = ({ fallbackAnchorId, items, scrollMargin, scrollPreviousItemPeek, visibleMessageIds, viewportElement }) => {
|
|
81
90
|
const anchorLine = viewportElement.getBoundingClientRect().top + scrollMargin + scrollPreviousItemPeek;
|
|
82
91
|
const anchors = items.filter(([, item]) => item.scrollAnchor);
|
|
83
|
-
|
|
84
|
-
|
|
92
|
+
const passedLine = (index) => (anchors[index]?.[1].element.getBoundingClientRect().top ?? Infinity) <= anchorLine + VISIBILITY_EPSILON;
|
|
93
|
+
let firstUnpassed = 0;
|
|
94
|
+
let lastCandidate = anchors.length;
|
|
95
|
+
while (firstUnpassed < lastCandidate) {
|
|
96
|
+
const middle = firstUnpassed + lastCandidate >>> 1;
|
|
97
|
+
if (passedLine(middle)) firstUnpassed = middle + 1;
|
|
98
|
+
else lastCandidate = middle;
|
|
99
|
+
}
|
|
100
|
+
const anchoredAboveViewport = anchors[firstUnpassed - 1]?.[0];
|
|
85
101
|
if (anchoredAboveViewport) return anchoredAboveViewport;
|
|
86
102
|
return anchors.find(([messageId]) => visibleMessageIds.has(messageId))?.[0] ?? fallbackAnchorId;
|
|
87
103
|
};
|
|
@@ -184,9 +200,26 @@ function startTrip(viewportElement, getTarget, onEnd) {
|
|
|
184
200
|
window.cancelAnimationFrame(frame);
|
|
185
201
|
} };
|
|
186
202
|
}
|
|
203
|
+
// src/ds/components/MessageScroller/message-scroller-visibility-store.ts
|
|
204
|
+
var visibilityMatches = (left, right) => left.currentAnchorId === right.currentAnchorId && left.visibleMessageIds.length === right.visibleMessageIds.length && left.visibleMessageIds.every((messageId, index) => messageId === right.visibleMessageIds[index]);
|
|
205
|
+
function createVisibilityStore() {
|
|
206
|
+
let visibility = DEFAULT_VISIBILITY;
|
|
207
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
208
|
+
return {
|
|
209
|
+
getSnapshot: () => visibility,
|
|
210
|
+
subscribe: (onChange) => {
|
|
211
|
+
listeners.add(onChange);
|
|
212
|
+
return () => listeners.delete(onChange);
|
|
213
|
+
},
|
|
214
|
+
publish: (next) => {
|
|
215
|
+
if (visibilityMatches(visibility, next)) return;
|
|
216
|
+
visibility = next;
|
|
217
|
+
for (const listener of listeners) listener();
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
}
|
|
187
221
|
// src/ds/components/MessageScroller/message-scroller.tsx
|
|
188
222
|
var scrollableMatches = (left, right) => left.start === right.start && left.end === right.end;
|
|
189
|
-
var visibilityMatches = (left, right) => left.currentAnchorId === right.currentAnchorId && left.visibleMessageIds.length === right.visibleMessageIds.length && left.visibleMessageIds.every((messageId, index) => messageId === right.visibleMessageIds[index]);
|
|
190
223
|
var orderItemsByDocumentPosition = (items) => items.sort(([, left], [, right]) => {
|
|
191
224
|
const position = left.element.compareDocumentPosition(right.element);
|
|
192
225
|
if (position & Node.DOCUMENT_POSITION_FOLLOWING) return -1;
|
|
@@ -233,7 +266,8 @@ function MessageScrollerProvider({ autoScroll = false, children, defaultScrollPo
|
|
|
233
266
|
const seenAnchorElements = seenAnchorElementsRef.current;
|
|
234
267
|
const turnAnchoringArmedRef = react.useRef(false);
|
|
235
268
|
const [scrollable, setScrollable] = react.useState(DEFAULT_SCROLLABLE);
|
|
236
|
-
const [
|
|
269
|
+
const [visibilityStore] = react.useState(createVisibilityStore);
|
|
270
|
+
const publishVisibility = visibilityStore.publish;
|
|
237
271
|
const atEndRef = react.useRef(true);
|
|
238
272
|
const followingRef = react.useRef(true);
|
|
239
273
|
const tripRef = react.useRef(null);
|
|
@@ -256,9 +290,6 @@ function MessageScrollerProvider({ autoScroll = false, children, defaultScrollPo
|
|
|
256
290
|
}
|
|
257
291
|
setScrollable((current) => scrollableMatches(current, nextScrollable) ? current : nextScrollable);
|
|
258
292
|
}, [rootElement, viewportElement]);
|
|
259
|
-
const publishVisibility = react.useCallback((nextVisibility) => {
|
|
260
|
-
setVisibility((current) => visibilityMatches(current, nextVisibility) ? current : nextVisibility);
|
|
261
|
-
}, []);
|
|
262
293
|
const getOrderedItems = react.useCallback(() => {
|
|
263
294
|
orderedItemsRef.current ??= orderItemsByDocumentPosition(Array.from(itemsRegistry.entries()));
|
|
264
295
|
return orderedItemsRef.current;
|
|
@@ -688,16 +719,12 @@ function MessageScrollerProvider({ autoScroll = false, children, defaultScrollPo
|
|
|
688
719
|
end: scrollable.end,
|
|
689
720
|
start: scrollable.start
|
|
690
721
|
}), [scrollable.end, scrollable.start]);
|
|
691
|
-
const visibilityContextValue = react.useMemo(() => ({
|
|
692
|
-
currentAnchorId: visibility.currentAnchorId,
|
|
693
|
-
visibleMessageIds: visibility.visibleMessageIds
|
|
694
|
-
}), [visibility.currentAnchorId, visibility.visibleMessageIds]);
|
|
695
722
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MessageScrollerActionsContext.Provider, {
|
|
696
723
|
value: actionsContextValue,
|
|
697
724
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MessageScrollerScrollableContext.Provider, {
|
|
698
725
|
value: scrollableContextValue,
|
|
699
726
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MessageScrollerVisibilityContext.Provider, {
|
|
700
|
-
value:
|
|
727
|
+
value: visibilityStore,
|
|
701
728
|
children
|
|
702
729
|
})
|
|
703
730
|
})
|
|
@@ -825,6 +852,8 @@ var MessageScrollerButton = react.forwardRef(({ behavior = "smooth", direction =
|
|
|
825
852
|
});
|
|
826
853
|
MessageScrollerButton.displayName = "MessageScrollerButton";
|
|
827
854
|
// src/ds/components/MessageScroller/message-scroller-hooks.ts
|
|
855
|
+
var subscribeNowhere = () => () => {};
|
|
856
|
+
var noVisibility = () => void 0;
|
|
828
857
|
var useMessageScroller = () => {
|
|
829
858
|
const { scrollToEnd, scrollToMessage, scrollToStart } = useRequiredMessageScrollerActionsContext("useMessageScroller");
|
|
830
859
|
return react.useMemo(() => ({
|
|
@@ -863,18 +892,13 @@ var useOptionalMessageScrollerScrollable = () => {
|
|
|
863
892
|
} : void 0, [context]);
|
|
864
893
|
};
|
|
865
894
|
var useMessageScrollerVisibility = () => {
|
|
866
|
-
const
|
|
867
|
-
return react.
|
|
868
|
-
currentAnchorId,
|
|
869
|
-
visibleMessageIds
|
|
870
|
-
}), [currentAnchorId, visibleMessageIds]);
|
|
895
|
+
const store = useRequiredMessageScrollerVisibilityContext("useMessageScrollerVisibility");
|
|
896
|
+
return react.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
|
|
871
897
|
};
|
|
872
898
|
var useOptionalMessageScrollerVisibility = () => {
|
|
873
|
-
const
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
visibleMessageIds: context.visibleMessageIds
|
|
877
|
-
} : void 0, [context]);
|
|
899
|
+
const store = react.useContext(MessageScrollerVisibilityContext);
|
|
900
|
+
const getSnapshot = store?.getSnapshot ?? noVisibility;
|
|
901
|
+
return react.useSyncExternalStore(store?.subscribe ?? subscribeNowhere, getSnapshot, getSnapshot);
|
|
878
902
|
};
|
|
879
903
|
Object.defineProperty(exports, "MessageScroller", {
|
|
880
904
|
enumerable: true,
|
|
@@ -949,4 +973,4 @@ Object.defineProperty(exports, "useOptionalMessageScrollerVisibility", {
|
|
|
949
973
|
}
|
|
950
974
|
});
|
|
951
975
|
|
|
952
|
-
//# sourceMappingURL=MessageScroller-
|
|
976
|
+
//# sourceMappingURL=MessageScroller-D-mK1uuu.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageScroller-D-mK1uuu.cjs","names":["React","React","mergeRefs","cn","overlaySurfaceStyle","_Fragment","ArrowDownIcon","React"],"sources":["../src/ds/components/MessageScroller/message-scroller-context.ts","../src/ds/components/MessageScroller/message-scroller-geometry.ts","../src/ds/components/MessageScroller/message-scroller-glide.ts","../src/ds/components/MessageScroller/message-scroller-trip.ts","../src/ds/components/MessageScroller/message-scroller-visibility-store.ts","../src/ds/components/MessageScroller/message-scroller.tsx","../src/ds/components/MessageScroller/message-scroller-hooks.ts"],"sourcesContent":["import * as React from 'react';\n\nimport type { MessageScrollerVisibilityStore } from './message-scroller-visibility-store';\n\nexport type MessageScrollerDefaultScrollPosition = 'start' | 'end' | 'last-anchor';\nexport type MessageScrollerButtonDirection = 'start' | 'end';\nexport type MessageScrollerScrollAlign = 'start' | 'center' | 'end' | 'nearest';\n\nexport type MessageScrollerScrollOptions = {\n align?: MessageScrollerScrollAlign;\n behavior?: ScrollBehavior;\n scrollMargin?: number;\n};\n\nexport type MessageScrollerScrollable = {\n start: boolean;\n end: boolean;\n};\n\nexport type MessageScrollerVisibility = {\n currentAnchorId: string | undefined;\n visibleMessageIds: string[];\n};\n\nexport type MessageScrollerActionsContextValue = {\n notifyContentResize: () => void;\n notifyScroll: () => void;\n registerItem: (messageId: string, element: HTMLElement, scrollAnchor: boolean) => () => void;\n scrollToEnd: (options?: MessageScrollerScrollOptions) => boolean;\n scrollToMessage: (messageId: string, options?: MessageScrollerScrollOptions) => boolean;\n scrollToStart: (options?: MessageScrollerScrollOptions) => boolean;\n setContentElement: (element: HTMLDivElement | null) => void;\n setRootElement: (element: HTMLDivElement | null) => void;\n setViewportElement: (element: HTMLDivElement | null) => void;\n syncAfterScroll: () => void;\n};\n\nexport const DEFAULT_SCROLLABLE: MessageScrollerScrollable = { start: false, end: false };\nexport const DEFAULT_VISIBILITY: MessageScrollerVisibility = { currentAnchorId: undefined, visibleMessageIds: [] };\nexport const DEFAULT_SCROLL_EDGE_THRESHOLD = 8;\nexport const DEFAULT_SCROLL_MARGIN = 0;\nexport const DEFAULT_SCROLL_PREVIOUS_ITEM_PEEK = 64;\nexport const DEFAULT_REACH_START_THRESHOLD = 160;\n\n// Looser than the edge threshold, which only decides whether the scroll buttons\n// are active: how far from the end a reader may sit and still be carried along\n// by growing content.\nexport const AUTO_SCROLL_ATTACH_THRESHOLD = 160;\n\nexport const MessageScrollerActionsContext = React.createContext<MessageScrollerActionsContextValue | null>(null);\nexport const MessageScrollerScrollableContext = React.createContext<MessageScrollerScrollable | null>(null);\nexport const MessageScrollerVisibilityContext = React.createContext<MessageScrollerVisibilityStore | null>(null);\n\nconst useRequiredContext = <TValue>(context: React.Context<TValue | null>, hookName: string) => {\n const value = React.useContext(context);\n if (!value) throw new Error(`${hookName} must be used within MessageScrollerProvider.`);\n return value;\n};\n\nexport const useRequiredMessageScrollerActionsContext = (hookName: string) =>\n useRequiredContext(MessageScrollerActionsContext, hookName);\n\nexport const useRequiredMessageScrollerScrollableContext = (hookName: string) =>\n useRequiredContext(MessageScrollerScrollableContext, hookName);\n\nexport const useRequiredMessageScrollerVisibilityContext = (hookName: string) =>\n useRequiredContext(MessageScrollerVisibilityContext, hookName);\n","import type { MessageScrollerScrollAlign } from './message-scroller-context';\n\n/**\n * Geometry behind the scroller: how far to scroll for a given alignment, and\n * which anchored message the reader is currently on. Split out from the\n * component so each rule can be reasoned about — and tested — on its own.\n */\n\n/** A message the scroller tracks, and whether a turn is anchored to it. */\nexport type MessageScrollerItemRecord = {\n element: HTMLElement;\n scrollAnchor: boolean;\n};\n\n/** Sub-pixel slack, so a message resting exactly on the anchor line still counts. */\nexport const VISIBILITY_EPSILON = 0.5;\n\nexport const getContentPadding = (contentElement: HTMLElement | null) => {\n if (!contentElement) return { start: 0, end: 0 };\n const styles = window.getComputedStyle(contentElement);\n return {\n start: Number.parseFloat(styles.paddingBlockStart || styles.paddingTop) || 0,\n end: Number.parseFloat(styles.paddingBlockEnd || styles.paddingBottom) || 0,\n };\n};\n\nexport const getMaxScroll = (viewportElement: HTMLElement) =>\n Math.max(0, viewportElement.scrollHeight - viewportElement.clientHeight);\n\nexport const getRelativeTop = (element: HTMLElement, viewportElement: HTMLElement) => {\n const elementRect = element.getBoundingClientRect();\n const viewportRect = viewportElement.getBoundingClientRect();\n return elementRect.top - viewportRect.top + viewportElement.scrollTop;\n};\n\nexport const getScrollTarget = ({\n align,\n contentElement,\n element,\n scrollMargin,\n viewportElement,\n}: {\n align: MessageScrollerScrollAlign;\n /** The padding framing the transcript lives here, however deep the rows nest. */\n contentElement: HTMLElement | null;\n element: HTMLElement;\n scrollMargin: number;\n viewportElement: HTMLElement;\n}) => {\n const contentPadding = getContentPadding(contentElement);\n const elementTop = getRelativeTop(element, viewportElement);\n const elementHeight = element.getBoundingClientRect().height;\n const visibleHeight = Math.max(0, viewportElement.clientHeight - contentPadding.start - contentPadding.end);\n\n if (align === 'center') return elementTop - contentPadding.start - (visibleHeight - elementHeight) / 2 - scrollMargin;\n if (align === 'end')\n return elementTop - viewportElement.clientHeight + elementHeight + contentPadding.end + scrollMargin;\n\n if (align === 'nearest') {\n const elementBottom = elementTop + elementHeight;\n const viewportTop = viewportElement.scrollTop + contentPadding.start;\n const viewportBottom = viewportElement.scrollTop + viewportElement.clientHeight - contentPadding.end;\n if (elementTop >= viewportTop && elementBottom <= viewportBottom) return viewportElement.scrollTop;\n return elementTop < viewportTop\n ? elementTop - contentPadding.start - scrollMargin\n : elementBottom - viewportElement.clientHeight + contentPadding.end + scrollMargin;\n }\n\n return elementTop - contentPadding.start - scrollMargin;\n};\n\n/**\n * Whether a row has a box to measure. A row hidden by `display: none` — its own or\n * an ancestor's — stays registered but has none, and reports a zero rect at the\n * window origin: read as a position, it sits wherever the reader happens to be.\n */\nconst isDrawn = (element: HTMLElement) => element.getClientRects().length > 0;\n\n/**\n * Where the reader must sit for the last drawn row to rest at the end of the view.\n *\n * Not the end of the scroll: a chat reserves room under a live turn so a reply\n * grows into empty space, and docks its composer in the flow. Both sit below the\n * last row, so scrolling to the end of the box carries that row — and the message\n * that opened the turn — out of the view above. Reading it from the rows means no\n * one has to publish a height for anyone else to subtract.\n */\nexport const getFollowTarget = ({\n contentElement,\n items,\n viewportElement,\n}: {\n contentElement: HTMLElement | null;\n items: Array<readonly [string, MessageScrollerItemRecord]>;\n viewportElement: HTMLElement;\n}) => {\n const end = getMaxScroll(viewportElement);\n const lastRow = items.findLast(([, item]) => isDrawn(item.element))?.[1].element;\n if (!lastRow || !contentElement) return end;\n\n const contentBottom = getRelativeTop(contentElement, viewportElement) + contentElement.getBoundingClientRect().height;\n const belowContent = Math.max(0, viewportElement.scrollHeight - contentBottom);\n const rowBottom = getRelativeTop(lastRow, viewportElement) + lastRow.getBoundingClientRect().height;\n\n return Math.min(end, Math.max(0, rowBottom + belowContent - viewportElement.clientHeight));\n};\n\nexport const getCurrentAnchorId = ({\n fallbackAnchorId,\n items,\n scrollMargin,\n scrollPreviousItemPeek,\n visibleMessageIds,\n viewportElement,\n}: {\n fallbackAnchorId: string | undefined;\n items: Array<readonly [string, MessageScrollerItemRecord]>;\n scrollMargin: number;\n scrollPreviousItemPeek: number;\n visibleMessageIds: Set<string>;\n viewportElement: HTMLElement;\n}) => {\n const anchorLine = viewportElement.getBoundingClientRect().top + scrollMargin + scrollPreviousItemPeek;\n const anchors = items.filter(([, item]) => item.scrollAnchor);\n const passedLine = (index: number) =>\n (anchors[index]?.[1].element.getBoundingClientRect().top ?? Infinity) <= anchorLine + VISIBILITY_EPSILON;\n // Anchors stack top to bottom in document order, so their tops only grow: a scroll reads log(n) of them.\n let firstUnpassed = 0;\n let lastCandidate = anchors.length;\n while (firstUnpassed < lastCandidate) {\n const middle = (firstUnpassed + lastCandidate) >>> 1;\n if (passedLine(middle)) firstUnpassed = middle + 1;\n else lastCandidate = middle;\n }\n\n const anchoredAboveViewport = anchors[firstUnpassed - 1]?.[0];\n if (anchoredAboveViewport) return anchoredAboveViewport;\n return anchors.find(([messageId]) => visibleMessageIds.has(messageId))?.[0] ?? fallbackAnchorId;\n};\n","/** Longest single growth worth smoothing. Past it the move is one the reader asked for. */\nconst GLIDE_MAX = 240;\nconst GLIDE_MS = 220;\nconst GLIDE_EASE = 'cubic-bezier(0.33, 1, 0.68, 1)';\n\nfunction currentOffset(element: HTMLElement): number {\n if (typeof DOMMatrixReadOnly === 'undefined') return 0;\n const { transform } = getComputedStyle(element);\n if (!transform || transform === 'none') return 0;\n return new DOMMatrixReadOnly(transform).m42;\n}\n\nconst travels = new WeakMap<HTMLElement, AbortController>();\n\nfunction release(element: HTMLElement): void {\n travels.get(element)?.abort();\n travels.delete(element);\n element.style.transition = '';\n element.style.transform = '';\n}\n\nfunction calm(): boolean {\n if (typeof window === 'undefined' || !window.matchMedia) return false;\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n/**\n * Hides a scroll that has already happened. The end is pinned instantly, as it must\n * be, then the content is put back where the reader last saw it and travels to zero\n * on the compositor — so a reply growing a line at a time reads as one movement\n * rather than a snap per wrapped line.\n *\n * Transform, not layout: `scrollHeight` never changes, so nothing here can feed the\n * resize that called it. A line landing mid-travel only adds to the distance left.\n */\nexport function glideContent(element: HTMLElement | null, delta: number): void {\n if (!element || delta <= 0 || calm()) return;\n\n const offset = currentOffset(element) + delta;\n if (offset > GLIDE_MAX) {\n release(element);\n return;\n }\n\n element.style.transition = 'none';\n element.style.transform = `translateY(${offset}px)`;\n // Commit the displaced position, or the browser only ever sees the settled one.\n void element.offsetHeight;\n element.style.transition = `transform ${GLIDE_MS}ms ${GLIDE_EASE}`;\n element.style.transform = 'translateY(0)';\n // A settled transform would leave the content a containing block for anything\n // fixed inside it, so the styles come off once the travel is spent. Descendants'\n // transitions bubble here too, so only the content's own settle counts.\n travels.get(element)?.abort();\n const travel = new AbortController();\n travels.set(element, travel);\n const settle = (event: TransitionEvent) => {\n if (event.target !== element) return;\n if (currentOffset(element) === 0) release(element);\n };\n element.addEventListener('transitionend', settle, { signal: travel.signal });\n element.addEventListener('transitioncancel', settle, { signal: travel.signal });\n}\n","import { VISIBILITY_EPSILON } from './message-scroller-geometry';\n\n/** One designed curve for the one scripted trip: fast liftoff, long settle. */\nconst TRIP_MS = 560;\n/** How long past its clock a trip may chase a destination the layout hasn't released yet. */\nconst TRIP_OVERTIME_MS = 240;\n\nconst easeOutQuint = (t: number) => 1 - (1 - t) ** 5;\n\nexport type TripEndReason = 'arrived' | 'interrupted' | 'expired';\n\nexport interface TripAnimation {\n cancel: () => void;\n}\n\n/**\n * Drives the viewport to a destination the way a transition would, not the way\n * `scrollTo({ behavior: 'smooth' })` does: the destination is re-read every frame,\n * so a layout still settling under the trip — the reserved room opening beneath a\n * new turn — bends the path instead of restarting the curve. Writes are clamped by\n * the browser, so until the room has opened far enough the trip simply rides the\n * end of the box down.\n *\n * The reader keeps the last word: a scroll position this trip didn't write ends it.\n */\nexport function startTrip(\n viewportElement: HTMLElement,\n getTarget: () => number | undefined,\n onEnd: (reason: TripEndReason) => void,\n): TripAnimation {\n const reduceMotion =\n typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n const duration = reduceMotion ? 0 : TRIP_MS;\n const startedAt = performance.now();\n const from = viewportElement.scrollTop;\n let lastWritten = from;\n let frame = 0;\n let ended = false;\n\n const end = (reason: TripEndReason) => {\n ended = true;\n onEnd(reason);\n };\n\n const step = () => {\n if (Math.abs(viewportElement.scrollTop - lastWritten) > 1) return end('interrupted');\n const target = getTarget();\n if (target === undefined) return end('expired');\n const elapsed = performance.now() - startedAt;\n const progress = duration === 0 ? 1 : Math.min(1, elapsed / duration);\n viewportElement.scrollTop = from + (target - from) * easeOutQuint(progress);\n lastWritten = viewportElement.scrollTop;\n if (progress === 1 && Math.abs(lastWritten - target) <= VISIBILITY_EPSILON) return end('arrived');\n if (elapsed >= duration + TRIP_OVERTIME_MS) return end('expired');\n frame = window.requestAnimationFrame(step);\n };\n\n frame = window.requestAnimationFrame(step);\n\n return {\n cancel: () => {\n if (ended) return;\n ended = true;\n window.cancelAnimationFrame(frame);\n },\n };\n}\n","import { DEFAULT_VISIBILITY } from './message-scroller-context';\nimport type { MessageScrollerVisibility } from './message-scroller-context';\n\n/** Changes nearly every scroll frame: a context value would make React walk the whole transcript on each change. */\nexport interface MessageScrollerVisibilityStore {\n getSnapshot: () => MessageScrollerVisibility;\n subscribe: (onChange: () => void) => () => void;\n publish: (next: MessageScrollerVisibility) => void;\n}\n\nconst visibilityMatches = (left: MessageScrollerVisibility, right: MessageScrollerVisibility) =>\n left.currentAnchorId === right.currentAnchorId &&\n left.visibleMessageIds.length === right.visibleMessageIds.length &&\n left.visibleMessageIds.every((messageId, index) => messageId === right.visibleMessageIds[index]);\n\nexport function createVisibilityStore(): MessageScrollerVisibilityStore {\n let visibility = DEFAULT_VISIBILITY;\n const listeners = new Set<() => void>();\n\n return {\n getSnapshot: () => visibility,\n subscribe: onChange => {\n listeners.add(onChange);\n return () => listeners.delete(onChange);\n },\n publish: next => {\n if (visibilityMatches(visibility, next)) return;\n visibility = next;\n for (const listener of listeners) listener();\n },\n };\n}\n","import { ArrowDownIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport {\n AUTO_SCROLL_ATTACH_THRESHOLD,\n DEFAULT_REACH_START_THRESHOLD,\n DEFAULT_SCROLL_EDGE_THRESHOLD,\n DEFAULT_SCROLL_MARGIN,\n DEFAULT_SCROLL_PREVIOUS_ITEM_PEEK,\n DEFAULT_SCROLLABLE,\n DEFAULT_VISIBILITY,\n MessageScrollerActionsContext,\n MessageScrollerScrollableContext,\n MessageScrollerVisibilityContext,\n useRequiredMessageScrollerActionsContext,\n useRequiredMessageScrollerScrollableContext,\n} from './message-scroller-context';\nimport type {\n MessageScrollerActionsContextValue,\n MessageScrollerButtonDirection,\n MessageScrollerDefaultScrollPosition,\n MessageScrollerScrollAlign,\n MessageScrollerScrollOptions,\n MessageScrollerScrollable,\n} from './message-scroller-context';\n\nimport {\n VISIBILITY_EPSILON,\n getCurrentAnchorId,\n getFollowTarget,\n getMaxScroll,\n getScrollTarget,\n} from './message-scroller-geometry';\nimport type { MessageScrollerItemRecord } from './message-scroller-geometry';\nimport { glideContent } from './message-scroller-glide';\nimport { startTrip } from './message-scroller-trip';\nimport type { TripAnimation } from './message-scroller-trip';\nimport { createVisibilityStore } from './message-scroller-visibility-store';\n\nimport { overlaySurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { mergeRefs } from '@/lib/merge-refs';\nimport { cn } from '@/lib/utils';\n\nexport type {\n MessageScrollerButtonDirection,\n MessageScrollerDefaultScrollPosition,\n MessageScrollerScrollAlign,\n MessageScrollerScrollOptions,\n MessageScrollerScrollable,\n MessageScrollerVisibility,\n} from './message-scroller-context';\n\nconst scrollableMatches = (left: MessageScrollerScrollable, right: MessageScrollerScrollable) =>\n left.start === right.start && left.end === right.end;\n\nconst orderItemsByDocumentPosition = (items: Array<readonly [string, MessageScrollerItemRecord]>) =>\n items.sort(([, left], [, right]) => {\n const position = left.element.compareDocumentPosition(right.element);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING) return -1;\n if (position & Node.DOCUMENT_POSITION_PRECEDING) return 1;\n return 0;\n });\n\nconst scrollViewportTo = (viewportElement: HTMLElement, top: number, behavior: ScrollBehavior) => {\n if (typeof viewportElement.scrollTo === 'function') {\n viewportElement.scrollTo({ top, behavior });\n return;\n }\n\n viewportElement.scrollTop = top;\n};\n\nconst scheduleScrollSync = (callback: () => void) => {\n if (typeof window.requestAnimationFrame === 'function') {\n window.requestAnimationFrame(callback);\n return;\n }\n\n window.setTimeout(callback, 0);\n};\n\nexport interface MessageScrollerProviderProps {\n /** Carry the reader with the stream, re-attaching on a new turn. Off still parks a new turn, without following the reply. */\n autoScroll?: boolean;\n children?: React.ReactNode;\n defaultScrollPosition?: MessageScrollerDefaultScrollPosition;\n /** Called when the reader scrolls near the start — where older history is loaded. */\n onReachStart?: () => void;\n /** Hold the reading position when older items are added above the current ones. */\n preserveScrollOnPrepend?: boolean;\n reachStartThreshold?: number;\n scrollEdgeThreshold?: number;\n scrollMargin?: number;\n scrollPreviousItemPeek?: number;\n}\n\nexport function MessageScrollerProvider({\n autoScroll = false,\n children,\n defaultScrollPosition = 'end',\n onReachStart,\n preserveScrollOnPrepend = false,\n reachStartThreshold = DEFAULT_REACH_START_THRESHOLD,\n scrollEdgeThreshold = DEFAULT_SCROLL_EDGE_THRESHOLD,\n scrollMargin = DEFAULT_SCROLL_MARGIN,\n scrollPreviousItemPeek = DEFAULT_SCROLL_PREVIOUS_ITEM_PEEK,\n}: MessageScrollerProviderProps) {\n const itemsRef = React.useRef<Map<string, MessageScrollerItemRecord> | null>(null);\n itemsRef.current ??= new Map<string, MessageScrollerItemRecord>();\n const itemsRegistry = itemsRef.current;\n // Rebuilt on register/unregister only — scroll runs this too often to sort per event.\n const orderedItemsRef = React.useRef<Array<readonly [string, MessageScrollerItemRecord]> | null>(null);\n const visibleMessageIdsRef = React.useRef<Set<string> | null>(null);\n visibleMessageIdsRef.current ??= new Set<string>();\n const intersectingMessageIds = visibleMessageIdsRef.current;\n const [itemsVersion, setItemsVersion] = React.useState(0);\n const [rootElement, setRootElement] = React.useState<HTMLDivElement | null>(null);\n const [viewportElement, setViewportElement] = React.useState<HTMLDivElement | null>(null);\n const [contentElement, setContentElement] = React.useState<HTMLDivElement | null>(null);\n const defaultScrollAppliedRef = React.useRef(false);\n const deferDefaultScrollRef = React.useRef(false);\n const defaultScrollScheduledRef = React.useRef(false);\n const seenAnchorIdsRef = React.useRef<Set<string> | null>(null);\n seenAnchorIdsRef.current ??= new Set<string>();\n const seenAnchorIds = seenAnchorIdsRef.current;\n // Message ID reconciliation keeps the row element while replacing its ID.\n const seenAnchorElementsRef = React.useRef<WeakSet<HTMLElement> | null>(null);\n seenAnchorElementsRef.current ??= new WeakSet<HTMLElement>();\n const seenAnchorElements = seenAnchorElementsRef.current;\n const turnAnchoringArmedRef = React.useRef(false);\n const [scrollable, setScrollable] = React.useState<MessageScrollerScrollable>(DEFAULT_SCROLLABLE);\n const [visibilityStore] = React.useState(createVisibilityStore);\n const publishVisibility = visibilityStore.publish;\n const atEndRef = React.useRef(true);\n // Attachment is a mode, not a measurement: a growing reply moves the end away\n // without the reader having moved, so only the reader detaches it.\n const followingRef = React.useRef(true);\n // A smooth trip in flight, remembered by destination — the end of the stream, or\n // the anchor a new turn parks at. Sampled mid-flight it reads as a reader who\n // left, so it suspends detachment; a position going backwards calls it off.\n const tripRef = React.useRef<'end' | { anchorId: string } | null>(null);\n // The frame loop behind an anchor trip. Owns clearing its trip: it alone can\n // tell the reader taking over from its own writes landing.\n const tripAnimationRef = React.useRef<TripAnimation | null>(null);\n const lastScrollTopRef = React.useRef(0);\n // Only a reader moving backwards asks for older history: a mount sitting at\n // scrollTop 0 before the default scroll lands has not moved.\n const reachStartArmedRef = React.useRef(false);\n const reachStartFiredRef = React.useRef(false);\n const prependAnchorRef = React.useRef<{ scrollHeight: number; scrollTop: number } | null>(null);\n const firstItemIdRef = React.useRef<string | undefined>(undefined);\n // Off notifyScroll's deps on purpose: consumers pass it inline, and a fresh\n // identity per render would republish the actions context to every consumer.\n const onReachStartRef = React.useRef(onReachStart);\n React.useEffect(() => {\n onReachStartRef.current = onReachStart;\n }, [onReachStart]);\n\n const publishScrollable = React.useCallback(\n (nextScrollable: MessageScrollerScrollable) => {\n const scrollableValue = [nextScrollable.start && 'start', nextScrollable.end && 'end'].filter(Boolean).join(' ');\n\n for (const element of [rootElement, viewportElement]) {\n if (!element) continue;\n if (scrollableValue) {\n element.setAttribute('data-scrollable', scrollableValue);\n } else {\n element.removeAttribute('data-scrollable');\n }\n }\n\n setScrollable(current => (scrollableMatches(current, nextScrollable) ? current : nextScrollable));\n },\n [rootElement, viewportElement],\n );\n\n // Registration is mount order, not document order, once history is prepended.\n const getOrderedItems = React.useCallback(() => {\n orderedItemsRef.current ??= orderItemsByDocumentPosition(Array.from(itemsRegistry.entries()));\n return orderedItemsRef.current;\n }, [itemsRegistry]);\n\n // The one definition of \"the end\" — following it, resting at it, offering the trip\n // back to it. Everything below the last row (reserved room, the docked composer)\n // is room to grow into, never somewhere to scroll.\n const followTarget = React.useCallback(() => {\n if (!viewportElement) return 0;\n\n return getFollowTarget({ contentElement, items: getOrderedItems(), viewportElement });\n }, [contentElement, getOrderedItems, viewportElement]);\n\n const anchorTripTarget = React.useCallback(\n (anchorId: string) => {\n const item = itemsRegistry.get(anchorId);\n if (!item || !viewportElement) return undefined;\n return Math.max(\n 0,\n getScrollTarget({ align: 'start', contentElement, element: item.element, scrollMargin, viewportElement }),\n );\n },\n [contentElement, itemsRegistry, scrollMargin, viewportElement],\n );\n\n // The motion's destination, never the decision's: the room under a fresh turn is\n // still opening when the trip starts — on a short thread the box has not even\n // grown yet — so the cap is re-read per frame and the trip rides the end of the\n // box until the opened room decides where the message rests.\n const parkTripTarget = React.useCallback(\n (anchorId: string) => {\n const target = anchorTripTarget(anchorId);\n if (target === undefined || !viewportElement) return target;\n return Math.min(target, getMaxScroll(viewportElement));\n },\n [anchorTripTarget, viewportElement],\n );\n\n const cancelTripAnimation = React.useCallback(() => {\n tripAnimationRef.current?.cancel();\n tripAnimationRef.current = null;\n }, []);\n\n const updateScrollable = React.useCallback(\n ({ fromScroll = false }: { fromScroll?: boolean } = {}) => {\n if (!viewportElement) {\n atEndRef.current = true;\n publishScrollable(DEFAULT_SCROLLABLE);\n return false;\n }\n\n const { scrollTop } = viewportElement;\n const remainingScroll = followTarget() - scrollTop;\n const wentBack = scrollTop < lastScrollTopRef.current;\n atEndRef.current = remainingScroll < AUTO_SCROLL_ATTACH_THRESHOLD;\n if (tripRef.current === 'end' && (wentBack || atEndRef.current)) tripRef.current = null;\n lastScrollTopRef.current = scrollTop;\n // Scrolling back is the only way out of the stream, the end the only way back in:\n // a position merely left behind by a growing reply is us chasing it, not them leaving.\n if (fromScroll && tripRef.current === null && (wentBack || atEndRef.current)) {\n followingRef.current = atEndRef.current;\n }\n\n publishScrollable({\n start: scrollTop > scrollEdgeThreshold,\n end: remainingScroll > scrollEdgeThreshold && !(autoScroll && followingRef.current),\n });\n\n return wentBack;\n },\n [autoScroll, followTarget, publishScrollable, scrollEdgeThreshold, viewportElement],\n );\n\n const getLastAnchorId = React.useCallback(\n () =>\n getOrderedItems()\n .filter(([, item]) => item.scrollAnchor)\n .at(-1)?.[0],\n [getOrderedItems],\n );\n\n const updateVisibility = React.useCallback(() => {\n const items = getOrderedItems();\n const fallbackAnchorId = getLastAnchorId() ?? items.at(-1)?.[0];\n\n if (items.length === 0) {\n publishVisibility(DEFAULT_VISIBILITY);\n return;\n }\n\n if (!viewportElement) {\n publishVisibility({\n currentAnchorId: fallbackAnchorId,\n visibleMessageIds: fallbackAnchorId ? [fallbackAnchorId] : [],\n });\n return;\n }\n\n const viewportRect = viewportElement.getBoundingClientRect();\n const visibleMessageIds = new Set<string>();\n\n if (typeof IntersectionObserver === 'undefined') {\n const visibilityTop = viewportRect.top + scrollMargin + scrollPreviousItemPeek;\n items.forEach(([messageId, item]) => {\n const rect = item.element.getBoundingClientRect();\n if (rect.bottom > visibilityTop && rect.top < viewportRect.bottom) visibleMessageIds.add(messageId);\n });\n } else {\n intersectingMessageIds.forEach(messageId => visibleMessageIds.add(messageId));\n }\n\n const orderedVisibleMessageIds = items.flatMap(([messageId]) =>\n visibleMessageIds.has(messageId) ? [messageId] : [],\n );\n\n publishVisibility({\n currentAnchorId: getCurrentAnchorId({\n fallbackAnchorId,\n items,\n scrollMargin,\n scrollPreviousItemPeek,\n visibleMessageIds,\n viewportElement,\n }),\n visibleMessageIds:\n orderedVisibleMessageIds.length > 0 ? orderedVisibleMessageIds : fallbackAnchorId ? [fallbackAnchorId] : [],\n });\n }, [\n getLastAnchorId,\n getOrderedItems,\n intersectingMessageIds,\n publishVisibility,\n scrollMargin,\n scrollPreviousItemPeek,\n viewportElement,\n ]);\n\n const syncAfterScroll = React.useCallback(() => {\n updateScrollable();\n updateVisibility();\n }, [updateScrollable, updateVisibility]);\n\n const notifyScroll = React.useCallback(() => {\n const wasScrollable = Boolean(viewportElement && viewportElement.scrollHeight > viewportElement.clientHeight);\n const readerWentBack = updateScrollable({ fromScroll: true });\n updateVisibility();\n if (!viewportElement) return;\n\n if (readerWentBack && wasScrollable) reachStartArmedRef.current = true;\n\n if (!reachStartArmedRef.current) return;\n if (!wasScrollable) return;\n if (viewportElement.scrollTop > reachStartThreshold) {\n reachStartFiredRef.current = false;\n return;\n }\n // One request per trip to the start: staying there must not queue a second.\n if (reachStartFiredRef.current) return;\n if (!onReachStartRef.current) return;\n\n reachStartFiredRef.current = true;\n if (preserveScrollOnPrepend) {\n prependAnchorRef.current = {\n scrollHeight: viewportElement.scrollHeight,\n scrollTop: viewportElement.scrollTop,\n };\n }\n onReachStartRef.current();\n }, [preserveScrollOnPrepend, reachStartThreshold, updateScrollable, updateVisibility, viewportElement]);\n\n const scrollToElement = React.useCallback(\n (\n element: HTMLElement,\n {\n align = 'start',\n behavior = 'auto',\n scrollMargin: optionScrollMargin = scrollMargin,\n }: MessageScrollerScrollOptions = {},\n ) => {\n if (!viewportElement || !contentElement?.contains(element)) return false;\n\n const nextScrollTop = Math.max(\n 0,\n getScrollTarget({ align, contentElement, element, scrollMargin: optionScrollMargin, viewportElement }),\n );\n\n if (Math.abs(viewportElement.scrollTop - nextScrollTop) <= VISIBILITY_EPSILON) {\n scrollViewportTo(viewportElement, nextScrollTop, 'auto');\n syncAfterScroll();\n return true;\n }\n\n scrollViewportTo(viewportElement, nextScrollTop, behavior);\n scheduleScrollSync(syncAfterScroll);\n return true;\n },\n [contentElement, scrollMargin, syncAfterScroll, viewportElement],\n );\n\n const scrollToStart = React.useCallback(\n ({ behavior = 'auto' }: MessageScrollerScrollOptions = {}) => {\n if (!viewportElement) return false;\n cancelTripAnimation();\n tripRef.current = null;\n scrollViewportTo(viewportElement, 0, behavior);\n scheduleScrollSync(syncAfterScroll);\n return true;\n },\n [cancelTripAnimation, syncAfterScroll, viewportElement],\n );\n\n const scrollToEnd = React.useCallback(\n ({ behavior = 'auto' }: MessageScrollerScrollOptions = {}) => {\n if (!viewportElement) return false;\n cancelTripAnimation();\n followingRef.current = true;\n tripRef.current = behavior === 'smooth' ? 'end' : null;\n scrollViewportTo(viewportElement, followTarget(), behavior);\n // Published now, not next frame: a button that hears about the trip late flashes.\n syncAfterScroll();\n scheduleScrollSync(syncAfterScroll);\n return true;\n },\n [cancelTripAnimation, followTarget, syncAfterScroll, viewportElement],\n );\n\n const scrollToMessage = React.useCallback(\n (messageId: string, options?: MessageScrollerScrollOptions) => {\n const item = itemsRegistry.get(messageId);\n if (!item) return false;\n return scrollToElement(item.element, options);\n },\n [itemsRegistry, scrollToElement],\n );\n\n // A reply grows into the room its turn reserved and moves nothing: only once the\n // last row would fall past the end of the view is there anything to follow, and\n // then by exactly what it overflowed — pinned instantly, glided on the compositor.\n const notifyContentResize = React.useCallback(() => {\n const trip = tripRef.current;\n const onAnchorTrip = trip !== null && trip !== 'end';\n // An anchor trip re-reads its destination every frame, so a layout settling\n // under it — the reserved room opening — bends its path without help from here.\n if (!onAnchorTrip && autoScroll && defaultScrollAppliedRef.current && followingRef.current && viewportElement) {\n const overflow = followTarget() - viewportElement.scrollTop;\n if (overflow > VISIBILITY_EPSILON) {\n // A trip already in flight is retargeted rather than cut short; only the\n // instant catch-up needs the glide to read as one movement.\n const travelling = trip === 'end';\n scrollViewportTo(viewportElement, followTarget(), travelling ? 'smooth' : 'auto');\n if (!travelling) glideContent(contentElement, overflow);\n }\n }\n syncAfterScroll();\n }, [autoScroll, contentElement, followTarget, syncAfterScroll, viewportElement]);\n\n const registerItem = React.useCallback(\n (messageId: string, element: HTMLElement, scrollAnchor: boolean) => {\n itemsRegistry.set(messageId, { element, scrollAnchor });\n orderedItemsRef.current = null;\n setItemsVersion(version => version + 1);\n\n return () => {\n const current = itemsRegistry.get(messageId);\n if (current?.element !== element) return;\n itemsRegistry.delete(messageId);\n intersectingMessageIds.delete(messageId);\n orderedItemsRef.current = null;\n setItemsVersion(version => version + 1);\n };\n },\n [intersectingMessageIds, itemsRegistry],\n );\n\n React.useEffect(() => {\n if (!contentElement || !viewportElement || typeof IntersectionObserver === 'undefined') {\n updateVisibility();\n return undefined;\n }\n\n const messageIdByElement = new Map<Element, string>();\n for (const [messageId, item] of itemsRegistry) {\n messageIdByElement.set(item.element, messageId);\n }\n\n const observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) {\n const messageId = messageIdByElement.get(entry.target);\n if (!messageId) continue;\n if (entry.isIntersecting) {\n intersectingMessageIds.add(messageId);\n } else {\n intersectingMessageIds.delete(messageId);\n }\n }\n updateVisibility();\n },\n {\n root: viewportElement,\n rootMargin: `${-(scrollMargin + scrollPreviousItemPeek)}px 0px 0px 0px`,\n threshold: [0, 0.01, 0.5, 1],\n },\n );\n\n for (const [, item] of itemsRegistry) observer.observe(item.element);\n updateVisibility();\n\n return () => observer.disconnect();\n }, [\n contentElement,\n intersectingMessageIds,\n itemsRegistry,\n itemsVersion,\n scrollMargin,\n scrollPreviousItemPeek,\n updateVisibility,\n viewportElement,\n ]);\n\n React.useEffect(() => {\n if (!viewportElement || typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(syncAfterScroll);\n observer.observe(viewportElement);\n return () => observer.disconnect();\n }, [syncAfterScroll, viewportElement]);\n\n React.useLayoutEffect(() => {\n updateScrollable();\n updateVisibility();\n }, [itemsVersion, updateScrollable, updateVisibility]);\n\n React.useLayoutEffect(() => {\n if (defaultScrollAppliedRef.current || !viewportElement) return undefined;\n if (itemsRegistry.size === 0) {\n deferDefaultScrollRef.current = true;\n return undefined;\n }\n\n const applyDefaultScroll = () => {\n const lastAnchorId = getLastAnchorId();\n // Where a thread opens decides whether it starts attached: a restored reading\n // position has the stream below it. `scrollToEnd` takes this back when it lands.\n followingRef.current = false;\n let didScroll = false;\n if (defaultScrollPosition === 'start') {\n didScroll = scrollToStart({ behavior: 'auto' });\n } else if (defaultScrollPosition === 'last-anchor') {\n didScroll = lastAnchorId\n ? scrollToMessage(lastAnchorId, { align: 'start', behavior: 'auto' })\n : scrollToEnd({ behavior: 'auto' });\n } else {\n didScroll = scrollToEnd({ behavior: 'auto' });\n }\n\n if (!didScroll) return;\n defaultScrollAppliedRef.current = true;\n // A fresh thread opens on its first message with nothing to scroll yet: it is\n // at its end, so the reply streaming in under it is followed.\n if (autoScroll && getMaxScroll(viewportElement) <= VISIBILITY_EPSILON) followingRef.current = true;\n // Settling is what arms turn anchoring: the rows the transcript opened with\n // are recorded as read here, and on a settled thread the next anchor to\n // register is the send itself — an arming left to a later anchoring pass\n // would be eaten by that send instead of parking it.\n for (const [messageId, item] of getOrderedItems()) {\n if (!item.scrollAnchor) continue;\n seenAnchorIds.add(messageId);\n seenAnchorElements.add(item.element);\n }\n turnAnchoringArmedRef.current = true;\n };\n\n if (!deferDefaultScrollRef.current) {\n applyDefaultScroll();\n return undefined;\n }\n if (defaultScrollScheduledRef.current) return undefined;\n\n defaultScrollScheduledRef.current = true;\n let cancelled = false;\n scheduleScrollSync(() => {\n scheduleScrollSync(() => {\n defaultScrollScheduledRef.current = false;\n if (!cancelled && !defaultScrollAppliedRef.current) applyDefaultScroll();\n });\n });\n return () => {\n cancelled = true;\n defaultScrollScheduledRef.current = false;\n };\n }, [\n autoScroll,\n defaultScrollPosition,\n getLastAnchorId,\n getOrderedItems,\n itemsRegistry,\n itemsVersion,\n scrollToEnd,\n scrollToMessage,\n scrollToStart,\n seenAnchorElements,\n seenAnchorIds,\n viewportElement,\n ]);\n\n // A turn opening is the one scripted scroll of a conversation: it carries the\n // reader to the message they just sent and parks it as high as the room the turn\n // reserves under it allows. The answer then grows into that room and moves\n // nothing at all — following only takes over once it outgrows the room.\n React.useLayoutEffect(() => {\n const lastAnchorId = getLastAnchorId();\n const lastAnchor = lastAnchorId ? itemsRegistry.get(lastAnchorId) : undefined;\n const opensTurn =\n turnAnchoringArmedRef.current &&\n lastAnchorId !== undefined &&\n lastAnchor !== undefined &&\n !seenAnchorIds.has(lastAnchorId) &&\n !seenAnchorElements.has(lastAnchor.element);\n\n for (const [messageId, item] of getOrderedItems()) {\n if (!item.scrollAnchor) continue;\n seenAnchorIds.add(messageId);\n seenAnchorElements.add(item.element);\n }\n turnAnchoringArmedRef.current = defaultScrollAppliedRef.current;\n\n if (opensTurn && lastAnchorId) {\n if (autoScroll) followingRef.current = true;\n cancelTripAnimation();\n const target = viewportElement ? anchorTripTarget(lastAnchorId) : undefined;\n // A turn opening at the top of the transcript — the first message of a fresh\n // thread — is already parked: no trip, and nothing moves.\n if (\n target === undefined ||\n !viewportElement ||\n Math.abs(target - viewportElement.scrollTop) <= VISIBILITY_EPSILON\n ) {\n tripRef.current = null;\n } else {\n tripRef.current = { anchorId: lastAnchorId };\n tripAnimationRef.current = startTrip(\n viewportElement,\n () => parkTripTarget(lastAnchorId),\n reason => {\n tripAnimationRef.current = null;\n tripRef.current = null;\n if (reason === 'interrupted') followingRef.current = atEndRef.current;\n syncAfterScroll();\n },\n );\n }\n // Published now: the reader just re-attached, and a button that hears late flashes.\n syncAfterScroll();\n return;\n }\n\n // Rows landing outside a turn — restored history, a notice — still belong to a\n // reader riding the stream, and reach them without a second animation. A trip\n // to an anchor keeps the viewport; a parked reader has new rows growing into\n // the room above the fold, with nothing below to catch up to.\n if (!autoScroll || !defaultScrollAppliedRef.current || !followingRef.current) return;\n if (tripRef.current !== null && tripRef.current !== 'end') return;\n if (viewportElement && followTarget() - viewportElement.scrollTop <= VISIBILITY_EPSILON) return;\n scrollToEnd({ behavior: tripRef.current === 'end' ? 'smooth' : 'auto' });\n }, [\n anchorTripTarget,\n autoScroll,\n cancelTripAnimation,\n followTarget,\n getLastAnchorId,\n getOrderedItems,\n itemsRegistry,\n itemsVersion,\n parkTripTarget,\n scrollToEnd,\n seenAnchorElements,\n seenAnchorIds,\n syncAfterScroll,\n viewportElement,\n ]);\n\n // A viewport going away mid-trip strands the frame loop on a detached element.\n React.useEffect(\n () => () => {\n cancelTripAnimation();\n tripRef.current = null;\n },\n [cancelTripAnimation, viewportElement],\n );\n\n // Older items land above the reader and shove their position down. A prepend is\n // told from an append by the first item's id, then undone by offsetting\n // scrollTop by however much taller the content got.\n React.useLayoutEffect(() => {\n const previousFirstItemId = firstItemIdRef.current;\n // From the DOM, not the registry: prepended items register last, so registry\n // order stops matching reading order.\n const firstItemId = contentElement?.querySelector<HTMLElement>('[data-slot=\"message-scroller-item\"]')?.dataset\n .messageId;\n firstItemIdRef.current = firstItemId;\n\n const anchor = prependAnchorRef.current;\n prependAnchorRef.current = null;\n if (!anchor || !viewportElement || firstItemId === previousFirstItemId) return;\n\n reachStartFiredRef.current = false;\n const grownBy = viewportElement.scrollHeight - anchor.scrollHeight;\n if (grownBy > 0) viewportElement.scrollTop = anchor.scrollTop + grownBy;\n }, [contentElement, itemsVersion, viewportElement]);\n\n const actionsContextValue = React.useMemo<MessageScrollerActionsContextValue>(\n () => ({\n notifyContentResize,\n notifyScroll,\n registerItem,\n scrollToEnd,\n scrollToMessage,\n scrollToStart,\n setContentElement,\n setRootElement,\n setViewportElement,\n syncAfterScroll,\n }),\n [notifyContentResize, notifyScroll, registerItem, scrollToEnd, scrollToMessage, scrollToStart, syncAfterScroll],\n );\n\n const scrollableContextValue = React.useMemo<MessageScrollerScrollable>(\n () => ({\n end: scrollable.end,\n start: scrollable.start,\n }),\n [scrollable.end, scrollable.start],\n );\n\n return (\n <MessageScrollerActionsContext.Provider value={actionsContextValue}>\n <MessageScrollerScrollableContext.Provider value={scrollableContextValue}>\n <MessageScrollerVisibilityContext.Provider value={visibilityStore}>\n {children}\n </MessageScrollerVisibilityContext.Provider>\n </MessageScrollerScrollableContext.Provider>\n </MessageScrollerActionsContext.Provider>\n );\n}\n\nexport type MessageScrollerProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const MessageScroller = React.forwardRef<HTMLDivElement, MessageScrollerProps>(\n ({ className, ...props }, ref) => {\n const { setRootElement } = useRequiredMessageScrollerActionsContext('MessageScroller');\n return (\n <div\n ref={mergeRefs(setRootElement, ref)}\n data-slot=\"message-scroller\"\n className={cn('group/message-scroller relative flex size-full min-h-0 flex-col', className)}\n {...props}\n />\n );\n },\n);\nMessageScroller.displayName = 'MessageScroller';\n\nexport type MessageScrollerViewportProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const MessageScrollerViewport = React.forwardRef<HTMLDivElement, MessageScrollerViewportProps>(\n ({ className, onScroll, role, tabIndex, ...props }, ref) => {\n const { setViewportElement, notifyScroll } = useRequiredMessageScrollerActionsContext('MessageScrollerViewport');\n const viewportRef = React.useMemo(() => mergeRefs(setViewportElement, ref), [ref, setViewportElement]);\n\n return (\n <div\n ref={viewportRef}\n role={role ?? 'region'}\n tabIndex={tabIndex ?? 0}\n data-slot=\"message-scroller-viewport\"\n className={cn(\n // Size container so consumers can size the room under a live turn in cqh.\n '[container-type:size] size-full min-h-0 min-w-0 overflow-y-auto overscroll-y-contain',\n 'data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent',\n className,\n )}\n onScroll={event => {\n notifyScroll();\n onScroll?.(event);\n }}\n {...props}\n />\n );\n },\n);\nMessageScrollerViewport.displayName = 'MessageScrollerViewport';\n\nexport type MessageScrollerContentProps = React.HTMLAttributes<HTMLDivElement> & {\n spacerClassName?: string;\n};\n\nexport const MessageScrollerContent = React.forwardRef<HTMLDivElement, MessageScrollerContentProps>(\n ({ children, className, spacerClassName, role, 'aria-relevant': ariaRelevant = 'additions', ...props }, ref) => {\n const { setContentElement, notifyContentResize, syncAfterScroll } =\n useRequiredMessageScrollerActionsContext('MessageScrollerContent');\n const [contentElement, setLocalContentElement] = React.useState<HTMLDivElement | null>(null);\n\n const contentRef = React.useMemo(\n () => mergeRefs<HTMLDivElement>(setContentElement, setLocalContentElement, ref),\n [ref, setContentElement],\n );\n\n React.useLayoutEffect(() => {\n syncAfterScroll();\n }, [syncAfterScroll]);\n\n React.useEffect(() => {\n if (!contentElement || typeof MutationObserver === 'undefined') return undefined;\n const observer = new MutationObserver(notifyContentResize);\n observer.observe(contentElement, { childList: true, subtree: false });\n return () => observer.disconnect();\n }, [contentElement, notifyContentResize]);\n\n React.useEffect(() => {\n if (!contentElement || typeof ResizeObserver === 'undefined') return undefined;\n const observer = new ResizeObserver(notifyContentResize);\n observer.observe(contentElement);\n return () => observer.disconnect();\n }, [contentElement, notifyContentResize]);\n\n return (\n <div\n ref={contentRef}\n role={role ?? 'log'}\n aria-relevant={ariaRelevant}\n data-slot=\"message-scroller-content\"\n className={cn('flex h-max min-h-full flex-col gap-6', className)}\n {...props}\n >\n {children}\n <div aria-hidden=\"true\" data-message-scroller-spacer=\"\" hidden className={spacerClassName} />\n </div>\n );\n },\n);\nMessageScrollerContent.displayName = 'MessageScrollerContent';\n\nexport type MessageScrollerItemProps = React.HTMLAttributes<HTMLDivElement> & {\n messageId?: string;\n scrollAnchor?: boolean;\n};\n\nexport const MessageScrollerItem = React.forwardRef<HTMLDivElement, MessageScrollerItemProps>(\n ({ className, messageId, scrollAnchor = false, ...props }, ref) => {\n // Optional, unlike the other slots: the same row renderer is reused outside a\n // scroller (draft pages, previews), where there is simply nothing to register.\n const registerItem = React.useContext(MessageScrollerActionsContext)?.registerItem;\n const unregisterRef = React.useRef<(() => void) | undefined>(undefined);\n const itemRef = React.useCallback(\n (element: HTMLDivElement | null) => {\n unregisterRef.current?.();\n unregisterRef.current = undefined;\n mergeRefs(ref)(element);\n\n if (!element || !messageId || !registerItem) return;\n unregisterRef.current = registerItem(messageId, element, scrollAnchor);\n },\n [messageId, ref, registerItem, scrollAnchor],\n );\n\n return (\n <div\n ref={itemRef}\n data-slot=\"message-scroller-item\"\n data-message-id={messageId}\n data-scroll-anchor={scrollAnchor ? 'true' : 'false'}\n // content-visibility contains painting. Reserve room for a 2px outline + 2px offset,\n // and compensate with negative margins so message alignment and spacing stay unchanged.\n className={cn(\n '-m-1 min-w-0 shrink-0 p-1 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]',\n className,\n )}\n {...props}\n />\n );\n },\n);\nMessageScrollerItem.displayName = 'MessageScrollerItem';\n\nexport type MessageScrollerButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'> & {\n behavior?: ScrollBehavior;\n children?: React.ReactNode;\n direction?: MessageScrollerButtonDirection;\n};\n\nexport const MessageScrollerButton = React.forwardRef<HTMLButtonElement, MessageScrollerButtonProps>(\n (\n { behavior = 'smooth', direction = 'end', className, children, onClick, tabIndex, type = 'button', ...props },\n ref,\n ) => {\n const { scrollToEnd, scrollToStart } = useRequiredMessageScrollerActionsContext('MessageScrollerButton');\n const { start, end } = useRequiredMessageScrollerScrollableContext('MessageScrollerButton');\n const active = direction === 'start' ? start : end;\n\n return (\n <button\n ref={ref}\n type={type}\n {...props}\n data-slot=\"message-scroller-button\"\n data-active={active ? 'true' : 'false'}\n data-direction={direction}\n tabIndex={active ? tabIndex : -1}\n className={cn(\n overlaySurfaceStyle,\n 'absolute inset-s-1/2 inline-flex min-h-5 min-w-7 -translate-x-1/2 items-center justify-center rounded-full text-foreground transition-[scale,opacity] duration-200 hover:[--surface-tint:var(--fill-subtle)] data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=start]:top-4 rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180',\n className,\n )}\n onClick={event => {\n if (!active) return;\n onClick?.(event);\n if (event.defaultPrevented) return;\n event.currentTarget.blur();\n if (direction === 'start') {\n scrollToStart({ behavior });\n } else {\n scrollToEnd({ behavior });\n }\n }}\n >\n {children ?? (\n <>\n <ArrowDownIcon className=\"size-4\" aria-hidden />\n <span className=\"sr-only\">{direction === 'end' ? 'Scroll to end' : 'Scroll to start'}</span>\n </>\n )}\n </button>\n );\n },\n);\nMessageScrollerButton.displayName = 'MessageScrollerButton';\n","import * as React from 'react';\n\nimport {\n MessageScrollerActionsContext,\n MessageScrollerScrollableContext,\n MessageScrollerVisibilityContext,\n useRequiredMessageScrollerActionsContext,\n useRequiredMessageScrollerScrollableContext,\n useRequiredMessageScrollerVisibilityContext,\n} from './message-scroller-context';\n\nconst subscribeNowhere = () => () => {};\nconst noVisibility = () => undefined;\n\nexport const useMessageScroller = () => {\n const { scrollToEnd, scrollToMessage, scrollToStart } =\n useRequiredMessageScrollerActionsContext('useMessageScroller');\n return React.useMemo(\n () => ({ scrollToEnd, scrollToMessage, scrollToStart }),\n [scrollToEnd, scrollToMessage, scrollToStart],\n );\n};\n\nexport const useOptionalMessageScroller = () => {\n const context = React.useContext(MessageScrollerActionsContext);\n return React.useMemo(() => {\n if (!context) return undefined;\n return {\n scrollToEnd: context.scrollToEnd,\n scrollToMessage: context.scrollToMessage,\n scrollToStart: context.scrollToStart,\n };\n }, [context]);\n};\n\nexport const useMessageScrollerScrollable = () => {\n const { start, end } = useRequiredMessageScrollerScrollableContext('useMessageScrollerScrollable');\n return React.useMemo(() => ({ start, end }), [end, start]);\n};\n\nexport const useOptionalMessageScrollerScrollable = () => {\n const context = React.useContext(MessageScrollerScrollableContext);\n return React.useMemo(() => (context ? { start: context.start, end: context.end } : undefined), [context]);\n};\n\nexport const useMessageScrollerVisibility = () => {\n const store = useRequiredMessageScrollerVisibilityContext('useMessageScrollerVisibility');\n return React.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n};\n\nexport const useOptionalMessageScrollerVisibility = () => {\n const store = React.useContext(MessageScrollerVisibilityContext);\n const getSnapshot = store?.getSnapshot ?? noVisibility;\n return React.useSyncExternalStore(store?.subscribe ?? subscribeNowhere, getSnapshot, getSnapshot);\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
2
1
|
import { overlaySurfaceStyle } from "./primitives/raised-surface.es.js";
|
|
3
2
|
import { t as mergeRefs } from "./merge-refs-BXb4SnRx.js";
|
|
3
|
+
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { ArrowDownIcon } from "lucide-react";
|
|
@@ -24,6 +24,9 @@ var useRequiredContext = (context, hookName) => {
|
|
|
24
24
|
var useRequiredMessageScrollerActionsContext = (hookName) => useRequiredContext(MessageScrollerActionsContext, hookName);
|
|
25
25
|
var useRequiredMessageScrollerScrollableContext = (hookName) => useRequiredContext(MessageScrollerScrollableContext, hookName);
|
|
26
26
|
var useRequiredMessageScrollerVisibilityContext = (hookName) => useRequiredContext(MessageScrollerVisibilityContext, hookName);
|
|
27
|
+
// src/ds/components/MessageScroller/message-scroller-geometry.ts
|
|
28
|
+
/** Sub-pixel slack, so a message resting exactly on the anchor line still counts. */
|
|
29
|
+
var VISIBILITY_EPSILON = .5;
|
|
27
30
|
var getContentPadding = (contentElement) => {
|
|
28
31
|
if (!contentElement) return {
|
|
29
32
|
start: 0,
|
|
@@ -58,7 +61,13 @@ var getScrollTarget = ({ align, contentElement, element, scrollMargin, viewportE
|
|
|
58
61
|
return elementTop - contentPadding.start - scrollMargin;
|
|
59
62
|
};
|
|
60
63
|
/**
|
|
61
|
-
*
|
|
64
|
+
* Whether a row has a box to measure. A row hidden by `display: none` — its own or
|
|
65
|
+
* an ancestor's — stays registered but has none, and reports a zero rect at the
|
|
66
|
+
* window origin: read as a position, it sits wherever the reader happens to be.
|
|
67
|
+
*/
|
|
68
|
+
var isDrawn = (element) => element.getClientRects().length > 0;
|
|
69
|
+
/**
|
|
70
|
+
* Where the reader must sit for the last drawn row to rest at the end of the view.
|
|
62
71
|
*
|
|
63
72
|
* Not the end of the scroll: a chat reserves room under a live turn so a reply
|
|
64
73
|
* grows into empty space, and docks its composer in the flow. Both sit below the
|
|
@@ -68,7 +77,7 @@ var getScrollTarget = ({ align, contentElement, element, scrollMargin, viewportE
|
|
|
68
77
|
*/
|
|
69
78
|
var getFollowTarget = ({ contentElement, items, viewportElement }) => {
|
|
70
79
|
const end = getMaxScroll(viewportElement);
|
|
71
|
-
const lastRow = items.
|
|
80
|
+
const lastRow = items.findLast(([, item]) => isDrawn(item.element))?.[1].element;
|
|
72
81
|
if (!lastRow || !contentElement) return end;
|
|
73
82
|
const contentBottom = getRelativeTop(contentElement, viewportElement) + contentElement.getBoundingClientRect().height;
|
|
74
83
|
const belowContent = Math.max(0, viewportElement.scrollHeight - contentBottom);
|
|
@@ -78,8 +87,15 @@ var getFollowTarget = ({ contentElement, items, viewportElement }) => {
|
|
|
78
87
|
var getCurrentAnchorId = ({ fallbackAnchorId, items, scrollMargin, scrollPreviousItemPeek, visibleMessageIds, viewportElement }) => {
|
|
79
88
|
const anchorLine = viewportElement.getBoundingClientRect().top + scrollMargin + scrollPreviousItemPeek;
|
|
80
89
|
const anchors = items.filter(([, item]) => item.scrollAnchor);
|
|
81
|
-
|
|
82
|
-
|
|
90
|
+
const passedLine = (index) => (anchors[index]?.[1].element.getBoundingClientRect().top ?? Infinity) <= anchorLine + VISIBILITY_EPSILON;
|
|
91
|
+
let firstUnpassed = 0;
|
|
92
|
+
let lastCandidate = anchors.length;
|
|
93
|
+
while (firstUnpassed < lastCandidate) {
|
|
94
|
+
const middle = firstUnpassed + lastCandidate >>> 1;
|
|
95
|
+
if (passedLine(middle)) firstUnpassed = middle + 1;
|
|
96
|
+
else lastCandidate = middle;
|
|
97
|
+
}
|
|
98
|
+
const anchoredAboveViewport = anchors[firstUnpassed - 1]?.[0];
|
|
83
99
|
if (anchoredAboveViewport) return anchoredAboveViewport;
|
|
84
100
|
return anchors.find(([messageId]) => visibleMessageIds.has(messageId))?.[0] ?? fallbackAnchorId;
|
|
85
101
|
};
|
|
@@ -182,9 +198,26 @@ function startTrip(viewportElement, getTarget, onEnd) {
|
|
|
182
198
|
window.cancelAnimationFrame(frame);
|
|
183
199
|
} };
|
|
184
200
|
}
|
|
201
|
+
// src/ds/components/MessageScroller/message-scroller-visibility-store.ts
|
|
202
|
+
var visibilityMatches = (left, right) => left.currentAnchorId === right.currentAnchorId && left.visibleMessageIds.length === right.visibleMessageIds.length && left.visibleMessageIds.every((messageId, index) => messageId === right.visibleMessageIds[index]);
|
|
203
|
+
function createVisibilityStore() {
|
|
204
|
+
let visibility = DEFAULT_VISIBILITY;
|
|
205
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
206
|
+
return {
|
|
207
|
+
getSnapshot: () => visibility,
|
|
208
|
+
subscribe: (onChange) => {
|
|
209
|
+
listeners.add(onChange);
|
|
210
|
+
return () => listeners.delete(onChange);
|
|
211
|
+
},
|
|
212
|
+
publish: (next) => {
|
|
213
|
+
if (visibilityMatches(visibility, next)) return;
|
|
214
|
+
visibility = next;
|
|
215
|
+
for (const listener of listeners) listener();
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
}
|
|
185
219
|
// src/ds/components/MessageScroller/message-scroller.tsx
|
|
186
220
|
var scrollableMatches = (left, right) => left.start === right.start && left.end === right.end;
|
|
187
|
-
var visibilityMatches = (left, right) => left.currentAnchorId === right.currentAnchorId && left.visibleMessageIds.length === right.visibleMessageIds.length && left.visibleMessageIds.every((messageId, index) => messageId === right.visibleMessageIds[index]);
|
|
188
221
|
var orderItemsByDocumentPosition = (items) => items.sort(([, left], [, right]) => {
|
|
189
222
|
const position = left.element.compareDocumentPosition(right.element);
|
|
190
223
|
if (position & Node.DOCUMENT_POSITION_FOLLOWING) return -1;
|
|
@@ -231,7 +264,8 @@ function MessageScrollerProvider({ autoScroll = false, children, defaultScrollPo
|
|
|
231
264
|
const seenAnchorElements = seenAnchorElementsRef.current;
|
|
232
265
|
const turnAnchoringArmedRef = React$1.useRef(false);
|
|
233
266
|
const [scrollable, setScrollable] = React$1.useState(DEFAULT_SCROLLABLE);
|
|
234
|
-
const [
|
|
267
|
+
const [visibilityStore] = React$1.useState(createVisibilityStore);
|
|
268
|
+
const publishVisibility = visibilityStore.publish;
|
|
235
269
|
const atEndRef = React$1.useRef(true);
|
|
236
270
|
const followingRef = React$1.useRef(true);
|
|
237
271
|
const tripRef = React$1.useRef(null);
|
|
@@ -254,9 +288,6 @@ function MessageScrollerProvider({ autoScroll = false, children, defaultScrollPo
|
|
|
254
288
|
}
|
|
255
289
|
setScrollable((current) => scrollableMatches(current, nextScrollable) ? current : nextScrollable);
|
|
256
290
|
}, [rootElement, viewportElement]);
|
|
257
|
-
const publishVisibility = React$1.useCallback((nextVisibility) => {
|
|
258
|
-
setVisibility((current) => visibilityMatches(current, nextVisibility) ? current : nextVisibility);
|
|
259
|
-
}, []);
|
|
260
291
|
const getOrderedItems = React$1.useCallback(() => {
|
|
261
292
|
orderedItemsRef.current ??= orderItemsByDocumentPosition(Array.from(itemsRegistry.entries()));
|
|
262
293
|
return orderedItemsRef.current;
|
|
@@ -686,16 +717,12 @@ function MessageScrollerProvider({ autoScroll = false, children, defaultScrollPo
|
|
|
686
717
|
end: scrollable.end,
|
|
687
718
|
start: scrollable.start
|
|
688
719
|
}), [scrollable.end, scrollable.start]);
|
|
689
|
-
const visibilityContextValue = React$1.useMemo(() => ({
|
|
690
|
-
currentAnchorId: visibility.currentAnchorId,
|
|
691
|
-
visibleMessageIds: visibility.visibleMessageIds
|
|
692
|
-
}), [visibility.currentAnchorId, visibility.visibleMessageIds]);
|
|
693
720
|
return /* @__PURE__ */ jsx(MessageScrollerActionsContext.Provider, {
|
|
694
721
|
value: actionsContextValue,
|
|
695
722
|
children: /* @__PURE__ */ jsx(MessageScrollerScrollableContext.Provider, {
|
|
696
723
|
value: scrollableContextValue,
|
|
697
724
|
children: /* @__PURE__ */ jsx(MessageScrollerVisibilityContext.Provider, {
|
|
698
|
-
value:
|
|
725
|
+
value: visibilityStore,
|
|
699
726
|
children
|
|
700
727
|
})
|
|
701
728
|
})
|
|
@@ -823,6 +850,8 @@ var MessageScrollerButton = React$1.forwardRef(({ behavior = "smooth", direction
|
|
|
823
850
|
});
|
|
824
851
|
MessageScrollerButton.displayName = "MessageScrollerButton";
|
|
825
852
|
// src/ds/components/MessageScroller/message-scroller-hooks.ts
|
|
853
|
+
var subscribeNowhere = () => () => {};
|
|
854
|
+
var noVisibility = () => void 0;
|
|
826
855
|
var useMessageScroller = () => {
|
|
827
856
|
const { scrollToEnd, scrollToMessage, scrollToStart } = useRequiredMessageScrollerActionsContext("useMessageScroller");
|
|
828
857
|
return React$1.useMemo(() => ({
|
|
@@ -861,19 +890,14 @@ var useOptionalMessageScrollerScrollable = () => {
|
|
|
861
890
|
} : void 0, [context]);
|
|
862
891
|
};
|
|
863
892
|
var useMessageScrollerVisibility = () => {
|
|
864
|
-
const
|
|
865
|
-
return React$1.
|
|
866
|
-
currentAnchorId,
|
|
867
|
-
visibleMessageIds
|
|
868
|
-
}), [currentAnchorId, visibleMessageIds]);
|
|
893
|
+
const store = useRequiredMessageScrollerVisibilityContext("useMessageScrollerVisibility");
|
|
894
|
+
return React$1.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
|
|
869
895
|
};
|
|
870
896
|
var useOptionalMessageScrollerVisibility = () => {
|
|
871
|
-
const
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
visibleMessageIds: context.visibleMessageIds
|
|
875
|
-
} : void 0, [context]);
|
|
897
|
+
const store = React$1.useContext(MessageScrollerVisibilityContext);
|
|
898
|
+
const getSnapshot = store?.getSnapshot ?? noVisibility;
|
|
899
|
+
return React$1.useSyncExternalStore(store?.subscribe ?? subscribeNowhere, getSnapshot, getSnapshot);
|
|
876
900
|
};
|
|
877
901
|
export { useOptionalMessageScrollerScrollable as a, MessageScrollerButton as c, MessageScrollerProvider as d, MessageScrollerViewport as f, useOptionalMessageScroller as i, MessageScrollerContent as l, useMessageScrollerScrollable as n, useOptionalMessageScrollerVisibility as o, useMessageScrollerVisibility as r, MessageScroller as s, useMessageScroller as t, MessageScrollerItem as u };
|
|
878
902
|
|
|
879
|
-
//# sourceMappingURL=MessageScroller-
|
|
903
|
+
//# sourceMappingURL=MessageScroller-nV_zBF3H.js.map
|