@mastra/playground-ui 66.1.0-alpha.2 → 67.0.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/dist/AgentIndicator-Bs2S8AWJ.js +847 -0
- package/dist/AgentIndicator-Bs2S8AWJ.js.map +1 -0
- package/dist/AgentIndicator-to30W73z.cjs +864 -0
- package/dist/AgentIndicator-to30W73z.cjs.map +1 -0
- package/dist/AgentIndicator.css +28 -0
- package/dist/{Arrival-NpBOyV52.js → Arrival-CJFEOXr5.js} +33 -3
- package/dist/Arrival-CJFEOXr5.js.map +1 -0
- package/dist/{Arrival-Dm6Vgn78.cjs → Arrival-Cs1oWjo4.cjs} +43 -1
- package/dist/Arrival-Cs1oWjo4.cjs.map +1 -0
- package/dist/{Comment-CUQvfikb.cjs → Comment-KYUQzeSu.cjs} +2 -2
- package/dist/{Comment-CUQvfikb.cjs.map → Comment-KYUQzeSu.cjs.map} +1 -1
- package/dist/{Comment-CPA3IyPS.js → Comment-VFJq2wRp.js} +2 -2
- package/dist/{Comment-CPA3IyPS.js.map → Comment-VFJq2wRp.js.map} +1 -1
- package/dist/{DataList-Ve3omCXT.js → DataList-2tIlQsLc.js} +95 -3
- package/dist/DataList-2tIlQsLc.js.map +1 -0
- package/dist/{DataList-Cmk08jUV.cjs → DataList-Czwmwyvp.cjs} +93 -1
- package/dist/DataList-Czwmwyvp.cjs.map +1 -0
- package/dist/{DateTimeRangePicker-ByMbLdom.js → DateTimeRangePicker-C_Lie_2P.js} +23 -2
- package/dist/DateTimeRangePicker-C_Lie_2P.js.map +1 -0
- package/dist/{DateTimeRangePicker-DGbH5WOn.cjs → DateTimeRangePicker-HmPOHwAQ.cjs} +23 -2
- package/dist/DateTimeRangePicker-HmPOHwAQ.cjs.map +1 -0
- package/dist/{FilterBar-Dk3QEuT6.js → FilterBar--4oguuVe.js} +4 -4
- package/dist/FilterBar--4oguuVe.js.map +1 -0
- package/dist/{FilterBar-gEvoWDXA.cjs → FilterBar-BUd4f7oi.cjs} +7 -7
- package/dist/FilterBar-BUd4f7oi.cjs.map +1 -0
- package/dist/GrainFill.css +2 -0
- package/dist/{MarkdownRenderer-BgqKfmRm.cjs → MarkdownRenderer-CS6u5drO.cjs} +2 -2
- package/dist/{MarkdownRenderer-BgqKfmRm.cjs.map → MarkdownRenderer-CS6u5drO.cjs.map} +1 -1
- package/dist/{MarkdownRenderer-DKCDXaLy.js → MarkdownRenderer-DME2xKTk.js} +2 -2
- package/dist/{MarkdownRenderer-DKCDXaLy.js.map → MarkdownRenderer-DME2xKTk.js.map} +1 -1
- package/dist/{Message-BF9cpYaw.cjs → Message-DsCNQpou.cjs} +2 -2
- package/dist/{Message-BF9cpYaw.cjs.map → Message-DsCNQpou.cjs.map} +1 -1
- package/dist/{Message-Bkf6Ro9H.js → Message-nVI6tMS3.js} +2 -2
- package/dist/{Message-Bkf6Ro9H.js.map → Message-nVI6tMS3.js.map} +1 -1
- package/dist/{MetricsCard-Dly_H3oX.cjs → MetricsCard-CEB-f2sv.cjs} +91 -109
- package/dist/MetricsCard-CEB-f2sv.cjs.map +1 -0
- package/dist/{MetricsCard-C9GWgT58.js → MetricsCard-M8awJ2B_.js} +91 -109
- package/dist/MetricsCard-M8awJ2B_.js.map +1 -0
- package/dist/{MetricsKpiCard-Uw0nyMgW.cjs → MetricsKpiCard-By_-sagx.cjs} +3 -2
- package/dist/{MetricsKpiCard-Uw0nyMgW.cjs.map → MetricsKpiCard-By_-sagx.cjs.map} +1 -1
- package/dist/{MetricsKpiCard-Idxjl-dn.js → MetricsKpiCard-OHbAElTl.js} +3 -2
- package/dist/{MetricsKpiCard-Idxjl-dn.js.map → MetricsKpiCard-OHbAElTl.js.map} +1 -1
- package/dist/{MetricsLineChart-DKzuRU2q.js → MetricsLineChart-BhHoduO0.js} +21 -39
- package/dist/MetricsLineChart-BhHoduO0.js.map +1 -0
- package/dist/{MetricsLineChart-2m4LVL1N.cjs → MetricsLineChart-CjBm4IXu.cjs} +21 -39
- package/dist/MetricsLineChart-CjBm4IXu.cjs.map +1 -0
- package/dist/{MetricsStackedBarChart-DJB4aByt.js → MetricsStackedBarChart-BRuA6MTE.js} +2 -3
- package/dist/MetricsStackedBarChart-BRuA6MTE.js.map +1 -0
- package/dist/{MetricsStackedBarChart-NATtwA_W.cjs → MetricsStackedBarChart-BdMlKv6G.cjs} +2 -3
- package/dist/MetricsStackedBarChart-BdMlKv6G.cjs.map +1 -0
- package/dist/Notice.css +2 -0
- package/dist/Shimmer.css +7 -0
- package/dist/{activity-ihrl0JtH.js → activity-CM34JyW-.js} +98 -33
- package/dist/activity-CM34JyW-.js.map +1 -0
- package/dist/{activity-QyLJcBKc.cjs → activity-DAK8tj7r.cjs} +108 -31
- package/dist/activity-DAK8tj7r.cjs.map +1 -0
- package/dist/chart-plot.css +15 -0
- package/dist/combobox-8kNAJFlj.cjs +309 -0
- package/dist/combobox-8kNAJFlj.cjs.map +1 -0
- package/dist/{combobox-C-E7_q4j.cjs → combobox-parts-BZVXwbG7.cjs} +7 -300
- package/dist/combobox-parts-BZVXwbG7.cjs.map +1 -0
- package/dist/{combobox-CDS2pBqz.js → combobox-parts-W7KRQUsV.js} +10 -297
- package/dist/combobox-parts-W7KRQUsV.js.map +1 -0
- package/dist/combobox-wFudhN8F.js +302 -0
- package/dist/combobox-wFudhN8F.js.map +1 -0
- package/dist/components/AgentIndicator.cjs.js +5 -0
- package/dist/components/AgentIndicator.d.ts +1 -0
- package/dist/components/AgentIndicator.es.js +1 -0
- package/dist/components/Arrival.cjs.js +3 -1
- package/dist/components/Arrival.es.js +1 -1
- package/dist/components/Combobox.cjs.js +24 -23
- package/dist/components/Combobox.es.js +2 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/DataList.cjs.js +2 -2
- package/dist/components/DataList.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/DiffStat.cjs.js +1 -1
- package/dist/components/DiffStat.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/LogsDataList.cjs.js +1 -1
- package/dist/components/LogsDataList.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/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/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +27 -69
- package/dist/components/SavedViews.cjs.js.map +1 -1
- package/dist/components/SavedViews.es.js +26 -68
- package/dist/components/SavedViews.es.js.map +1 -1
- package/dist/components/ai/activity.cjs.js +3 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/message-reveal.cjs.js +2 -1
- package/dist/components/ai/message-reveal.cjs.js.map +1 -1
- package/dist/components/ai/message-reveal.es.js +2 -1
- package/dist/components/ai/message-reveal.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +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 +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +6 -4
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js.map +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +6 -4
- package/dist/domains/chat/activity/activity-stretch-line.es.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +81 -28
- package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +82 -29
- package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
- 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/components/use-fading-edge.cjs.js +26 -0
- package/dist/domains/chat/activity/components/use-fading-edge.cjs.js.map +1 -0
- package/dist/domains/chat/activity/components/use-fading-edge.d.ts +1 -0
- package/dist/domains/chat/activity/components/use-fading-edge.es.js +25 -0
- package/dist/domains/chat/activity/components/use-fading-edge.es.js.map +1 -0
- package/dist/domains/chat/activity/components/use-rolling-words.cjs.js +123 -0
- package/dist/domains/chat/activity/components/use-rolling-words.cjs.js.map +1 -0
- package/dist/domains/chat/activity/components/use-rolling-words.d.ts +1 -0
- package/dist/domains/chat/activity/components/use-rolling-words.es.js +122 -0
- package/dist/domains/chat/activity/components/use-rolling-words.es.js.map +1 -0
- 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 +16 -6
- package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
- package/dist/domains/chat/activity/model/activity-words.es.js +15 -7
- package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
- package/dist/domains/chat/activity.cjs.js +3 -0
- package/dist/domains/chat/activity.es.js +2 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +4 -4
- package/dist/domains/chat/messages/message-row.es.js +4 -4
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +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/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- 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/tool-part.cjs.js +18 -0
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.es.js +18 -0
- package/dist/domains/chat/messages/renderers/tool-part.es.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +10 -7
- package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +10 -7
- package/dist/domains/chat/messages/skill-message.es.js.map +1 -1
- 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/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/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +111 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +109 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +8 -6
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +9 -7
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -3
- 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 +2 -3
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
- 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 +10 -4
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +10 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +51 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.d.ts +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +49 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +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 +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -1
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js +44 -0
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-grid.d.ts +1 -0
- package/dist/domains/dashboards/components/dashboard-grid.es.js +41 -0
- package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +72 -0
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-renderer.d.ts +1 -0
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +71 -0
- package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -0
- package/dist/domains/dashboards/components/view-gate.cjs.js +55 -0
- package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/view-gate.d.ts +1 -0
- package/dist/domains/dashboards/components/view-gate.es.js +54 -0
- package/dist/domains/dashboards/components/view-gate.es.js.map +1 -0
- package/dist/domains/dashboards/components/widget-chrome.cjs.js +16 -0
- package/dist/domains/dashboards/components/widget-chrome.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/widget-chrome.d.ts +1 -0
- package/dist/domains/dashboards/components/widget-chrome.es.js +15 -0
- package/dist/domains/dashboards/components/widget-chrome.es.js.map +1 -0
- package/dist/domains/dashboards/components/widget-controls.cjs.js +21 -0
- package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/widget-controls.d.ts +1 -0
- package/dist/domains/dashboards/components/widget-controls.es.js +20 -0
- package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -0
- package/dist/domains/dashboards/components/widget-error.cjs.js +18 -0
- package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/widget-error.d.ts +1 -0
- package/dist/domains/dashboards/components/widget-error.es.js +17 -0
- package/dist/domains/dashboards/components/widget-error.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +47 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +46 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-scorers.cjs.js +41 -0
- package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-scorers.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-scorers.es.js +40 -0
- package/dist/domains/dashboards/hooks/use-scorers.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +35 -0
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-widget-views.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-widget-views.es.js +32 -0
- package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +63 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +62 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/options.cjs.js +72 -0
- package/dist/domains/dashboards/kinds/kpis/options.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/options.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis/options.es.js +69 -0
- package/dist/domains/dashboards/kinds/kpis/options.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis.cjs.js +17 -0
- package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis.es.js +14 -0
- package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/options.cjs.js +30 -0
- package/dist/domains/dashboards/kinds/scores/options.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/options.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores/options.es.js +28 -0
- package/dist/domains/dashboards/kinds/scores/options.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +91 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +90 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores.cjs.js +16 -0
- package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores.es.js +14 -0
- package/dist/domains/dashboards/kinds/scores.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +67 -0
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-cells.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-cells.es.js +63 -0
- package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +72 -0
- package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-columns.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-columns.es.js +71 -0
- package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-frame.cjs.js +16 -0
- package/dist/domains/dashboards/kinds/table/table-frame.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-frame.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-frame.es.js +15 -0
- package/dist/domains/dashboards/kinds/table/table-frame.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +55 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +54 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js +80 -0
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-view.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-view.es.js +79 -0
- package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +30 -0
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +29 -0
- package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table.cjs.js +17 -0
- package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table.es.js +14 -0
- package/dist/domains/dashboards/kinds/table.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +115 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +114 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries.cjs.js +15 -0
- package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries.d.ts +1 -0
- package/dist/domains/dashboards/kinds/timeseries.es.js +14 -0
- package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -0
- package/dist/domains/dashboards/kinds.cjs.js +20 -0
- package/dist/domains/dashboards/kinds.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds.d.ts +1 -0
- package/dist/domains/dashboards/kinds.es.js +15 -0
- package/dist/domains/dashboards/kinds.es.js.map +1 -0
- package/dist/domains/dashboards/lib/answers.cjs.js +42 -0
- package/dist/domains/dashboards/lib/answers.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/answers.d.ts +1 -0
- package/dist/domains/dashboards/lib/answers.es.js +37 -0
- package/dist/domains/dashboards/lib/answers.es.js.map +1 -0
- package/dist/domains/dashboards/lib/chrome.cjs.js +41 -0
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/chrome.d.ts +1 -0
- package/dist/domains/dashboards/lib/chrome.es.js +37 -0
- package/dist/domains/dashboards/lib/chrome.es.js.map +1 -0
- package/dist/domains/dashboards/lib/definition.cjs.js +59 -0
- package/dist/domains/dashboards/lib/definition.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/definition.d.ts +1 -0
- package/dist/domains/dashboards/lib/definition.es.js +55 -0
- package/dist/domains/dashboards/lib/definition.es.js.map +1 -0
- package/dist/domains/dashboards/lib/filters.cjs.js +44 -0
- package/dist/domains/dashboards/lib/filters.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/filters.d.ts +1 -0
- package/dist/domains/dashboards/lib/filters.es.js +43 -0
- package/dist/domains/dashboards/lib/filters.es.js.map +1 -0
- package/dist/domains/dashboards/lib/format.cjs.js +32 -0
- package/dist/domains/dashboards/lib/format.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/format.d.ts +1 -0
- package/dist/domains/dashboards/lib/format.es.js +30 -0
- package/dist/domains/dashboards/lib/format.es.js.map +1 -0
- package/dist/domains/dashboards/lib/prepare-widget.cjs.js +77 -0
- package/dist/domains/dashboards/lib/prepare-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/prepare-widget.d.ts +1 -0
- package/dist/domains/dashboards/lib/prepare-widget.es.js +75 -0
- package/dist/domains/dashboards/lib/prepare-widget.es.js.map +1 -0
- package/dist/domains/dashboards/lib/requests.cjs.js +279 -0
- package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/requests.d.ts +1 -0
- package/dist/domains/dashboards/lib/requests.es.js +273 -0
- package/dist/domains/dashboards/lib/requests.es.js.map +1 -0
- package/dist/domains/dashboards/lib/scores.cjs.js +58 -0
- package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/scores.d.ts +1 -0
- package/dist/domains/dashboards/lib/scores.es.js +53 -0
- package/dist/domains/dashboards/lib/scores.es.js.map +1 -0
- package/dist/domains/dashboards/lib/table.cjs.js +408 -0
- package/dist/domains/dashboards/lib/table.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/table.d.ts +1 -0
- package/dist/domains/dashboards/lib/table.es.js +388 -0
- package/dist/domains/dashboards/lib/table.es.js.map +1 -0
- package/dist/domains/dashboards/lib/timeseries.cjs.js +192 -0
- package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/timeseries.d.ts +1 -0
- package/dist/domains/dashboards/lib/timeseries.es.js +188 -0
- package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -0
- package/dist/domains/dashboards/lib/values.cjs.js +155 -0
- package/dist/domains/dashboards/lib/values.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/values.d.ts +1 -0
- package/dist/domains/dashboards/lib/values.es.js +142 -0
- package/dist/domains/dashboards/lib/values.es.js.map +1 -0
- package/dist/domains/dashboards/metrics-dashboard.cjs.js +737 -0
- package/dist/domains/dashboards/metrics-dashboard.cjs.js.map +1 -0
- package/dist/domains/dashboards/metrics-dashboard.d.ts +1 -0
- package/dist/domains/dashboards/metrics-dashboard.es.js +736 -0
- package/dist/domains/dashboards/metrics-dashboard.es.js.map +1 -0
- package/dist/domains/dashboards/widget-kind.cjs.js +7 -0
- package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -0
- package/dist/domains/dashboards/widget-kind.d.ts +1 -0
- package/dist/domains/dashboards/widget-kind.es.js +6 -0
- package/dist/domains/dashboards/widget-kind.es.js.map +1 -0
- package/dist/domains/dashboards.cjs.js +39 -0
- package/dist/domains/dashboards.d.ts +1 -0
- package/dist/domains/dashboards.es.js +18 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.cjs.js +14 -0
- package/dist/domains/logs/components/logs-saved-views.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-saved-views.d.ts +1 -0
- package/dist/domains/logs/components/logs-saved-views.es.js +13 -0
- package/dist/domains/logs/components/logs-saved-views.es.js.map +1 -0
- package/dist/domains/logs/components.cjs.js +2 -0
- package/dist/domains/logs/components.es.js +2 -1
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs-url-state.es.js +2 -2
- package/dist/domains/logs/hooks/use-logs-url-state.es.js.map +1 -1
- package/dist/domains/logs/log-filters.cjs.js +11 -0
- package/dist/domains/logs/log-filters.cjs.js.map +1 -1
- package/dist/domains/logs/log-filters.es.js +9 -1
- package/dist/domains/logs/log-filters.es.js.map +1 -1
- package/dist/domains/logs.cjs.js +6 -1
- package/dist/domains/logs.es.js +3 -2
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +38 -15
- package/dist/domains/metrics/components/agent-runs-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/agent-runs-card.es.js +38 -15
- package/dist/domains/metrics/components/agent-runs-card.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.cjs.js +4 -11
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.es.js +4 -11
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.cjs.js +2 -4
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.es.js +2 -4
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-frame.cjs.js +16 -27
- package/dist/domains/metrics/components/breakdown/breakdown-frame.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-frame.es.js +16 -27
- package/dist/domains/metrics/components/breakdown/breakdown-frame.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-name.cjs.js +22 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.cjs.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.d.ts +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.es.js +21 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.es.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.cjs.js +13 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.cjs.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.d.ts +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.es.js +12 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.es.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-projects-first.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-projects-first.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +26 -13
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +25 -14
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +10 -13
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +11 -14
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +5 -5
- package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +5 -5
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.cjs.js +25 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.cjs.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.d.ts +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.es.js +24 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.es.js.map +1 -0
- package/dist/domains/metrics/components/breakdown-card.cjs.js +3 -3
- package/dist/domains/metrics/components/breakdown-card.es.js +3 -3
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +43 -3
- package/dist/domains/metrics/components/card-action-buttons.cjs.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +42 -5
- package/dist/domains/metrics/components/card-action-buttons.es.js.map +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 +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +39 -38
- package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +39 -38
- 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 +15 -16
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +16 -16
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids-card.cjs.js +0 -1
- package/dist/domains/metrics/components/distinct-ids-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids-card.es.js +1 -2
- package/dist/domains/metrics/components/distinct-ids-card.es.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +11 -14
- package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +11 -14
- package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card.cjs.js +8 -5
- package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card.es.js +8 -5
- package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +33 -30
- package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +34 -31
- package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.cjs.js +5 -2
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.cjs.js.map +1 -1
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.es.js +5 -2
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.es.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +7 -17
- package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +7 -17
- package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +29 -26
- package/dist/domains/metrics/components/token-usage-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +30 -27
- package/dist/domains/metrics/components/token-usage-card.es.js.map +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +3 -2
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.es.js +3 -2
- package/dist/domains/metrics/components/trace-aggregate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +31 -35
- package/dist/domains/metrics/components/trace-volume-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/trace-volume-card.es.js +31 -35
- package/dist/domains/metrics/components/trace-volume-card.es.js.map +1 -1
- package/dist/domains/metrics/components/usage-card.cjs.js +29 -28
- package/dist/domains/metrics/components/usage-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/usage-card.es.js +30 -29
- package/dist/domains/metrics/components/usage-card.es.js.map +1 -1
- package/dist/domains/metrics/components.cjs.js +6 -5
- package/dist/domains/metrics/components.es.js +4 -5
- 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 +1 -1
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +1 -1
- package/dist/domains/metrics/hooks.cjs.js +1 -1
- package/dist/domains/metrics/hooks.es.js +1 -1
- 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.cjs.js +2 -2
- package/dist/domains/metrics/lib.es.js +2 -2
- package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
- package/dist/domains/metrics/metrics-filters.es.js +1 -1
- package/dist/domains/metrics.cjs.js +14 -13
- package/dist/domains/metrics.es.js +12 -13
- package/dist/domains/observability/components/observability-header-slot.cjs.js +13 -0
- package/dist/domains/observability/components/observability-header-slot.cjs.js.map +1 -0
- package/dist/domains/observability/components/observability-header-slot.d.ts +1 -0
- package/dist/domains/observability/components/observability-header-slot.es.js +11 -0
- package/dist/domains/observability/components/observability-header-slot.es.js.map +1 -0
- package/dist/domains/observability/components/observability-histogram.cjs.js +6 -2
- package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +6 -2
- package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
- package/dist/domains/observability/components/observability-page-layout.cjs.js +19 -5
- package/dist/domains/observability/components/observability-page-layout.cjs.js.map +1 -1
- package/dist/domains/observability/components/observability-page-layout.es.js +20 -6
- package/dist/domains/observability/components/observability-page-layout.es.js.map +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +75 -18
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js.map +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js +76 -19
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js.map +1 -1
- package/dist/domains/observability/lib/zoom-memory.cjs.js +24 -0
- package/dist/domains/observability/lib/zoom-memory.cjs.js.map +1 -0
- package/dist/domains/observability/lib/zoom-memory.d.ts +1 -0
- package/dist/domains/observability/lib/zoom-memory.es.js +22 -0
- package/dist/domains/observability/lib/zoom-memory.es.js.map +1 -0
- package/dist/domains/observability/observability-list-url-state.cjs.js +122 -0
- package/dist/domains/observability/observability-list-url-state.cjs.js.map +1 -0
- package/dist/domains/observability/observability-list-url-state.d.ts +1 -0
- package/dist/domains/observability/observability-list-url-state.es.js +111 -0
- package/dist/domains/observability/observability-list-url-state.es.js.map +1 -0
- package/dist/domains/observability/saved-view-state.cjs.js +292 -0
- package/dist/domains/observability/saved-view-state.cjs.js.map +1 -0
- package/dist/domains/observability/saved-view-state.d.ts +1 -0
- package/dist/domains/observability/saved-view-state.es.js +286 -0
- package/dist/domains/observability/saved-view-state.es.js.map +1 -0
- package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +3 -0
- package/dist/domains/observability/saved-views/observability-saved-views.d.ts +1 -0
- package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -0
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js +18 -0
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js.map +1 -0
- package/dist/domains/observability/saved-views/saved-views-provider.d.ts +1 -0
- package/dist/domains/observability/saved-views/saved-views-provider.es.js +17 -0
- package/dist/domains/observability/saved-views/saved-views-provider.es.js.map +1 -0
- package/dist/domains/observability/saved-views/saved-views-source.cjs.js +23 -0
- package/dist/domains/observability/saved-views/saved-views-source.cjs.js.map +1 -0
- package/dist/domains/observability/saved-views/saved-views-source.d.ts +1 -0
- package/dist/domains/observability/saved-views/saved-views-source.es.js +19 -0
- package/dist/domains/observability/saved-views/saved-views-source.es.js.map +1 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +235 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js.map +1 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.d.ts +1 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +232 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js.map +1 -0
- package/dist/domains/observability/saved-views.cjs.js +7 -0
- package/dist/domains/observability/saved-views.d.ts +1 -0
- package/dist/domains/observability/saved-views.es.js +4 -0
- package/dist/domains/observability.cjs.js +6 -0
- package/dist/domains/observability.es.js +4 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +1 -1
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +64 -18
- package/dist/domains/spans/components/spans-explorer-body.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.es.js +64 -18
- package/dist/domains/spans/components/spans-explorer-body.es.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +6 -5
- package/dist/domains/spans/components/spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.es.js +6 -5
- package/dist/domains/spans/components/spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +15 -3
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +15 -3
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/span-filters.cjs.js +53 -14
- package/dist/domains/spans/span-filters.cjs.js.map +1 -1
- package/dist/domains/spans/span-filters.es.js +52 -15
- package/dist/domains/spans/span-filters.es.js.map +1 -1
- package/dist/domains/spans/span-list-row.cjs.js +6 -1
- package/dist/domains/spans/span-list-row.cjs.js.map +1 -1
- package/dist/domains/spans/span-list-row.es.js +6 -1
- package/dist/domains/spans/span-list-row.es.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +45 -12
- package/dist/domains/threads/components/threads-explorer-body.cjs.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.es.js +46 -12
- package/dist/domains/threads/components/threads-explorer-body.es.js.map +1 -1
- 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 +14 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js.map +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +14 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js.map +1 -1
- package/dist/domains/threads/thread-filters.cjs.js +26 -13
- package/dist/domains/threads/thread-filters.cjs.js.map +1 -1
- package/dist/domains/threads/thread-filters.es.js +26 -13
- package/dist/domains/threads/thread-filters.es.js.map +1 -1
- package/dist/domains/threads/thread-list-row.cjs.js +2 -0
- package/dist/domains/threads/thread-list-row.cjs.js.map +1 -1
- package/dist/domains/threads/thread-list-row.es.js +2 -0
- package/dist/domains/threads/thread-list-row.es.js.map +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +24 -19
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js +25 -20
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +12 -2
- 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 +12 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-outcome.utils.cjs.js +1 -1
- package/dist/domains/traces/components/span-outcome.utils.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
- 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 +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- 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-mutations.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
- package/dist/domains/traces/components/span-prompt-changes.cjs.js +1 -1
- package/dist/domains/traces/components/span-prompt-changes.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +2 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +9 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +9 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +2 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +2 -1
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +120 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.d.ts +1 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.es.js +119 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.es.js.map +1 -0
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +8 -5
- package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js +8 -5
- package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +5 -5
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +5 -5
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +15 -11
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +15 -12
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js +4 -3
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js +4 -3
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +5 -4
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +5 -4
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +13 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +13 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +5 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +5 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +7 -11
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +7 -11
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +3 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +3 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +51 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +51 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +20 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.d.ts +1 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +19 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js.map +1 -0
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +10 -4
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +10 -4
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer.cjs.js +4 -1
- package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer.es.js +5 -3
- package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +5 -1
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view-adapter.es.js +5 -1
- package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +53 -18
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +53 -18
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +5 -1
- package/dist/domains/traces/trace-filters.es.js +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js +48 -9
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js +48 -9
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +1 -1
- package/dist/domains/traces/utils/timeline-markers.cjs.js +34 -0
- package/dist/domains/traces/utils/timeline-markers.cjs.js.map +1 -0
- package/dist/domains/traces/utils/timeline-markers.d.ts +1 -0
- package/dist/domains/traces/utils/timeline-markers.es.js +33 -0
- package/dist/domains/traces/utils/timeline-markers.es.js.map +1 -0
- package/dist/domains/traces.cjs.js +5 -1
- package/dist/domains/traces.es.js +2 -2
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -1
- package/dist/{filter-bar-chip-B3pgpngW.js → filter-bar-chip-7O02P9Vk.js} +27 -9
- package/dist/filter-bar-chip-7O02P9Vk.js.map +1 -0
- package/dist/{filter-bar-chip-CyTAmjt6.cjs → filter-bar-chip-BUyMf8XQ.cjs} +40 -22
- package/dist/filter-bar-chip-BUyMf8XQ.cjs.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/lib/form/json-schema-to-zod-runtime.cjs.js +4 -4
- package/dist/lib/form/json-schema-to-zod-runtime.cjs.js.map +1 -1
- package/dist/lib/form/json-schema-to-zod-runtime.es.js +4 -4
- package/dist/lib/form/json-schema-to-zod-runtime.es.js.map +1 -1
- package/dist/lib/form/zod-provider.cjs.js +5 -1
- package/dist/lib/form/zod-provider.cjs.js.map +1 -1
- package/dist/lib/form/zod-provider.es.js +5 -1
- package/dist/lib/form/zod-provider.es.js.map +1 -1
- package/dist/observability-saved-views-Bo5kLN20.js +297 -0
- package/dist/observability-saved-views-Bo5kLN20.js.map +1 -0
- package/dist/observability-saved-views-CwCii7hh.cjs +302 -0
- package/dist/observability-saved-views-CwCii7hh.cjs.map +1 -0
- package/dist/primitives/chart-axes.cjs.js +44 -0
- package/dist/primitives/chart-axes.cjs.js.map +1 -1
- package/dist/primitives/chart-axes.es.js +43 -1
- package/dist/primitives/chart-axes.es.js.map +1 -1
- package/dist/primitives/chart-frame.cjs.js +5 -3
- package/dist/primitives/chart-frame.cjs.js.map +1 -1
- package/dist/primitives/chart-frame.es.js +6 -4
- package/dist/primitives/chart-frame.es.js.map +1 -1
- package/dist/primitives/chart-time-tick.cjs.js +15 -11
- package/dist/primitives/chart-time-tick.cjs.js.map +1 -1
- package/dist/primitives/chart-time-tick.es.js +16 -12
- package/dist/primitives/chart-time-tick.es.js.map +1 -1
- package/dist/saved-view-schema-DRJYELfK.cjs +71 -0
- package/dist/saved-view-schema-DRJYELfK.cjs.map +1 -0
- package/dist/saved-view-schema-eJXlRRel.js +54 -0
- package/dist/saved-view-schema-eJXlRRel.js.map +1 -0
- package/dist/{span-payload-primitives-D3OO0u6u.cjs → span-payload-primitives-B10Xxmx7.cjs} +4 -4
- package/dist/{span-payload-primitives-D3OO0u6u.cjs.map → span-payload-primitives-B10Xxmx7.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DTV7eUY-.js → span-payload-primitives-Dyhbqaa7.js} +4 -4
- package/dist/{span-payload-primitives-DTV7eUY-.js.map → span-payload-primitives-Dyhbqaa7.js.map} +1 -1
- package/dist/src/domains/chat/activity/activity-stretch-line.d.ts +4 -2
- package/dist/src/domains/chat/activity/components/activity-fold.d.ts +5 -4
- package/dist/src/domains/chat/activity/components/use-fading-edge.d.ts +6 -0
- package/dist/src/domains/chat/activity/components/use-rolling-words.d.ts +7 -0
- package/dist/src/domains/chat/activity/index.d.ts +2 -1
- package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -0
- package/dist/src/domains/chat/activity/model/activity-words.d.ts +3 -0
- package/dist/src/domains/chat/messages/renderers/tool-part.d.ts +4 -0
- package/dist/src/domains/chat/messages/skill-message.d.ts +3 -1
- package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +14 -0
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +5 -1
- package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +27 -0
- package/dist/src/domains/chat/tools/tool-card.d.ts +5 -1
- package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +18 -0
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +19 -0
- package/dist/src/domains/dashboards/components/view-gate.d.ts +30 -0
- package/dist/src/domains/dashboards/components/widget-chrome.d.ts +7 -0
- package/dist/src/domains/dashboards/components/widget-controls.d.ts +8 -0
- package/dist/src/domains/dashboards/components/widget-error.d.ts +6 -0
- package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +10 -0
- package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +66 -0
- package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +18 -0
- package/dist/src/domains/dashboards/index.d.ts +19 -0
- package/dist/src/domains/dashboards/kinds/index.d.ts +7 -0
- package/dist/src/domains/dashboards/kinds/kpis/index.d.ts +13 -0
- package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +3 -0
- package/dist/src/domains/dashboards/kinds/kpis/options.d.ts +35 -0
- package/dist/src/domains/dashboards/kinds/scores/index.d.ts +8 -0
- package/dist/src/domains/dashboards/kinds/scores/options.d.ts +13 -0
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +3 -0
- package/dist/src/domains/dashboards/kinds/table/index.d.ts +23 -0
- package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +26 -0
- package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +7 -0
- package/dist/src/domains/dashboards/kinds/table/table-frame.d.ts +13 -0
- package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +10 -0
- package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +5 -0
- package/dist/src/domains/dashboards/kinds/table/table-widget.d.ts +7 -0
- package/dist/src/domains/dashboards/kinds/timeseries/index.d.ts +30 -0
- package/dist/src/domains/dashboards/kinds/timeseries/timeseries-widget.d.ts +5 -0
- package/dist/src/domains/dashboards/lib/answers.d.ts +43 -0
- package/dist/src/domains/dashboards/lib/chrome.d.ts +14 -0
- package/dist/src/domains/dashboards/lib/definition.d.ts +27 -0
- package/dist/src/domains/dashboards/lib/filters.d.ts +6 -0
- package/dist/src/domains/dashboards/lib/format.d.ts +7 -0
- package/dist/src/domains/dashboards/lib/prepare-widget.d.ts +26 -0
- package/dist/src/domains/dashboards/lib/requests.d.ts +95 -0
- package/dist/src/domains/dashboards/lib/scores.d.ts +35 -0
- package/dist/src/domains/dashboards/lib/table.d.ts +188 -0
- package/dist/src/domains/dashboards/lib/timeseries.d.ts +119 -0
- package/dist/src/domains/dashboards/lib/values.d.ts +86 -0
- package/dist/src/domains/dashboards/metrics-dashboard.d.ts +7 -0
- package/dist/src/domains/dashboards/widget-kind.d.ts +31 -0
- package/dist/src/domains/logs/components/index.d.ts +1 -0
- package/dist/src/domains/logs/components/logs-saved-views.d.ts +4 -0
- package/dist/src/domains/logs/log-filters.d.ts +8 -0
- package/dist/src/domains/metrics/components/agent-runs-card.d.ts +10 -3
- package/dist/src/domains/metrics/components/breakdown/breakdown-name.d.ts +13 -0
- package/dist/src/domains/metrics/components/breakdown/breakdown-not-priced.d.ts +2 -0
- package/dist/src/domains/metrics/components/breakdown/breakdown-row-mark.d.ts +17 -4
- package/dist/src/domains/metrics/components/breakdown/breakdown-trend-text.d.ts +9 -0
- package/dist/src/domains/metrics/components/card-action-buttons.d.ts +9 -0
- package/dist/src/domains/metrics/components/chart-card.d.ts +33 -21
- package/dist/src/domains/metrics/components/distinct-ids/distinct-ids-chart.d.ts +0 -1
- package/dist/src/domains/metrics/components/failure-rate-card.d.ts +5 -2
- package/dist/src/domains/metrics/components/index.d.ts +1 -2
- package/dist/src/domains/metrics/components/metrics-grid/metrics-grid.d.ts +4 -1
- package/dist/src/domains/metrics/components/trace-aggregate-card.d.ts +1 -1
- package/dist/src/domains/observability/components/observability-header-slot.d.ts +6 -0
- package/dist/src/domains/observability/components/observability-histogram.d.ts +1 -1
- package/dist/src/domains/observability/hooks/use-observability-list-filters.d.ts +21 -5
- package/dist/src/domains/observability/index.d.ts +2 -0
- package/dist/src/domains/observability/lib/zoom-memory.d.ts +19 -0
- package/dist/src/domains/observability/observability-list-url-state.d.ts +39 -0
- package/dist/src/domains/observability/saved-view-state.d.ts +46 -0
- package/dist/src/domains/observability/saved-views/index.d.ts +7 -0
- package/dist/src/domains/observability/saved-views/observability-saved-views.d.ts +22 -0
- package/dist/src/domains/observability/saved-views/saved-views-provider.d.ts +15 -0
- package/dist/src/domains/observability/saved-views/saved-views-source.d.ts +41 -0
- package/dist/src/domains/observability/saved-views/use-hosted-saved-views.d.ts +34 -0
- package/dist/src/domains/spans/components/spans-explorer-body.d.ts +4 -1
- package/dist/src/domains/spans/components/spans-filter-bar.d.ts +3 -1
- package/dist/src/domains/spans/hooks/use-spans-filter-bar.d.ts +1 -1
- package/dist/src/domains/spans/hooks/use-spans-list-source.d.ts +3 -0
- package/dist/src/domains/spans/span-filters.d.ts +16 -5
- package/dist/src/domains/threads/components/threads-explorer-body.d.ts +4 -1
- package/dist/src/domains/threads/thread-filters.d.ts +6 -5
- package/dist/src/domains/traces/components/columns-menu/columns-menu.d.ts +3 -3
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +7 -1
- package/dist/src/domains/traces/components/trace-span-panel.d.ts +2 -1
- package/dist/src/domains/traces/components/trace-span-timeline-markers.d.ts +5 -0
- package/dist/src/domains/traces/components/trace-span-timeline.d.ts +6 -1
- package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +3 -1
- package/dist/src/domains/traces/components/traces-explorer/index.d.ts +4 -1
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-actions.d.ts +5 -5
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +11 -1
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-saved-views.d.ts +7 -0
- package/dist/src/domains/traces/components/traces-list-view.d.ts +20 -7
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +5 -0
- package/dist/src/domains/traces/trace-filters.d.ts +27 -3
- package/dist/src/domains/traces/trace-list-columns.d.ts +16 -6
- package/dist/src/domains/traces/utils/timeline-markers.d.ts +25 -0
- package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +2 -0
- package/dist/src/domains/workflows/workflow/input/processor-input.d.ts +5 -535
- package/dist/src/domains/workflows/workflow/use-workflow-trigger.d.ts +1 -1
- package/dist/src/ds/components/AgentIndicator/agent-glyph.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/agent-indicator.d.ts +8 -0
- package/dist/src/ds/components/AgentIndicator/animate.d.ts +5 -0
- package/dist/src/ds/components/AgentIndicator/index.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/paint.d.ts +21 -0
- package/dist/src/ds/components/AgentIndicator/poses.d.ts +7 -0
- package/dist/src/ds/components/AgentIndicator/shapes.d.ts +41 -0
- package/dist/src/ds/components/Arrival/arrival.d.ts +11 -0
- package/dist/src/ds/components/Arrival/index.d.ts +1 -1
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +12 -0
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +3 -1
- package/dist/src/ds/components/FilterBar/types.d.ts +2 -0
- package/dist/src/ds/components/MetricsCard/index.d.ts +1 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-actions.d.ts +2 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +13 -0
- package/dist/src/ds/components/MetricsCard/metrics-card-title-menu.d.ts +2 -0
- package/dist/src/ds/components/MetricsCard/metrics-card-title.d.ts +1 -3
- package/dist/src/ds/components/MetricsCard/metrics-card-toolbar.d.ts +3 -3
- package/dist/src/ds/components/MetricsCard/metrics-card-total.d.ts +11 -3
- package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -9
- package/dist/src/ds/components/MetricsCard/metrics-story-data.d.ts +0 -26
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-root.d.ts +5 -2
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart-legend.d.ts +3 -4
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +2 -6
- package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +3 -1
- package/dist/src/ds/components/SavedViews/saved-view-picker.d.ts +21 -0
- package/dist/src/ds/components/SavedViews/use-saved-views.d.ts +6 -2
- package/dist/src/ds/components/ai/activity/activity.d.ts +12 -7
- package/dist/src/ds/components/ai/activity/index.d.ts +1 -0
- package/dist/src/ds/components/ai/activity/presets/signal-activity.d.ts +4 -1
- package/dist/src/ds/components/ai/activity/use-relative-paths.d.ts +3 -0
- package/dist/src/ds/components/ai/message-reveal/message-reveal.d.ts +2 -1
- package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +4 -0
- package/dist/src/ds/primitives/chart-axes.d.ts +24 -0
- package/dist/src/ds/primitives/chart-frame.d.ts +2 -1
- package/dist/src/ds/primitives/chart-time-tick.d.ts +7 -4
- package/dist/src/lib/string.d.ts +1 -0
- package/dist/{string-OAgeMRQ5.js → string-CNKDIc_4.js} +6 -2
- package/dist/string-CNKDIc_4.js.map +1 -0
- package/dist/{string-CymY0aJ9.cjs → string-DdJJdCv2.cjs} +11 -1
- package/dist/string-DdJJdCv2.cjs.map +1 -0
- package/dist/style.css +67 -4
- package/dist/{tabbed-container-x2mfK07d.js → tabbed-container-BKUqfEKy.js} +2 -2
- package/dist/{tabbed-container-x2mfK07d.js.map → tabbed-container-BKUqfEKy.js.map} +1 -1
- package/dist/{tabbed-container-CBTb0LgE.cjs → tabbed-container-CFEImJOK.cjs} +2 -2
- package/dist/{tabbed-container-CBTb0LgE.cjs.map → tabbed-container-CFEImJOK.cjs.map} +1 -1
- package/dist/{tool-approval-6E73C0r6.cjs → tool-approval-BfjoSNOC.cjs} +4 -4
- package/dist/{tool-approval-6E73C0r6.cjs.map → tool-approval-BfjoSNOC.cjs.map} +1 -1
- package/dist/{tool-approval-BXlro6fV.js → tool-approval-FeuyUUcL.js} +4 -4
- package/dist/{tool-approval-BXlro6fV.js.map → tool-approval-FeuyUUcL.js.map} +1 -1
- package/dist/{tool-call-CItJ8KLA.js → tool-call-BxYXs9w0.js} +9 -7
- package/dist/{tool-call-CItJ8KLA.js.map → tool-call-BxYXs9w0.js.map} +1 -1
- package/dist/{tool-call-Dq9xF3WD.cjs → tool-call-CvilN9ti.cjs} +9 -7
- package/dist/{tool-call-Dq9xF3WD.cjs.map → tool-call-CvilN9ti.cjs.map} +1 -1
- package/dist/{tool-card-o5u4YCR0.cjs → tool-card-B7O8AsRl.cjs} +9 -5
- package/dist/tool-card-B7O8AsRl.cjs.map +1 -0
- package/dist/{tool-card-Bd8weXze.js → tool-card-ELW898uw.js} +9 -5
- package/dist/tool-card-ELW898uw.js.map +1 -0
- package/dist/{tool-presentation-D2uUj1AB.cjs → tool-presentation-BLErsb7c.cjs} +38 -40
- package/dist/tool-presentation-BLErsb7c.cjs.map +1 -0
- package/dist/{tool-presentation-DKfIKLQy.js → tool-presentation-BSZYIWx2.js} +38 -40
- package/dist/tool-presentation-BSZYIWx2.js.map +1 -0
- package/dist/{trace-filters-C27yWcan.js → trace-filters-BJaebsxJ.js} +78 -11
- package/dist/trace-filters-BJaebsxJ.js.map +1 -0
- package/dist/{trace-filters-BpeBUjCb.cjs → trace-filters-BNEZ31HX.cjs} +100 -9
- package/dist/trace-filters-BNEZ31HX.cjs.map +1 -0
- package/dist/types-CP7wbYua.cjs.map +1 -1
- package/dist/types-DiiL5mTO.js.map +1 -1
- package/dist/utils/string.cjs.js +2 -1
- package/dist/utils/string.es.js +1 -1
- package/package.json +14 -14
- package/dist/Arrival-Dm6Vgn78.cjs.map +0 -1
- package/dist/Arrival-NpBOyV52.js.map +0 -1
- package/dist/DataList-Cmk08jUV.cjs.map +0 -1
- package/dist/DataList-Ve3omCXT.js.map +0 -1
- package/dist/DateTimeRangePicker-ByMbLdom.js.map +0 -1
- package/dist/DateTimeRangePicker-DGbH5WOn.cjs.map +0 -1
- package/dist/FilterBar-Dk3QEuT6.js.map +0 -1
- package/dist/FilterBar-gEvoWDXA.cjs.map +0 -1
- package/dist/MetricsCard-C9GWgT58.js.map +0 -1
- package/dist/MetricsCard-Dly_H3oX.cjs.map +0 -1
- package/dist/MetricsLineChart-2m4LVL1N.cjs.map +0 -1
- package/dist/MetricsLineChart-DKzuRU2q.js.map +0 -1
- package/dist/MetricsStackedBarChart-DJB4aByt.js.map +0 -1
- package/dist/MetricsStackedBarChart-NATtwA_W.cjs.map +0 -1
- package/dist/activity-QyLJcBKc.cjs.map +0 -1
- package/dist/activity-ihrl0JtH.js.map +0 -1
- package/dist/combobox-C-E7_q4j.cjs.map +0 -1
- package/dist/combobox-CDS2pBqz.js.map +0 -1
- package/dist/domains/metrics/components/metrics-kpis.cjs.js +0 -106
- package/dist/domains/metrics/components/metrics-kpis.cjs.js.map +0 -1
- package/dist/domains/metrics/components/metrics-kpis.d.ts +0 -1
- package/dist/domains/metrics/components/metrics-kpis.es.js +0 -105
- package/dist/domains/metrics/components/metrics-kpis.es.js.map +0 -1
- package/dist/filter-bar-chip-B3pgpngW.js.map +0 -1
- package/dist/filter-bar-chip-CyTAmjt6.cjs.map +0 -1
- package/dist/src/domains/metrics/components/metrics-kpis.d.ts +0 -2
- package/dist/src/ds/components/MetricsCard/metrics-card-description.d.ts +0 -4
- package/dist/src/ds/components/MetricsCard/metrics-card-summary.d.ts +0 -8
- package/dist/src/ds/components/MetricsCard/metrics-card-tabs.d.ts +0 -16
- package/dist/src/ds/components/MetricsCard/metrics-card-title-and-description.d.ts +0 -16
- package/dist/string-CymY0aJ9.cjs.map +0 -1
- package/dist/string-OAgeMRQ5.js.map +0 -1
- package/dist/tool-card-Bd8weXze.js.map +0 -1
- package/dist/tool-card-o5u4YCR0.cjs.map +0 -1
- package/dist/tool-presentation-D2uUj1AB.cjs.map +0 -1
- package/dist/tool-presentation-DKfIKLQy.js.map +0 -1
- package/dist/trace-filters-BpeBUjCb.cjs.map +0 -1
- package/dist/trace-filters-C27yWcan.js.map +0 -1
|
@@ -11,7 +11,8 @@ import { ProcessorIcon } from "./icons/ProcessorIcon.es.js";
|
|
|
11
11
|
import { ScorersIcon } from "./icons/ScorersIcon.es.js";
|
|
12
12
|
import { t as Badge } from "./Badge-aVu5iGAF.js";
|
|
13
13
|
import { C as splitColumns, S as dataListRowOuterStyles, _ as DataListCreatedCell, a as DataListSpacer, b as DataListTextCell, f as DataListRowButton, g as DataListCell, h as DataListNextPageLoading, i as DataListSubheader, l as DataListTopCellWithTooltip, m as DataListNoMatch, n as DataListTop, o as DataListSortableTopCell, p as DataListRoot, r as DataListSubHeading, s as DataListTopCell, y as DataListIdCell } from "./data-list-evmf5xWI.js";
|
|
14
|
-
import { Fragment
|
|
14
|
+
import { Fragment } from "react";
|
|
15
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
15
16
|
import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon, SplitIcon } from "lucide-react";
|
|
16
17
|
// src/ds/components/DataList/data-list-skeleton.tsx
|
|
17
18
|
var widths = [
|
|
@@ -242,7 +243,7 @@ function TracesDataListTypeCell({ entityType }) {
|
|
|
242
243
|
const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : void 0;
|
|
243
244
|
return /* @__PURE__ */ jsx(DataListCell, {
|
|
244
245
|
className: "flex min-w-0 items-center gap-2",
|
|
245
|
-
children: display ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(display.Icon, {
|
|
246
|
+
children: display ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(display.Icon, {
|
|
246
247
|
className: "size-3.5 shrink-0 text-placeholder",
|
|
247
248
|
"aria-hidden": true
|
|
248
249
|
}), /* @__PURE__ */ jsx(Txt, {
|
|
@@ -288,6 +289,95 @@ function TracesDataListStatusCell({ status }) {
|
|
|
288
289
|
children: config.label
|
|
289
290
|
}) });
|
|
290
291
|
}
|
|
292
|
+
var OUTCOME_CONFIG = {
|
|
293
|
+
success: {
|
|
294
|
+
label: "OK",
|
|
295
|
+
variant: "success"
|
|
296
|
+
},
|
|
297
|
+
error: {
|
|
298
|
+
label: "ERR",
|
|
299
|
+
variant: "destructive"
|
|
300
|
+
},
|
|
301
|
+
abort: {
|
|
302
|
+
label: "Abort",
|
|
303
|
+
variant: "warning"
|
|
304
|
+
},
|
|
305
|
+
interrupted: {
|
|
306
|
+
label: "Interrupted",
|
|
307
|
+
variant: "warning"
|
|
308
|
+
},
|
|
309
|
+
limit: {
|
|
310
|
+
label: "Limit",
|
|
311
|
+
variant: "orange"
|
|
312
|
+
},
|
|
313
|
+
blocked: {
|
|
314
|
+
label: "Blocked",
|
|
315
|
+
variant: "orange"
|
|
316
|
+
},
|
|
317
|
+
suspend: {
|
|
318
|
+
label: "Suspend",
|
|
319
|
+
variant: "info"
|
|
320
|
+
},
|
|
321
|
+
unknown: {
|
|
322
|
+
label: "Unknown",
|
|
323
|
+
variant: "neutral"
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
var formatContextValue = (value) => typeof value === "string" ? value : JSON.stringify(value);
|
|
327
|
+
function TracesDataListOutcomeCell({ outcome, status }) {
|
|
328
|
+
if (!outcome) {
|
|
329
|
+
const config = STATUS_CONFIG[(status ?? "unset").toLowerCase()] ?? UNSET_STATUS_CONFIG;
|
|
330
|
+
const badge = /* @__PURE__ */ jsx(Badge, {
|
|
331
|
+
size: "xs",
|
|
332
|
+
variant: config.variant,
|
|
333
|
+
children: config.label
|
|
334
|
+
});
|
|
335
|
+
return /* @__PURE__ */ jsx(DataListCell, { children: config === UNSET_STATUS_CONFIG ? badge : /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
336
|
+
render: /* @__PURE__ */ jsx("span", { className: "inline-flex" }),
|
|
337
|
+
children: badge
|
|
338
|
+
}), /* @__PURE__ */ jsx(TooltipContent, { children: "Outcome not recorded; status from error" })] }) });
|
|
339
|
+
}
|
|
340
|
+
const config = OUTCOME_CONFIG[outcome.toLowerCase()] ?? {
|
|
341
|
+
label: outcome,
|
|
342
|
+
variant: "neutral"
|
|
343
|
+
};
|
|
344
|
+
return /* @__PURE__ */ jsx(DataListCell, { children: /* @__PURE__ */ jsx(Badge, {
|
|
345
|
+
size: "xs",
|
|
346
|
+
variant: config.variant,
|
|
347
|
+
children: config.label
|
|
348
|
+
}) });
|
|
349
|
+
}
|
|
350
|
+
function TracesDataListStopReasonCell({ stopReason, stopReasonContext }) {
|
|
351
|
+
if (!stopReason) return /* @__PURE__ */ jsx(DataListCell, {});
|
|
352
|
+
const contextEntries = stopReasonContext ? Object.entries(stopReasonContext) : [];
|
|
353
|
+
if (contextEntries.length === 0) return /* @__PURE__ */ jsx(DataListTextCell, {
|
|
354
|
+
font: "mono",
|
|
355
|
+
children: stopReason
|
|
356
|
+
});
|
|
357
|
+
return /* @__PURE__ */ jsx(DataListCell, {
|
|
358
|
+
className: "flex items-center",
|
|
359
|
+
children: /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
360
|
+
render: /* @__PURE__ */ jsx("span", { className: "inline-flex min-w-0" }),
|
|
361
|
+
children: /* @__PURE__ */ jsx(Txt, {
|
|
362
|
+
as: "span",
|
|
363
|
+
variant: "body-sm",
|
|
364
|
+
tone: "muted",
|
|
365
|
+
font: "mono",
|
|
366
|
+
className: "truncate",
|
|
367
|
+
children: stopReason
|
|
368
|
+
})
|
|
369
|
+
}), /* @__PURE__ */ jsxs(TooltipContent, { children: [/* @__PURE__ */ jsx(Txt, {
|
|
370
|
+
as: "p",
|
|
371
|
+
variant: "body-sm",
|
|
372
|
+
font: "mono",
|
|
373
|
+
className: "mb-1",
|
|
374
|
+
children: stopReason
|
|
375
|
+
}), /* @__PURE__ */ jsx("dl", {
|
|
376
|
+
className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5",
|
|
377
|
+
children: contextEntries.map(([key, value]) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", { children: key }), /* @__PURE__ */ jsx("dd", { children: formatContextValue(value) })] }, key))
|
|
378
|
+
})] })] })
|
|
379
|
+
});
|
|
380
|
+
}
|
|
291
381
|
// src/ds/components/DataList/TracesDataList/traces-data-list.tsx
|
|
292
382
|
function TracesDataListRoot(props) {
|
|
293
383
|
return /* @__PURE__ */ jsx(DataListRoot, { ...props });
|
|
@@ -309,8 +399,10 @@ var TracesDataList = Object.assign(TracesDataListRoot, {
|
|
|
309
399
|
OutputCell: TracesDataListOutputCell,
|
|
310
400
|
TypeCell: TracesDataListTypeCell,
|
|
311
401
|
StatusCell: TracesDataListStatusCell,
|
|
402
|
+
OutcomeCell: TracesDataListOutcomeCell,
|
|
403
|
+
StopReasonCell: TracesDataListStopReasonCell,
|
|
312
404
|
NextPageLoading: DataListNextPageLoading
|
|
313
405
|
});
|
|
314
406
|
export { DataListSkeletonRows as i, ScoresDataList as n, DataListSkeleton as r, TracesDataList as t };
|
|
315
407
|
|
|
316
|
-
//# sourceMappingURL=DataList-
|
|
408
|
+
//# sourceMappingURL=DataList-2tIlQsLc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataList-2tIlQsLc.js","names":["WorkflowIcon","_Fragment"],"sources":["../src/ds/components/DataList/data-list-skeleton.tsx","../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { DataListCell } from './data-list-cells';\nimport { DataListRoot } from './data-list-root';\nimport type { DataListFit, DataListVariant } from './data-list-root';\nimport { DataListTop } from './data-list-top';\nimport { DataListTopCell } from './data-list-top-cell';\nimport { dataListRowOuterStyles, splitColumns } from './shared';\nimport { cn } from '@/lib/utils';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'] as const;\nconst headerWidths = ['3rem', '5rem', '4rem', '3.5rem', '4.5rem', '3rem'] as const;\n\nexport type DataListSkeletonProps = {\n columns?: string;\n numberOfRows?: number;\n fit?: DataListFit;\n variant?: DataListVariant;\n};\n\nfunction SkeletonBar({ width, className }: { width: string; className?: string }) {\n return (\n <div\n className={cn('h-4 animate-pulse rounded-lg bg-(--data-list-background) text-transparent select-none', className)}\n style={{ width }}\n />\n );\n}\n\nexport type DataListSkeletonRowsProps = {\n columnCount: number;\n numberOfRows?: number;\n};\n\n/**\n * Placeholder rows only, for lists that keep their real root and header while\n * loading (e.g. virtualized lists that must keep the same scroll container).\n */\nexport function DataListSkeletonRows({ columnCount, numberOfRows = 3 }: DataListSkeletonRowsProps) {\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;\n return widths[index] ?? widths[0];\n };\n\n return Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <div key={rowIdx} className={cn('data-list-cells grid grid-cols-subgrid gap-4 px-3', ...dataListRowOuterStyles)}>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListCell key={colIdx}>\n <SkeletonBar width={getPseudoRandomWidth(rowIdx, colIdx)} />\n </DataListCell>\n ))}\n </div>\n ));\n}\n\n/**\n * Loading placeholder mirroring the real list: same root, a sticky header\n * band with one placeholder label per column, then rows of placeholder cells.\n */\nexport function DataListSkeleton({\n columns = 'auto 1fr auto auto',\n numberOfRows = 3,\n fit,\n variant,\n}: DataListSkeletonProps) {\n const columnParts = splitColumns(columns);\n const columnCount = columnParts.length;\n const skeletonColumns = columnParts.map(col => (col === 'auto' ? 'minmax(6rem, auto)' : col)).join(' ');\n\n return (\n <DataListRoot columns={skeletonColumns} fit={fit} variant={variant}>\n <DataListTop>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListTopCell key={colIdx}>\n <SkeletonBar width={headerWidths[colIdx % headerWidths.length] ?? headerWidths[0]} className=\"h-3\" />\n </DataListTopCell>\n ))}\n </DataListTop>\n <DataListSkeletonRows columnCount={columnCount} numberOfRows={numberOfRows} />\n </DataListRoot>\n );\n}\n","import { DataListCell } from '../data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from '@/utils/date-format';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n return <DataListCell className=\"text-muted-foreground\">{formatDate(timestamp, 'date') ?? '-'}</DataListCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n return (\n <DataListCell className=\"text-body-sm text-muted-foreground\">{formatDate(timestamp, 'time') ?? '-'}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <Txt as=\"span\" variant=\"body-sm\" className=\"block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n","import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon, SplitIcon } from 'lucide-react';\nimport { Fragment } from 'react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// OutputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListOutputCellProps {\n output?: string;\n /** Shown instead of `output`, in the error color, when `status` is `'error'`. */\n error?: string;\n status?: string | null;\n}\n\nexport function TracesDataListOutputCell({ output, error, status }: TracesDataListOutputCellProps) {\n const failed = status === 'error';\n const errorColor = failed ? 'text-destructive-foreground' : undefined;\n return (\n <DataListTextCell font=\"mono\" className={errorColor}>\n {(failed ? error : output) || '-'}\n </DataListTextCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n classifier: { label: 'Classifier', Icon: SplitIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {display.label}\n </Txt>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'success' },\n ok: { label: 'OK', variant: 'success' },\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// OutcomeCell\n// ---------------------------------------------------------------------------\n\nconst OUTCOME_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n abort: { label: 'Abort', variant: 'warning' },\n interrupted: { label: 'Interrupted', variant: 'warning' },\n limit: { label: 'Limit', variant: 'orange' },\n blocked: { label: 'Blocked', variant: 'orange' },\n suspend: { label: 'Suspend', variant: 'info' },\n unknown: { label: 'Unknown', variant: 'neutral' },\n};\n\nconst formatContextValue = (value: unknown) => (typeof value === 'string' ? value : JSON.stringify(value));\n\nexport interface TracesDataListOutcomeCellProps {\n outcome?: string | null;\n /** Error-based status, shown when no outcome was recorded. */\n status?: string | null;\n}\n\nexport function TracesDataListOutcomeCell({ outcome, status }: TracesDataListOutcomeCellProps) {\n if (!outcome) {\n const config = STATUS_CONFIG[(status ?? 'unset').toLowerCase()] ?? UNSET_STATUS_CONFIG;\n const badge = (\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n );\n return (\n <DataListCell>\n {config === UNSET_STATUS_CONFIG ? (\n badge\n ) : (\n <Tooltip>\n <TooltipTrigger render={<span className=\"inline-flex\" />}>{badge}</TooltipTrigger>\n <TooltipContent>Outcome not recorded; status from error</TooltipContent>\n </Tooltip>\n )}\n </DataListCell>\n );\n }\n\n const config = OUTCOME_CONFIG[outcome.toLowerCase()] ?? { label: outcome, variant: 'neutral' };\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StopReasonCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListStopReasonCellProps {\n stopReason?: string | null;\n /** Listed as key/value pairs when hovering the stop reason. */\n stopReasonContext?: Record<string, unknown> | null;\n}\n\nexport function TracesDataListStopReasonCell({ stopReason, stopReasonContext }: TracesDataListStopReasonCellProps) {\n // Empty, so DataListCell shows its own placeholder.\n if (!stopReason) return <DataListCell />;\n\n const contextEntries = stopReasonContext ? Object.entries(stopReasonContext) : [];\n if (contextEntries.length === 0) {\n return <DataListTextCell font=\"mono\">{stopReason}</DataListTextCell>;\n }\n\n return (\n <DataListCell className=\"flex items-center\">\n <Tooltip>\n <TooltipTrigger render={<span className=\"inline-flex min-w-0\" />}>\n <Txt as=\"span\" variant=\"body-sm\" tone=\"muted\" font=\"mono\" className=\"truncate\">\n {stopReason}\n </Txt>\n </TooltipTrigger>\n <TooltipContent>\n {/* The cell can truncate long reasons like `context_window_exceeded`, so name it here too. */}\n <Txt as=\"p\" variant=\"body-sm\" font=\"mono\" className=\"mb-1\">\n {stopReason}\n </Txt>\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5\">\n {contextEntries.map(([key, value]) => (\n <Fragment key={key}>\n <dt>{key}</dt>\n <dd>{formatContextValue(value)}</dd>\n </Fragment>\n ))}\n </dl>\n </TooltipContent>\n </Tooltip>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListOutputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n TracesDataListOutcomeCell,\n TracesDataListStopReasonCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n OutputCell: TracesDataListOutputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n OutcomeCell: TracesDataListOutcomeCell,\n StopReasonCell: TracesDataListStopReasonCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ const require_icons_ProcessorIcon = require("./icons/ProcessorIcon.cjs.js");
|
|
|
11
11
|
const require_icons_ScorersIcon = require("./icons/ScorersIcon.cjs.js");
|
|
12
12
|
const require_Badge = require("./Badge-DZ6r6bcw.cjs");
|
|
13
13
|
const require_data_list = require("./data-list-BkimqE_P.cjs");
|
|
14
|
+
let react = require("react");
|
|
14
15
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
15
16
|
let lucide_react = require("lucide-react");
|
|
16
17
|
// src/ds/components/DataList/data-list-skeleton.tsx
|
|
@@ -288,6 +289,95 @@ function TracesDataListStatusCell({ status }) {
|
|
|
288
289
|
children: config.label
|
|
289
290
|
}) });
|
|
290
291
|
}
|
|
292
|
+
var OUTCOME_CONFIG = {
|
|
293
|
+
success: {
|
|
294
|
+
label: "OK",
|
|
295
|
+
variant: "success"
|
|
296
|
+
},
|
|
297
|
+
error: {
|
|
298
|
+
label: "ERR",
|
|
299
|
+
variant: "destructive"
|
|
300
|
+
},
|
|
301
|
+
abort: {
|
|
302
|
+
label: "Abort",
|
|
303
|
+
variant: "warning"
|
|
304
|
+
},
|
|
305
|
+
interrupted: {
|
|
306
|
+
label: "Interrupted",
|
|
307
|
+
variant: "warning"
|
|
308
|
+
},
|
|
309
|
+
limit: {
|
|
310
|
+
label: "Limit",
|
|
311
|
+
variant: "orange"
|
|
312
|
+
},
|
|
313
|
+
blocked: {
|
|
314
|
+
label: "Blocked",
|
|
315
|
+
variant: "orange"
|
|
316
|
+
},
|
|
317
|
+
suspend: {
|
|
318
|
+
label: "Suspend",
|
|
319
|
+
variant: "info"
|
|
320
|
+
},
|
|
321
|
+
unknown: {
|
|
322
|
+
label: "Unknown",
|
|
323
|
+
variant: "neutral"
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
var formatContextValue = (value) => typeof value === "string" ? value : JSON.stringify(value);
|
|
327
|
+
function TracesDataListOutcomeCell({ outcome, status }) {
|
|
328
|
+
if (!outcome) {
|
|
329
|
+
const config = STATUS_CONFIG[(status ?? "unset").toLowerCase()] ?? UNSET_STATUS_CONFIG;
|
|
330
|
+
const badge = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Badge.Badge, {
|
|
331
|
+
size: "xs",
|
|
332
|
+
variant: config.variant,
|
|
333
|
+
children: config.label
|
|
334
|
+
});
|
|
335
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_data_list.DataListCell, { children: config === UNSET_STATUS_CONFIG ? badge : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipTrigger, {
|
|
336
|
+
render: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "inline-flex" }),
|
|
337
|
+
children: badge
|
|
338
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipContent, { children: "Outcome not recorded; status from error" })] }) });
|
|
339
|
+
}
|
|
340
|
+
const config = OUTCOME_CONFIG[outcome.toLowerCase()] ?? {
|
|
341
|
+
label: outcome,
|
|
342
|
+
variant: "neutral"
|
|
343
|
+
};
|
|
344
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_data_list.DataListCell, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Badge.Badge, {
|
|
345
|
+
size: "xs",
|
|
346
|
+
variant: config.variant,
|
|
347
|
+
children: config.label
|
|
348
|
+
}) });
|
|
349
|
+
}
|
|
350
|
+
function TracesDataListStopReasonCell({ stopReason, stopReasonContext }) {
|
|
351
|
+
if (!stopReason) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_data_list.DataListCell, {});
|
|
352
|
+
const contextEntries = stopReasonContext ? Object.entries(stopReasonContext) : [];
|
|
353
|
+
if (contextEntries.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_data_list.DataListTextCell, {
|
|
354
|
+
font: "mono",
|
|
355
|
+
children: stopReason
|
|
356
|
+
});
|
|
357
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_data_list.DataListCell, {
|
|
358
|
+
className: "flex items-center",
|
|
359
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.Tooltip, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tooltip.TooltipTrigger, {
|
|
360
|
+
render: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "inline-flex min-w-0" }),
|
|
361
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
362
|
+
as: "span",
|
|
363
|
+
variant: "body-sm",
|
|
364
|
+
tone: "muted",
|
|
365
|
+
font: "mono",
|
|
366
|
+
className: "truncate",
|
|
367
|
+
children: stopReason
|
|
368
|
+
})
|
|
369
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_tooltip.TooltipContent, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
370
|
+
as: "p",
|
|
371
|
+
variant: "body-sm",
|
|
372
|
+
font: "mono",
|
|
373
|
+
className: "mb-1",
|
|
374
|
+
children: stopReason
|
|
375
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dl", {
|
|
376
|
+
className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5",
|
|
377
|
+
children: contextEntries.map(([key, value]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("dt", { children: key }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dd", { children: formatContextValue(value) })] }, key))
|
|
378
|
+
})] })] })
|
|
379
|
+
});
|
|
380
|
+
}
|
|
291
381
|
// src/ds/components/DataList/TracesDataList/traces-data-list.tsx
|
|
292
382
|
function TracesDataListRoot(props) {
|
|
293
383
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_data_list.DataListRoot, { ...props });
|
|
@@ -309,6 +399,8 @@ var TracesDataList = Object.assign(TracesDataListRoot, {
|
|
|
309
399
|
OutputCell: TracesDataListOutputCell,
|
|
310
400
|
TypeCell: TracesDataListTypeCell,
|
|
311
401
|
StatusCell: TracesDataListStatusCell,
|
|
402
|
+
OutcomeCell: TracesDataListOutcomeCell,
|
|
403
|
+
StopReasonCell: TracesDataListStopReasonCell,
|
|
312
404
|
NextPageLoading: require_data_list.DataListNextPageLoading
|
|
313
405
|
});
|
|
314
406
|
Object.defineProperty(exports, "DataListSkeleton", {
|
|
@@ -336,4 +428,4 @@ Object.defineProperty(exports, "TracesDataList", {
|
|
|
336
428
|
}
|
|
337
429
|
});
|
|
338
430
|
|
|
339
|
-
//# sourceMappingURL=DataList-
|
|
431
|
+
//# sourceMappingURL=DataList-Czwmwyvp.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataList-Czwmwyvp.cjs","names":["cn","dataListRowOuterStyles","DataListCell","splitColumns","DataListRoot","DataListTop","DataListTopCell","DataListCell","formatDate","Txt","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListRowButton","DataListNoMatch","DataListNextPageLoading","ListTreeIcon","CornerDownRightIcon","cn","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","ToolsIcon","ScorersIcon","SplitIcon","MemoryIcon","McpServerIcon","ProcessorIcon","DatabaseIcon","RouteIcon","_Fragment","Txt","Badge","Fragment","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"sources":["../src/ds/components/DataList/data-list-skeleton.tsx","../src/ds/components/DataList/ScoresDataList/scores-data-list-cells.tsx","../src/ds/components/DataList/ScoresDataList/scores-data-list.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { DataListCell } from './data-list-cells';\nimport { DataListRoot } from './data-list-root';\nimport type { DataListFit, DataListVariant } from './data-list-root';\nimport { DataListTop } from './data-list-top';\nimport { DataListTopCell } from './data-list-top-cell';\nimport { dataListRowOuterStyles, splitColumns } from './shared';\nimport { cn } from '@/lib/utils';\n\nconst widths = ['75%', '50%', '65%', '90%', '60%', '80%'] as const;\nconst headerWidths = ['3rem', '5rem', '4rem', '3.5rem', '4.5rem', '3rem'] as const;\n\nexport type DataListSkeletonProps = {\n columns?: string;\n numberOfRows?: number;\n fit?: DataListFit;\n variant?: DataListVariant;\n};\n\nfunction SkeletonBar({ width, className }: { width: string; className?: string }) {\n return (\n <div\n className={cn('h-4 animate-pulse rounded-lg bg-(--data-list-background) text-transparent select-none', className)}\n style={{ width }}\n />\n );\n}\n\nexport type DataListSkeletonRowsProps = {\n columnCount: number;\n numberOfRows?: number;\n};\n\n/**\n * Placeholder rows only, for lists that keep their real root and header while\n * loading (e.g. virtualized lists that must keep the same scroll container).\n */\nexport function DataListSkeletonRows({ columnCount, numberOfRows = 3 }: DataListSkeletonRowsProps) {\n const getPseudoRandomWidth = (rowIdx: number, colIdx: number) => {\n const index = (rowIdx + colIdx + columnCount + numberOfRows) % widths.length;\n return widths[index] ?? widths[0];\n };\n\n return Array.from({ length: numberOfRows }).map((_, rowIdx) => (\n <div key={rowIdx} className={cn('data-list-cells grid grid-cols-subgrid gap-4 px-3', ...dataListRowOuterStyles)}>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListCell key={colIdx}>\n <SkeletonBar width={getPseudoRandomWidth(rowIdx, colIdx)} />\n </DataListCell>\n ))}\n </div>\n ));\n}\n\n/**\n * Loading placeholder mirroring the real list: same root, a sticky header\n * band with one placeholder label per column, then rows of placeholder cells.\n */\nexport function DataListSkeleton({\n columns = 'auto 1fr auto auto',\n numberOfRows = 3,\n fit,\n variant,\n}: DataListSkeletonProps) {\n const columnParts = splitColumns(columns);\n const columnCount = columnParts.length;\n const skeletonColumns = columnParts.map(col => (col === 'auto' ? 'minmax(6rem, auto)' : col)).join(' ');\n\n return (\n <DataListRoot columns={skeletonColumns} fit={fit} variant={variant}>\n <DataListTop>\n {Array.from({ length: columnCount }).map((_, colIdx) => (\n <DataListTopCell key={colIdx}>\n <SkeletonBar width={headerWidths[colIdx % headerWidths.length] ?? headerWidths[0]} className=\"h-3\" />\n </DataListTopCell>\n ))}\n </DataListTop>\n <DataListSkeletonRows columnCount={columnCount} numberOfRows={numberOfRows} />\n </DataListRoot>\n );\n}\n","import { DataListCell } from '../data-list-cells';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate } from '@/utils/date-format';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// ---------------------------------------------------------------------------\n// DateCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListDateCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListDateCell({ timestamp }: ScoresDataListDateCellProps) {\n return <DataListCell className=\"text-muted-foreground\">{formatDate(timestamp, 'date') ?? '-'}</DataListCell>;\n}\n\n// ---------------------------------------------------------------------------\n// TimeCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListTimeCellProps {\n timestamp: Date | string;\n}\n\nexport function ScoresDataListTimeCell({ timestamp }: ScoresDataListTimeCellProps) {\n return (\n <DataListCell className=\"text-body-sm text-muted-foreground\">{formatDate(timestamp, 'time') ?? '-'}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListInputCellProps {\n input?: unknown;\n}\n\nexport function ScoresDataListInputCell({ input }: ScoresDataListInputCellProps) {\n const display = input != null ? JSON.stringify(input) : '-';\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListEntityCellProps {\n entityId?: string | null;\n}\n\nexport function ScoresDataListEntityCell({ entityId }: ScoresDataListEntityCellProps) {\n const display = entityId || '-';\n return (\n <DataListCell>\n <Txt as=\"span\" variant=\"body-sm\" className=\"block max-w-full min-w-0 truncate\" title={display}>\n {display}\n </Txt>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ScoreCell\n// ---------------------------------------------------------------------------\n\nexport interface ScoresDataListScoreCellProps {\n score?: unknown;\n}\n\nexport function ScoresDataListScoreCell({ score }: ScoresDataListScoreCellProps) {\n const display = score == null ? '-' : typeof score === 'object' ? JSON.stringify(score) : String(score);\n return (\n <DataListCell>\n <Txt\n as=\"span\"\n variant=\"body-sm\"\n tone=\"muted\"\n font=\"mono\"\n className=\"block max-w-full min-w-0 truncate\"\n title={display}\n >\n {display}\n </Txt>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell } from '../data-list-top-cell';\nimport {\n ScoresDataListDateCell,\n ScoresDataListTimeCell,\n ScoresDataListInputCell,\n ScoresDataListEntityCell,\n ScoresDataListScoreCell,\n} from './scores-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as TracesDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as TracesDataList\nfunction ScoresDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const ScoresDataList = Object.assign(ScoresDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n NextPageLoading: DataListNextPageLoading,\n DateCell: ScoresDataListDateCell,\n TimeCell: ScoresDataListTimeCell,\n InputCell: ScoresDataListInputCell,\n EntityCell: ScoresDataListEntityCell,\n ScoreCell: ScoresDataListScoreCell,\n});\n","import { CornerDownRightIcon, DatabaseIcon, ListTreeIcon, RouteIcon, SplitIcon } from 'lucide-react';\nimport { Fragment } from 'react';\nimport type { ComponentType, SVGProps } from 'react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { McpServerIcon } from '@/ds/icons/McpServerIcon';\nimport { MemoryIcon } from '@/ds/icons/MemoryIcon';\nimport { ProcessorIcon } from '@/ds/icons/ProcessorIcon';\nimport { ScorersIcon } from '@/ds/icons/ScorersIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-muted-foreground' : 'text-placeholder')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2 text-body-sm text-muted-foreground\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// OutputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListOutputCellProps {\n output?: string;\n /** Shown instead of `output`, in the error color, when `status` is `'error'`. */\n error?: string;\n status?: string | null;\n}\n\nexport function TracesDataListOutputCell({ output, error, status }: TracesDataListOutputCellProps) {\n const failed = status === 'error';\n const errorColor = failed ? 'text-destructive-foreground' : undefined;\n return (\n <DataListTextCell font=\"mono\" className={errorColor}>\n {(failed ? error : output) || '-'}\n </DataListTextCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TypeCell\n// ---------------------------------------------------------------------------\n\ntype EntityTypeDisplay = { label: string; Icon: ComponentType<SVGProps<SVGSVGElement>> };\n\n// Keys are lowercase `EntityType` enum values (plus legacy `workflow`).\nconst ENTITY_TYPE_DISPLAY: Record<string, EntityTypeDisplay> = {\n agent: { label: 'Agent', Icon: AgentIcon },\n workflow: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_run: { label: 'Workflow', Icon: WorkflowIcon },\n workflow_step: { label: 'Step', Icon: WorkflowIcon },\n tool: { label: 'Tool', Icon: ToolsIcon },\n scorer: { label: 'Scorer', Icon: ScorersIcon },\n classifier: { label: 'Classifier', Icon: SplitIcon },\n memory: { label: 'Memory', Icon: MemoryIcon },\n mcp_server: { label: 'MCP Server', Icon: McpServerIcon },\n input_processor: { label: 'Processor', Icon: ProcessorIcon },\n input_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_processor: { label: 'Processor', Icon: ProcessorIcon },\n output_step_processor: { label: 'Processor', Icon: ProcessorIcon },\n tool_result_processor: { label: 'Processor', Icon: ProcessorIcon },\n rag_ingestion: { label: 'RAG', Icon: DatabaseIcon },\n trajectory: { label: 'Trajectory', Icon: RouteIcon },\n};\n\nexport interface TracesDataListTypeCellProps {\n entityType?: string | null;\n}\n\nexport function TracesDataListTypeCell({ entityType }: TracesDataListTypeCellProps) {\n const display = entityType ? ENTITY_TYPE_DISPLAY[entityType.toLowerCase()] : undefined;\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n {display ? (\n <>\n <display.Icon className=\"size-3.5 shrink-0 text-placeholder\" aria-hidden />\n <Txt as=\"span\" variant=\"body-sm\" className=\"min-w-0 truncate\">\n {display.label}\n </Txt>\n </>\n ) : (\n '-'\n )}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'success' },\n ok: { label: 'OK', variant: 'success' },\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// OutcomeCell\n// ---------------------------------------------------------------------------\n\nconst OUTCOME_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n success: { label: 'OK', variant: 'success' },\n error: { label: 'ERR', variant: 'destructive' },\n abort: { label: 'Abort', variant: 'warning' },\n interrupted: { label: 'Interrupted', variant: 'warning' },\n limit: { label: 'Limit', variant: 'orange' },\n blocked: { label: 'Blocked', variant: 'orange' },\n suspend: { label: 'Suspend', variant: 'info' },\n unknown: { label: 'Unknown', variant: 'neutral' },\n};\n\nconst formatContextValue = (value: unknown) => (typeof value === 'string' ? value : JSON.stringify(value));\n\nexport interface TracesDataListOutcomeCellProps {\n outcome?: string | null;\n /** Error-based status, shown when no outcome was recorded. */\n status?: string | null;\n}\n\nexport function TracesDataListOutcomeCell({ outcome, status }: TracesDataListOutcomeCellProps) {\n if (!outcome) {\n const config = STATUS_CONFIG[(status ?? 'unset').toLowerCase()] ?? UNSET_STATUS_CONFIG;\n const badge = (\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n );\n return (\n <DataListCell>\n {config === UNSET_STATUS_CONFIG ? (\n badge\n ) : (\n <Tooltip>\n <TooltipTrigger render={<span className=\"inline-flex\" />}>{badge}</TooltipTrigger>\n <TooltipContent>Outcome not recorded; status from error</TooltipContent>\n </Tooltip>\n )}\n </DataListCell>\n );\n }\n\n const config = OUTCOME_CONFIG[outcome.toLowerCase()] ?? { label: outcome, variant: 'neutral' };\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StopReasonCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListStopReasonCellProps {\n stopReason?: string | null;\n /** Listed as key/value pairs when hovering the stop reason. */\n stopReasonContext?: Record<string, unknown> | null;\n}\n\nexport function TracesDataListStopReasonCell({ stopReason, stopReasonContext }: TracesDataListStopReasonCellProps) {\n // Empty, so DataListCell shows its own placeholder.\n if (!stopReason) return <DataListCell />;\n\n const contextEntries = stopReasonContext ? Object.entries(stopReasonContext) : [];\n if (contextEntries.length === 0) {\n return <DataListTextCell font=\"mono\">{stopReason}</DataListTextCell>;\n }\n\n return (\n <DataListCell className=\"flex items-center\">\n <Tooltip>\n <TooltipTrigger render={<span className=\"inline-flex min-w-0\" />}>\n <Txt as=\"span\" variant=\"body-sm\" tone=\"muted\" font=\"mono\" className=\"truncate\">\n {stopReason}\n </Txt>\n </TooltipTrigger>\n <TooltipContent>\n {/* The cell can truncate long reasons like `context_window_exceeded`, so name it here too. */}\n <Txt as=\"p\" variant=\"body-sm\" font=\"mono\" className=\"mb-1\">\n {stopReason}\n </Txt>\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5\">\n {contextEntries.map(([key, value]) => (\n <Fragment key={key}>\n <dt>{key}</dt>\n <dd>{formatContextValue(value)}</dd>\n </Fragment>\n ))}\n </dl>\n </TooltipContent>\n </Tooltip>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSortableTopCell } from '../data-list-sortable-top-cell';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListOutputCell,\n TracesDataListTypeCell,\n TracesDataListStatusCell,\n TracesDataListOutcomeCell,\n TracesDataListStopReasonCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n OutputCell: TracesDataListOutputCell,\n TypeCell: TracesDataListTypeCell,\n StatusCell: TracesDataListStatusCell,\n OutcomeCell: TracesDataListOutcomeCell,\n StopReasonCell: TracesDataListStopReasonCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"mappings":"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"}
|
|
@@ -175,6 +175,27 @@ var DATE_PRESETS = [
|
|
|
175
175
|
label: "Custom range..."
|
|
176
176
|
}
|
|
177
177
|
];
|
|
178
|
+
var fmtClock = (d) => d.toLocaleTimeString("en-US", d.getMinutes() === 0 ? { hour: "numeric" } : {
|
|
179
|
+
hour: "numeric",
|
|
180
|
+
minute: "2-digit"
|
|
181
|
+
});
|
|
182
|
+
/**
|
|
183
|
+
* A custom range as day and time, kept short: `Oct 21, 2:05 PM – 4 PM` within one day,
|
|
184
|
+
* `Oct 20, 12 AM – Oct 27, 9:30 AM` across days, with years only outside the current one.
|
|
185
|
+
*/
|
|
186
|
+
function customRangeLabel(dateFrom, dateTo) {
|
|
187
|
+
const thisYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
188
|
+
const withYear = [dateFrom, dateTo].some((d) => d && d.getFullYear() !== thisYear);
|
|
189
|
+
const fmtDay = (d) => d.toLocaleDateString("en-US", {
|
|
190
|
+
month: "short",
|
|
191
|
+
day: "numeric",
|
|
192
|
+
...withYear && { year: "numeric" }
|
|
193
|
+
});
|
|
194
|
+
const fmtMoment = (d) => `${fmtDay(d)}, ${fmtClock(d)}`;
|
|
195
|
+
const start = dateFrom ? fmtMoment(dateFrom) : "Start";
|
|
196
|
+
if (!dateTo) return `${start} \u2013 End`;
|
|
197
|
+
return `${start} \u2013 ${dateFrom !== void 0 && fmtDay(dateFrom) === fmtDay(dateTo) ? fmtClock(dateTo) : fmtMoment(dateTo)}`;
|
|
198
|
+
}
|
|
178
199
|
function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, size = "md", renderTrigger }) {
|
|
179
200
|
const visiblePresets = presets ? DATE_PRESETS.filter((p) => presets.includes(p.value)) : DATE_PRESETS;
|
|
180
201
|
const [customRangeOpen, setCustomRangeOpen] = useState(false);
|
|
@@ -218,7 +239,7 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
218
239
|
if (presetBeforeCustom) applyPreset(presetBeforeCustom);
|
|
219
240
|
setPresetMenuOpen(true);
|
|
220
241
|
};
|
|
221
|
-
const customLabel =
|
|
242
|
+
const customLabel = customRangeLabel(dateFrom, dateTo);
|
|
222
243
|
if (shownPreset === "custom" && !presetMenuOpen) return /* @__PURE__ */ jsxs(Popover, {
|
|
223
244
|
open: customRangeOpen,
|
|
224
245
|
onOpenChange: setCustomRangeOpen,
|
|
@@ -278,4 +299,4 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
278
299
|
}
|
|
279
300
|
export { DateTimeRangePicker as t };
|
|
280
301
|
|
|
281
|
-
//# sourceMappingURL=DateTimeRangePicker-
|
|
302
|
+
//# sourceMappingURL=DateTimeRangePicker-C_Lie_2P.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeRangePicker-C_Lie_2P.js","names":["_Fragment"],"sources":["../src/ds/components/DateTimeRangePicker/custom-range-editor.tsx","../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { format, isValid, parse, startOfDay } from 'date-fns';\nimport { Check } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { Field, FieldError } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nfunction formatDays(ms: number): string {\n const days = Math.round(ms / (24 * 60 * 60 * 1000));\n return `${days} day${days === 1 ? '' : 's'}`;\n}\n\n/** The draft day at the draft time, or the bare day when the time doesn't parse. */\nfunction combineDateAndTime(date: Date | undefined, timeStr: string): Date | undefined {\n if (!date) return undefined;\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : date;\n}\n\nexport interface CustomRangeEditorProps {\n dateFrom?: Date;\n dateTo?: Date;\n disabled?: boolean;\n /** Widest range that can be applied, in milliseconds. */\n maxRangeMs?: number;\n /** Earliest day a range can start on. Days before it are disabled. */\n minDate?: Date;\n onApply: (from: Date | undefined, to: Date | undefined) => void;\n onShowPresets: () => void;\n}\n\n/**\n * The custom range popover body. It mounts each time the popover opens, so its drafts\n * start from the current range without the picker resetting them.\n */\nexport function CustomRangeEditor({\n dateFrom,\n dateTo,\n disabled,\n maxRangeMs,\n minDate,\n onApply,\n onShowPresets,\n}: CustomRangeEditorProps) {\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [applyAttempted, setApplyAttempted] = useState(false);\n const errorId = useId();\n\n const fromDate = combineDateAndTime(draftDateFrom, draftTimeFrom);\n const toDate = combineDateAndTime(draftDateTo, draftTimeTo);\n const rangeReversed = fromDate !== undefined && toDate !== undefined && fromDate.getTime() > toDate.getTime();\n const rangeTooWide =\n fromDate !== undefined && toDate !== undefined && toDate.getTime() - fromDate.getTime() > (maxRangeMs ?? Infinity);\n const firstDay = minDate ? startOfDay(minDate) : undefined;\n const endFirstDay = draftDateFrom && (!firstDay || draftDateFrom > firstDay) ? draftDateFrom : firstDay;\n const rangeTooEarly = fromDate !== undefined && firstDay !== undefined && fromDate < firstDay;\n const rangeInvalid = rangeReversed || rangeTooWide || rangeTooEarly;\n // Shown after a failed Apply, and gone as soon as the drafts form a valid range again.\n let error: string | undefined;\n if (applyAttempted && rangeReversed) error = 'Start date/time must be before end date/time';\n else if (applyAttempted && rangeTooWide) error = `Range cannot be longer than ${formatDays(maxRangeMs ?? 0)}`;\n else if (applyAttempted && firstDay && rangeTooEarly)\n error = `Range cannot start before ${format(firstDay, 'MMM d, yyyy')}`;\n\n const apply = () => {\n if (rangeInvalid) {\n setApplyAttempted(true);\n return;\n }\n onApply(fromDate, toDate);\n };\n\n return (\n <>\n <div\n role=\"group\"\n aria-label=\"Custom date range\"\n aria-invalid={error ? true : undefined}\n aria-describedby={error ? errorId : undefined}\n className=\"flex\"\n >\n <div className={cn('border-r border-border')}>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n Start\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n fromDate={firstDay}\n toDate={draftDateTo}\n />\n <TimePicker\n label=\"Start time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n End\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={endFirstDay}\n />\n <TimePicker\n label=\"End time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n <Field invalid={Boolean(error)}>\n <FieldError id={errorId} className=\"px-4 pb-1\">\n {error}\n </FieldError>\n </Field>\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <Button variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={onShowPresets}>\n ← Presets\n </Button>\n <Button icon={<Check />} variant=\"primary\" size=\"sm\" onClick={apply} disabled={disabled}>\n Apply\n </Button>\n </div>\n </>\n );\n}\n","import { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport type { ReactElement } from 'react';\nimport { CustomRangeEditor } from './custom-range-editor';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nconst fmtClock = (d: Date) =>\n d.toLocaleTimeString('en-US', d.getMinutes() === 0 ? { hour: 'numeric' } : { hour: 'numeric', minute: '2-digit' });\n\n/**\n * A custom range as day and time, kept short: `Oct 21, 2:05 PM – 4 PM` within one day,\n * `Oct 20, 12 AM – Oct 27, 9:30 AM` across days, with years only outside the current one.\n */\nfunction customRangeLabel(dateFrom: Date | undefined, dateTo: Date | undefined) {\n const thisYear = new Date().getFullYear();\n const withYear = [dateFrom, dateTo].some(d => d && d.getFullYear() !== thisYear);\n const fmtDay = (d: Date) =>\n d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', ...(withYear && { year: 'numeric' }) });\n const fmtMoment = (d: Date) => `${fmtDay(d)}, ${fmtClock(d)}`;\n\n const start = dateFrom ? fmtMoment(dateFrom) : 'Start';\n if (!dateTo) return `${start} \\u2013 End`;\n const sameDay = dateFrom !== undefined && fmtDay(dateFrom) === fmtDay(dateTo);\n return `${start} \\u2013 ${sameDay ? fmtClock(dateTo) : fmtMoment(dateTo)}`;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n /**\n * Called once with both ends when a custom range is applied. When provided it replaces\n * the two `onDateChange` calls for that step, so consumers can write the range atomically.\n */\n onDateRangeChange?: (from: Date | undefined, to: Date | undefined) => void;\n disabled?: boolean;\n /** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */\n maxRangeMs?: number;\n /** Earliest day a custom range can start on, e.g. the oldest data still kept. Earlier days are disabled. */\n minDate?: Date;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n /**\n * Replace the default Button trigger. Receives the current label (preset name or\n * custom range) and must return an element the menu/popover can attach to.\n */\n renderTrigger?: (props: { label: string; disabled?: boolean }) => ReactElement;\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n onDateRangeChange,\n disabled,\n maxRangeMs,\n minDate,\n presets,\n size = 'md',\n renderTrigger,\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [presetMenuOpen, setPresetMenuOpen] = useState(false);\n // The preset active before \"Custom range...\" was picked, until a range is applied.\n // \"← Presets\" restores it instead of jumping to the first preset in the list.\n const [presetBeforeCustom, setPresetBeforeCustom] = useState<DateRangePreset | undefined>();\n\n // \"← Presets\" restores the previous preset through the parent, which may apply it a\n // render later (e.g. a router URL update). Show it right away instead of \"custom\".\n const restoringPreset = presetMenuOpen && preset === 'custom' ? presetBeforeCustom : undefined;\n const shownPreset = restoringPreset ?? preset;\n const datePresetLabel = DATE_PRESETS.find(p => p.value === shownPreset)?.label ?? 'All';\n\n const applyPreset = (value: DateRangePreset) => {\n onPresetChange?.(value);\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const handlePresetSelect = (value: DateRangePreset) => {\n setPresetMenuOpen(false);\n if (value === 'custom') {\n if (preset !== 'custom') setPresetBeforeCustom(preset);\n onPresetChange?.(value);\n setCustomRangeOpen(true);\n return;\n }\n setPresetBeforeCustom(undefined);\n applyPreset(value);\n };\n\n const applyCustomRange = (fromDate: Date | undefined, toDate: Date | undefined) => {\n if (onDateRangeChange) {\n onDateRangeChange(fromDate, toDate);\n } else {\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n }\n setPresetBeforeCustom(undefined);\n setCustomRangeOpen(false);\n };\n\n // Back to the preset list. Restores the preset the user came from; an applied custom\n // range matches no preset, so it stays and the list shows \"Custom range...\" as current.\n const showPresets = () => {\n setCustomRangeOpen(false);\n if (presetBeforeCustom) applyPreset(presetBeforeCustom);\n setPresetMenuOpen(true);\n };\n\n const customLabel = customRangeLabel(dateFrom, dateTo);\n\n if (shownPreset === 'custom' && !presetMenuOpen) {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n {renderTrigger ? (\n <PopoverTrigger render={renderTrigger({ label: customLabel, disabled })} />\n ) : (\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled} icon={<CalendarIcon />}>\n {customLabel}\n </Button>\n </PopoverTrigger>\n )}\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <CustomRangeEditor\n dateFrom={dateFrom}\n dateTo={dateTo}\n disabled={disabled}\n maxRangeMs={maxRangeMs}\n minDate={minDate}\n onApply={applyCustomRange}\n onShowPresets={showPresets}\n />\n </PopoverContent>\n </Popover>\n );\n }\n\n const triggerLabel = shownPreset === 'custom' ? customLabel : datePresetLabel;\n\n return (\n <DropdownMenu open={presetMenuOpen} onOpenChange={setPresetMenuOpen}>\n {renderTrigger ? (\n <DropdownMenu.Trigger render={renderTrigger({ label: triggerLabel, disabled })} />\n ) : (\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled} icon={<CalendarIcon />}>\n {triggerLabel}\n </Button>\n </DropdownMenu.Trigger>\n )}\n <DropdownMenu.Content align=\"start\">\n {/* Items select on click (not onValueChange) so re-picking the checked\n \"Custom range...\" still reopens the range editor. */}\n <DropdownMenu.RadioGroup value={shownPreset}>\n {visiblePresets.map(p => (\n <DropdownMenu.RadioItem\n key={p.value}\n value={p.value}\n closeOnClick\n onClick={() => handlePresetSelect(p.value)}\n >\n {p.label}\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"mappings":"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"}
|
|
@@ -175,6 +175,27 @@ var DATE_PRESETS = [
|
|
|
175
175
|
label: "Custom range..."
|
|
176
176
|
}
|
|
177
177
|
];
|
|
178
|
+
var fmtClock = (d) => d.toLocaleTimeString("en-US", d.getMinutes() === 0 ? { hour: "numeric" } : {
|
|
179
|
+
hour: "numeric",
|
|
180
|
+
minute: "2-digit"
|
|
181
|
+
});
|
|
182
|
+
/**
|
|
183
|
+
* A custom range as day and time, kept short: `Oct 21, 2:05 PM – 4 PM` within one day,
|
|
184
|
+
* `Oct 20, 12 AM – Oct 27, 9:30 AM` across days, with years only outside the current one.
|
|
185
|
+
*/
|
|
186
|
+
function customRangeLabel(dateFrom, dateTo) {
|
|
187
|
+
const thisYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
188
|
+
const withYear = [dateFrom, dateTo].some((d) => d && d.getFullYear() !== thisYear);
|
|
189
|
+
const fmtDay = (d) => d.toLocaleDateString("en-US", {
|
|
190
|
+
month: "short",
|
|
191
|
+
day: "numeric",
|
|
192
|
+
...withYear && { year: "numeric" }
|
|
193
|
+
});
|
|
194
|
+
const fmtMoment = (d) => `${fmtDay(d)}, ${fmtClock(d)}`;
|
|
195
|
+
const start = dateFrom ? fmtMoment(dateFrom) : "Start";
|
|
196
|
+
if (!dateTo) return `${start} \u2013 End`;
|
|
197
|
+
return `${start} \u2013 ${dateFrom !== void 0 && fmtDay(dateFrom) === fmtDay(dateTo) ? fmtClock(dateTo) : fmtMoment(dateTo)}`;
|
|
198
|
+
}
|
|
178
199
|
function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, size = "md", renderTrigger }) {
|
|
179
200
|
const visiblePresets = presets ? DATE_PRESETS.filter((p) => presets.includes(p.value)) : DATE_PRESETS;
|
|
180
201
|
const [customRangeOpen, setCustomRangeOpen] = (0, react.useState)(false);
|
|
@@ -218,7 +239,7 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
218
239
|
if (presetBeforeCustom) applyPreset(presetBeforeCustom);
|
|
219
240
|
setPresetMenuOpen(true);
|
|
220
241
|
};
|
|
221
|
-
const customLabel =
|
|
242
|
+
const customLabel = customRangeLabel(dateFrom, dateTo);
|
|
222
243
|
if (shownPreset === "custom" && !presetMenuOpen) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_popover.Popover, {
|
|
223
244
|
open: customRangeOpen,
|
|
224
245
|
onOpenChange: setCustomRangeOpen,
|
|
@@ -283,4 +304,4 @@ Object.defineProperty(exports, "DateTimeRangePicker", {
|
|
|
283
304
|
}
|
|
284
305
|
});
|
|
285
306
|
|
|
286
|
-
//# sourceMappingURL=DateTimeRangePicker-
|
|
307
|
+
//# sourceMappingURL=DateTimeRangePicker-HmPOHwAQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeRangePicker-HmPOHwAQ.cjs","names":["parse","isValid","useState","useId","startOfDay","format","_Fragment","cn","Txt","DatePicker","TimePicker","Field","FieldError","Button","Check","useState","Popover","PopoverTrigger","Button","CalendarIcon","PopoverContent","cn","DropdownMenu"],"sources":["../src/ds/components/DateTimeRangePicker/custom-range-editor.tsx","../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { format, isValid, parse, startOfDay } from 'date-fns';\nimport { Check } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { Field, FieldError } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nfunction formatDays(ms: number): string {\n const days = Math.round(ms / (24 * 60 * 60 * 1000));\n return `${days} day${days === 1 ? '' : 's'}`;\n}\n\n/** The draft day at the draft time, or the bare day when the time doesn't parse. */\nfunction combineDateAndTime(date: Date | undefined, timeStr: string): Date | undefined {\n if (!date) return undefined;\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : date;\n}\n\nexport interface CustomRangeEditorProps {\n dateFrom?: Date;\n dateTo?: Date;\n disabled?: boolean;\n /** Widest range that can be applied, in milliseconds. */\n maxRangeMs?: number;\n /** Earliest day a range can start on. Days before it are disabled. */\n minDate?: Date;\n onApply: (from: Date | undefined, to: Date | undefined) => void;\n onShowPresets: () => void;\n}\n\n/**\n * The custom range popover body. It mounts each time the popover opens, so its drafts\n * start from the current range without the picker resetting them.\n */\nexport function CustomRangeEditor({\n dateFrom,\n dateTo,\n disabled,\n maxRangeMs,\n minDate,\n onApply,\n onShowPresets,\n}: CustomRangeEditorProps) {\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [applyAttempted, setApplyAttempted] = useState(false);\n const errorId = useId();\n\n const fromDate = combineDateAndTime(draftDateFrom, draftTimeFrom);\n const toDate = combineDateAndTime(draftDateTo, draftTimeTo);\n const rangeReversed = fromDate !== undefined && toDate !== undefined && fromDate.getTime() > toDate.getTime();\n const rangeTooWide =\n fromDate !== undefined && toDate !== undefined && toDate.getTime() - fromDate.getTime() > (maxRangeMs ?? Infinity);\n const firstDay = minDate ? startOfDay(minDate) : undefined;\n const endFirstDay = draftDateFrom && (!firstDay || draftDateFrom > firstDay) ? draftDateFrom : firstDay;\n const rangeTooEarly = fromDate !== undefined && firstDay !== undefined && fromDate < firstDay;\n const rangeInvalid = rangeReversed || rangeTooWide || rangeTooEarly;\n // Shown after a failed Apply, and gone as soon as the drafts form a valid range again.\n let error: string | undefined;\n if (applyAttempted && rangeReversed) error = 'Start date/time must be before end date/time';\n else if (applyAttempted && rangeTooWide) error = `Range cannot be longer than ${formatDays(maxRangeMs ?? 0)}`;\n else if (applyAttempted && firstDay && rangeTooEarly)\n error = `Range cannot start before ${format(firstDay, 'MMM d, yyyy')}`;\n\n const apply = () => {\n if (rangeInvalid) {\n setApplyAttempted(true);\n return;\n }\n onApply(fromDate, toDate);\n };\n\n return (\n <>\n <div\n role=\"group\"\n aria-label=\"Custom date range\"\n aria-invalid={error ? true : undefined}\n aria-describedby={error ? errorId : undefined}\n className=\"flex\"\n >\n <div className={cn('border-r border-border')}>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n Start\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n fromDate={firstDay}\n toDate={draftDateTo}\n />\n <TimePicker\n label=\"Start time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n End\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={endFirstDay}\n />\n <TimePicker\n label=\"End time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n <Field invalid={Boolean(error)}>\n <FieldError id={errorId} className=\"px-4 pb-1\">\n {error}\n </FieldError>\n </Field>\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <Button variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={onShowPresets}>\n ← Presets\n </Button>\n <Button icon={<Check />} variant=\"primary\" size=\"sm\" onClick={apply} disabled={disabled}>\n Apply\n </Button>\n </div>\n </>\n );\n}\n","import { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport type { ReactElement } from 'react';\nimport { CustomRangeEditor } from './custom-range-editor';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nconst fmtClock = (d: Date) =>\n d.toLocaleTimeString('en-US', d.getMinutes() === 0 ? { hour: 'numeric' } : { hour: 'numeric', minute: '2-digit' });\n\n/**\n * A custom range as day and time, kept short: `Oct 21, 2:05 PM – 4 PM` within one day,\n * `Oct 20, 12 AM – Oct 27, 9:30 AM` across days, with years only outside the current one.\n */\nfunction customRangeLabel(dateFrom: Date | undefined, dateTo: Date | undefined) {\n const thisYear = new Date().getFullYear();\n const withYear = [dateFrom, dateTo].some(d => d && d.getFullYear() !== thisYear);\n const fmtDay = (d: Date) =>\n d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', ...(withYear && { year: 'numeric' }) });\n const fmtMoment = (d: Date) => `${fmtDay(d)}, ${fmtClock(d)}`;\n\n const start = dateFrom ? fmtMoment(dateFrom) : 'Start';\n if (!dateTo) return `${start} \\u2013 End`;\n const sameDay = dateFrom !== undefined && fmtDay(dateFrom) === fmtDay(dateTo);\n return `${start} \\u2013 ${sameDay ? fmtClock(dateTo) : fmtMoment(dateTo)}`;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n /**\n * Called once with both ends when a custom range is applied. When provided it replaces\n * the two `onDateChange` calls for that step, so consumers can write the range atomically.\n */\n onDateRangeChange?: (from: Date | undefined, to: Date | undefined) => void;\n disabled?: boolean;\n /** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */\n maxRangeMs?: number;\n /** Earliest day a custom range can start on, e.g. the oldest data still kept. Earlier days are disabled. */\n minDate?: Date;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n /**\n * Replace the default Button trigger. Receives the current label (preset name or\n * custom range) and must return an element the menu/popover can attach to.\n */\n renderTrigger?: (props: { label: string; disabled?: boolean }) => ReactElement;\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n onDateRangeChange,\n disabled,\n maxRangeMs,\n minDate,\n presets,\n size = 'md',\n renderTrigger,\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [presetMenuOpen, setPresetMenuOpen] = useState(false);\n // The preset active before \"Custom range...\" was picked, until a range is applied.\n // \"← Presets\" restores it instead of jumping to the first preset in the list.\n const [presetBeforeCustom, setPresetBeforeCustom] = useState<DateRangePreset | undefined>();\n\n // \"← Presets\" restores the previous preset through the parent, which may apply it a\n // render later (e.g. a router URL update). Show it right away instead of \"custom\".\n const restoringPreset = presetMenuOpen && preset === 'custom' ? presetBeforeCustom : undefined;\n const shownPreset = restoringPreset ?? preset;\n const datePresetLabel = DATE_PRESETS.find(p => p.value === shownPreset)?.label ?? 'All';\n\n const applyPreset = (value: DateRangePreset) => {\n onPresetChange?.(value);\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const handlePresetSelect = (value: DateRangePreset) => {\n setPresetMenuOpen(false);\n if (value === 'custom') {\n if (preset !== 'custom') setPresetBeforeCustom(preset);\n onPresetChange?.(value);\n setCustomRangeOpen(true);\n return;\n }\n setPresetBeforeCustom(undefined);\n applyPreset(value);\n };\n\n const applyCustomRange = (fromDate: Date | undefined, toDate: Date | undefined) => {\n if (onDateRangeChange) {\n onDateRangeChange(fromDate, toDate);\n } else {\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n }\n setPresetBeforeCustom(undefined);\n setCustomRangeOpen(false);\n };\n\n // Back to the preset list. Restores the preset the user came from; an applied custom\n // range matches no preset, so it stays and the list shows \"Custom range...\" as current.\n const showPresets = () => {\n setCustomRangeOpen(false);\n if (presetBeforeCustom) applyPreset(presetBeforeCustom);\n setPresetMenuOpen(true);\n };\n\n const customLabel = customRangeLabel(dateFrom, dateTo);\n\n if (shownPreset === 'custom' && !presetMenuOpen) {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n {renderTrigger ? (\n <PopoverTrigger render={renderTrigger({ label: customLabel, disabled })} />\n ) : (\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled} icon={<CalendarIcon />}>\n {customLabel}\n </Button>\n </PopoverTrigger>\n )}\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <CustomRangeEditor\n dateFrom={dateFrom}\n dateTo={dateTo}\n disabled={disabled}\n maxRangeMs={maxRangeMs}\n minDate={minDate}\n onApply={applyCustomRange}\n onShowPresets={showPresets}\n />\n </PopoverContent>\n </Popover>\n );\n }\n\n const triggerLabel = shownPreset === 'custom' ? customLabel : datePresetLabel;\n\n return (\n <DropdownMenu open={presetMenuOpen} onOpenChange={setPresetMenuOpen}>\n {renderTrigger ? (\n <DropdownMenu.Trigger render={renderTrigger({ label: triggerLabel, disabled })} />\n ) : (\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled} icon={<CalendarIcon />}>\n {triggerLabel}\n </Button>\n </DropdownMenu.Trigger>\n )}\n <DropdownMenu.Content align=\"start\">\n {/* Items select on click (not onValueChange) so re-picking the checked\n \"Custom range...\" still reopens the range editor. */}\n <DropdownMenu.RadioGroup value={shownPreset}>\n {visiblePresets.map(p => (\n <DropdownMenu.RadioItem\n key={p.value}\n value={p.value}\n closeOnClick\n onClick={() => handlePresetSelect(p.value)}\n >\n {p.label}\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ import { t as Txt } from "./Txt-BM6TVV_c.js";
|
|
|
8
8
|
import { passwordManagerOptOutProps } from "./primitives/password-manager-autofill.es.js";
|
|
9
9
|
import { Kbd } from "./components/Kbd.es.js";
|
|
10
10
|
import { i as PopoverTrigger, n as Popover, r as PopoverContent } from "./popover-CzHvTPk2.js";
|
|
11
|
-
import { C as
|
|
11
|
+
import { C as comboboxTriggerClass, S as comboboxStyles } from "./combobox-parts-W7KRQUsV.js";
|
|
12
12
|
import { ComboboxPrimitive } from "./components/Combobox.es.js";
|
|
13
13
|
import { n as parseFieldValue, t as isFilterBarGroup } from "./types-DiiL5mTO.js";
|
|
14
|
-
import { S as findGroup, _ as FilterBarOptionList, b as useFilterBarContext, c as chipClass, g as FilterBarOptionLabel, h as matchesQueryFilter, l as editableSegmentClass, m as useValueStep, o as FilterBarFieldLabel, s as alwaysHighlightProps, t as FilterBarChip, v as FILTER_BAR_SCOPE_ATTR, x as countLeaves, y as FilterBarProvider } from "./filter-bar-chip-
|
|
14
|
+
import { S as findGroup, _ as FilterBarOptionList, b as useFilterBarContext, c as chipClass, g as FilterBarOptionLabel, h as matchesQueryFilter, l as editableSegmentClass, m as useValueStep, o as FilterBarFieldLabel, s as alwaysHighlightProps, t as FilterBarChip, v as FILTER_BAR_SCOPE_ATTR, x as countLeaves, y as FilterBarProvider } from "./filter-bar-chip-7O02P9Vk.js";
|
|
15
15
|
import { useIsApplePlatform } from "./hooks/use-keyboard-shortcut-label.es.js";
|
|
16
16
|
import { VisuallyHidden } from "./primitives/visually-hidden.es.js";
|
|
17
17
|
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -50,8 +50,8 @@ function FilterBarInputImpl({ placeholder = "Filter…", className, "aria-label"
|
|
|
50
50
|
const { draft, setDraft: setDraftState, commitDraft } = ctx;
|
|
51
51
|
const step = !draft ? "field" : !draft.operatorId ? "operator" : "value";
|
|
52
52
|
const field = draft ? ctx.getField(draft.fieldId) : void 0;
|
|
53
|
-
const operator = draft?.operatorId ? ctx.getOperator(draft.operatorId) : void 0;
|
|
54
53
|
const fieldOperators = useMemo(() => field ? ctx.getFieldOperators(field) : [], [ctx, field]);
|
|
54
|
+
const operator = draft?.operatorId ? fieldOperators.find((o) => o.id === draft.operatorId) ?? ctx.getOperator(draft.operatorId) : void 0;
|
|
55
55
|
const offerAdvanced = ctx.groupsEnabled && groupId === void 0;
|
|
56
56
|
const visibleFields = useMemo(() => {
|
|
57
57
|
const fields = ctx.fields.filter((f) => !f.hidden);
|
|
@@ -863,4 +863,4 @@ var DEFAULT_FILTER_OPERATORS = [
|
|
|
863
863
|
];
|
|
864
864
|
export { FilterBarGroupEditor as a, FilterBarAdvancedChip as i, FilterBar as n, FilterBarLogicToggle as o, FilterBarChips as r, FilterBarInput as s, DEFAULT_FILTER_OPERATORS as t };
|
|
865
865
|
|
|
866
|
-
//# sourceMappingURL=FilterBar
|
|
866
|
+
//# sourceMappingURL=FilterBar--4oguuVe.js.map
|