@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageLayout-
|
|
1
|
+
{"version":3,"file":"PageLayout-DLll7ZwB.js","names":["_Fragment"],"sources":["../src/ds/components/PageLayout/page-layout.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { Header } from '../Header';\nimport { ScrollArea, ScrollAreaViewport } from '../ScrollArea';\nimport type { ScrollAreaMask } from '../ScrollArea';\nimport { cn } from '@/lib/utils';\n\nexport interface PageLayoutProps {\n children: ReactNode;\n /** Left side of the page header row. */\n breadcrumbs?: ReactNode;\n /** Right side of the page header row. */\n headerActions?: ReactNode;\n /** Controls pinned between the header and the scrollable body (search, filters, toggles…). */\n actionRow?: ReactNode;\n /** Page-level header (e.g. `PageHeader`) rendered inside the body container, above children. */\n header?: ReactNode;\n /**\n * `container` pads the body (default); `narrow` centers the body in a max-width column;\n * `fit` lets the body fill the page edge to edge.\n */\n variant?: 'container' | 'fit' | 'narrow';\n /**\n * Fade the body's scrolled edges, using the same values as `ScrollArea`'s `mask`. Off by default.\n * `{ y: true }` fades the top and bottom; `{ bottom: '3rem' }` sets one side's depth.\n * A fade covers whatever sits at that edge, so leave it off for `fit` bodies that hold tables with sticky headers.\n */\n mask?: ScrollAreaMask;\n}\n\nexport function PageLayout({\n children,\n breadcrumbs,\n headerActions,\n actionRow,\n header,\n variant = 'container',\n mask = false,\n}: PageLayoutProps) {\n const headerSlot = header ? (\n <div data-slot=\"page-layout-header\" className={cn(variant === 'fit' && 'p-4')}>\n {header}\n </div>\n ) : null;\n\n return (\n <div data-slot=\"page-layout\" className=\"flex h-full min-h-0 flex-col\">\n {(breadcrumbs || headerActions) && (\n <Header className=\"min-h-header-default shrink-0 gap-2 overflow-hidden px-2\">\n {breadcrumbs}\n {headerActions && (\n <div className=\"ml-auto flex shrink-0 items-center gap-2 overflow-hidden\">{headerActions}</div>\n )}\n </Header>\n )}\n {actionRow && (\n <div data-slot=\"page-layout-action-row\" className=\"flex shrink-0 flex-col gap-2 px-4 pt-4\">\n {actionRow}\n </div>\n )}\n <main className=\"flex min-h-0 flex-1 flex-col\">\n <ScrollArea mask={mask} className=\"min-h-0 flex-1\">\n <ScrollAreaViewport\n className={cn(variant === 'container' && 'p-4')}\n contentClassName={cn(\n variant === 'container' && 'h-full min-h-min',\n variant === 'narrow' && 'grid min-h-full grid-cols-1',\n // `fit` hands the remaining body height to its child (panels, graphs, tables that own their scroll).\n variant === 'fit' &&\n (header\n ? 'grid h-full grid-cols-1 grid-rows-[auto_minmax(0,1fr)]'\n : 'grid h-full grid-cols-1 grid-rows-1'),\n )}\n >\n {variant === 'narrow' ? (\n // Horizontal gutter is the variant's contract; keep px/py explicit rather than the `p-4` shorthand.\n // eslint-disable-next-line tailwindcss/enforces-shorthand\n <div\n data-slot=\"page-layout-container\"\n className={cn(\n 'mx-auto grid min-h-full w-full max-w-5xl grid-cols-1 p-4',\n header ? 'grid-rows-[auto_1fr]' : 'grid-rows-[1fr]',\n )}\n >\n {headerSlot}\n {children}\n </div>\n ) : (\n <>\n {headerSlot}\n {children}\n </>\n )}\n </ScrollAreaViewport>\n </ScrollArea>\n </main>\n </div>\n );\n}\n"],"mappings":";;;;;AA6BA,SAAgB,WAAW,EACzB,UACA,aACA,eACA,WACA,QACA,UAAU,aACV,OAAO,SACW;CAClB,MAAM,aAAa,SACjB,oBAAC,OAAD;EAAK,aAAU;EAAqB,WAAW,GAAG,YAAY,SAAS,KAAK;EACzE,UAAA;CACE,CAAA,IACH;CAEJ,OACE,qBAAC,OAAD;EAAK,aAAU;EAAc,WAAU;EAAvC,UAAA;IACI,eAAe,kBACf,qBAAC,QAAD;IAAQ,WAAU;IAAlB,UAAA,CACG,aACA,iBACC,oBAAC,OAAD;KAAK,WAAU;KAA4D,UAAA;IAAmB,CAAA,CAE1F;;GAET,aACC,oBAAC,OAAD;IAAK,aAAU;IAAyB,WAAU;IAC/C,UAAA;GACE,CAAA;GAEP,oBAAC,QAAD;IAAM,WAAU;IACd,UAAA,oBAAC,YAAD;KAAkB;KAAM,WAAU;KAChC,UAAA,oBAAC,oBAAD;MACE,WAAW,GAAG,YAAY,eAAe,KAAK;MAC9C,kBAAkB,GAChB,YAAY,eAAe,oBAC3B,YAAY,YAAY,+BAExB,YAAY,UACT,SACG,2DACA,sCACR;MAEC,UAAA,YAAY,WAGX,qBAAC,OAAD;OACE,aAAU;OACV,WAAW,GACT,4DACA,SAAS,yBAAyB,iBACpC;OALF,UAAA,CAOG,YACA,QACE;MAEL,CAAA,IAAA,qBAAAA,UAAA,EAAA,UAAA,CACG,YACA,QACD,EAAA,CAAA;KAEc,CAAA;IACV,CAAA;GACR,CAAA;EACH;;AAET"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Colors } from "./tokens.es.js";
|
|
2
|
-
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
3
1
|
import { n as hashLabel } from "./colors-ClOUYXq0.js";
|
|
4
2
|
import { ChartTooltip } from "./components/ChartTooltip.es.js";
|
|
3
|
+
import { Colors } from "./tokens.es.js";
|
|
4
|
+
import { t as cn } from "./utils-DQx8TpNT.js";
|
|
5
5
|
import { createContext, useContext, useEffect, useId, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
6
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { ResponsiveContainer, Sankey } from "recharts";
|
|
@@ -853,4 +853,4 @@ function SankeyLink({ sourceX, targetX, sourceY, targetY, sourceControlX, target
|
|
|
853
853
|
}
|
|
854
854
|
export { sankeySeriesColors as a, getSankeyChartNodeSelection as c, reorderSankeyChartColumns as d, buildSankeyColorMap as i, getSankeyChartNodeWeights as l, Sankey$1 as n, buildSankeyChartGraph as o, useSankey as r, getSankeyChartCurveSelection as s, SankeyChart as t, getSankeyChartValue as u };
|
|
855
855
|
|
|
856
|
-
//# sourceMappingURL=SankeyChart-
|
|
856
|
+
//# sourceMappingURL=SankeyChart-lkM5cpOC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SankeyChart-E68mYEs2.js","names":["Sankey","RechartsSankey","_Fragment"],"sources":["../src/ds/components/SankeyChart/sankey-chart-utils.ts","../src/ds/components/SankeyChart/sankeyColor.ts","../src/ds/components/SankeyChart/sankey-context.tsx","../src/ds/components/SankeyChart/use-sankey-hover-tooltip.ts","../src/ds/components/SankeyChart/sankey-portal-tooltip.tsx","../src/ds/components/SankeyChart/use-sankey-chart-measurements.ts","../src/ds/components/SankeyChart/use-sankey-geometry-transition.ts","../src/ds/components/SankeyChart/sankey-chart.tsx"],"sourcesContent":["export type SankeyChartRecord = Record<string, unknown>;\n\nexport type SankeyChartColumn = {\n id: string;\n label: string;\n};\n\nexport type SankeyChartNode = {\n id: string;\n name: string;\n label: string;\n column: SankeyChartColumn;\n value: string | number;\n displayValue?: number;\n};\n\nexport type SankeyChartLink = {\n id: string;\n source: number;\n target: number;\n value: number;\n displayValue: number;\n sourceNode: SankeyChartNode;\n targetNode: SankeyChartNode;\n records: Array<SankeyChartRecord>;\n};\n\nexport type SankeyChartGraph = {\n nodes: Array<SankeyChartNode>;\n links: Array<SankeyChartLink>;\n};\n\nexport type FixedSankeyNodeGeometry = {\n x: number;\n centerY: number;\n y: number;\n height: number;\n};\n\nexport type FixedSankeyLinkGeometry = {\n sourceX: number;\n targetX: number;\n sourceY: number;\n targetY: number;\n sourceWidth: number;\n targetWidth: number;\n};\n\nexport type FixedSankeyGeometry = {\n nodes: Map<string, FixedSankeyNodeGeometry>;\n links: Map<string, FixedSankeyLinkGeometry>;\n};\n\nexport type SankeyChartNodeSelection = {\n column: SankeyChartColumn;\n value: string | number;\n};\n\nexport type SankeyChartCurveSelection = {\n source: {\n column: SankeyChartColumn;\n value: string | number;\n };\n target: {\n column: SankeyChartColumn;\n value: string | number;\n };\n records: Array<SankeyChartRecord>;\n};\n\nconst EMPTY_GRAPH: SankeyChartGraph = { nodes: [], links: [] };\n\nexport function getSankeyChartValue(value: unknown): string | number | undefined {\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n return trimmedValue.length > 0 ? trimmedValue : undefined;\n }\n\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n\n return undefined;\n}\n\nexport function reorderSankeyChartColumns(\n columns: Array<SankeyChartColumn>,\n startIndex: number,\n endIndex: number,\n): Array<SankeyChartColumn> {\n if (\n startIndex === endIndex ||\n startIndex < 0 ||\n endIndex < 0 ||\n startIndex >= columns.length ||\n endIndex >= columns.length\n ) {\n return columns;\n }\n\n const reorderedColumns = [...columns];\n const [movedColumn] = reorderedColumns.splice(startIndex, 1);\n if (!movedColumn) return columns;\n reorderedColumns.splice(endIndex, 0, movedColumn);\n return reorderedColumns;\n}\n\nexport function buildSankeyChartGraph(\n data: Array<SankeyChartRecord>,\n columns: Array<SankeyChartColumn>,\n getRecordWeight: (record: SankeyChartRecord) => number = () => 1,\n getRecordNodeId?: (record: SankeyChartRecord, column: SankeyChartColumn) => string,\n getRecordNodeLabel?: (record: SankeyChartRecord, column: SankeyChartColumn) => string,\n getRecordNodeValue?: (record: SankeyChartRecord, column: SankeyChartColumn) => number,\n getRecordLayoutWeight?: (record: SankeyChartRecord) => number,\n): SankeyChartGraph {\n if (columns.length < 2 || data.length === 0) return EMPTY_GRAPH;\n\n const nodes: Array<SankeyChartNode> = [];\n const nodeIndexes = new Map<string, number>();\n const linksById = new Map<string, SankeyChartLink>();\n\n const getNode = (\n column: SankeyChartColumn,\n value: string | number,\n label: string,\n displayValue: number | undefined,\n ): { node: SankeyChartNode; index: number } => {\n const id = createNodeId(column.id, value);\n const existingIndex = nodeIndexes.get(id);\n const existingNode = existingIndex === undefined ? undefined : nodes[existingIndex];\n if (existingIndex !== undefined && existingNode) return { node: existingNode, index: existingIndex };\n\n const node: SankeyChartNode = { id, name: String(value), label, column, value, displayValue };\n const index = nodes.length;\n nodes.push(node);\n nodeIndexes.set(id, index);\n return { node, index };\n };\n\n for (let columnIndex = 0; columnIndex < columns.length - 1; columnIndex += 1) {\n const sourceColumn = columns[columnIndex];\n const targetColumn = columns[columnIndex + 1];\n if (!sourceColumn || !targetColumn) continue;\n\n for (const record of data) {\n const displayWeight = getRecordWeight(record);\n const layoutWeight = getRecordLayoutWeight?.(record) ?? displayWeight;\n if (!Number.isFinite(displayWeight) || displayWeight < 0 || !Number.isFinite(layoutWeight) || layoutWeight < 0) {\n continue;\n }\n\n const sourceRecordValue = getSankeyChartValue(record[sourceColumn.id]);\n const targetRecordValue = getSankeyChartValue(record[targetColumn.id]);\n if (sourceRecordValue === undefined || targetRecordValue === undefined) continue;\n\n const sourceValue = getRecordNodeId\n ? getSankeyChartValue(getRecordNodeId(record, sourceColumn))\n : sourceRecordValue;\n const targetValue = getRecordNodeId\n ? getSankeyChartValue(getRecordNodeId(record, targetColumn))\n : targetRecordValue;\n if (sourceValue === undefined || targetValue === undefined) continue;\n\n const sourceLabel = getRecordNodeLabel?.(record, sourceColumn) ?? String(sourceRecordValue);\n const targetLabel = getRecordNodeLabel?.(record, targetColumn) ?? String(targetRecordValue);\n const sourceDisplayValue = getRecordNodeValue?.(record, sourceColumn);\n const targetDisplayValue = getRecordNodeValue?.(record, targetColumn);\n const source = getNode(\n sourceColumn,\n sourceValue,\n sourceLabel,\n sourceDisplayValue !== undefined && Number.isFinite(sourceDisplayValue) && sourceDisplayValue >= 0\n ? sourceDisplayValue\n : undefined,\n );\n const target = getNode(\n targetColumn,\n targetValue,\n targetLabel,\n targetDisplayValue !== undefined && Number.isFinite(targetDisplayValue) && targetDisplayValue >= 0\n ? targetDisplayValue\n : undefined,\n );\n const id = `${source.node.id}->${target.node.id}`;\n const existingLink = linksById.get(id);\n\n if (existingLink) {\n existingLink.value += layoutWeight;\n existingLink.displayValue += displayWeight;\n existingLink.records.push(record);\n } else {\n linksById.set(id, {\n id,\n source: source.index,\n target: target.index,\n value: layoutWeight,\n displayValue: displayWeight,\n sourceNode: source.node,\n targetNode: target.node,\n records: [record],\n });\n }\n }\n }\n\n return { nodes, links: [...linksById.values()] };\n}\n\nexport const SANKEY_NODE_WIDTH = 7;\n\n// mono faces we ship advance at ~0.6em — 0.62 biases toward truncating early\nconst LABEL_CHARACTER_WIDTH_RATIO = 0.62;\nconst LABEL_GUTTER = 16;\nconst LABEL_ELLIPSIS = '…';\n\nexport type SankeyLabelWidths = {\n centered: number;\n edge: number;\n};\n\nexport function getSankeyLabelWidths({\n chartWidth,\n columnCount,\n marginLeft,\n marginRight,\n}: {\n chartWidth: number;\n columnCount: number;\n marginLeft: number;\n marginRight: number;\n}): SankeyLabelWidths {\n if (chartWidth <= 0 || columnCount < 2) {\n return { centered: Number.POSITIVE_INFINITY, edge: Number.POSITIVE_INFINITY };\n }\n\n const columnPitch = (chartWidth - marginLeft - marginRight - SANKEY_NODE_WIDTH) / (columnCount - 1);\n const centered = Math.max(0, columnPitch - LABEL_GUTTER);\n // edge columns anchor at start/end, so their label spreads toward one neighbour instead of two\n const edge = Math.max(0, columnPitch + SANKEY_NODE_WIDTH / 2 - LABEL_GUTTER - centered / 2);\n\n return { centered, edge };\n}\n\nexport function truncateSankeyLabel(\n label: string,\n {\n fontSize,\n maxWidth,\n maxCharacters = Number.POSITIVE_INFINITY,\n }: { fontSize: number; maxWidth: number; maxCharacters?: number },\n): string {\n const widthLimit = Number.isFinite(maxWidth)\n ? Math.floor(maxWidth / (fontSize * LABEL_CHARACTER_WIDTH_RATIO))\n : Number.POSITIVE_INFINITY;\n const limit = Math.min(widthLimit, maxCharacters);\n\n if (label.length <= limit) return label;\n if (limit <= 1) return LABEL_ELLIPSIS;\n\n return `${label.slice(0, limit - 1).trimEnd()}${LABEL_ELLIPSIS}`;\n}\n\nexport function buildFixedSankeyGeometry(\n graph: SankeyChartGraph,\n {\n top,\n bottom,\n left,\n right,\n nodePadding,\n }: { top: number; bottom: number; left: number; right: number; nodePadding: number },\n): FixedSankeyGeometry {\n const nodes = new Map<string, FixedSankeyNodeGeometry>();\n const nodesByColumn = new Map<string, SankeyChartNode[]>();\n const currentNodeWeights = getSankeyChartCurrentNodeWeights(graph);\n\n for (const node of graph.nodes) {\n const columnNodes = nodesByColumn.get(node.column.id) ?? [];\n columnNodes.push(node);\n nodesByColumn.set(node.column.id, columnNodes);\n }\n\n const columns = [...nodesByColumn.values()];\n const slotHeights = columns.map(columnNodes =>\n Math.max(0, (bottom - top - nodePadding * Math.max(0, columnNodes.length - 1)) / columnNodes.length),\n );\n const maximumNodeHeight = Math.min(...slotHeights) * 0.6;\n\n columns.forEach((columnNodes, columnIndex) => {\n const slotHeight = slotHeights[columnIndex] ?? 0;\n const columnTotal = columnNodes.reduce(\n (total, node) => total + (node.displayValue ?? currentNodeWeights.get(node.id) ?? 0),\n 0,\n );\n const x = columns.length > 1 ? left + ((right - left) * columnIndex) / (columns.length - 1) : left;\n\n columnNodes.forEach((node, index) => {\n const value = node.displayValue ?? currentNodeWeights.get(node.id) ?? 0;\n const centerY = top + index * (slotHeight + nodePadding) + slotHeight / 2;\n const height = columnTotal > 0 ? maximumNodeHeight * (value / columnTotal) : 0;\n nodes.set(node.id, { x, centerY, y: centerY - height / 2, height });\n });\n });\n\n const links = new Map<string, FixedSankeyLinkGeometry>();\n const outgoingTotals = new Map<string, number>();\n const incomingTotals = new Map<string, number>();\n for (const link of graph.links) {\n outgoingTotals.set(link.sourceNode.id, (outgoingTotals.get(link.sourceNode.id) ?? 0) + link.displayValue);\n incomingTotals.set(link.targetNode.id, (incomingTotals.get(link.targetNode.id) ?? 0) + link.displayValue);\n }\n const sourceOffsets = new Map([...nodes].map(([id, geometry]) => [id, geometry.y]));\n const targetOffsets = new Map([...nodes].map(([id, geometry]) => [id, geometry.y]));\n\n for (const link of graph.links) {\n const sourceGeometry = nodes.get(link.sourceNode.id);\n const targetGeometry = nodes.get(link.targetNode.id);\n if (!sourceGeometry || !targetGeometry) continue;\n const sourceTotal = outgoingTotals.get(link.sourceNode.id) ?? 0;\n const targetTotal = incomingTotals.get(link.targetNode.id) ?? 0;\n const sourceWidth = sourceTotal > 0 ? sourceGeometry.height * (link.displayValue / sourceTotal) : 0;\n const targetWidth = targetTotal > 0 ? targetGeometry.height * (link.displayValue / targetTotal) : 0;\n const sourceOffset = sourceOffsets.get(link.sourceNode.id) ?? sourceGeometry.y;\n const targetOffset = targetOffsets.get(link.targetNode.id) ?? targetGeometry.y;\n links.set(link.id, {\n // ribbons anchor to their own nodes' columns: depth-based layouts (like\n // the underlying recharts sankey) would otherwise stretch links of a\n // disconnected graph across the full chart width\n sourceX: sourceGeometry.x + SANKEY_NODE_WIDTH,\n targetX: targetGeometry.x,\n sourceY: sourceOffset + sourceWidth / 2,\n targetY: targetOffset + targetWidth / 2,\n sourceWidth,\n targetWidth,\n });\n sourceOffsets.set(link.sourceNode.id, sourceOffset + sourceWidth);\n targetOffsets.set(link.targetNode.id, targetOffset + targetWidth);\n }\n\n return { nodes, links };\n}\n\nexport function getSankeyChartNodeWeights(graph: SankeyChartGraph): Map<string, number> {\n const incomingWeights = new Map<string, number>();\n const outgoingWeights = new Map<string, number>();\n\n for (const link of graph.links) {\n outgoingWeights.set(link.sourceNode.id, (outgoingWeights.get(link.sourceNode.id) ?? 0) + link.value);\n incomingWeights.set(link.targetNode.id, (incomingWeights.get(link.targetNode.id) ?? 0) + link.value);\n }\n\n return new Map(\n graph.nodes.map(node => [node.id, Math.max(incomingWeights.get(node.id) ?? 0, outgoingWeights.get(node.id) ?? 0)]),\n );\n}\n\nfunction getSankeyChartCurrentNodeWeights(graph: SankeyChartGraph): Map<string, number> {\n const incomingWeights = new Map<string, number>();\n const outgoingWeights = new Map<string, number>();\n\n for (const link of graph.links) {\n outgoingWeights.set(link.sourceNode.id, (outgoingWeights.get(link.sourceNode.id) ?? 0) + link.displayValue);\n incomingWeights.set(link.targetNode.id, (incomingWeights.get(link.targetNode.id) ?? 0) + link.displayValue);\n }\n\n return new Map(\n graph.nodes.map(node => [node.id, Math.max(incomingWeights.get(node.id) ?? 0, outgoingWeights.get(node.id) ?? 0)]),\n );\n}\n\nexport function getSankeyChartCurveSelection(link: SankeyChartLink): SankeyChartCurveSelection {\n return {\n source: { column: link.sourceNode.column, value: link.sourceNode.value },\n target: { column: link.targetNode.column, value: link.targetNode.value },\n records: link.records,\n };\n}\n\nexport function getSankeyChartNodeSelection(node: SankeyChartNode): SankeyChartNodeSelection {\n return { column: node.column, value: node.value };\n}\n\nfunction createNodeId(columnId: string, value: string | number) {\n return JSON.stringify([columnId, typeof value, value]);\n}\n","import { hashLabel } from '@/lib/colors';\n\nexport const sankeySeriesColors: readonly string[] = [\n 'var(--chart-blue)',\n 'var(--chart-orange)',\n 'var(--chart-green)',\n 'var(--chart-purple)',\n 'var(--chart-pink)',\n 'var(--chart-red)',\n 'var(--chart-amber)',\n 'var(--chart-blue-deep)',\n];\n\nexport function buildSankeyColorMap(names: string[]) {\n const colors: Record<string, string> = {};\n for (const name of names) {\n colors[name] = sankeySeriesColors[hashLabel(name) % sankeySeriesColors.length] ?? 'var(--chart-blue)';\n }\n return colors;\n}\n","import { createContext, useContext, useState } from 'react';\nimport type { ReactNode } from 'react';\nimport { buildSankeyChartGraph, reorderSankeyChartColumns } from './sankey-chart-utils';\nimport type { SankeyChartColumn, SankeyChartGraph, SankeyChartRecord } from './sankey-chart-utils';\nimport { buildSankeyColorMap } from './sankeyColor';\n\nexport type SankeyProps = {\n data: Array<SankeyChartRecord>;\n columns: Array<SankeyChartColumn>;\n children: ReactNode;\n columnOrder?: Array<string>;\n onColumnOrderChange?: (columnOrder: Array<string>) => void;\n visibleColumnIds?: Array<string>;\n onVisibleColumnIdsChange?: (columnIds: Array<string>) => void;\n getRecordWeight?: (record: SankeyChartRecord) => number;\n getRecordLayoutWeight?: (record: SankeyChartRecord) => number;\n getRecordNodeId?: (record: SankeyChartRecord, column: SankeyChartColumn) => string;\n getRecordNodeLabel?: (record: SankeyChartRecord, column: SankeyChartColumn) => string;\n getRecordNodeValue?: (record: SankeyChartRecord, column: SankeyChartColumn) => number;\n getColumnColor?: (column: SankeyChartColumn) => string;\n};\n\nexport type SankeyControlColumn = SankeyChartColumn & {\n visible: boolean;\n};\n\nexport type SankeyControls = {\n columns: Array<SankeyControlColumn>;\n toggleColumn: (columnId: string) => void;\n reorderColumns: (sourceIndex: number, destinationIndex: number) => void;\n};\n\ntype SankeyRenderContext = {\n graph: SankeyChartGraph;\n enabledColumns: Array<SankeyChartColumn>;\n colorMap: Record<string, string>;\n usesFixedGeometry: boolean;\n};\n\nconst SankeyControlsContext = createContext<SankeyControls | undefined>(undefined);\nconst SankeyRenderContext = createContext<SankeyRenderContext | undefined>(undefined);\n\nexport function Sankey({\n data,\n columns,\n children,\n columnOrder,\n onColumnOrderChange,\n visibleColumnIds,\n onVisibleColumnIdsChange,\n getRecordWeight,\n getRecordLayoutWeight,\n getRecordNodeId,\n getRecordNodeLabel,\n getRecordNodeValue,\n getColumnColor,\n}: SankeyProps) {\n const columnIds = columns.map(column => column.id);\n const [internalOrder, setInternalOrder] = useState(columnIds);\n const [internalVisibleIds, setInternalVisibleIds] = useState(columnIds);\n const orderedColumns = orderColumns(columns, columnOrder ?? internalOrder);\n const visibleIds = new Set(visibleColumnIds ?? internalVisibleIds);\n const enabledColumns = orderedColumns.filter(column => visibleIds.has(column.id));\n const graph = buildSankeyChartGraph(\n data,\n enabledColumns,\n getRecordWeight,\n getRecordNodeId,\n getRecordNodeLabel,\n getRecordNodeValue,\n getRecordLayoutWeight,\n );\n const defaultColorMap = buildSankeyColorMap(graph.nodes.map(node => String(node.value)));\n const colorMap = Object.fromEntries(\n graph.nodes.map(node => [\n String(node.value),\n getColumnColor?.(node.column) ?? defaultColorMap[String(node.value)] ?? 'var(--chart-blue)',\n ]),\n );\n\n const setVisibleColumns = (nextIds: Array<string>) => {\n if (visibleColumnIds === undefined) setInternalVisibleIds(nextIds);\n onVisibleColumnIdsChange?.(nextIds);\n };\n\n const setColumnOrder = (nextOrder: Array<string>) => {\n if (columnOrder === undefined) setInternalOrder(nextOrder);\n onColumnOrderChange?.(nextOrder);\n };\n\n const toggleColumn = (columnId: string) => {\n const nextIds = visibleIds.has(columnId)\n ? orderedColumns.filter(column => visibleIds.has(column.id) && column.id !== columnId).map(column => column.id)\n : orderedColumns.filter(column => visibleIds.has(column.id) || column.id === columnId).map(column => column.id);\n setVisibleColumns(nextIds);\n };\n\n const reorderColumns = (sourceIndex: number, destinationIndex: number) => {\n const reorderedEnabled = reorderSankeyChartColumns(enabledColumns, sourceIndex, destinationIndex);\n const enabledIterator = reorderedEnabled[Symbol.iterator]();\n const nextColumns = orderedColumns.map(column =>\n visibleIds.has(column.id) ? (enabledIterator.next().value ?? column) : column,\n );\n setColumnOrder(nextColumns.map(column => column.id));\n };\n\n const controlColumns = orderedColumns.map(column => ({ ...column, visible: visibleIds.has(column.id) }));\n\n return (\n <SankeyControlsContext.Provider value={{ columns: controlColumns, toggleColumn, reorderColumns }}>\n <SankeyRenderContext.Provider\n value={{ graph, enabledColumns, colorMap, usesFixedGeometry: getRecordLayoutWeight !== undefined }}\n >\n {children}\n </SankeyRenderContext.Provider>\n </SankeyControlsContext.Provider>\n );\n}\n\n// Context providers and their hooks intentionally share this module.\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useSankey() {\n const context = useContext(SankeyControlsContext);\n if (!context) throw new Error('useSankey must be used within Sankey');\n return context;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useSankeyRenderContext() {\n const context = useContext(SankeyRenderContext);\n if (!context) throw new Error('SankeyChart must be used within Sankey');\n return context;\n}\n\nfunction orderColumns(columns: Array<SankeyChartColumn>, order: Array<string>) {\n const positions = new Map(order.map((id, index) => [id, index]));\n return [...columns].sort(\n (left, right) => (positions.get(left.id) ?? columns.length) - (positions.get(right.id) ?? columns.length),\n );\n}\n","import { useId, useState } from 'react';\n\nexport type SankeyTooltipPosition = {\n left: number;\n top: number;\n placement: 'above' | 'below';\n};\n\nexport const SANKEY_TOOLTIP_MAX_WIDTH_PX = 320;\n\nconst TOOLTIP_TOP_FLIP_THRESHOLD = 120;\nconst TOOLTIP_EDGE_INSET = 16;\nconst TOOLTIP_RIGHT_INSET = SANKEY_TOOLTIP_MAX_WIDTH_PX + TOOLTIP_EDGE_INSET;\n\nexport function useSankeyHoverTooltip(enabled: boolean) {\n const id = useId();\n const [isHovered, setIsHovered] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [position, setPosition] = useState<SankeyTooltipPosition>();\n\n function showAt(target: Element) {\n if (!enabled) return;\n const rect = target.getBoundingClientRect();\n const placement = rect.top < TOOLTIP_TOP_FLIP_THRESHOLD ? 'below' : 'above';\n setPosition({\n left: Math.min(\n Math.max(rect.left, TOOLTIP_EDGE_INSET),\n Math.max(window.innerWidth - TOOLTIP_RIGHT_INSET, TOOLTIP_EDGE_INSET),\n ),\n top: placement === 'above' ? rect.top - 8 : rect.bottom + 8,\n placement,\n });\n }\n\n return {\n id,\n position,\n isVisible: Boolean(enabled && position && (isHovered || isFocused)),\n showOnHover(target: Element) {\n setIsHovered(true);\n showAt(target);\n },\n hideOnLeave() {\n setIsHovered(false);\n },\n showOnFocus(target: Element) {\n setIsFocused(true);\n showAt(target);\n },\n hideOnBlur() {\n setIsFocused(false);\n },\n };\n}\n","import { createPortal } from 'react-dom';\n\nimport { SANKEY_TOOLTIP_MAX_WIDTH_PX } from './use-sankey-hover-tooltip';\nimport type { SankeyTooltipPosition } from './use-sankey-hover-tooltip';\nimport { ChartTooltip } from '@/ds/components/ChartTooltip';\n\nexport function SankeyPortalTooltip({\n id,\n title,\n description,\n position,\n visible,\n}: {\n id: string;\n title: string;\n description: string;\n position: SankeyTooltipPosition | undefined;\n visible: boolean;\n}) {\n if (!visible || !position) return null;\n\n return createPortal(\n <ChartTooltip\n aria-label={`${title}: ${description}`}\n className=\"pointer-events-none fixed z-50 p-2\"\n id={id}\n role=\"tooltip\"\n style={{\n left: position.left,\n maxWidth: `min(${SANKEY_TOOLTIP_MAX_WIDTH_PX}px, calc(100vw - 2rem))`,\n top: position.top,\n transform: position.placement === 'above' ? 'translateY(-100%)' : undefined,\n width: 'max-content',\n }}\n >\n <div className=\"text-column\">{title}</div>\n <div className=\"whitespace-pre-wrap text-muted-foreground\">{description}</div>\n </ChartTooltip>,\n document.body,\n );\n}\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, CSSProperties } from 'react';\nimport type { Sankey as RechartsSankey } from 'recharts';\n\nimport { buildFixedSankeyGeometry, getSankeyLabelWidths, SANKEY_NODE_WIDTH } from './sankey-chart-utils';\nimport type { SankeyChartGraph } from './sankey-chart-utils';\n\ntype SankeyChartMeasurementsOptions = {\n graph: SankeyChartGraph;\n height: CSSProperties['height'];\n margin: ComponentProps<typeof RechartsSankey>['margin'];\n usesFixedGeometry: boolean;\n};\n\nexport function useSankeyChartMeasurements({\n graph,\n height,\n margin,\n usesFixedGeometry,\n}: SankeyChartMeasurementsOptions) {\n const chartContainerRef = useRef<HTMLDivElement>(null);\n const [measuredHeight, setMeasuredHeight] = useState(typeof height === 'number' ? height : 320);\n const [measuredWidth, setMeasuredWidth] = useState(800);\n\n useEffect(() => {\n const element = chartContainerRef.current;\n if (!element) return;\n\n const updateDimensions = () => {\n if (element.offsetHeight > 0) setMeasuredHeight(element.offsetHeight);\n if (element.offsetWidth > 0) setMeasuredWidth(element.offsetWidth);\n };\n\n updateDimensions();\n if (typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(updateDimensions);\n observer.observe(element);\n return () => observer.disconnect();\n }, [height]);\n\n const fixedGeometry = useMemo(\n () =>\n usesFixedGeometry\n ? buildFixedSankeyGeometry(graph, {\n top: Number(margin?.top ?? 64),\n bottom: measuredHeight - Number(margin?.bottom ?? 12),\n left: Number(margin?.left ?? 160),\n right: measuredWidth - Number(margin?.right ?? 160) - SANKEY_NODE_WIDTH,\n nodePadding: 8,\n })\n : undefined,\n [graph, margin?.bottom, margin?.left, margin?.right, margin?.top, measuredHeight, measuredWidth, usesFixedGeometry],\n );\n\n // recharts spaces columns by link depth, so the graph — not the enabled column list — sets the pitch\n const labelWidths = getSankeyLabelWidths({\n chartWidth: measuredWidth,\n columnCount: new Set(graph.nodes.map(node => node.column.id)).size,\n marginLeft: Number(margin?.left ?? 160),\n marginRight: Number(margin?.right ?? 160),\n });\n\n return { chartContainerRef, fixedGeometry, labelWidths };\n}\n","import { useEffect, useState, useSyncExternalStore } from 'react';\n\nimport type { FixedSankeyGeometry, FixedSankeyLinkGeometry, FixedSankeyNodeGeometry } from './sankey-chart-utils';\n\nconst TRANSITION_DURATION_MS = 850;\n\ntype GeometryTransition = {\n from: FixedSankeyGeometry;\n to: FixedSankeyGeometry;\n startedAt: number;\n};\n\nfunction mix(from: number, to: number, progress: number) {\n return from + (to - from) * progress;\n}\n\nfunction interpolateNode(\n from: FixedSankeyNodeGeometry,\n to: FixedSankeyNodeGeometry,\n progress: number,\n): FixedSankeyNodeGeometry {\n return {\n x: mix(from.x, to.x, progress),\n y: mix(from.y, to.y, progress),\n centerY: mix(from.centerY, to.centerY, progress),\n height: mix(from.height, to.height, progress),\n };\n}\n\nfunction interpolateLink(\n from: FixedSankeyLinkGeometry,\n to: FixedSankeyLinkGeometry,\n progress: number,\n): FixedSankeyLinkGeometry {\n return {\n sourceX: mix(from.sourceX, to.sourceX, progress),\n targetX: mix(from.targetX, to.targetX, progress),\n sourceY: mix(from.sourceY, to.sourceY, progress),\n targetY: mix(from.targetY, to.targetY, progress),\n sourceWidth: mix(from.sourceWidth, to.sourceWidth, progress),\n targetWidth: mix(from.targetWidth, to.targetWidth, progress),\n };\n}\n\n/**\n * Preserves node identity while pairing replaced links by render order. That\n * synthetic pairing keeps every ribbon moving continuously through a reorder,\n * even though changing adjacency means the old and new links have different IDs.\n */\nexport function interpolateSankeyGeometry(\n from: FixedSankeyGeometry,\n to: FixedSankeyGeometry,\n progress: number,\n): FixedSankeyGeometry {\n const replacedPreviousLinks = [...from.links].filter(([id]) => !to.links.has(id)).map(([, link]) => link);\n const nodes = new Map<string, FixedSankeyNodeGeometry>();\n const links = new Map<string, FixedSankeyLinkGeometry>();\n\n for (const [id, target] of to.nodes) {\n nodes.set(id, interpolateNode(from.nodes.get(id) ?? target, target, progress));\n }\n\n let replacedLinkIndex = 0;\n for (const [id, target] of to.links) {\n const matchingSource = from.links.get(id);\n const syntheticSource = matchingSource ? undefined : replacedPreviousLinks[replacedLinkIndex++];\n links.set(id, interpolateLink(matchingSource ?? syntheticSource ?? target, target, progress));\n }\n\n return { nodes, links };\n}\n\nfunction prefersReducedMotion() {\n return (\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n );\n}\n\nclass SankeyGeometryMotionStore {\n private animationFrame = 0;\n private key?: string;\n private listeners = new Set<() => void>();\n private snapshot?: FixedSankeyGeometry;\n private target?: FixedSankeyGeometry;\n private transition?: GeometryTransition;\n\n constructor(key?: string, geometry?: FixedSankeyGeometry) {\n this.key = key;\n this.snapshot = geometry;\n this.target = geometry;\n }\n\n getSnapshot = () => this.snapshot;\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n };\n\n transitionTo(key: string | undefined, geometry: FixedSankeyGeometry | undefined) {\n if (key === this.key && geometry === this.target) return;\n\n const keyChanged = key !== this.key;\n this.key = key;\n this.target = geometry;\n\n if (!keyChanged && geometry && this.transition) {\n this.transition = { ...this.transition, to: geometry };\n return;\n }\n\n cancelAnimationFrame(this.animationFrame);\n this.animationFrame = 0;\n\n if (!keyChanged || !geometry || !this.snapshot || prefersReducedMotion()) {\n this.transition = undefined;\n this.publish(geometry);\n return;\n }\n\n this.transition = { from: this.snapshot, to: geometry, startedAt: performance.now() };\n this.animationFrame = requestAnimationFrame(this.animate);\n }\n\n dispose() {\n cancelAnimationFrame(this.animationFrame);\n this.listeners.clear();\n }\n\n private animate = (now: number) => {\n const transition = this.transition;\n if (!transition) return;\n\n const elapsed = Math.min((now - transition.startedAt) / TRANSITION_DURATION_MS, 1);\n const progress = 1 - (1 - elapsed) ** 3;\n this.publish(interpolateSankeyGeometry(transition.from, transition.to, progress));\n\n if (elapsed < 1) {\n this.animationFrame = requestAnimationFrame(this.animate);\n return;\n }\n\n this.transition = undefined;\n this.animationFrame = 0;\n };\n\n private publish(geometry: FixedSankeyGeometry | undefined) {\n this.snapshot = geometry;\n for (const listener of this.listeners) listener();\n }\n}\n\nexport function useSankeyGeometryTransition({\n geometry,\n transitionKey,\n}: {\n geometry?: FixedSankeyGeometry;\n transitionKey?: string;\n}) {\n const [store] = useState(() => new SankeyGeometryMotionStore(transitionKey, geometry));\n const animatedGeometry = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n useEffect(() => {\n store.transitionTo(transitionKey, geometry);\n }, [geometry, store, transitionKey]);\n\n useEffect(() => () => store.dispose(), [store]);\n\n return animatedGeometry;\n}\n","import { useState } from 'react';\nimport type { ComponentProps, CSSProperties, KeyboardEvent } from 'react';\nimport { ResponsiveContainer, Sankey as RechartsSankey } from 'recharts';\nimport {\n getSankeyChartCurveSelection,\n getSankeyChartNodeSelection,\n getSankeyChartNodeWeights,\n SANKEY_NODE_WIDTH,\n truncateSankeyLabel,\n} from './sankey-chart-utils';\nimport type {\n SankeyChartColumn,\n SankeyChartCurveSelection,\n SankeyChartNodeSelection,\n SankeyLabelWidths,\n} from './sankey-chart-utils';\nimport { useSankeyRenderContext } from './sankey-context';\nimport { SankeyPortalTooltip } from './sankey-portal-tooltip';\nimport { useSankeyChartMeasurements } from './use-sankey-chart-measurements';\nimport { useSankeyGeometryTransition } from './use-sankey-geometry-transition';\nimport { useSankeyHoverTooltip } from './use-sankey-hover-tooltip';\nimport { CHART_LABEL_FONT_SIZE, CHART_TICK_FONT_SIZE, Colors } from '@/ds/tokens';\nimport { cn } from '@/lib/utils';\n\nconst NODE_LABEL_FONT_SIZE = CHART_TICK_FONT_SIZE;\nconst COLUMN_LABEL_FONT_SIZE = CHART_LABEL_FONT_SIZE;\n// pre-measurement cap, kept so wide charts read unchanged\nconst NODE_LABEL_MAX_CHARACTERS = 23;\n\nexport type SankeyChartProps = {\n height?: CSSProperties['height'];\n getNodeColor?: (selection: SankeyChartNodeSelection) => string;\n getLinkColor?: (selection: SankeyChartCurveSelection) => string;\n className?: string;\n margin?: ComponentProps<typeof RechartsSankey>['margin'];\n onCurveClick?: (selection: SankeyChartCurveSelection) => void;\n onNodeClick?: (selection: SankeyChartNodeSelection) => void;\n isNodeClickable?: (selection: SankeyChartNodeSelection) => boolean;\n getColumnDescription?: (column: SankeyChartColumn) => string | undefined;\n /** Suppress the built-in SVG column headers when the caller renders its own header row. */\n hideColumnLabels?: boolean;\n /** Animate fixed node and ribbon geometry when this perspective key changes. */\n geometryTransitionKey?: string;\n};\n\nexport function SankeyChart({\n height = 320,\n className,\n margin = { top: 64, right: 160, bottom: 12, left: 160 },\n onCurveClick,\n onNodeClick,\n isNodeClickable,\n getColumnDescription,\n hideColumnLabels = false,\n geometryTransitionKey,\n getNodeColor,\n getLinkColor,\n}: SankeyChartProps) {\n const { graph, enabledColumns, colorMap, usesFixedGeometry } = useSankeyRenderContext();\n const { chartContainerRef, fixedGeometry, labelWidths } = useSankeyChartMeasurements({\n graph,\n height,\n margin,\n usesFixedGeometry,\n });\n const animatedGeometry = useSankeyGeometryTransition({\n geometry: fixedGeometry,\n transitionKey: geometryTransitionKey,\n });\n const [hoveredSourceName, setHoveredSourceName] = useState<string>();\n const [focusedSourceName, setFocusedSourceName] = useState<string>();\n const activeSourceName = hoveredSourceName ?? focusedSourceName;\n const firstColumnId = enabledColumns[0]?.id;\n const lastColumnId = enabledColumns.at(-1)?.id;\n const nodeWeights = getSankeyChartNodeWeights(graph);\n // Each node's percentage is its share of its own column, so later columns\n // with more counted traces than the first column never exceed 100%.\n const columnTotals = new Map<string, number>();\n for (const node of graph.nodes) {\n const nodeValue = node.displayValue ?? nodeWeights.get(node.id) ?? 0;\n columnTotals.set(node.column.id, (columnTotals.get(node.column.id) ?? 0) + nodeValue);\n }\n\n return (\n <div className={cn('min-w-0', className)}>\n {graph.links.length === 0 ? (\n <div\n className=\"flex items-center justify-center rounded-md border border-border text-caption text-muted-foreground\"\n style={{ height }}\n >\n Select at least two columns with data to display a flow\n </div>\n ) : (\n <div ref={chartContainerRef} style={{ height }}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n initialDimension={{ width: 800, height: typeof height === 'number' ? height : 320 }}\n >\n <RechartsSankey\n data={graph}\n nodeWidth={SANKEY_NODE_WIDTH}\n nodePadding={56}\n margin={margin}\n node={(props: SankeyNodeRendererProps) => {\n const node = graph.nodes[props.index];\n const showColumnLabel =\n !hideColumnLabels && node\n ? graph.nodes.findIndex(candidate => candidate.column.id === node.column.id) === props.index\n : false;\n const nodeGeometry = node ? animatedGeometry?.nodes.get(node.id) : undefined;\n const selection = node ? getSankeyChartNodeSelection(node) : undefined;\n const clickable = Boolean(\n onNodeClick && selection && (isNodeClickable === undefined || isNodeClickable(selection)),\n );\n return (\n <SankeyNode\n {...props}\n x={nodeGeometry?.x ?? props.x}\n y={nodeGeometry?.y ?? props.y}\n height={nodeGeometry?.height ?? props.height}\n colorMap={colorMap}\n color={selection ? getNodeColor?.(selection) : undefined}\n columnLabel={node?.column.label}\n columnDescription={node ? getColumnDescription?.(node.column) : undefined}\n label={node?.label}\n nodeValue={node?.displayValue}\n layoutValue={nodeGeometry ? undefined : node ? nodeWeights.get(node.id) : undefined}\n columnTotal={node ? (columnTotals.get(node.column.id) ?? 0) : 0}\n showColumnLabel={showColumnLabel}\n isFirstColumn={node?.column.id === firstColumnId}\n isLastColumn={node?.column.id === lastColumnId}\n labelWidths={labelWidths}\n onFocusChange={setFocusedSourceName}\n onHoverChange={setHoveredSourceName}\n clickable={clickable}\n onSelect={() => {\n if (selection && clickable) onNodeClick?.(selection);\n }}\n />\n );\n }}\n link={(props: SankeyLinkRendererProps) => {\n const link = graph.links[props.index];\n const selection = link ? getSankeyChartCurveSelection(link) : undefined;\n const linkGeometry = link ? animatedGeometry?.links.get(link.id) : undefined;\n const sourceX = linkGeometry?.sourceX ?? props.sourceX;\n const targetX = linkGeometry?.targetX ?? props.targetX;\n const fixedControlX = linkGeometry ? (sourceX + targetX) / 2 : undefined;\n return (\n <SankeyLink\n {...props}\n sourceX={sourceX}\n targetX={targetX}\n sourceControlX={fixedControlX ?? props.sourceControlX}\n targetControlX={fixedControlX ?? props.targetControlX}\n sourceY={linkGeometry?.sourceY ?? props.sourceY}\n targetY={linkGeometry?.targetY ?? props.targetY}\n sourceWidth={linkGeometry?.sourceWidth}\n targetWidth={linkGeometry?.targetWidth}\n colorMap={colorMap}\n highlighted={String(props.payload.source.name ?? '') === activeSourceName}\n color={selection ? getLinkColor?.(selection) : undefined}\n sourceColor={selection ? getNodeColor?.(selection.source) : undefined}\n targetColor={selection ? getNodeColor?.(selection.target) : undefined}\n displayValue={link?.displayValue}\n layoutValue={link?.value}\n onHoverChange={setHoveredSourceName}\n clickable={onCurveClick !== undefined}\n onSelect={() => {\n if (link) onCurveClick?.(getSankeyChartCurveSelection(link));\n }}\n />\n );\n }}\n />\n </ResponsiveContainer>\n </div>\n )}\n </div>\n );\n}\n\ntype SankeyNodeRendererProps = {\n x: number;\n y: number;\n width: number;\n height: number;\n index: number;\n payload: { name?: string | number; value?: string | number };\n};\n\ntype SankeyLinkRendererProps = {\n sourceX: number;\n targetX: number;\n sourceY: number;\n targetY: number;\n sourceControlX: number;\n targetControlX: number;\n linkWidth: number;\n index: number;\n payload: { source: { name?: string | number }; target: { name?: string | number } };\n};\n\ntype SankeyNodeProps = SankeyNodeRendererProps & {\n colorMap: Record<string, string>;\n color?: string;\n columnLabel?: string;\n columnDescription?: string;\n label?: string;\n nodeValue?: number;\n layoutValue?: number;\n columnTotal: number;\n showColumnLabel: boolean;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n labelWidths: SankeyLabelWidths;\n clickable: boolean;\n onFocusChange: (sourceName: string | undefined) => void;\n onHoverChange: (sourceName: string | undefined) => void;\n onSelect: () => void;\n};\n\nfunction SankeyNode({\n x,\n y,\n width,\n height,\n payload,\n colorMap,\n color,\n columnLabel,\n columnDescription,\n label,\n nodeValue,\n layoutValue,\n columnTotal,\n showColumnLabel,\n isFirstColumn,\n isLastColumn,\n labelWidths,\n clickable,\n onFocusChange,\n onHoverChange,\n onSelect,\n}: SankeyNodeProps) {\n const name = typeof payload.name === 'string' || typeof payload.name === 'number' ? String(payload.name) : '';\n const displayLabel = label ?? name;\n const descriptionIndex = displayLabel.indexOf('\\n');\n const visibleDisplayLabel = descriptionIndex >= 0 ? displayLabel.slice(0, descriptionIndex) : displayLabel;\n const description = descriptionIndex >= 0 ? displayLabel.slice(descriptionIndex + 1) : undefined;\n const accessibleLabel = displayLabel.replaceAll('\\n', '. ');\n const nodeLabelWidth = isFirstColumn || isLastColumn ? labelWidths.edge : labelWidths.centered;\n const visibleLabel = truncateSankeyLabel(visibleDisplayLabel, {\n fontSize: NODE_LABEL_FONT_SIZE,\n maxWidth: nodeLabelWidth,\n maxCharacters: NODE_LABEL_MAX_CHARACTERS,\n });\n const visibleColumnLabel = columnLabel\n ? truncateSankeyLabel(columnLabel, { fontSize: COLUMN_LABEL_FONT_SIZE, maxWidth: nodeLabelWidth })\n : undefined;\n const tooltip = useSankeyHoverTooltip(description !== undefined);\n const numericValue = nodeValue ?? (typeof payload.value === 'number' ? payload.value : Number(payload.value));\n const value = Number.isFinite(numericValue) ? String(numericValue) : '';\n const percentage =\n columnTotal > 0 && Number.isFinite(numericValue) ? Math.round((numericValue / columnTotal) * 100) : 0;\n const visibleHeight = scaleSankeyDimension(height, numericValue, layoutValue);\n const visibleY = y + (height - visibleHeight) / 2;\n const textAnchor = isFirstColumn ? 'start' : isLastColumn ? 'end' : 'middle';\n const labelX = isFirstColumn ? x : isLastColumn ? x + width : x + width / 2;\n const nodeFill = colorMap[name] ?? 'var(--chart-blue)';\n const handleKeyDown = (event: KeyboardEvent<SVGGElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n onSelect();\n };\n\n return (\n <>\n {/* Rendered outside the interactive group so hovering the header never opens a theme tooltip. */}\n {showColumnLabel && visibleColumnLabel && columnLabel ? (\n <SankeyColumnHeader\n x={labelX}\n textAnchor={textAnchor}\n fill={color ? Colors.foreground : nodeFill}\n label={visibleColumnLabel}\n fullLabel={columnLabel}\n description={columnDescription}\n />\n ) : null}\n <g\n aria-describedby={description ? tooltip.id : undefined}\n aria-label={`${accessibleLabel}: ${value} ${numericValue === 1 ? 'trace' : 'traces'} (${percentage}%)`}\n className=\"outline-hidden focus-visible:[&>rect]:stroke-foreground focus-visible:[&>rect]:stroke-2\"\n onClick={clickable ? onSelect : undefined}\n onKeyDown={clickable ? handleKeyDown : undefined}\n role={clickable ? 'button' : undefined}\n onFocus={event => {\n onFocusChange(name);\n tooltip.showOnFocus(event.currentTarget);\n }}\n onBlur={() => {\n onFocusChange(undefined);\n tooltip.hideOnBlur();\n }}\n onMouseEnter={event => {\n onHoverChange(name);\n tooltip.showOnHover(event.currentTarget);\n }}\n onMouseLeave={() => {\n onHoverChange(undefined);\n tooltip.hideOnLeave();\n }}\n style={{ cursor: clickable ? 'pointer' : undefined }}\n tabIndex={0}\n >\n {/* The custom tooltip covers described nodes; a native title there would stack a second popup. */}\n {description ? null : <title>{displayLabel}</title>}\n <rect x={x} y={visibleY} width={width} height={visibleHeight} rx={3} fill={color ?? nodeFill} />\n <text\n x={labelX}\n y={y - 24}\n textAnchor={textAnchor}\n fill={Colors.foreground}\n fontSize={NODE_LABEL_FONT_SIZE}\n fontFamily=\"var(--font-mono)\"\n >\n {visibleLabel}\n </text>\n <text x={labelX} y={y - 8} textAnchor={textAnchor} fill={Colors['muted-foreground']} fontSize={9.5}>\n {value} ({percentage}%)\n </text>\n </g>\n {description ? (\n <SankeyPortalTooltip\n id={tooltip.id}\n title={visibleDisplayLabel}\n description={description}\n position={tooltip.position}\n visible={tooltip.isVisible}\n />\n ) : null}\n </>\n );\n}\n\n/**\n * Column header text. Inert for node tooltips, but when the caller supplies a\n * column description it opens its own portal tooltip on hover or focus.\n */\nfunction SankeyColumnHeader({\n x,\n textAnchor,\n fill,\n label,\n fullLabel,\n description,\n}: {\n x: number;\n textAnchor: 'start' | 'middle' | 'end';\n fill: string;\n label: string;\n fullLabel: string;\n description?: string;\n}) {\n const tooltip = useSankeyHoverTooltip(description !== undefined);\n\n return (\n <>\n <text\n aria-describedby={description ? tooltip.id : undefined}\n aria-label={description ? fullLabel : undefined}\n role={description ? 'img' : undefined}\n x={x}\n y={18}\n textAnchor={textAnchor}\n fill={fill}\n fontSize={COLUMN_LABEL_FONT_SIZE}\n fontWeight={600}\n tabIndex={description ? 0 : undefined}\n onMouseEnter={description ? event => tooltip.showOnHover(event.currentTarget) : undefined}\n onMouseLeave={description ? tooltip.hideOnLeave : undefined}\n onFocus={description ? event => tooltip.showOnFocus(event.currentTarget) : undefined}\n onBlur={description ? tooltip.hideOnBlur : undefined}\n >\n {/* The custom tooltip already names the column; a native title would stack a second popup. */}\n {label === fullLabel || description ? null : <title>{fullLabel}</title>}\n {label}\n </text>\n {description ? (\n <SankeyPortalTooltip\n id={tooltip.id}\n title={fullLabel}\n description={description}\n position={tooltip.position}\n visible={tooltip.isVisible}\n />\n ) : null}\n </>\n );\n}\n\nfunction scaleSankeyDimension(size: number, displayValue: number | undefined, layoutValue: number | undefined) {\n if (displayValue === undefined || layoutValue === undefined || layoutValue <= 0) return size;\n return size * Math.min(Math.max(displayValue / layoutValue, 0), 1);\n}\n\ntype SankeyLinkProps = SankeyLinkRendererProps & {\n colorMap: Record<string, string>;\n color?: string;\n sourceColor?: string;\n targetColor?: string;\n highlighted: boolean;\n displayValue?: number;\n layoutValue?: number;\n sourceWidth?: number;\n targetWidth?: number;\n clickable: boolean;\n onHoverChange: (sourceName: string | undefined) => void;\n onSelect: () => void;\n};\n\nfunction SankeyLink({\n sourceX,\n targetX,\n sourceY,\n targetY,\n sourceControlX,\n targetControlX,\n linkWidth,\n index,\n payload,\n colorMap,\n color,\n sourceColor,\n targetColor,\n highlighted,\n displayValue,\n layoutValue,\n sourceWidth,\n targetWidth,\n clickable,\n onHoverChange,\n onSelect,\n}: SankeyLinkProps) {\n const visibleWidth = scaleSankeyDimension(linkWidth, displayValue, layoutValue);\n const sourceHalfWidth = Math.max(0, sourceWidth ?? visibleWidth) / 2;\n const targetHalfWidth = Math.max(0, targetWidth ?? visibleWidth) / 2;\n const path = [\n `M${sourceX},${sourceY - sourceHalfWidth}`,\n `C${sourceControlX},${sourceY - sourceHalfWidth} ${targetControlX},${targetY - targetHalfWidth} ${targetX},${targetY - targetHalfWidth}`,\n `L${targetX},${targetY + targetHalfWidth}`,\n `C${targetControlX},${targetY + targetHalfWidth} ${sourceControlX},${sourceY + sourceHalfWidth} ${sourceX},${sourceY + sourceHalfWidth}`,\n 'Z',\n ].join(' ');\n const sourceName = String(payload.source.name ?? '');\n const targetName = String(payload.target.name ?? '');\n const gradientId = `sankey-grad-${index}`;\n const handleKeyDown = (event: KeyboardEvent<SVGPathElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n onSelect();\n };\n\n return (\n <g>\n <defs>\n <linearGradient id={gradientId} gradientUnits=\"userSpaceOnUse\" x1={sourceX} x2={targetX}>\n <stop offset=\"0%\" stopColor={sourceColor ?? colorMap[sourceName] ?? 'var(--chart-blue)'} />\n <stop offset=\"100%\" stopColor={targetColor ?? colorMap[targetName] ?? 'var(--chart-blue)'} />\n </linearGradient>\n </defs>\n <path\n d={path}\n fill={color ?? `url(#${gradientId})`}\n fillOpacity={highlighted ? 0.75 : 0.32}\n stroke=\"none\"\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n aria-label={clickable ? 'Select Sankey curve' : undefined}\n onClick={clickable ? onSelect : undefined}\n onKeyDown={clickable ? handleKeyDown : undefined}\n onMouseEnter={() => onHoverChange(sourceName)}\n onMouseLeave={() => onHoverChange(undefined)}\n style={{ cursor: clickable ? 'pointer' : undefined, transition: 'fill-opacity 0.18s ease' }}\n />\n </g>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SankeyChart-lkM5cpOC.js","names":["Sankey","RechartsSankey","_Fragment"],"sources":["../src/ds/components/SankeyChart/sankey-chart-utils.ts","../src/ds/components/SankeyChart/sankeyColor.ts","../src/ds/components/SankeyChart/sankey-context.tsx","../src/ds/components/SankeyChart/use-sankey-hover-tooltip.ts","../src/ds/components/SankeyChart/sankey-portal-tooltip.tsx","../src/ds/components/SankeyChart/use-sankey-chart-measurements.ts","../src/ds/components/SankeyChart/use-sankey-geometry-transition.ts","../src/ds/components/SankeyChart/sankey-chart.tsx"],"sourcesContent":["export type SankeyChartRecord = Record<string, unknown>;\n\nexport type SankeyChartColumn = {\n id: string;\n label: string;\n};\n\nexport type SankeyChartNode = {\n id: string;\n name: string;\n label: string;\n column: SankeyChartColumn;\n value: string | number;\n displayValue?: number;\n};\n\nexport type SankeyChartLink = {\n id: string;\n source: number;\n target: number;\n value: number;\n displayValue: number;\n sourceNode: SankeyChartNode;\n targetNode: SankeyChartNode;\n records: Array<SankeyChartRecord>;\n};\n\nexport type SankeyChartGraph = {\n nodes: Array<SankeyChartNode>;\n links: Array<SankeyChartLink>;\n};\n\nexport type FixedSankeyNodeGeometry = {\n x: number;\n centerY: number;\n y: number;\n height: number;\n};\n\nexport type FixedSankeyLinkGeometry = {\n sourceX: number;\n targetX: number;\n sourceY: number;\n targetY: number;\n sourceWidth: number;\n targetWidth: number;\n};\n\nexport type FixedSankeyGeometry = {\n nodes: Map<string, FixedSankeyNodeGeometry>;\n links: Map<string, FixedSankeyLinkGeometry>;\n};\n\nexport type SankeyChartNodeSelection = {\n column: SankeyChartColumn;\n value: string | number;\n};\n\nexport type SankeyChartCurveSelection = {\n source: {\n column: SankeyChartColumn;\n value: string | number;\n };\n target: {\n column: SankeyChartColumn;\n value: string | number;\n };\n records: Array<SankeyChartRecord>;\n};\n\nconst EMPTY_GRAPH: SankeyChartGraph = { nodes: [], links: [] };\n\nexport function getSankeyChartValue(value: unknown): string | number | undefined {\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n return trimmedValue.length > 0 ? trimmedValue : undefined;\n }\n\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n\n return undefined;\n}\n\nexport function reorderSankeyChartColumns(\n columns: Array<SankeyChartColumn>,\n startIndex: number,\n endIndex: number,\n): Array<SankeyChartColumn> {\n if (\n startIndex === endIndex ||\n startIndex < 0 ||\n endIndex < 0 ||\n startIndex >= columns.length ||\n endIndex >= columns.length\n ) {\n return columns;\n }\n\n const reorderedColumns = [...columns];\n const [movedColumn] = reorderedColumns.splice(startIndex, 1);\n if (!movedColumn) return columns;\n reorderedColumns.splice(endIndex, 0, movedColumn);\n return reorderedColumns;\n}\n\nexport function buildSankeyChartGraph(\n data: Array<SankeyChartRecord>,\n columns: Array<SankeyChartColumn>,\n getRecordWeight: (record: SankeyChartRecord) => number = () => 1,\n getRecordNodeId?: (record: SankeyChartRecord, column: SankeyChartColumn) => string,\n getRecordNodeLabel?: (record: SankeyChartRecord, column: SankeyChartColumn) => string,\n getRecordNodeValue?: (record: SankeyChartRecord, column: SankeyChartColumn) => number,\n getRecordLayoutWeight?: (record: SankeyChartRecord) => number,\n): SankeyChartGraph {\n if (columns.length < 2 || data.length === 0) return EMPTY_GRAPH;\n\n const nodes: Array<SankeyChartNode> = [];\n const nodeIndexes = new Map<string, number>();\n const linksById = new Map<string, SankeyChartLink>();\n\n const getNode = (\n column: SankeyChartColumn,\n value: string | number,\n label: string,\n displayValue: number | undefined,\n ): { node: SankeyChartNode; index: number } => {\n const id = createNodeId(column.id, value);\n const existingIndex = nodeIndexes.get(id);\n const existingNode = existingIndex === undefined ? undefined : nodes[existingIndex];\n if (existingIndex !== undefined && existingNode) return { node: existingNode, index: existingIndex };\n\n const node: SankeyChartNode = { id, name: String(value), label, column, value, displayValue };\n const index = nodes.length;\n nodes.push(node);\n nodeIndexes.set(id, index);\n return { node, index };\n };\n\n for (let columnIndex = 0; columnIndex < columns.length - 1; columnIndex += 1) {\n const sourceColumn = columns[columnIndex];\n const targetColumn = columns[columnIndex + 1];\n if (!sourceColumn || !targetColumn) continue;\n\n for (const record of data) {\n const displayWeight = getRecordWeight(record);\n const layoutWeight = getRecordLayoutWeight?.(record) ?? displayWeight;\n if (!Number.isFinite(displayWeight) || displayWeight < 0 || !Number.isFinite(layoutWeight) || layoutWeight < 0) {\n continue;\n }\n\n const sourceRecordValue = getSankeyChartValue(record[sourceColumn.id]);\n const targetRecordValue = getSankeyChartValue(record[targetColumn.id]);\n if (sourceRecordValue === undefined || targetRecordValue === undefined) continue;\n\n const sourceValue = getRecordNodeId\n ? getSankeyChartValue(getRecordNodeId(record, sourceColumn))\n : sourceRecordValue;\n const targetValue = getRecordNodeId\n ? getSankeyChartValue(getRecordNodeId(record, targetColumn))\n : targetRecordValue;\n if (sourceValue === undefined || targetValue === undefined) continue;\n\n const sourceLabel = getRecordNodeLabel?.(record, sourceColumn) ?? String(sourceRecordValue);\n const targetLabel = getRecordNodeLabel?.(record, targetColumn) ?? String(targetRecordValue);\n const sourceDisplayValue = getRecordNodeValue?.(record, sourceColumn);\n const targetDisplayValue = getRecordNodeValue?.(record, targetColumn);\n const source = getNode(\n sourceColumn,\n sourceValue,\n sourceLabel,\n sourceDisplayValue !== undefined && Number.isFinite(sourceDisplayValue) && sourceDisplayValue >= 0\n ? sourceDisplayValue\n : undefined,\n );\n const target = getNode(\n targetColumn,\n targetValue,\n targetLabel,\n targetDisplayValue !== undefined && Number.isFinite(targetDisplayValue) && targetDisplayValue >= 0\n ? targetDisplayValue\n : undefined,\n );\n const id = `${source.node.id}->${target.node.id}`;\n const existingLink = linksById.get(id);\n\n if (existingLink) {\n existingLink.value += layoutWeight;\n existingLink.displayValue += displayWeight;\n existingLink.records.push(record);\n } else {\n linksById.set(id, {\n id,\n source: source.index,\n target: target.index,\n value: layoutWeight,\n displayValue: displayWeight,\n sourceNode: source.node,\n targetNode: target.node,\n records: [record],\n });\n }\n }\n }\n\n return { nodes, links: [...linksById.values()] };\n}\n\nexport const SANKEY_NODE_WIDTH = 7;\n\n// mono faces we ship advance at ~0.6em — 0.62 biases toward truncating early\nconst LABEL_CHARACTER_WIDTH_RATIO = 0.62;\nconst LABEL_GUTTER = 16;\nconst LABEL_ELLIPSIS = '…';\n\nexport type SankeyLabelWidths = {\n centered: number;\n edge: number;\n};\n\nexport function getSankeyLabelWidths({\n chartWidth,\n columnCount,\n marginLeft,\n marginRight,\n}: {\n chartWidth: number;\n columnCount: number;\n marginLeft: number;\n marginRight: number;\n}): SankeyLabelWidths {\n if (chartWidth <= 0 || columnCount < 2) {\n return { centered: Number.POSITIVE_INFINITY, edge: Number.POSITIVE_INFINITY };\n }\n\n const columnPitch = (chartWidth - marginLeft - marginRight - SANKEY_NODE_WIDTH) / (columnCount - 1);\n const centered = Math.max(0, columnPitch - LABEL_GUTTER);\n // edge columns anchor at start/end, so their label spreads toward one neighbour instead of two\n const edge = Math.max(0, columnPitch + SANKEY_NODE_WIDTH / 2 - LABEL_GUTTER - centered / 2);\n\n return { centered, edge };\n}\n\nexport function truncateSankeyLabel(\n label: string,\n {\n fontSize,\n maxWidth,\n maxCharacters = Number.POSITIVE_INFINITY,\n }: { fontSize: number; maxWidth: number; maxCharacters?: number },\n): string {\n const widthLimit = Number.isFinite(maxWidth)\n ? Math.floor(maxWidth / (fontSize * LABEL_CHARACTER_WIDTH_RATIO))\n : Number.POSITIVE_INFINITY;\n const limit = Math.min(widthLimit, maxCharacters);\n\n if (label.length <= limit) return label;\n if (limit <= 1) return LABEL_ELLIPSIS;\n\n return `${label.slice(0, limit - 1).trimEnd()}${LABEL_ELLIPSIS}`;\n}\n\nexport function buildFixedSankeyGeometry(\n graph: SankeyChartGraph,\n {\n top,\n bottom,\n left,\n right,\n nodePadding,\n }: { top: number; bottom: number; left: number; right: number; nodePadding: number },\n): FixedSankeyGeometry {\n const nodes = new Map<string, FixedSankeyNodeGeometry>();\n const nodesByColumn = new Map<string, SankeyChartNode[]>();\n const currentNodeWeights = getSankeyChartCurrentNodeWeights(graph);\n\n for (const node of graph.nodes) {\n const columnNodes = nodesByColumn.get(node.column.id) ?? [];\n columnNodes.push(node);\n nodesByColumn.set(node.column.id, columnNodes);\n }\n\n const columns = [...nodesByColumn.values()];\n const slotHeights = columns.map(columnNodes =>\n Math.max(0, (bottom - top - nodePadding * Math.max(0, columnNodes.length - 1)) / columnNodes.length),\n );\n const maximumNodeHeight = Math.min(...slotHeights) * 0.6;\n\n columns.forEach((columnNodes, columnIndex) => {\n const slotHeight = slotHeights[columnIndex] ?? 0;\n const columnTotal = columnNodes.reduce(\n (total, node) => total + (node.displayValue ?? currentNodeWeights.get(node.id) ?? 0),\n 0,\n );\n const x = columns.length > 1 ? left + ((right - left) * columnIndex) / (columns.length - 1) : left;\n\n columnNodes.forEach((node, index) => {\n const value = node.displayValue ?? currentNodeWeights.get(node.id) ?? 0;\n const centerY = top + index * (slotHeight + nodePadding) + slotHeight / 2;\n const height = columnTotal > 0 ? maximumNodeHeight * (value / columnTotal) : 0;\n nodes.set(node.id, { x, centerY, y: centerY - height / 2, height });\n });\n });\n\n const links = new Map<string, FixedSankeyLinkGeometry>();\n const outgoingTotals = new Map<string, number>();\n const incomingTotals = new Map<string, number>();\n for (const link of graph.links) {\n outgoingTotals.set(link.sourceNode.id, (outgoingTotals.get(link.sourceNode.id) ?? 0) + link.displayValue);\n incomingTotals.set(link.targetNode.id, (incomingTotals.get(link.targetNode.id) ?? 0) + link.displayValue);\n }\n const sourceOffsets = new Map([...nodes].map(([id, geometry]) => [id, geometry.y]));\n const targetOffsets = new Map([...nodes].map(([id, geometry]) => [id, geometry.y]));\n\n for (const link of graph.links) {\n const sourceGeometry = nodes.get(link.sourceNode.id);\n const targetGeometry = nodes.get(link.targetNode.id);\n if (!sourceGeometry || !targetGeometry) continue;\n const sourceTotal = outgoingTotals.get(link.sourceNode.id) ?? 0;\n const targetTotal = incomingTotals.get(link.targetNode.id) ?? 0;\n const sourceWidth = sourceTotal > 0 ? sourceGeometry.height * (link.displayValue / sourceTotal) : 0;\n const targetWidth = targetTotal > 0 ? targetGeometry.height * (link.displayValue / targetTotal) : 0;\n const sourceOffset = sourceOffsets.get(link.sourceNode.id) ?? sourceGeometry.y;\n const targetOffset = targetOffsets.get(link.targetNode.id) ?? targetGeometry.y;\n links.set(link.id, {\n // ribbons anchor to their own nodes' columns: depth-based layouts (like\n // the underlying recharts sankey) would otherwise stretch links of a\n // disconnected graph across the full chart width\n sourceX: sourceGeometry.x + SANKEY_NODE_WIDTH,\n targetX: targetGeometry.x,\n sourceY: sourceOffset + sourceWidth / 2,\n targetY: targetOffset + targetWidth / 2,\n sourceWidth,\n targetWidth,\n });\n sourceOffsets.set(link.sourceNode.id, sourceOffset + sourceWidth);\n targetOffsets.set(link.targetNode.id, targetOffset + targetWidth);\n }\n\n return { nodes, links };\n}\n\nexport function getSankeyChartNodeWeights(graph: SankeyChartGraph): Map<string, number> {\n const incomingWeights = new Map<string, number>();\n const outgoingWeights = new Map<string, number>();\n\n for (const link of graph.links) {\n outgoingWeights.set(link.sourceNode.id, (outgoingWeights.get(link.sourceNode.id) ?? 0) + link.value);\n incomingWeights.set(link.targetNode.id, (incomingWeights.get(link.targetNode.id) ?? 0) + link.value);\n }\n\n return new Map(\n graph.nodes.map(node => [node.id, Math.max(incomingWeights.get(node.id) ?? 0, outgoingWeights.get(node.id) ?? 0)]),\n );\n}\n\nfunction getSankeyChartCurrentNodeWeights(graph: SankeyChartGraph): Map<string, number> {\n const incomingWeights = new Map<string, number>();\n const outgoingWeights = new Map<string, number>();\n\n for (const link of graph.links) {\n outgoingWeights.set(link.sourceNode.id, (outgoingWeights.get(link.sourceNode.id) ?? 0) + link.displayValue);\n incomingWeights.set(link.targetNode.id, (incomingWeights.get(link.targetNode.id) ?? 0) + link.displayValue);\n }\n\n return new Map(\n graph.nodes.map(node => [node.id, Math.max(incomingWeights.get(node.id) ?? 0, outgoingWeights.get(node.id) ?? 0)]),\n );\n}\n\nexport function getSankeyChartCurveSelection(link: SankeyChartLink): SankeyChartCurveSelection {\n return {\n source: { column: link.sourceNode.column, value: link.sourceNode.value },\n target: { column: link.targetNode.column, value: link.targetNode.value },\n records: link.records,\n };\n}\n\nexport function getSankeyChartNodeSelection(node: SankeyChartNode): SankeyChartNodeSelection {\n return { column: node.column, value: node.value };\n}\n\nfunction createNodeId(columnId: string, value: string | number) {\n return JSON.stringify([columnId, typeof value, value]);\n}\n","import { hashLabel } from '@/lib/colors';\n\nexport const sankeySeriesColors: readonly string[] = [\n 'var(--chart-blue)',\n 'var(--chart-orange)',\n 'var(--chart-green)',\n 'var(--chart-purple)',\n 'var(--chart-pink)',\n 'var(--chart-red)',\n 'var(--chart-amber)',\n 'var(--chart-blue-deep)',\n];\n\nexport function buildSankeyColorMap(names: string[]) {\n const colors: Record<string, string> = {};\n for (const name of names) {\n colors[name] = sankeySeriesColors[hashLabel(name) % sankeySeriesColors.length] ?? 'var(--chart-blue)';\n }\n return colors;\n}\n","import { createContext, useContext, useState } from 'react';\nimport type { ReactNode } from 'react';\nimport { buildSankeyChartGraph, reorderSankeyChartColumns } from './sankey-chart-utils';\nimport type { SankeyChartColumn, SankeyChartGraph, SankeyChartRecord } from './sankey-chart-utils';\nimport { buildSankeyColorMap } from './sankeyColor';\n\nexport type SankeyProps = {\n data: Array<SankeyChartRecord>;\n columns: Array<SankeyChartColumn>;\n children: ReactNode;\n columnOrder?: Array<string>;\n onColumnOrderChange?: (columnOrder: Array<string>) => void;\n visibleColumnIds?: Array<string>;\n onVisibleColumnIdsChange?: (columnIds: Array<string>) => void;\n getRecordWeight?: (record: SankeyChartRecord) => number;\n getRecordLayoutWeight?: (record: SankeyChartRecord) => number;\n getRecordNodeId?: (record: SankeyChartRecord, column: SankeyChartColumn) => string;\n getRecordNodeLabel?: (record: SankeyChartRecord, column: SankeyChartColumn) => string;\n getRecordNodeValue?: (record: SankeyChartRecord, column: SankeyChartColumn) => number;\n getColumnColor?: (column: SankeyChartColumn) => string;\n};\n\nexport type SankeyControlColumn = SankeyChartColumn & {\n visible: boolean;\n};\n\nexport type SankeyControls = {\n columns: Array<SankeyControlColumn>;\n toggleColumn: (columnId: string) => void;\n reorderColumns: (sourceIndex: number, destinationIndex: number) => void;\n};\n\ntype SankeyRenderContext = {\n graph: SankeyChartGraph;\n enabledColumns: Array<SankeyChartColumn>;\n colorMap: Record<string, string>;\n usesFixedGeometry: boolean;\n};\n\nconst SankeyControlsContext = createContext<SankeyControls | undefined>(undefined);\nconst SankeyRenderContext = createContext<SankeyRenderContext | undefined>(undefined);\n\nexport function Sankey({\n data,\n columns,\n children,\n columnOrder,\n onColumnOrderChange,\n visibleColumnIds,\n onVisibleColumnIdsChange,\n getRecordWeight,\n getRecordLayoutWeight,\n getRecordNodeId,\n getRecordNodeLabel,\n getRecordNodeValue,\n getColumnColor,\n}: SankeyProps) {\n const columnIds = columns.map(column => column.id);\n const [internalOrder, setInternalOrder] = useState(columnIds);\n const [internalVisibleIds, setInternalVisibleIds] = useState(columnIds);\n const orderedColumns = orderColumns(columns, columnOrder ?? internalOrder);\n const visibleIds = new Set(visibleColumnIds ?? internalVisibleIds);\n const enabledColumns = orderedColumns.filter(column => visibleIds.has(column.id));\n const graph = buildSankeyChartGraph(\n data,\n enabledColumns,\n getRecordWeight,\n getRecordNodeId,\n getRecordNodeLabel,\n getRecordNodeValue,\n getRecordLayoutWeight,\n );\n const defaultColorMap = buildSankeyColorMap(graph.nodes.map(node => String(node.value)));\n const colorMap = Object.fromEntries(\n graph.nodes.map(node => [\n String(node.value),\n getColumnColor?.(node.column) ?? defaultColorMap[String(node.value)] ?? 'var(--chart-blue)',\n ]),\n );\n\n const setVisibleColumns = (nextIds: Array<string>) => {\n if (visibleColumnIds === undefined) setInternalVisibleIds(nextIds);\n onVisibleColumnIdsChange?.(nextIds);\n };\n\n const setColumnOrder = (nextOrder: Array<string>) => {\n if (columnOrder === undefined) setInternalOrder(nextOrder);\n onColumnOrderChange?.(nextOrder);\n };\n\n const toggleColumn = (columnId: string) => {\n const nextIds = visibleIds.has(columnId)\n ? orderedColumns.filter(column => visibleIds.has(column.id) && column.id !== columnId).map(column => column.id)\n : orderedColumns.filter(column => visibleIds.has(column.id) || column.id === columnId).map(column => column.id);\n setVisibleColumns(nextIds);\n };\n\n const reorderColumns = (sourceIndex: number, destinationIndex: number) => {\n const reorderedEnabled = reorderSankeyChartColumns(enabledColumns, sourceIndex, destinationIndex);\n const enabledIterator = reorderedEnabled[Symbol.iterator]();\n const nextColumns = orderedColumns.map(column =>\n visibleIds.has(column.id) ? (enabledIterator.next().value ?? column) : column,\n );\n setColumnOrder(nextColumns.map(column => column.id));\n };\n\n const controlColumns = orderedColumns.map(column => ({ ...column, visible: visibleIds.has(column.id) }));\n\n return (\n <SankeyControlsContext.Provider value={{ columns: controlColumns, toggleColumn, reorderColumns }}>\n <SankeyRenderContext.Provider\n value={{ graph, enabledColumns, colorMap, usesFixedGeometry: getRecordLayoutWeight !== undefined }}\n >\n {children}\n </SankeyRenderContext.Provider>\n </SankeyControlsContext.Provider>\n );\n}\n\n// Context providers and their hooks intentionally share this module.\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useSankey() {\n const context = useContext(SankeyControlsContext);\n if (!context) throw new Error('useSankey must be used within Sankey');\n return context;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useSankeyRenderContext() {\n const context = useContext(SankeyRenderContext);\n if (!context) throw new Error('SankeyChart must be used within Sankey');\n return context;\n}\n\nfunction orderColumns(columns: Array<SankeyChartColumn>, order: Array<string>) {\n const positions = new Map(order.map((id, index) => [id, index]));\n return [...columns].sort(\n (left, right) => (positions.get(left.id) ?? columns.length) - (positions.get(right.id) ?? columns.length),\n );\n}\n","import { useId, useState } from 'react';\n\nexport type SankeyTooltipPosition = {\n left: number;\n top: number;\n placement: 'above' | 'below';\n};\n\nexport const SANKEY_TOOLTIP_MAX_WIDTH_PX = 320;\n\nconst TOOLTIP_TOP_FLIP_THRESHOLD = 120;\nconst TOOLTIP_EDGE_INSET = 16;\nconst TOOLTIP_RIGHT_INSET = SANKEY_TOOLTIP_MAX_WIDTH_PX + TOOLTIP_EDGE_INSET;\n\nexport function useSankeyHoverTooltip(enabled: boolean) {\n const id = useId();\n const [isHovered, setIsHovered] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [position, setPosition] = useState<SankeyTooltipPosition>();\n\n function showAt(target: Element) {\n if (!enabled) return;\n const rect = target.getBoundingClientRect();\n const placement = rect.top < TOOLTIP_TOP_FLIP_THRESHOLD ? 'below' : 'above';\n setPosition({\n left: Math.min(\n Math.max(rect.left, TOOLTIP_EDGE_INSET),\n Math.max(window.innerWidth - TOOLTIP_RIGHT_INSET, TOOLTIP_EDGE_INSET),\n ),\n top: placement === 'above' ? rect.top - 8 : rect.bottom + 8,\n placement,\n });\n }\n\n return {\n id,\n position,\n isVisible: Boolean(enabled && position && (isHovered || isFocused)),\n showOnHover(target: Element) {\n setIsHovered(true);\n showAt(target);\n },\n hideOnLeave() {\n setIsHovered(false);\n },\n showOnFocus(target: Element) {\n setIsFocused(true);\n showAt(target);\n },\n hideOnBlur() {\n setIsFocused(false);\n },\n };\n}\n","import { createPortal } from 'react-dom';\n\nimport { SANKEY_TOOLTIP_MAX_WIDTH_PX } from './use-sankey-hover-tooltip';\nimport type { SankeyTooltipPosition } from './use-sankey-hover-tooltip';\nimport { ChartTooltip } from '@/ds/components/ChartTooltip';\n\nexport function SankeyPortalTooltip({\n id,\n title,\n description,\n position,\n visible,\n}: {\n id: string;\n title: string;\n description: string;\n position: SankeyTooltipPosition | undefined;\n visible: boolean;\n}) {\n if (!visible || !position) return null;\n\n return createPortal(\n <ChartTooltip\n aria-label={`${title}: ${description}`}\n className=\"pointer-events-none fixed z-50 p-2\"\n id={id}\n role=\"tooltip\"\n style={{\n left: position.left,\n maxWidth: `min(${SANKEY_TOOLTIP_MAX_WIDTH_PX}px, calc(100vw - 2rem))`,\n top: position.top,\n transform: position.placement === 'above' ? 'translateY(-100%)' : undefined,\n width: 'max-content',\n }}\n >\n <div className=\"text-column\">{title}</div>\n <div className=\"whitespace-pre-wrap text-muted-foreground\">{description}</div>\n </ChartTooltip>,\n document.body,\n );\n}\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, CSSProperties } from 'react';\nimport type { Sankey as RechartsSankey } from 'recharts';\n\nimport { buildFixedSankeyGeometry, getSankeyLabelWidths, SANKEY_NODE_WIDTH } from './sankey-chart-utils';\nimport type { SankeyChartGraph } from './sankey-chart-utils';\n\ntype SankeyChartMeasurementsOptions = {\n graph: SankeyChartGraph;\n height: CSSProperties['height'];\n margin: ComponentProps<typeof RechartsSankey>['margin'];\n usesFixedGeometry: boolean;\n};\n\nexport function useSankeyChartMeasurements({\n graph,\n height,\n margin,\n usesFixedGeometry,\n}: SankeyChartMeasurementsOptions) {\n const chartContainerRef = useRef<HTMLDivElement>(null);\n const [measuredHeight, setMeasuredHeight] = useState(typeof height === 'number' ? height : 320);\n const [measuredWidth, setMeasuredWidth] = useState(800);\n\n useEffect(() => {\n const element = chartContainerRef.current;\n if (!element) return;\n\n const updateDimensions = () => {\n if (element.offsetHeight > 0) setMeasuredHeight(element.offsetHeight);\n if (element.offsetWidth > 0) setMeasuredWidth(element.offsetWidth);\n };\n\n updateDimensions();\n if (typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(updateDimensions);\n observer.observe(element);\n return () => observer.disconnect();\n }, [height]);\n\n const fixedGeometry = useMemo(\n () =>\n usesFixedGeometry\n ? buildFixedSankeyGeometry(graph, {\n top: Number(margin?.top ?? 64),\n bottom: measuredHeight - Number(margin?.bottom ?? 12),\n left: Number(margin?.left ?? 160),\n right: measuredWidth - Number(margin?.right ?? 160) - SANKEY_NODE_WIDTH,\n nodePadding: 8,\n })\n : undefined,\n [graph, margin?.bottom, margin?.left, margin?.right, margin?.top, measuredHeight, measuredWidth, usesFixedGeometry],\n );\n\n // recharts spaces columns by link depth, so the graph — not the enabled column list — sets the pitch\n const labelWidths = getSankeyLabelWidths({\n chartWidth: measuredWidth,\n columnCount: new Set(graph.nodes.map(node => node.column.id)).size,\n marginLeft: Number(margin?.left ?? 160),\n marginRight: Number(margin?.right ?? 160),\n });\n\n return { chartContainerRef, fixedGeometry, labelWidths };\n}\n","import { useEffect, useState, useSyncExternalStore } from 'react';\n\nimport type { FixedSankeyGeometry, FixedSankeyLinkGeometry, FixedSankeyNodeGeometry } from './sankey-chart-utils';\n\nconst TRANSITION_DURATION_MS = 850;\n\ntype GeometryTransition = {\n from: FixedSankeyGeometry;\n to: FixedSankeyGeometry;\n startedAt: number;\n};\n\nfunction mix(from: number, to: number, progress: number) {\n return from + (to - from) * progress;\n}\n\nfunction interpolateNode(\n from: FixedSankeyNodeGeometry,\n to: FixedSankeyNodeGeometry,\n progress: number,\n): FixedSankeyNodeGeometry {\n return {\n x: mix(from.x, to.x, progress),\n y: mix(from.y, to.y, progress),\n centerY: mix(from.centerY, to.centerY, progress),\n height: mix(from.height, to.height, progress),\n };\n}\n\nfunction interpolateLink(\n from: FixedSankeyLinkGeometry,\n to: FixedSankeyLinkGeometry,\n progress: number,\n): FixedSankeyLinkGeometry {\n return {\n sourceX: mix(from.sourceX, to.sourceX, progress),\n targetX: mix(from.targetX, to.targetX, progress),\n sourceY: mix(from.sourceY, to.sourceY, progress),\n targetY: mix(from.targetY, to.targetY, progress),\n sourceWidth: mix(from.sourceWidth, to.sourceWidth, progress),\n targetWidth: mix(from.targetWidth, to.targetWidth, progress),\n };\n}\n\n/**\n * Preserves node identity while pairing replaced links by render order. That\n * synthetic pairing keeps every ribbon moving continuously through a reorder,\n * even though changing adjacency means the old and new links have different IDs.\n */\nexport function interpolateSankeyGeometry(\n from: FixedSankeyGeometry,\n to: FixedSankeyGeometry,\n progress: number,\n): FixedSankeyGeometry {\n const replacedPreviousLinks = [...from.links].filter(([id]) => !to.links.has(id)).map(([, link]) => link);\n const nodes = new Map<string, FixedSankeyNodeGeometry>();\n const links = new Map<string, FixedSankeyLinkGeometry>();\n\n for (const [id, target] of to.nodes) {\n nodes.set(id, interpolateNode(from.nodes.get(id) ?? target, target, progress));\n }\n\n let replacedLinkIndex = 0;\n for (const [id, target] of to.links) {\n const matchingSource = from.links.get(id);\n const syntheticSource = matchingSource ? undefined : replacedPreviousLinks[replacedLinkIndex++];\n links.set(id, interpolateLink(matchingSource ?? syntheticSource ?? target, target, progress));\n }\n\n return { nodes, links };\n}\n\nfunction prefersReducedMotion() {\n return (\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches\n );\n}\n\nclass SankeyGeometryMotionStore {\n private animationFrame = 0;\n private key?: string;\n private listeners = new Set<() => void>();\n private snapshot?: FixedSankeyGeometry;\n private target?: FixedSankeyGeometry;\n private transition?: GeometryTransition;\n\n constructor(key?: string, geometry?: FixedSankeyGeometry) {\n this.key = key;\n this.snapshot = geometry;\n this.target = geometry;\n }\n\n getSnapshot = () => this.snapshot;\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n };\n\n transitionTo(key: string | undefined, geometry: FixedSankeyGeometry | undefined) {\n if (key === this.key && geometry === this.target) return;\n\n const keyChanged = key !== this.key;\n this.key = key;\n this.target = geometry;\n\n if (!keyChanged && geometry && this.transition) {\n this.transition = { ...this.transition, to: geometry };\n return;\n }\n\n cancelAnimationFrame(this.animationFrame);\n this.animationFrame = 0;\n\n if (!keyChanged || !geometry || !this.snapshot || prefersReducedMotion()) {\n this.transition = undefined;\n this.publish(geometry);\n return;\n }\n\n this.transition = { from: this.snapshot, to: geometry, startedAt: performance.now() };\n this.animationFrame = requestAnimationFrame(this.animate);\n }\n\n dispose() {\n cancelAnimationFrame(this.animationFrame);\n this.listeners.clear();\n }\n\n private animate = (now: number) => {\n const transition = this.transition;\n if (!transition) return;\n\n const elapsed = Math.min((now - transition.startedAt) / TRANSITION_DURATION_MS, 1);\n const progress = 1 - (1 - elapsed) ** 3;\n this.publish(interpolateSankeyGeometry(transition.from, transition.to, progress));\n\n if (elapsed < 1) {\n this.animationFrame = requestAnimationFrame(this.animate);\n return;\n }\n\n this.transition = undefined;\n this.animationFrame = 0;\n };\n\n private publish(geometry: FixedSankeyGeometry | undefined) {\n this.snapshot = geometry;\n for (const listener of this.listeners) listener();\n }\n}\n\nexport function useSankeyGeometryTransition({\n geometry,\n transitionKey,\n}: {\n geometry?: FixedSankeyGeometry;\n transitionKey?: string;\n}) {\n const [store] = useState(() => new SankeyGeometryMotionStore(transitionKey, geometry));\n const animatedGeometry = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n\n useEffect(() => {\n store.transitionTo(transitionKey, geometry);\n }, [geometry, store, transitionKey]);\n\n useEffect(() => () => store.dispose(), [store]);\n\n return animatedGeometry;\n}\n","import { useState } from 'react';\nimport type { ComponentProps, CSSProperties, KeyboardEvent } from 'react';\nimport { ResponsiveContainer, Sankey as RechartsSankey } from 'recharts';\nimport {\n getSankeyChartCurveSelection,\n getSankeyChartNodeSelection,\n getSankeyChartNodeWeights,\n SANKEY_NODE_WIDTH,\n truncateSankeyLabel,\n} from './sankey-chart-utils';\nimport type {\n SankeyChartColumn,\n SankeyChartCurveSelection,\n SankeyChartNodeSelection,\n SankeyLabelWidths,\n} from './sankey-chart-utils';\nimport { useSankeyRenderContext } from './sankey-context';\nimport { SankeyPortalTooltip } from './sankey-portal-tooltip';\nimport { useSankeyChartMeasurements } from './use-sankey-chart-measurements';\nimport { useSankeyGeometryTransition } from './use-sankey-geometry-transition';\nimport { useSankeyHoverTooltip } from './use-sankey-hover-tooltip';\nimport { CHART_LABEL_FONT_SIZE, CHART_TICK_FONT_SIZE, Colors } from '@/ds/tokens';\nimport { cn } from '@/lib/utils';\n\nconst NODE_LABEL_FONT_SIZE = CHART_TICK_FONT_SIZE;\nconst COLUMN_LABEL_FONT_SIZE = CHART_LABEL_FONT_SIZE;\n// pre-measurement cap, kept so wide charts read unchanged\nconst NODE_LABEL_MAX_CHARACTERS = 23;\n\nexport type SankeyChartProps = {\n height?: CSSProperties['height'];\n getNodeColor?: (selection: SankeyChartNodeSelection) => string;\n getLinkColor?: (selection: SankeyChartCurveSelection) => string;\n className?: string;\n margin?: ComponentProps<typeof RechartsSankey>['margin'];\n onCurveClick?: (selection: SankeyChartCurveSelection) => void;\n onNodeClick?: (selection: SankeyChartNodeSelection) => void;\n isNodeClickable?: (selection: SankeyChartNodeSelection) => boolean;\n getColumnDescription?: (column: SankeyChartColumn) => string | undefined;\n /** Suppress the built-in SVG column headers when the caller renders its own header row. */\n hideColumnLabels?: boolean;\n /** Animate fixed node and ribbon geometry when this perspective key changes. */\n geometryTransitionKey?: string;\n};\n\nexport function SankeyChart({\n height = 320,\n className,\n margin = { top: 64, right: 160, bottom: 12, left: 160 },\n onCurveClick,\n onNodeClick,\n isNodeClickable,\n getColumnDescription,\n hideColumnLabels = false,\n geometryTransitionKey,\n getNodeColor,\n getLinkColor,\n}: SankeyChartProps) {\n const { graph, enabledColumns, colorMap, usesFixedGeometry } = useSankeyRenderContext();\n const { chartContainerRef, fixedGeometry, labelWidths } = useSankeyChartMeasurements({\n graph,\n height,\n margin,\n usesFixedGeometry,\n });\n const animatedGeometry = useSankeyGeometryTransition({\n geometry: fixedGeometry,\n transitionKey: geometryTransitionKey,\n });\n const [hoveredSourceName, setHoveredSourceName] = useState<string>();\n const [focusedSourceName, setFocusedSourceName] = useState<string>();\n const activeSourceName = hoveredSourceName ?? focusedSourceName;\n const firstColumnId = enabledColumns[0]?.id;\n const lastColumnId = enabledColumns.at(-1)?.id;\n const nodeWeights = getSankeyChartNodeWeights(graph);\n // Each node's percentage is its share of its own column, so later columns\n // with more counted traces than the first column never exceed 100%.\n const columnTotals = new Map<string, number>();\n for (const node of graph.nodes) {\n const nodeValue = node.displayValue ?? nodeWeights.get(node.id) ?? 0;\n columnTotals.set(node.column.id, (columnTotals.get(node.column.id) ?? 0) + nodeValue);\n }\n\n return (\n <div className={cn('min-w-0', className)}>\n {graph.links.length === 0 ? (\n <div\n className=\"flex items-center justify-center rounded-md border border-border text-caption text-muted-foreground\"\n style={{ height }}\n >\n Select at least two columns with data to display a flow\n </div>\n ) : (\n <div ref={chartContainerRef} style={{ height }}>\n <ResponsiveContainer\n width=\"100%\"\n height=\"100%\"\n initialDimension={{ width: 800, height: typeof height === 'number' ? height : 320 }}\n >\n <RechartsSankey\n data={graph}\n nodeWidth={SANKEY_NODE_WIDTH}\n nodePadding={56}\n margin={margin}\n node={(props: SankeyNodeRendererProps) => {\n const node = graph.nodes[props.index];\n const showColumnLabel =\n !hideColumnLabels && node\n ? graph.nodes.findIndex(candidate => candidate.column.id === node.column.id) === props.index\n : false;\n const nodeGeometry = node ? animatedGeometry?.nodes.get(node.id) : undefined;\n const selection = node ? getSankeyChartNodeSelection(node) : undefined;\n const clickable = Boolean(\n onNodeClick && selection && (isNodeClickable === undefined || isNodeClickable(selection)),\n );\n return (\n <SankeyNode\n {...props}\n x={nodeGeometry?.x ?? props.x}\n y={nodeGeometry?.y ?? props.y}\n height={nodeGeometry?.height ?? props.height}\n colorMap={colorMap}\n color={selection ? getNodeColor?.(selection) : undefined}\n columnLabel={node?.column.label}\n columnDescription={node ? getColumnDescription?.(node.column) : undefined}\n label={node?.label}\n nodeValue={node?.displayValue}\n layoutValue={nodeGeometry ? undefined : node ? nodeWeights.get(node.id) : undefined}\n columnTotal={node ? (columnTotals.get(node.column.id) ?? 0) : 0}\n showColumnLabel={showColumnLabel}\n isFirstColumn={node?.column.id === firstColumnId}\n isLastColumn={node?.column.id === lastColumnId}\n labelWidths={labelWidths}\n onFocusChange={setFocusedSourceName}\n onHoverChange={setHoveredSourceName}\n clickable={clickable}\n onSelect={() => {\n if (selection && clickable) onNodeClick?.(selection);\n }}\n />\n );\n }}\n link={(props: SankeyLinkRendererProps) => {\n const link = graph.links[props.index];\n const selection = link ? getSankeyChartCurveSelection(link) : undefined;\n const linkGeometry = link ? animatedGeometry?.links.get(link.id) : undefined;\n const sourceX = linkGeometry?.sourceX ?? props.sourceX;\n const targetX = linkGeometry?.targetX ?? props.targetX;\n const fixedControlX = linkGeometry ? (sourceX + targetX) / 2 : undefined;\n return (\n <SankeyLink\n {...props}\n sourceX={sourceX}\n targetX={targetX}\n sourceControlX={fixedControlX ?? props.sourceControlX}\n targetControlX={fixedControlX ?? props.targetControlX}\n sourceY={linkGeometry?.sourceY ?? props.sourceY}\n targetY={linkGeometry?.targetY ?? props.targetY}\n sourceWidth={linkGeometry?.sourceWidth}\n targetWidth={linkGeometry?.targetWidth}\n colorMap={colorMap}\n highlighted={String(props.payload.source.name ?? '') === activeSourceName}\n color={selection ? getLinkColor?.(selection) : undefined}\n sourceColor={selection ? getNodeColor?.(selection.source) : undefined}\n targetColor={selection ? getNodeColor?.(selection.target) : undefined}\n displayValue={link?.displayValue}\n layoutValue={link?.value}\n onHoverChange={setHoveredSourceName}\n clickable={onCurveClick !== undefined}\n onSelect={() => {\n if (link) onCurveClick?.(getSankeyChartCurveSelection(link));\n }}\n />\n );\n }}\n />\n </ResponsiveContainer>\n </div>\n )}\n </div>\n );\n}\n\ntype SankeyNodeRendererProps = {\n x: number;\n y: number;\n width: number;\n height: number;\n index: number;\n payload: { name?: string | number; value?: string | number };\n};\n\ntype SankeyLinkRendererProps = {\n sourceX: number;\n targetX: number;\n sourceY: number;\n targetY: number;\n sourceControlX: number;\n targetControlX: number;\n linkWidth: number;\n index: number;\n payload: { source: { name?: string | number }; target: { name?: string | number } };\n};\n\ntype SankeyNodeProps = SankeyNodeRendererProps & {\n colorMap: Record<string, string>;\n color?: string;\n columnLabel?: string;\n columnDescription?: string;\n label?: string;\n nodeValue?: number;\n layoutValue?: number;\n columnTotal: number;\n showColumnLabel: boolean;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n labelWidths: SankeyLabelWidths;\n clickable: boolean;\n onFocusChange: (sourceName: string | undefined) => void;\n onHoverChange: (sourceName: string | undefined) => void;\n onSelect: () => void;\n};\n\nfunction SankeyNode({\n x,\n y,\n width,\n height,\n payload,\n colorMap,\n color,\n columnLabel,\n columnDescription,\n label,\n nodeValue,\n layoutValue,\n columnTotal,\n showColumnLabel,\n isFirstColumn,\n isLastColumn,\n labelWidths,\n clickable,\n onFocusChange,\n onHoverChange,\n onSelect,\n}: SankeyNodeProps) {\n const name = typeof payload.name === 'string' || typeof payload.name === 'number' ? String(payload.name) : '';\n const displayLabel = label ?? name;\n const descriptionIndex = displayLabel.indexOf('\\n');\n const visibleDisplayLabel = descriptionIndex >= 0 ? displayLabel.slice(0, descriptionIndex) : displayLabel;\n const description = descriptionIndex >= 0 ? displayLabel.slice(descriptionIndex + 1) : undefined;\n const accessibleLabel = displayLabel.replaceAll('\\n', '. ');\n const nodeLabelWidth = isFirstColumn || isLastColumn ? labelWidths.edge : labelWidths.centered;\n const visibleLabel = truncateSankeyLabel(visibleDisplayLabel, {\n fontSize: NODE_LABEL_FONT_SIZE,\n maxWidth: nodeLabelWidth,\n maxCharacters: NODE_LABEL_MAX_CHARACTERS,\n });\n const visibleColumnLabel = columnLabel\n ? truncateSankeyLabel(columnLabel, { fontSize: COLUMN_LABEL_FONT_SIZE, maxWidth: nodeLabelWidth })\n : undefined;\n const tooltip = useSankeyHoverTooltip(description !== undefined);\n const numericValue = nodeValue ?? (typeof payload.value === 'number' ? payload.value : Number(payload.value));\n const value = Number.isFinite(numericValue) ? String(numericValue) : '';\n const percentage =\n columnTotal > 0 && Number.isFinite(numericValue) ? Math.round((numericValue / columnTotal) * 100) : 0;\n const visibleHeight = scaleSankeyDimension(height, numericValue, layoutValue);\n const visibleY = y + (height - visibleHeight) / 2;\n const textAnchor = isFirstColumn ? 'start' : isLastColumn ? 'end' : 'middle';\n const labelX = isFirstColumn ? x : isLastColumn ? x + width : x + width / 2;\n const nodeFill = colorMap[name] ?? 'var(--chart-blue)';\n const handleKeyDown = (event: KeyboardEvent<SVGGElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n onSelect();\n };\n\n return (\n <>\n {/* Rendered outside the interactive group so hovering the header never opens a theme tooltip. */}\n {showColumnLabel && visibleColumnLabel && columnLabel ? (\n <SankeyColumnHeader\n x={labelX}\n textAnchor={textAnchor}\n fill={color ? Colors.foreground : nodeFill}\n label={visibleColumnLabel}\n fullLabel={columnLabel}\n description={columnDescription}\n />\n ) : null}\n <g\n aria-describedby={description ? tooltip.id : undefined}\n aria-label={`${accessibleLabel}: ${value} ${numericValue === 1 ? 'trace' : 'traces'} (${percentage}%)`}\n className=\"outline-hidden focus-visible:[&>rect]:stroke-foreground focus-visible:[&>rect]:stroke-2\"\n onClick={clickable ? onSelect : undefined}\n onKeyDown={clickable ? handleKeyDown : undefined}\n role={clickable ? 'button' : undefined}\n onFocus={event => {\n onFocusChange(name);\n tooltip.showOnFocus(event.currentTarget);\n }}\n onBlur={() => {\n onFocusChange(undefined);\n tooltip.hideOnBlur();\n }}\n onMouseEnter={event => {\n onHoverChange(name);\n tooltip.showOnHover(event.currentTarget);\n }}\n onMouseLeave={() => {\n onHoverChange(undefined);\n tooltip.hideOnLeave();\n }}\n style={{ cursor: clickable ? 'pointer' : undefined }}\n tabIndex={0}\n >\n {/* The custom tooltip covers described nodes; a native title there would stack a second popup. */}\n {description ? null : <title>{displayLabel}</title>}\n <rect x={x} y={visibleY} width={width} height={visibleHeight} rx={3} fill={color ?? nodeFill} />\n <text\n x={labelX}\n y={y - 24}\n textAnchor={textAnchor}\n fill={Colors.foreground}\n fontSize={NODE_LABEL_FONT_SIZE}\n fontFamily=\"var(--font-mono)\"\n >\n {visibleLabel}\n </text>\n <text x={labelX} y={y - 8} textAnchor={textAnchor} fill={Colors['muted-foreground']} fontSize={9.5}>\n {value} ({percentage}%)\n </text>\n </g>\n {description ? (\n <SankeyPortalTooltip\n id={tooltip.id}\n title={visibleDisplayLabel}\n description={description}\n position={tooltip.position}\n visible={tooltip.isVisible}\n />\n ) : null}\n </>\n );\n}\n\n/**\n * Column header text. Inert for node tooltips, but when the caller supplies a\n * column description it opens its own portal tooltip on hover or focus.\n */\nfunction SankeyColumnHeader({\n x,\n textAnchor,\n fill,\n label,\n fullLabel,\n description,\n}: {\n x: number;\n textAnchor: 'start' | 'middle' | 'end';\n fill: string;\n label: string;\n fullLabel: string;\n description?: string;\n}) {\n const tooltip = useSankeyHoverTooltip(description !== undefined);\n\n return (\n <>\n <text\n aria-describedby={description ? tooltip.id : undefined}\n aria-label={description ? fullLabel : undefined}\n role={description ? 'img' : undefined}\n x={x}\n y={18}\n textAnchor={textAnchor}\n fill={fill}\n fontSize={COLUMN_LABEL_FONT_SIZE}\n fontWeight={600}\n tabIndex={description ? 0 : undefined}\n onMouseEnter={description ? event => tooltip.showOnHover(event.currentTarget) : undefined}\n onMouseLeave={description ? tooltip.hideOnLeave : undefined}\n onFocus={description ? event => tooltip.showOnFocus(event.currentTarget) : undefined}\n onBlur={description ? tooltip.hideOnBlur : undefined}\n >\n {/* The custom tooltip already names the column; a native title would stack a second popup. */}\n {label === fullLabel || description ? null : <title>{fullLabel}</title>}\n {label}\n </text>\n {description ? (\n <SankeyPortalTooltip\n id={tooltip.id}\n title={fullLabel}\n description={description}\n position={tooltip.position}\n visible={tooltip.isVisible}\n />\n ) : null}\n </>\n );\n}\n\nfunction scaleSankeyDimension(size: number, displayValue: number | undefined, layoutValue: number | undefined) {\n if (displayValue === undefined || layoutValue === undefined || layoutValue <= 0) return size;\n return size * Math.min(Math.max(displayValue / layoutValue, 0), 1);\n}\n\ntype SankeyLinkProps = SankeyLinkRendererProps & {\n colorMap: Record<string, string>;\n color?: string;\n sourceColor?: string;\n targetColor?: string;\n highlighted: boolean;\n displayValue?: number;\n layoutValue?: number;\n sourceWidth?: number;\n targetWidth?: number;\n clickable: boolean;\n onHoverChange: (sourceName: string | undefined) => void;\n onSelect: () => void;\n};\n\nfunction SankeyLink({\n sourceX,\n targetX,\n sourceY,\n targetY,\n sourceControlX,\n targetControlX,\n linkWidth,\n index,\n payload,\n colorMap,\n color,\n sourceColor,\n targetColor,\n highlighted,\n displayValue,\n layoutValue,\n sourceWidth,\n targetWidth,\n clickable,\n onHoverChange,\n onSelect,\n}: SankeyLinkProps) {\n const visibleWidth = scaleSankeyDimension(linkWidth, displayValue, layoutValue);\n const sourceHalfWidth = Math.max(0, sourceWidth ?? visibleWidth) / 2;\n const targetHalfWidth = Math.max(0, targetWidth ?? visibleWidth) / 2;\n const path = [\n `M${sourceX},${sourceY - sourceHalfWidth}`,\n `C${sourceControlX},${sourceY - sourceHalfWidth} ${targetControlX},${targetY - targetHalfWidth} ${targetX},${targetY - targetHalfWidth}`,\n `L${targetX},${targetY + targetHalfWidth}`,\n `C${targetControlX},${targetY + targetHalfWidth} ${sourceControlX},${sourceY + sourceHalfWidth} ${sourceX},${sourceY + sourceHalfWidth}`,\n 'Z',\n ].join(' ');\n const sourceName = String(payload.source.name ?? '');\n const targetName = String(payload.target.name ?? '');\n const gradientId = `sankey-grad-${index}`;\n const handleKeyDown = (event: KeyboardEvent<SVGPathElement>) => {\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n onSelect();\n };\n\n return (\n <g>\n <defs>\n <linearGradient id={gradientId} gradientUnits=\"userSpaceOnUse\" x1={sourceX} x2={targetX}>\n <stop offset=\"0%\" stopColor={sourceColor ?? colorMap[sourceName] ?? 'var(--chart-blue)'} />\n <stop offset=\"100%\" stopColor={targetColor ?? colorMap[targetName] ?? 'var(--chart-blue)'} />\n </linearGradient>\n </defs>\n <path\n d={path}\n fill={color ?? `url(#${gradientId})`}\n fillOpacity={highlighted ? 0.75 : 0.32}\n stroke=\"none\"\n role={clickable ? 'button' : undefined}\n tabIndex={clickable ? 0 : undefined}\n aria-label={clickable ? 'Select Sankey curve' : undefined}\n onClick={clickable ? onSelect : undefined}\n onKeyDown={clickable ? handleKeyDown : undefined}\n onMouseEnter={() => onHoverChange(sourceName)}\n onMouseLeave={() => onHoverChange(undefined)}\n style={{ cursor: clickable ? 'pointer' : undefined, transition: 'fill-opacity 0.18s ease' }}\n />\n </g>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const require_tokens = require("./tokens.cjs.js");
|
|
2
|
-
const require_utils = require("./utils-uDc1ofX1.cjs");
|
|
3
1
|
const require_colors = require("./colors-GpozGtBN.cjs");
|
|
4
2
|
const require_components_ChartTooltip = require("./components/ChartTooltip.cjs.js");
|
|
3
|
+
const require_tokens = require("./tokens.cjs.js");
|
|
4
|
+
const require_utils = require("./utils-uDc1ofX1.cjs");
|
|
5
5
|
let react = require("react");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
7
|
let recharts = require("recharts");
|
|
@@ -918,4 +918,4 @@ Object.defineProperty(exports, "useSankey", {
|
|
|
918
918
|
}
|
|
919
919
|
});
|
|
920
920
|
|
|
921
|
-
//# sourceMappingURL=SankeyChart-
|
|
921
|
+
//# sourceMappingURL=SankeyChart-m50vrsBS.cjs.map
|