@mastra/playground-ui 68.0.0-alpha.2 → 68.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/{FilterBar-CQl04O6t.cjs → FilterBar-BSP2UTjc.cjs} +2 -2
- package/dist/{FilterBar-CQl04O6t.cjs.map → FilterBar-BSP2UTjc.cjs.map} +1 -1
- package/dist/{FilterBar-BgW2dqRQ.js → FilterBar-PSQ1OwqH.js} +2 -2
- package/dist/{FilterBar-BgW2dqRQ.js.map → FilterBar-PSQ1OwqH.js.map} +1 -1
- package/dist/KnowledgePageGraph.css +55 -0
- package/dist/{MarkdownRenderer-2GOXQJEv.js → MarkdownRenderer-CI30RqdB.js} +19 -6
- package/dist/MarkdownRenderer-CI30RqdB.js.map +1 -0
- package/dist/{MarkdownRenderer-CB8Z_CHc.cjs → MarkdownRenderer-y65WGBhC.cjs} +19 -6
- package/dist/MarkdownRenderer-y65WGBhC.cjs.map +1 -0
- package/dist/{MetricsCard-CEB-f2sv.cjs → MetricsCard-BEwiS7Pe.cjs} +8 -8
- package/dist/MetricsCard-BEwiS7Pe.cjs.map +1 -0
- package/dist/{MetricsCard-M8awJ2B_.js → MetricsCard-ua6C6b8a.js} +10 -10
- package/dist/MetricsCard-ua6C6b8a.js.map +1 -0
- package/dist/{MetricsLineChart-BhHoduO0.js → MetricsLineChart-4SwxBbQx.js} +14 -3
- package/dist/MetricsLineChart-4SwxBbQx.js.map +1 -0
- package/dist/{MetricsLineChart-CjBm4IXu.cjs → MetricsLineChart-tZxsauau.cjs} +13 -2
- package/dist/MetricsLineChart-tZxsauau.cjs.map +1 -0
- package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs → MetricsStackedBarChart-CDLE76IB.cjs} +2 -2
- package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs.map → MetricsStackedBarChart-CDLE76IB.cjs.map} +1 -1
- package/dist/{MetricsStackedBarChart-BRuA6MTE.js → MetricsStackedBarChart-D2QyS4-z.js} +2 -2
- package/dist/{MetricsStackedBarChart-BRuA6MTE.js.map → MetricsStackedBarChart-D2QyS4-z.js.map} +1 -1
- package/dist/{activity-rJ1NQl_2.js → activity-C8Ql81WM.js} +2 -2
- package/dist/{activity-rJ1NQl_2.js.map → activity-C8Ql81WM.js.map} +1 -1
- package/dist/{activity-DyB5H3gF.cjs → activity-CcQZeDYi.cjs} +2 -2
- package/dist/{activity-DyB5H3gF.cjs.map → activity-CcQZeDYi.cjs.map} +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.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/SavedViews.cjs.js +1 -1
- package/dist/components/SavedViews.es.js +1 -1
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/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/{date-time-range-picker-CTt7Od0P.cjs → date-time-range-picker-CWGjoR3j.cjs} +40 -13
- package/dist/date-time-range-picker-CWGjoR3j.cjs.map +1 -0
- package/dist/{date-time-range-picker-DKh1K9Iy.js → date-time-range-picker-CdSiXwB4.js} +40 -13
- package/dist/date-time-range-picker-CdSiXwB4.js.map +1 -0
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +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/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 +2 -2
- package/dist/domains/chat/activity/model/activity-words.es.js +2 -2
- 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/knowledge/knowledge-links.cjs.js +52 -6
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.es.js +53 -9
- package/dist/domains/chat/knowledge/knowledge-links.es.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js +10 -3
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js +10 -3
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +8 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +8 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js.map +1 -1
- package/dist/domains/chat/knowledge.cjs.js +2 -0
- package/dist/domains/chat/knowledge.es.js +2 -2
- package/dist/domains/chat/messages/message-row.cjs.js +3 -3
- package/dist/domains/chat/messages/message-row.es.js +3 -3
- 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 +35 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +36 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js.map +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/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 +2 -2
- package/dist/domains/chat/messages/skill-message.es.js +2 -2
- 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/knowledge-body-range.cjs.js +80 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.d.ts +1 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +78 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +163 -13
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +165 -15
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js +51 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.d.ts +1 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js +49 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +7 -2
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +7 -2
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- 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 +9 -4
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +9 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js +81 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.d.ts +1 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js +77 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +11 -2
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +11 -2
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -1
- 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/connect-prompt-tool.cjs.js +79 -4
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js.map +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +79 -4
- package/dist/domains/chat/tools/connect-prompt-tool.es.js.map +1 -1
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +238 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.d.ts +1 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js +237 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request.cjs.js +40 -0
- package/dist/domains/chat/tools/mcp-input-request.cjs.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request.d.ts +1 -0
- package/dist/domains/chat/tools/mcp-input-request.es.js +33 -0
- package/dist/domains/chat/tools/mcp-input-request.es.js.map +1 -0
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +9 -4
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +9 -5
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -1
- package/dist/domains/chat.cjs.js +5 -3
- package/dist/domains/chat.es.js +4 -4
- package/dist/domains/connect/types.cjs.js.map +1 -1
- package/dist/domains/connect/types.es.js.map +1 -1
- package/dist/domains/connect/use-user-connect.cjs.js +19 -2
- package/dist/domains/connect/use-user-connect.cjs.js.map +1 -1
- package/dist/domains/connect/use-user-connect.es.js +19 -2
- package/dist/domains/connect/use-user-connect.es.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +4 -3
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +4 -3
- package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
- package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
- package/dist/domains/dashboards/components/widget-error.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-error.es.js +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +4 -3
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.es.js +4 -3
- package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +9 -6
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +9 -6
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +2 -2
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +2 -2
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +6 -5
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +6 -5
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.cjs.js +9 -2
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.es.js +9 -2
- package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +48 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js +47 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +63 -5
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +64 -6
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +485 -47
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +487 -50
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +1051 -123
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +1054 -126
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +75 -3
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +76 -4
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
- package/dist/domains/knowledge/lib/circleText.cjs.js +9 -0
- package/dist/domains/knowledge/lib/circleText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/circleText.d.ts +1 -0
- package/dist/domains/knowledge/lib/circleText.es.js +8 -0
- package/dist/domains/knowledge/lib/circleText.es.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js +82 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.d.ts +1 -0
- package/dist/domains/knowledge/lib/fitViewport.es.js +73 -0
- package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -0
- package/dist/domains/knowledge/lib/graphShape.cjs.js +524 -0
- package/dist/domains/knowledge/lib/graphShape.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/graphShape.d.ts +1 -0
- package/dist/domains/knowledge/lib/graphShape.es.js +499 -0
- package/dist/domains/knowledge/lib/graphShape.es.js.map +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.cjs.js +11 -0
- package/dist/domains/knowledge/lib/linkCountsText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.d.ts +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.es.js +10 -0
- package/dist/domains/knowledge/lib/linkCountsText.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js +29 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageAddress.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageAddress.es.js +27 -0
- package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js +11 -11
- package/dist/domains/knowledge/lib/pageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageGraph.es.js +11 -11
- package/dist/domains/knowledge/lib/pageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/lib/pageRefs.cjs.js +69 -0
- package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageRefs.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageRefs.es.js +66 -0
- package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js +5 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageTree.es.js +5 -1
- package/dist/domains/knowledge/lib/pageTree.es.js.map +1 -1
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js +82 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +1 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js +78 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js.map +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.cjs.js +77 -0
- package/dist/domains/knowledge/lib/tooltipSide.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.d.ts +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.es.js +75 -0
- package/dist/domains/knowledge/lib/tooltipSide.es.js.map +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js +65 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.d.ts +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.es.js +62 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.es.js.map +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.cjs.js +15 -0
- package/dist/domains/knowledge/lib/useStableWhile.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.d.ts +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.es.js +14 -0
- package/dist/domains/knowledge/lib/useStableWhile.es.js.map +1 -0
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +3 -3
- package/dist/domains/metrics/components/agent-runs-card.es.js +3 -3
- 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-card.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown-card.es.js +1 -1
- package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +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 +3 -2
- 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 +3 -2
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +3 -2
- package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +3 -2
- package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +3 -2
- package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +3 -2
- package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +2 -1
- package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +2 -1
- package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +3 -3
- package/dist/domains/metrics/components/token-usage-card.es.js +3 -3
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
- package/dist/domains/observability/components/observability-histogram.cjs.js +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
- package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
- 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-filter-bar.cjs.js +2 -2
- package/dist/domains/spans/components/spans-filter-bar.es.js +2 -2
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +1 -1
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +2 -2
- package/dist/domains/threads/components/threads-filter-bar.es.js +2 -2
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.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 +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- 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 +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
- 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-timeline-row.cjs.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +8 -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 +8 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-cell.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
- 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/{filter-bar-time-range-mg9JeYue.js → filter-bar-time-range-qlV8p7hp.js} +2 -2
- package/dist/{filter-bar-time-range-mg9JeYue.js.map → filter-bar-time-range-qlV8p7hp.js.map} +1 -1
- package/dist/{filter-bar-time-range-BA-pXMlo.cjs → filter-bar-time-range-zdM024JD.cjs} +2 -2
- package/dist/{filter-bar-time-range-BA-pXMlo.cjs.map → filter-bar-time-range-zdM024JD.cjs.map} +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/lib/form/json-draft.cjs.js +1 -1
- package/dist/lib/form/json-draft.es.js +1 -1
- package/dist/lib/form/zod-provider.cjs.js +1 -1
- package/dist/lib/form/zod-provider.es.js +1 -1
- package/dist/{span-payload-primitives-B3RdahsC.js → span-payload-primitives-CKKIAVPJ.js} +4 -4
- package/dist/{span-payload-primitives-B3RdahsC.js.map → span-payload-primitives-CKKIAVPJ.js.map} +1 -1
- package/dist/{span-payload-primitives-_2d-pAOD.cjs → span-payload-primitives-D4tHWN2W.cjs} +4 -4
- package/dist/{span-payload-primitives-_2d-pAOD.cjs.map → span-payload-primitives-D4tHWN2W.cjs.map} +1 -1
- package/dist/src/domains/chat/knowledge/knowledge-links.d.ts +32 -4
- package/dist/src/domains/chat/knowledge/pinned-knowledge-data.d.ts +2 -0
- package/dist/src/domains/chat/tools/badges/knowledge-body-range.d.ts +12 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +5 -2
- package/dist/src/domains/chat/tools/badges/mcp-input-request-badge.d.ts +18 -0
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +4 -1
- package/dist/src/domains/chat/tools/badges/use-deferred-input-request.d.ts +44 -0
- package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +6 -1
- package/dist/src/domains/chat/tools/connect-prompt-tool.d.ts +10 -1
- package/dist/src/domains/chat/tools/mcp-input-request-tool.d.ts +18 -0
- package/dist/src/domains/chat/tools/mcp-input-request.d.ts +40 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +4 -2
- package/dist/src/domains/chat/tools/tool-card.d.ts +1 -1
- package/dist/src/domains/connect/types.d.ts +16 -0
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +4 -2
- package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +4 -3
- package/dist/src/domains/dashboards/index.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/lib/chrome.d.ts +6 -4
- package/dist/src/domains/dashboards/widget-kind.d.ts +12 -0
- package/dist/src/domains/knowledge/components/KnowledgePageCard.d.ts +23 -0
- package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +29 -0
- package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +27 -1
- package/dist/src/domains/knowledge/components/KnowledgePageTree.d.ts +2 -1
- package/dist/src/domains/knowledge/lib/circleText.d.ts +2 -0
- package/dist/src/domains/knowledge/lib/fitViewport.d.ts +67 -0
- package/dist/src/domains/knowledge/lib/graphShape.d.ts +131 -0
- package/dist/src/domains/knowledge/lib/linkCountsText.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/pageAddress.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/pageGraph.d.ts +4 -4
- package/dist/src/domains/knowledge/lib/pageRefs.d.ts +15 -0
- package/dist/src/domains/knowledge/lib/pageTree.d.ts +2 -0
- package/dist/src/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +13 -0
- package/dist/src/domains/knowledge/lib/tooltipSide.d.ts +40 -0
- package/dist/src/domains/knowledge/lib/useLeavingNodes.d.ts +14 -0
- package/dist/src/domains/knowledge/lib/useStableWhile.d.ts +5 -0
- package/dist/src/domains/knowledge/pageTypes.d.ts +6 -1
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -1
- package/dist/src/ds/components/MarkdownRenderer/markdown-renderer.d.ts +8 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +1 -1
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +8 -0
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +6 -0
- package/dist/style.css +73 -2
- package/dist/{tool-approval-1qiB4hhG.cjs → tool-approval-CJvPDL7D.cjs} +4 -4
- package/dist/{tool-approval-1qiB4hhG.cjs.map → tool-approval-CJvPDL7D.cjs.map} +1 -1
- package/dist/{tool-approval-B6MFcaKV.js → tool-approval-DyN11vFA.js} +4 -4
- package/dist/{tool-approval-B6MFcaKV.js.map → tool-approval-DyN11vFA.js.map} +1 -1
- package/dist/{tool-call-Bu66PkD-.cjs → tool-call-DBn14X-3.cjs} +9 -3
- package/dist/{tool-call-Bu66PkD-.cjs.map → tool-call-DBn14X-3.cjs.map} +1 -1
- package/dist/{tool-call-Ch9-jjXU.js → tool-call-Dsj43lvJ.js} +9 -3
- package/dist/{tool-call-Ch9-jjXU.js.map → tool-call-Dsj43lvJ.js.map} +1 -1
- package/dist/{tool-card-DrqPZfPQ.cjs → tool-card-BOLXeKIp.cjs} +167 -126
- package/dist/tool-card-BOLXeKIp.cjs.map +1 -0
- package/dist/{tool-card-sO6P2Qj4.js → tool-card-HZ5bm7ue.js} +168 -127
- package/dist/tool-card-HZ5bm7ue.js.map +1 -0
- package/dist/{tool-presentation-DvCsb_kz.js → tool-presentation-CvibOP1J.js} +6 -1
- package/dist/tool-presentation-CvibOP1J.js.map +1 -0
- package/dist/{tool-presentation-CQlDEwgS.cjs → tool-presentation-D6nzVruN.cjs} +6 -1
- package/dist/tool-presentation-D6nzVruN.cjs.map +1 -0
- package/package.json +11 -11
- package/dist/MarkdownRenderer-2GOXQJEv.js.map +0 -1
- package/dist/MarkdownRenderer-CB8Z_CHc.cjs.map +0 -1
- package/dist/MetricsCard-CEB-f2sv.cjs.map +0 -1
- package/dist/MetricsCard-M8awJ2B_.js.map +0 -1
- package/dist/MetricsLineChart-BhHoduO0.js.map +0 -1
- package/dist/MetricsLineChart-CjBm4IXu.cjs.map +0 -1
- package/dist/date-time-range-picker-CTt7Od0P.cjs.map +0 -1
- package/dist/date-time-range-picker-DKh1K9Iy.js.map +0 -1
- package/dist/domains/knowledge/lib/pageLayout.cjs.js +0 -49
- package/dist/domains/knowledge/lib/pageLayout.cjs.js.map +0 -1
- package/dist/domains/knowledge/lib/pageLayout.d.ts +0 -1
- package/dist/domains/knowledge/lib/pageLayout.es.js +0 -48
- package/dist/domains/knowledge/lib/pageLayout.es.js.map +0 -1
- package/dist/src/domains/knowledge/lib/pageLayout.d.ts +0 -24
- package/dist/tool-card-DrqPZfPQ.cjs.map +0 -1
- package/dist/tool-card-sO6P2Qj4.js.map +0 -1
- package/dist/tool-presentation-CQlDEwgS.cjs.map +0 -1
- package/dist/tool-presentation-DvCsb_kz.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-renderer.es.js","names":[],"sources":["../../../../src/domains/dashboards/components/dashboard-renderer.tsx"],"sourcesContent":["import type { DashboardDefinition } from '@mastra/client-js';\nimport {\n DASHBOARD_WIDGET_SPANS,\n dashboardDefinitionEnvelopeSchema,\n migrateDashboardDefinition,\n} from '@mastra/core/storage/dashboards';\nimport { useMetrics } from '../../metrics/hooks/use-metrics';\nimport { BUILT_IN_WIDGET_KINDS } from '../kinds';\nimport type { DashboardScope, OnDashboardDrilldown } from '../lib/definition';\nimport { describeIssue, prepareWidget } from '../lib/prepare-widget';\nimport type { PreparedWidget, StoredWidget } from '../lib/prepare-widget';\nimport type { AnyWidgetKind } from '../widget-kind';\nimport { DashboardGrid, DashboardGridCell, DashboardGridRow } from './dashboard-grid';\nimport type { DashboardSpan } from './dashboard-grid';\nimport { WidgetError } from './widget-error';\nimport { ErrorBoundary } from '@/ds/components/ErrorBoundary';\nimport { MetricsCard } from '@/ds/components/MetricsCard';\n\nexport type DashboardRendererProps = {\n definition: DashboardDefinition;\n /** Which widgets, views and columns show: `org` spans several projects, `project` is one. */\n scope: DashboardScope;\n /** Opens a drilldown; each host routes to its own Traces or Logs page. */\n onDrilldown?: OnDashboardDrilldown;\n /** Kinds beyond the built-in ones; a kind of the same name replaces the built-in. */\n kinds?: AnyWidgetKind[];\n className?: string;\n};\n\n/** Whether a stored widget's `span` is one the grid lays out. */\nconst isDashboardSpan = (span: unknown): span is DashboardSpan => DASHBOARD_WIDGET_SPANS.some(s => s === span);\ntype ShownCell = { widget: StoredWidget; prepared: Exclude<PreparedWidget, { ok: 'hidden' }> };\nconst isShown = (cell: { widget: StoredWidget; prepared: PreparedWidget }): cell is ShownCell =>\n cell.prepared.ok !== 'hidden';\n\nconst spanOf = (widget: StoredWidget) => (isDashboardSpan(widget.span) ? widget.span : 12);\n\n/**\n * Lays a dashboard definition out on a 12-column grid inside the page's `MetricsProvider`, which\n * owns the range and filters. Each widget is checked and rendered on its own: one that fails to\n * parse, query or render shows its own error, and the rest of the dashboard still renders.\n */\nexport function DashboardRenderer({
|
|
1
|
+
{"version":3,"file":"dashboard-renderer.es.js","names":[],"sources":["../../../../src/domains/dashboards/components/dashboard-renderer.tsx"],"sourcesContent":["import type { DashboardDefinition } from '@mastra/client-js';\nimport {\n DASHBOARD_WIDGET_SPANS,\n dashboardDefinitionEnvelopeSchema,\n migrateDashboardDefinition,\n} from '@mastra/core/storage/dashboards';\nimport { useMetrics } from '../../metrics/hooks/use-metrics';\nimport { BUILT_IN_WIDGET_KINDS } from '../kinds';\nimport type { DashboardScope, OnDashboardDrilldown } from '../lib/definition';\nimport { describeIssue, prepareWidget } from '../lib/prepare-widget';\nimport type { PreparedWidget, StoredWidget } from '../lib/prepare-widget';\nimport type { AnyWidgetKind, DashboardExpand } from '../widget-kind';\nimport { DashboardGrid, DashboardGridCell, DashboardGridRow } from './dashboard-grid';\nimport type { DashboardSpan } from './dashboard-grid';\nimport { WidgetError } from './widget-error';\nimport { ErrorBoundary } from '@/ds/components/ErrorBoundary';\nimport { MetricsCard } from '@/ds/components/MetricsCard';\n\nexport type DashboardRendererProps = {\n definition: DashboardDefinition;\n /** Which widgets, views and columns show: `org` spans several projects, `project` is one. */\n scope: DashboardScope;\n /** Opens a drilldown; each host routes to its own Traces or Logs page. */\n onDrilldown?: OnDashboardDrilldown;\n /** Where chart cards expand to, e.g. the host's query page; see `DashboardExpand`. */\n expand?: DashboardExpand;\n /** Kinds beyond the built-in ones; a kind of the same name replaces the built-in. */\n kinds?: AnyWidgetKind[];\n className?: string;\n};\n\n/** Whether a stored widget's `span` is one the grid lays out. */\nconst isDashboardSpan = (span: unknown): span is DashboardSpan => DASHBOARD_WIDGET_SPANS.some(s => s === span);\ntype ShownCell = { widget: StoredWidget; prepared: Exclude<PreparedWidget, { ok: 'hidden' }> };\nconst isShown = (cell: { widget: StoredWidget; prepared: PreparedWidget }): cell is ShownCell =>\n cell.prepared.ok !== 'hidden';\n\nconst spanOf = (widget: StoredWidget) => (isDashboardSpan(widget.span) ? widget.span : 12);\n\n/**\n * Lays a dashboard definition out on a 12-column grid inside the page's `MetricsProvider`, which\n * owns the range and filters. Each widget is checked and rendered on its own: one that fails to\n * parse, query or render shows its own error, and the rest of the dashboard still renders.\n */\nexport function DashboardRenderer({\n definition,\n scope,\n onDrilldown,\n expand,\n kinds = [],\n className,\n}: DashboardRendererProps) {\n // A widget that threw renders again once the page's range or filters change, or the widget does.\n const { datePreset, customRange, filterTokens } = useMetrics();\n const pageKey = JSON.stringify([datePreset, customRange, filterTokens]);\n const registry = new Map([...BUILT_IN_WIDGET_KINDS, ...kinds].map(k => [k.kind, k]));\n\n const envelope = dashboardDefinitionEnvelopeSchema.safeParse(definition);\n if (!envelope.success) {\n return <MetricsCard.Error message={`This dashboard can't be shown. ${describeIssue(envelope.error.issues[0])}`} />;\n }\n // Each widget is parsed on its own below, so one that doesn't fit the current version shows its own error.\n const { rows } = migrateDashboardDefinition(envelope.data);\n\n // A row whose widgets are all hidden on this page isn't drawn, so it leaves no gap in the grid.\n const shown = rows\n .map((row, rowIndex) => ({\n rowIndex,\n widgets: row.widgets\n .map(widget => ({ widget, prepared: prepareWidget(widget, registry, scope) }))\n .filter(isShown),\n }))\n .filter(row => row.widgets.length > 0);\n\n return (\n <DashboardGrid className={className}>\n {shown.map(({ rowIndex, widgets }) => (\n <DashboardGridRow key={rowIndex}>\n {widgets.map(({ widget, prepared }) => {\n // Unparsed, the title may be anything; the error card shows it only when it's text.\n const heading = { id: widget.id, title: typeof widget.title === 'string' ? widget.title : undefined };\n return (\n <DashboardGridCell key={widget.id} id={widget.id} span={spanOf(widget)}>\n <ErrorBoundary\n resetKeys={[pageKey, JSON.stringify(widget)]}\n variant=\"inline\"\n fallback={({ error }) => <WidgetError widget={heading} message={error.message} />}\n >\n {prepared.ok ? (\n <prepared.kind.component\n widget={prepared.widget}\n views={prepared.views}\n scope={scope}\n onDrilldown={onDrilldown}\n expand={expand}\n />\n ) : (\n <WidgetError widget={heading} message={prepared.message} />\n )}\n </ErrorBoundary>\n </DashboardGridCell>\n );\n })}\n </DashboardGridRow>\n ))}\n </DashboardGrid>\n );\n}\n"],"mappings":";;;;;;;;;;;AAgCA,IAAM,mBAAmB,SAAyC,uBAAuB,MAAK,MAAK,MAAM,IAAI;AAE7G,IAAM,WAAW,SACf,KAAK,SAAS,OAAO;AAEvB,IAAM,UAAU,WAA0B,gBAAgB,OAAO,IAAI,IAAI,OAAO,OAAO;;;;;;AAOvF,SAAgB,kBAAkB,EAChC,YACA,OACA,aACA,QACA,QAAQ,CAAC,GACT,aACyB;CAEzB,MAAM,EAAE,YAAY,aAAa,iBAAiB,WAAW;CAC7D,MAAM,UAAU,KAAK,UAAU;EAAC;EAAY;EAAa;CAAY,CAAC;CACtE,MAAM,WAAW,IAAI,IAAI,CAAC,GAAG,uBAAuB,GAAG,KAAK,CAAC,CAAC,KAAI,MAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CAEnF,MAAM,WAAW,kCAAkC,UAAU,UAAU;CACvE,IAAI,CAAC,SAAS,SACZ,OAAO,oBAAC,YAAY,OAAb,EAAmB,SAAS,kCAAkC,cAAc,SAAS,MAAM,OAAO,EAAE,IAAM,CAAA;CAGnH,MAAM,EAAE,SAAS,2BAA2B,SAAS,IAAI;CAGzD,MAAM,QAAQ,KACX,KAAK,KAAK,cAAc;EACvB;EACA,SAAS,IAAI,QACV,KAAI,YAAW;GAAE;GAAQ,UAAU,cAAc,QAAQ,UAAU,KAAK;EAAE,EAAE,CAAC,CAC7E,OAAO,OAAO;CACnB,EAAE,CAAC,CACF,QAAO,QAAO,IAAI,QAAQ,SAAS,CAAC;CAEvC,OACE,oBAAC,eAAD;EAA0B;EACvB,UAAA,MAAM,KAAK,EAAE,UAAU,cACtB,oBAAC,kBAAD,EAAA,UACG,QAAQ,KAAK,EAAE,QAAQ,eAAe;GAErC,MAAM,UAAU;IAAE,IAAI,OAAO;IAAI,OAAO,OAAO,OAAO,UAAU,WAAW,OAAO,QAAQ,KAAA;GAAU;GACpG,OACE,oBAAC,mBAAD;IAAmC,IAAI,OAAO;IAAI,MAAM,OAAO,MAAM;IACnE,UAAA,oBAAC,eAAD;KACE,WAAW,CAAC,SAAS,KAAK,UAAU,MAAM,CAAC;KAC3C,SAAQ;KACR,WAAW,EAAE,YAAY,oBAAC,aAAD;MAAa,QAAQ;MAAS,SAAS,MAAM;KAAU,CAAA;KAE/E,UAAA,SAAS,KACR,oBAAC,SAAS,KAAK,WAAf;MACE,QAAQ,SAAS;MACjB,OAAO,SAAS;MACT;MACM;MACL;KACT,CAAA,IAED,oBAAC,aAAD;MAAa,QAAQ;MAAS,SAAS,SAAS;KAAU,CAAA;IAE/C,CAAA;GACE,GAlBK,OAAO,EAkBZ;EAEvB,CAAC,EACe,GA1BK,QA0BL,CACnB;CACY,CAAA;AAEnB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_MetricsCard = require("../../../MetricsCard-
|
|
2
|
+
const require_MetricsCard = require("../../../MetricsCard-BEwiS7Pe.cjs");
|
|
3
3
|
const require_domains_metrics_components_chart_card = require("../../metrics/components/chart-card.cjs.js");
|
|
4
4
|
const require_domains_dashboards_lib_chrome = require("../lib/chrome.cjs.js");
|
|
5
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as MetricsCard } from "../../../MetricsCard-
|
|
1
|
+
import { t as MetricsCard } from "../../../MetricsCard-ua6C6b8a.js";
|
|
2
2
|
import { ChartCard } from "../../metrics/components/chart-card.es.js";
|
|
3
3
|
import { unsupportedMessage } from "../lib/chrome.es.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_MetricsCard = require("../../../MetricsCard-
|
|
2
|
+
const require_MetricsCard = require("../../../MetricsCard-BEwiS7Pe.cjs");
|
|
3
3
|
const require_domains_metrics_components_chart_card = require("../../metrics/components/chart-card.cjs.js");
|
|
4
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
5
|
// src/domains/dashboards/components/widget-error.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as MetricsCard } from "../../../MetricsCard-
|
|
1
|
+
import { t as MetricsCard } from "../../../MetricsCard-ua6C6b8a.js";
|
|
2
2
|
import { ChartCard } from "../../metrics/components/chart-card.es.js";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
// src/domains/dashboards/components/widget-error.tsx
|
|
@@ -5,16 +5,17 @@ let react = require("react");
|
|
|
5
5
|
// src/domains/dashboards/hooks/use-widget-views.ts
|
|
6
6
|
/**
|
|
7
7
|
* The open view of a widget, `defaultIndex` until one is picked, and the card title for it
|
|
8
|
-
* (`title`, and `titleMenu` with several views) to spread into
|
|
8
|
+
* (`title`, and `titleMenu` with several views, or an expand link with `expand`) to spread into
|
|
9
|
+
* `ChartCard`.
|
|
9
10
|
*/
|
|
10
|
-
function useViewMenu(widget, views, defaultIndex = 0) {
|
|
11
|
+
function useViewMenu(widget, views, defaultIndex = 0, expand) {
|
|
11
12
|
const [chosen, choose] = (0, react.useState)();
|
|
12
13
|
const wanted = chosen ?? defaultIndex;
|
|
13
14
|
const index = views[wanted] ? wanted : 0;
|
|
14
15
|
return {
|
|
15
16
|
view: views[index] ?? views[0],
|
|
16
17
|
index,
|
|
17
|
-
heading: require_domains_dashboards_lib_chrome.viewTitle(widget, views, index, choose)
|
|
18
|
+
heading: require_domains_dashboards_lib_chrome.viewTitle(widget, views, index, choose, expand)
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
/** What clicking a bucket or row opens, with what was clicked; `undefined` when the view has no click target. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-widget-views.cjs.js","names":["useState","viewTitle","viewDrilldown","targetScope"],"sources":["../../../../src/domains/dashboards/hooks/use-widget-views.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport { useState } from 'react';\nimport type { DrilldownScope } from '../../metrics/drilldown';\nimport { viewTitle } from '../lib/chrome';\nimport { viewDrilldown, targetScope } from '../lib/definition';\nimport type { OnDashboardDrilldown } from '../lib/definition';\nimport type { ResolvedView } from '../widget-kind';\n\nexport type Views<Options> = readonly [ResolvedView<Options>, ...ResolvedView<Options>[]];\n\n/**\n * The open view of a widget, `defaultIndex` until one is picked, and the card title for it\n * (`title`, and `titleMenu` with several views) to spread into `ChartCard`.\n */\nexport function useViewMenu<Options>(widget: DashboardWidget
|
|
1
|
+
{"version":3,"file":"use-widget-views.cjs.js","names":["useState","viewTitle","viewDrilldown","targetScope"],"sources":["../../../../src/domains/dashboards/hooks/use-widget-views.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport { useState } from 'react';\nimport type { DrilldownScope } from '../../metrics/drilldown';\nimport { viewTitle } from '../lib/chrome';\nimport { viewDrilldown, targetScope } from '../lib/definition';\nimport type { OnDashboardDrilldown } from '../lib/definition';\nimport type { DashboardExpand, ResolvedView } from '../widget-kind';\n\nexport type Views<Options> = readonly [ResolvedView<Options>, ...ResolvedView<Options>[]];\n\n/**\n * The open view of a widget, `defaultIndex` until one is picked, and the card title for it\n * (`title`, and `titleMenu` with several views, or an expand link with `expand`) to spread into\n * `ChartCard`.\n */\nexport function useViewMenu<Options>(\n widget: DashboardWidget,\n views: Views<Options>,\n defaultIndex = 0,\n expand?: DashboardExpand,\n) {\n const [chosen, choose] = useState<number>();\n const wanted = chosen ?? defaultIndex;\n const index = views[wanted] ? wanted : 0;\n return { view: views[index] ?? views[0], index, heading: viewTitle(widget, views, index, choose, expand) };\n}\n\n/** What clicking a bucket or row opens, with what was clicked; `undefined` when the view has no click target. */\nexport function useDrilldown(\n widget: DashboardWidget,\n view: DashboardWidgetView,\n onDrilldown: OnDashboardDrilldown | undefined,\n) {\n const { click } = viewDrilldown(widget, view);\n if (!onDrilldown || !click) return undefined;\n return (clicked: DrilldownScope) => onDrilldown(click.page, { ...targetScope(click), ...clicked });\n}\n\n/** Whether the view has an action button to show (`DrilldownAction`). */\nexport const hasDrilldownAction = (\n widget: DashboardWidget,\n view: DashboardWidgetView,\n onDrilldown: OnDashboardDrilldown | undefined,\n) => onDrilldown !== undefined && viewDrilldown(widget, view).action !== undefined;\n"],"mappings":";;;;;;;;;;AAeA,SAAgB,YACd,QACA,OACA,eAAe,GACf,QACA;CACA,MAAM,CAAC,QAAQ,WAAA,GAAUA,MAAAA,SAAAA,CAAiB;CAC1C,MAAM,SAAS,UAAU;CACzB,MAAM,QAAQ,MAAM,UAAU,SAAS;CACvC,OAAO;EAAE,MAAM,MAAM,UAAU,MAAM;EAAI;EAAO,SAASC,sCAAAA,UAAU,QAAQ,OAAO,OAAO,QAAQ,MAAM;CAAE;AAC3G;;AAGA,SAAgB,aACd,QACA,MACA,aACA;CACA,MAAM,EAAE,UAAUC,0CAAAA,cAAc,QAAQ,IAAI;CAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,OAAO,KAAA;CACnC,QAAQ,YAA4B,YAAY,MAAM,MAAM;EAAE,GAAGC,0CAAAA,YAAY,KAAK;EAAG,GAAG;CAAQ,CAAC;AACnG;;AAGA,IAAa,sBACX,QACA,MACA,gBACG,gBAAgB,KAAA,KAAaD,0CAAAA,cAAc,QAAQ,IAAI,CAAC,CAAC,WAAW,KAAA"}
|
|
@@ -4,16 +4,17 @@ import { useState } from "react";
|
|
|
4
4
|
// src/domains/dashboards/hooks/use-widget-views.ts
|
|
5
5
|
/**
|
|
6
6
|
* The open view of a widget, `defaultIndex` until one is picked, and the card title for it
|
|
7
|
-
* (`title`, and `titleMenu` with several views) to spread into
|
|
7
|
+
* (`title`, and `titleMenu` with several views, or an expand link with `expand`) to spread into
|
|
8
|
+
* `ChartCard`.
|
|
8
9
|
*/
|
|
9
|
-
function useViewMenu(widget, views, defaultIndex = 0) {
|
|
10
|
+
function useViewMenu(widget, views, defaultIndex = 0, expand) {
|
|
10
11
|
const [chosen, choose] = useState();
|
|
11
12
|
const wanted = chosen ?? defaultIndex;
|
|
12
13
|
const index = views[wanted] ? wanted : 0;
|
|
13
14
|
return {
|
|
14
15
|
view: views[index] ?? views[0],
|
|
15
16
|
index,
|
|
16
|
-
heading: viewTitle(widget, views, index, choose)
|
|
17
|
+
heading: viewTitle(widget, views, index, choose, expand)
|
|
17
18
|
};
|
|
18
19
|
}
|
|
19
20
|
/** What clicking a bucket or row opens, with what was clicked; `undefined` when the view has no click target. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-widget-views.es.js","names":[],"sources":["../../../../src/domains/dashboards/hooks/use-widget-views.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport { useState } from 'react';\nimport type { DrilldownScope } from '../../metrics/drilldown';\nimport { viewTitle } from '../lib/chrome';\nimport { viewDrilldown, targetScope } from '../lib/definition';\nimport type { OnDashboardDrilldown } from '../lib/definition';\nimport type { ResolvedView } from '../widget-kind';\n\nexport type Views<Options> = readonly [ResolvedView<Options>, ...ResolvedView<Options>[]];\n\n/**\n * The open view of a widget, `defaultIndex` until one is picked, and the card title for it\n * (`title`, and `titleMenu` with several views) to spread into `ChartCard`.\n */\nexport function useViewMenu<Options>(widget: DashboardWidget
|
|
1
|
+
{"version":3,"file":"use-widget-views.es.js","names":[],"sources":["../../../../src/domains/dashboards/hooks/use-widget-views.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport { useState } from 'react';\nimport type { DrilldownScope } from '../../metrics/drilldown';\nimport { viewTitle } from '../lib/chrome';\nimport { viewDrilldown, targetScope } from '../lib/definition';\nimport type { OnDashboardDrilldown } from '../lib/definition';\nimport type { DashboardExpand, ResolvedView } from '../widget-kind';\n\nexport type Views<Options> = readonly [ResolvedView<Options>, ...ResolvedView<Options>[]];\n\n/**\n * The open view of a widget, `defaultIndex` until one is picked, and the card title for it\n * (`title`, and `titleMenu` with several views, or an expand link with `expand`) to spread into\n * `ChartCard`.\n */\nexport function useViewMenu<Options>(\n widget: DashboardWidget,\n views: Views<Options>,\n defaultIndex = 0,\n expand?: DashboardExpand,\n) {\n const [chosen, choose] = useState<number>();\n const wanted = chosen ?? defaultIndex;\n const index = views[wanted] ? wanted : 0;\n return { view: views[index] ?? views[0], index, heading: viewTitle(widget, views, index, choose, expand) };\n}\n\n/** What clicking a bucket or row opens, with what was clicked; `undefined` when the view has no click target. */\nexport function useDrilldown(\n widget: DashboardWidget,\n view: DashboardWidgetView,\n onDrilldown: OnDashboardDrilldown | undefined,\n) {\n const { click } = viewDrilldown(widget, view);\n if (!onDrilldown || !click) return undefined;\n return (clicked: DrilldownScope) => onDrilldown(click.page, { ...targetScope(click), ...clicked });\n}\n\n/** Whether the view has an action button to show (`DrilldownAction`). */\nexport const hasDrilldownAction = (\n widget: DashboardWidget,\n view: DashboardWidgetView,\n onDrilldown: OnDashboardDrilldown | undefined,\n) => onDrilldown !== undefined && viewDrilldown(widget, view).action !== undefined;\n"],"mappings":";;;;;;;;;AAeA,SAAgB,YACd,QACA,OACA,eAAe,GACf,QACA;CACA,MAAM,CAAC,QAAQ,UAAU,SAAiB;CAC1C,MAAM,SAAS,UAAU;CACzB,MAAM,QAAQ,MAAM,UAAU,SAAS;CACvC,OAAO;EAAE,MAAM,MAAM,UAAU,MAAM;EAAI;EAAO,SAAS,UAAU,QAAQ,OAAO,OAAO,QAAQ,MAAM;CAAE;AAC3G;;AAGA,SAAgB,aACd,QACA,MACA,aACA;CACA,MAAM,EAAE,UAAU,cAAc,QAAQ,IAAI;CAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,OAAO,KAAA;CACnC,QAAQ,YAA4B,YAAY,MAAM,MAAM;EAAE,GAAG,YAAY,KAAK;EAAG,GAAG;CAAQ,CAAC;AACnG;;AAGA,IAAa,sBACX,QACA,MACA,gBACG,gBAAgB,KAAA,KAAa,cAAc,QAAQ,IAAI,CAAC,CAAC,WAAW,KAAA"}
|
|
@@ -10,8 +10,9 @@ const require_domains_metrics_lib_chart_axis = require("../../../metrics/lib/cha
|
|
|
10
10
|
const require_domains_metrics_lib_chart_colors = require("../../../metrics/lib/chart-colors.cjs.js");
|
|
11
11
|
const require_domains_dashboards_lib_scores = require("../../lib/scores.cjs.js");
|
|
12
12
|
const require_domains_dashboards_hooks_use_scorers = require("../../hooks/use-scorers.cjs.js");
|
|
13
|
+
const require_domains_dashboards_lib_chrome = require("../../lib/chrome.cjs.js");
|
|
13
14
|
const require_domains_dashboards_lib_format = require("../../lib/format.cjs.js");
|
|
14
|
-
const require_MetricsLineChart = require("../../../../MetricsLineChart-
|
|
15
|
+
const require_MetricsLineChart = require("../../../../MetricsLineChart-tZxsauau.cjs");
|
|
15
16
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
16
17
|
// src/domains/dashboards/kinds/scores/scores-widget.tsx
|
|
17
18
|
/** Scores aren't problems, so no warm hues; past five scorers the colors repeat. */
|
|
@@ -22,19 +23,20 @@ var SCORER_COLORS = [
|
|
|
22
23
|
require_domains_metrics_lib_chart_colors.CHART_COLORS.teal,
|
|
23
24
|
require_domains_metrics_lib_chart_colors.CHART_COLORS.indigo
|
|
24
25
|
];
|
|
25
|
-
function ScoresWidget({ widget, views }) {
|
|
26
|
+
function ScoresWidget({ widget, views, expand }) {
|
|
26
27
|
const [view] = views;
|
|
28
|
+
const heading = require_domains_dashboards_lib_chrome.viewTitle(widget, [view], 0, () => {}, expand);
|
|
27
29
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_dashboards_components_view_gate.ViewGate, {
|
|
28
30
|
queries: view.queries,
|
|
29
31
|
pending: () => null,
|
|
30
32
|
children: (page) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ScoresView, {
|
|
31
|
-
|
|
33
|
+
heading,
|
|
32
34
|
view,
|
|
33
35
|
page
|
|
34
36
|
})
|
|
35
37
|
});
|
|
36
38
|
}
|
|
37
|
-
function ScoresView({
|
|
39
|
+
function ScoresView({ heading, view, page }) {
|
|
38
40
|
const { options } = view;
|
|
39
41
|
const { interval } = require_domains_metrics_lib_metrics_buckets.bucketPlan(page.window.start, page.window.end);
|
|
40
42
|
const stepHours = require_domains_metrics_lib_metrics_buckets.intervalHours(interval);
|
|
@@ -54,7 +56,7 @@ function ScoresView({ title, view, page }) {
|
|
|
54
56
|
].filter((r) => r !== void 0);
|
|
55
57
|
const failed = all.filter((r) => r.isError);
|
|
56
58
|
if (failed.length > 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_metrics_components_chart_card.ChartCard, {
|
|
57
|
-
|
|
59
|
+
...heading,
|
|
58
60
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_metrics_components_chart_card_error.ChartCardError, {
|
|
59
61
|
error: failed[0]?.error,
|
|
60
62
|
onRetry: () => failed.forEach((r) => void r.refetch())
|
|
@@ -68,12 +70,13 @@ function ScoresView({ title, view, page }) {
|
|
|
68
70
|
color: SCORER_COLORS[i % SCORER_COLORS.length] ?? require_domains_metrics_lib_chart_colors.CHART_COLORS.neutral
|
|
69
71
|
}));
|
|
70
72
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_metrics_components_chart_card.ChartCard, {
|
|
71
|
-
|
|
73
|
+
...heading,
|
|
72
74
|
isUpdating: all.some((r) => r.isRefetching),
|
|
73
75
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_metrics_components_chart_area.ChartArea, {
|
|
74
76
|
isEmpty: !isLoading && lines.length === 0,
|
|
75
77
|
emptyMessage: options.emptyMessage,
|
|
76
78
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MetricsLineChart.MetricsLineChart, {
|
|
79
|
+
lineStyle: "thin",
|
|
77
80
|
data: isLoading ? [] : buckets,
|
|
78
81
|
series,
|
|
79
82
|
height: "fill",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scores-widget.cjs.js","names":["CHART_COLORS","ViewGate","bucketPlan","intervalHours","useScorers","withScorer","buildRequest","useDashboardRequests","ChartCard","ChartCardError","shapeScores","ChartArea","MetricsLineChart","FORMATTERS","BUCKET_AXIS"],"sources":["../../../../../src/domains/dashboards/kinds/scores/scores-widget.tsx"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { CHART_COLORS } from '../../../metrics/lib/chart-colors';\nimport { bucketPlan, intervalHours } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { useScorers } from '../../hooks/use-scorers';\nimport { FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeScores, withScorer } from '../../lib/scores';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport type { ScoresOptions } from './options';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsLineChart } from '@/ds/components/MetricsLineChart';\n\n/** Scores aren't problems, so no warm hues; past five scorers the colors repeat. */\nconst SCORER_COLORS = [\n CHART_COLORS.green,\n CHART_COLORS.sky,\n CHART_COLORS.violet,\n CHART_COLORS.teal,\n CHART_COLORS.indigo,\n];\n\nexport function ScoresWidget({ widget, views }: WidgetKindProps<ScoresOptions>) {\n const [view] = views;\n return (\n <ViewGate queries={view.queries} pending={() => null}>\n {page => <ScoresView
|
|
1
|
+
{"version":3,"file":"scores-widget.cjs.js","names":["CHART_COLORS","viewTitle","ViewGate","bucketPlan","intervalHours","useScorers","withScorer","buildRequest","useDashboardRequests","ChartCard","ChartCardError","shapeScores","ChartArea","MetricsLineChart","FORMATTERS","BUCKET_AXIS"],"sources":["../../../../../src/domains/dashboards/kinds/scores/scores-widget.tsx"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { CHART_COLORS } from '../../../metrics/lib/chart-colors';\nimport { bucketPlan, intervalHours } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { useScorers } from '../../hooks/use-scorers';\nimport { viewTitle } from '../../lib/chrome';\nimport type { ViewHeading } from '../../lib/chrome';\nimport { FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeScores, withScorer } from '../../lib/scores';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport type { ScoresOptions } from './options';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsLineChart } from '@/ds/components/MetricsLineChart';\n\n/** Scores aren't problems, so no warm hues; past five scorers the colors repeat. */\nconst SCORER_COLORS = [\n CHART_COLORS.green,\n CHART_COLORS.sky,\n CHART_COLORS.violet,\n CHART_COLORS.teal,\n CHART_COLORS.indigo,\n];\n\nexport function ScoresWidget({ widget, views, expand }: WidgetKindProps<ScoresOptions>) {\n const [view] = views;\n // Scores show their first view only, so the title is plain or, with somewhere to expand to, a link.\n const heading = viewTitle(widget, [view], 0, () => {}, expand);\n return (\n <ViewGate queries={view.queries} pending={() => null}>\n {page => <ScoresView heading={heading} view={view} page={page} />}\n </ViewGate>\n );\n}\n\nfunction ScoresView({\n heading,\n view,\n page,\n}: {\n heading: ViewHeading;\n view: ResolvedView<ScoresOptions>;\n page: DashboardPageContext;\n}) {\n const { options } = view;\n const { interval } = bucketPlan(page.window.start, page.window.end);\n const stepHours = intervalHours(interval);\n const { recent, scorers } = useScorers(view.queries, page);\n const averageQuery = view.queries.find(q => q.id === options.average);\n const seriesQuery = view.queries.find(q => q.id === options.series);\n const send = (query: DashboardQuery | undefined, scorerId: string, bucket?: typeof interval) => {\n const own = withScorer(query, scorerId);\n return own && buildRequest(own, page, { interval: bucket });\n };\n // One answer per scorer in each list, in `scorers`' order.\n const means = useDashboardRequests(scorers.map(({ scorerId }) => send(averageQuery, scorerId)));\n const points = useDashboardRequests(scorers.map(({ scorerId }) => send(seriesQuery, scorerId, interval)));\n\n const all = [recent, ...means, ...points].filter(r => r !== undefined);\n const failed = all.filter(r => r.isError);\n if (failed.length > 0) {\n return (\n <ChartCard {...heading}>\n <ChartCardError error={failed[0]?.error} onRetry={() => failed.forEach(r => void r.refetch())} />\n </ChartCard>\n );\n }\n\n const isLoading = all.some(r => r.isLoading);\n const { buckets, lines } = shapeScores(\n isLoading ? [] : scorers,\n means.map(r => r?.data),\n points.map(r => r?.data),\n page.window,\n stepHours,\n );\n const series: MetricsLineChartSeries[] = lines.map(({ scorerId, name }, i) => ({\n dataKey: scorerId,\n label: name,\n color: SCORER_COLORS[i % SCORER_COLORS.length] ?? CHART_COLORS.neutral,\n }));\n\n return (\n <ChartCard {...heading} isUpdating={all.some(r => r.isRefetching)}>\n <ChartArea isEmpty={!isLoading && lines.length === 0} emptyMessage={options.emptyMessage}>\n <MetricsLineChart\n lineStyle=\"thin\"\n data={isLoading ? [] : buckets}\n series={series}\n height=\"fill\"\n yDomain={[0, 1]}\n valueFormatter={FORMATTERS.score.value}\n axisFormatter={FORMATTERS.score.axis}\n isLoading={isLoading}\n {...BUCKET_AXIS}\n />\n </ChartArea>\n </ChartCard>\n );\n}\n"],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@ import { BUCKET_AXIS } from "../../../metrics/lib/chart-axis.es.js";
|
|
|
9
9
|
import { CHART_COLORS } from "../../../metrics/lib/chart-colors.es.js";
|
|
10
10
|
import { shapeScores, withScorer } from "../../lib/scores.es.js";
|
|
11
11
|
import { useScorers } from "../../hooks/use-scorers.es.js";
|
|
12
|
+
import { viewTitle } from "../../lib/chrome.es.js";
|
|
12
13
|
import { FORMATTERS } from "../../lib/format.es.js";
|
|
13
|
-
import { t as MetricsLineChart } from "../../../../MetricsLineChart-
|
|
14
|
+
import { t as MetricsLineChart } from "../../../../MetricsLineChart-4SwxBbQx.js";
|
|
14
15
|
import { jsx } from "react/jsx-runtime";
|
|
15
16
|
// src/domains/dashboards/kinds/scores/scores-widget.tsx
|
|
16
17
|
/** Scores aren't problems, so no warm hues; past five scorers the colors repeat. */
|
|
@@ -21,19 +22,20 @@ var SCORER_COLORS = [
|
|
|
21
22
|
CHART_COLORS.teal,
|
|
22
23
|
CHART_COLORS.indigo
|
|
23
24
|
];
|
|
24
|
-
function ScoresWidget({ widget, views }) {
|
|
25
|
+
function ScoresWidget({ widget, views, expand }) {
|
|
25
26
|
const [view] = views;
|
|
27
|
+
const heading = viewTitle(widget, [view], 0, () => {}, expand);
|
|
26
28
|
return /* @__PURE__ */ jsx(ViewGate, {
|
|
27
29
|
queries: view.queries,
|
|
28
30
|
pending: () => null,
|
|
29
31
|
children: (page) => /* @__PURE__ */ jsx(ScoresView, {
|
|
30
|
-
|
|
32
|
+
heading,
|
|
31
33
|
view,
|
|
32
34
|
page
|
|
33
35
|
})
|
|
34
36
|
});
|
|
35
37
|
}
|
|
36
|
-
function ScoresView({
|
|
38
|
+
function ScoresView({ heading, view, page }) {
|
|
37
39
|
const { options } = view;
|
|
38
40
|
const { interval } = bucketPlan(page.window.start, page.window.end);
|
|
39
41
|
const stepHours = intervalHours(interval);
|
|
@@ -53,7 +55,7 @@ function ScoresView({ title, view, page }) {
|
|
|
53
55
|
].filter((r) => r !== void 0);
|
|
54
56
|
const failed = all.filter((r) => r.isError);
|
|
55
57
|
if (failed.length > 0) return /* @__PURE__ */ jsx(ChartCard, {
|
|
56
|
-
|
|
58
|
+
...heading,
|
|
57
59
|
children: /* @__PURE__ */ jsx(ChartCardError, {
|
|
58
60
|
error: failed[0]?.error,
|
|
59
61
|
onRetry: () => failed.forEach((r) => void r.refetch())
|
|
@@ -67,12 +69,13 @@ function ScoresView({ title, view, page }) {
|
|
|
67
69
|
color: SCORER_COLORS[i % SCORER_COLORS.length] ?? CHART_COLORS.neutral
|
|
68
70
|
}));
|
|
69
71
|
return /* @__PURE__ */ jsx(ChartCard, {
|
|
70
|
-
|
|
72
|
+
...heading,
|
|
71
73
|
isUpdating: all.some((r) => r.isRefetching),
|
|
72
74
|
children: /* @__PURE__ */ jsx(ChartArea, {
|
|
73
75
|
isEmpty: !isLoading && lines.length === 0,
|
|
74
76
|
emptyMessage: options.emptyMessage,
|
|
75
77
|
children: /* @__PURE__ */ jsx(MetricsLineChart, {
|
|
78
|
+
lineStyle: "thin",
|
|
76
79
|
data: isLoading ? [] : buckets,
|
|
77
80
|
series,
|
|
78
81
|
height: "fill",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scores-widget.es.js","names":[],"sources":["../../../../../src/domains/dashboards/kinds/scores/scores-widget.tsx"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { CHART_COLORS } from '../../../metrics/lib/chart-colors';\nimport { bucketPlan, intervalHours } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { useScorers } from '../../hooks/use-scorers';\nimport { FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeScores, withScorer } from '../../lib/scores';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport type { ScoresOptions } from './options';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsLineChart } from '@/ds/components/MetricsLineChart';\n\n/** Scores aren't problems, so no warm hues; past five scorers the colors repeat. */\nconst SCORER_COLORS = [\n CHART_COLORS.green,\n CHART_COLORS.sky,\n CHART_COLORS.violet,\n CHART_COLORS.teal,\n CHART_COLORS.indigo,\n];\n\nexport function ScoresWidget({ widget, views }: WidgetKindProps<ScoresOptions>) {\n const [view] = views;\n return (\n <ViewGate queries={view.queries} pending={() => null}>\n {page => <ScoresView
|
|
1
|
+
{"version":3,"file":"scores-widget.es.js","names":[],"sources":["../../../../../src/domains/dashboards/kinds/scores/scores-widget.tsx"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { CHART_COLORS } from '../../../metrics/lib/chart-colors';\nimport { bucketPlan, intervalHours } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { useScorers } from '../../hooks/use-scorers';\nimport { viewTitle } from '../../lib/chrome';\nimport type { ViewHeading } from '../../lib/chrome';\nimport { FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeScores, withScorer } from '../../lib/scores';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport type { ScoresOptions } from './options';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsLineChart } from '@/ds/components/MetricsLineChart';\n\n/** Scores aren't problems, so no warm hues; past five scorers the colors repeat. */\nconst SCORER_COLORS = [\n CHART_COLORS.green,\n CHART_COLORS.sky,\n CHART_COLORS.violet,\n CHART_COLORS.teal,\n CHART_COLORS.indigo,\n];\n\nexport function ScoresWidget({ widget, views, expand }: WidgetKindProps<ScoresOptions>) {\n const [view] = views;\n // Scores show their first view only, so the title is plain or, with somewhere to expand to, a link.\n const heading = viewTitle(widget, [view], 0, () => {}, expand);\n return (\n <ViewGate queries={view.queries} pending={() => null}>\n {page => <ScoresView heading={heading} view={view} page={page} />}\n </ViewGate>\n );\n}\n\nfunction ScoresView({\n heading,\n view,\n page,\n}: {\n heading: ViewHeading;\n view: ResolvedView<ScoresOptions>;\n page: DashboardPageContext;\n}) {\n const { options } = view;\n const { interval } = bucketPlan(page.window.start, page.window.end);\n const stepHours = intervalHours(interval);\n const { recent, scorers } = useScorers(view.queries, page);\n const averageQuery = view.queries.find(q => q.id === options.average);\n const seriesQuery = view.queries.find(q => q.id === options.series);\n const send = (query: DashboardQuery | undefined, scorerId: string, bucket?: typeof interval) => {\n const own = withScorer(query, scorerId);\n return own && buildRequest(own, page, { interval: bucket });\n };\n // One answer per scorer in each list, in `scorers`' order.\n const means = useDashboardRequests(scorers.map(({ scorerId }) => send(averageQuery, scorerId)));\n const points = useDashboardRequests(scorers.map(({ scorerId }) => send(seriesQuery, scorerId, interval)));\n\n const all = [recent, ...means, ...points].filter(r => r !== undefined);\n const failed = all.filter(r => r.isError);\n if (failed.length > 0) {\n return (\n <ChartCard {...heading}>\n <ChartCardError error={failed[0]?.error} onRetry={() => failed.forEach(r => void r.refetch())} />\n </ChartCard>\n );\n }\n\n const isLoading = all.some(r => r.isLoading);\n const { buckets, lines } = shapeScores(\n isLoading ? [] : scorers,\n means.map(r => r?.data),\n points.map(r => r?.data),\n page.window,\n stepHours,\n );\n const series: MetricsLineChartSeries[] = lines.map(({ scorerId, name }, i) => ({\n dataKey: scorerId,\n label: name,\n color: SCORER_COLORS[i % SCORER_COLORS.length] ?? CHART_COLORS.neutral,\n }));\n\n return (\n <ChartCard {...heading} isUpdating={all.some(r => r.isRefetching)}>\n <ChartArea isEmpty={!isLoading && lines.length === 0} emptyMessage={options.emptyMessage}>\n <MetricsLineChart\n lineStyle=\"thin\"\n data={isLoading ? [] : buckets}\n series={series}\n height=\"fill\"\n yDomain={[0, 1]}\n valueFormatter={FORMATTERS.score.value}\n axisFormatter={FORMATTERS.score.axis}\n isLoading={isLoading}\n {...BUCKET_AXIS}\n />\n </ChartArea>\n </ChartCard>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,IAAM,gBAAgB;CACpB,aAAa;CACb,aAAa;CACb,aAAa;CACb,aAAa;CACb,aAAa;AACf;AAEA,SAAgB,aAAa,EAAE,QAAQ,OAAO,UAA0C;CACtF,MAAM,CAAC,QAAQ;CAEf,MAAM,UAAU,UAAU,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM;CAC7D,OACE,oBAAC,UAAD;EAAU,SAAS,KAAK;EAAS,eAAe;EAC7C,WAAA,SAAQ,oBAAC,YAAD;GAAqB;GAAe;GAAY;EAAO,CAAA;CACxD,CAAA;AAEd;AAEA,SAAS,WAAW,EAClB,SACA,MACA,QAKC;CACD,MAAM,EAAE,YAAY;CACpB,MAAM,EAAE,aAAa,WAAW,KAAK,OAAO,OAAO,KAAK,OAAO,GAAG;CAClE,MAAM,YAAY,cAAc,QAAQ;CACxC,MAAM,EAAE,QAAQ,YAAY,WAAW,KAAK,SAAS,IAAI;CACzD,MAAM,eAAe,KAAK,QAAQ,MAAK,MAAK,EAAE,OAAO,QAAQ,OAAO;CACpE,MAAM,cAAc,KAAK,QAAQ,MAAK,MAAK,EAAE,OAAO,QAAQ,MAAM;CAClE,MAAM,QAAQ,OAAmC,UAAkB,WAA6B;EAC9F,MAAM,MAAM,WAAW,OAAO,QAAQ;EACtC,OAAO,OAAO,aAAa,KAAK,MAAM,EAAE,UAAU,OAAO,CAAC;CAC5D;CAEA,MAAM,QAAQ,qBAAqB,QAAQ,KAAK,EAAE,eAAe,KAAK,cAAc,QAAQ,CAAC,CAAC;CAC9F,MAAM,SAAS,qBAAqB,QAAQ,KAAK,EAAE,eAAe,KAAK,aAAa,UAAU,QAAQ,CAAC,CAAC;CAExG,MAAM,MAAM;EAAC;EAAQ,GAAG;EAAO,GAAG;CAAM,CAAC,CAAC,QAAO,MAAK,MAAM,KAAA,CAAS;CACrE,MAAM,SAAS,IAAI,QAAO,MAAK,EAAE,OAAO;CACxC,IAAI,OAAO,SAAS,GAClB,OACE,oBAAC,WAAD;EAAW,GAAI;EACb,UAAA,oBAAC,gBAAD;GAAgB,OAAO,OAAO,EAAE,EAAE;GAAO,eAAe,OAAO,SAAQ,MAAK,KAAK,EAAE,QAAQ,CAAC;EAAI,CAAA;CACvF,CAAA;CAIf,MAAM,YAAY,IAAI,MAAK,MAAK,EAAE,SAAS;CAC3C,MAAM,EAAE,SAAS,UAAU,YACzB,YAAY,CAAC,IAAI,SACjB,MAAM,KAAI,MAAK,GAAG,IAAI,GACtB,OAAO,KAAI,MAAK,GAAG,IAAI,GACvB,KAAK,QACL,SACF;CACA,MAAM,SAAmC,MAAM,KAAK,EAAE,UAAU,QAAQ,OAAO;EAC7E,SAAS;EACT,OAAO;EACP,OAAO,cAAc,IAAI,cAAc,WAAW,aAAa;CACjE,EAAE;CAEF,OACE,oBAAC,WAAD;EAAW,GAAI;EAAS,YAAY,IAAI,MAAK,MAAK,EAAE,YAAY;EAC9D,UAAA,oBAAC,WAAD;GAAW,SAAS,CAAC,aAAa,MAAM,WAAW;GAAG,cAAc,QAAQ;GAC1E,UAAA,oBAAC,kBAAD;IACE,WAAU;IACV,MAAM,YAAY,CAAC,IAAI;IACf;IACR,QAAO;IACP,SAAS,CAAC,GAAG,CAAC;IACd,gBAAgB,WAAW,MAAM;IACjC,eAAe,WAAW,MAAM;IACrB;IACX,GAAI;GACL,CAAA;EACQ,CAAA;CACF,CAAA;AAEf"}
|
|
@@ -2,9 +2,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_domains_dashboards_lib_requests = require("../../lib/requests.cjs.js");
|
|
3
3
|
const require_domains_dashboards_hooks_use_dashboard_requests = require("../../hooks/use-dashboard-requests.cjs.js");
|
|
4
4
|
const require_domains_dashboards_lib_values = require("../../lib/values.cjs.js");
|
|
5
|
-
const require_MetricsCard = require("../../../../MetricsCard-
|
|
6
|
-
const require_domains_dashboards_lib_table = require("../../lib/table.cjs.js");
|
|
5
|
+
const require_MetricsCard = require("../../../../MetricsCard-BEwiS7Pe.cjs");
|
|
7
6
|
const require_domains_dashboards_lib_chrome = require("../../lib/chrome.cjs.js");
|
|
7
|
+
const require_domains_dashboards_lib_table = require("../../lib/table.cjs.js");
|
|
8
8
|
const require_domains_dashboards_hooks_use_widget_views = require("../../hooks/use-widget-views.cjs.js");
|
|
9
9
|
const require_domains_dashboards_kinds_table_table_frame = require("./table-frame.cjs.js");
|
|
10
10
|
const require_domains_dashboards_kinds_table_table_view = require("./table-view.cjs.js");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { buildRequest } from "../../lib/requests.es.js";
|
|
2
2
|
import { useDashboardRequests } from "../../hooks/use-dashboard-requests.es.js";
|
|
3
3
|
import { exprRefs } from "../../lib/values.es.js";
|
|
4
|
-
import { t as MetricsCard } from "../../../../MetricsCard-
|
|
5
|
-
import { countRows, isValueColumn, openingView, parseColumns } from "../../lib/table.es.js";
|
|
4
|
+
import { t as MetricsCard } from "../../../../MetricsCard-ua6C6b8a.js";
|
|
6
5
|
import { unsupportedMessage } from "../../lib/chrome.es.js";
|
|
6
|
+
import { countRows, isValueColumn, openingView, parseColumns } from "../../lib/table.es.js";
|
|
7
7
|
import { useViewMenu } from "../../hooks/use-widget-views.es.js";
|
|
8
8
|
import { TableFrame } from "./table-frame.es.js";
|
|
9
9
|
import { TableView } from "./table-view.es.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_domains_dashboards_components_view_gate = require("../../components/view-gate.cjs.js");
|
|
3
|
-
const require_MetricsCard = require("../../../../MetricsCard-
|
|
3
|
+
const require_MetricsCard = require("../../../../MetricsCard-BEwiS7Pe.cjs");
|
|
4
4
|
const require_domains_metrics_components_chart_card = require("../../../metrics/components/chart-card.cjs.js");
|
|
5
5
|
const require_domains_dashboards_kinds_table_table_tabs = require("./table-tabs.cjs.js");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViewGate } from "../../components/view-gate.es.js";
|
|
2
|
-
import { t as MetricsCard } from "../../../../MetricsCard-
|
|
2
|
+
import { t as MetricsCard } from "../../../../MetricsCard-ua6C6b8a.js";
|
|
3
3
|
import { ChartCard } from "../../../metrics/components/chart-card.es.js";
|
|
4
4
|
import { TableTabs } from "./table-tabs.es.js";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -4,22 +4,22 @@ const require_domains_dashboards_lib_requests = require("../../lib/requests.cjs.
|
|
|
4
4
|
const require_domains_dashboards_components_view_gate = require("../../components/view-gate.cjs.js");
|
|
5
5
|
const require_domains_dashboards_hooks_use_dashboard_requests = require("../../hooks/use-dashboard-requests.cjs.js");
|
|
6
6
|
const require_domains_dashboards_lib_values = require("../../lib/values.cjs.js");
|
|
7
|
-
const require_MetricsCard = require("../../../../MetricsCard-
|
|
7
|
+
const require_MetricsCard = require("../../../../MetricsCard-BEwiS7Pe.cjs");
|
|
8
8
|
const require_domains_metrics_components_chart_area = require("../../../metrics/components/chart-area.cjs.js");
|
|
9
9
|
const require_domains_metrics_components_chart_card = require("../../../metrics/components/chart-card.cjs.js");
|
|
10
10
|
const require_domains_metrics_components_chart_card_error = require("../../../metrics/components/chart-card-error.cjs.js");
|
|
11
11
|
const require_domains_metrics_lib_chart_axis = require("../../../metrics/lib/chart-axis.cjs.js");
|
|
12
12
|
const require_domains_dashboards_lib_format = require("../../lib/format.cjs.js");
|
|
13
|
-
const require_MetricsLineChart = require("../../../../MetricsLineChart-
|
|
13
|
+
const require_MetricsLineChart = require("../../../../MetricsLineChart-tZxsauau.cjs");
|
|
14
14
|
const require_domains_dashboards_hooks_use_widget_views = require("../../hooks/use-widget-views.cjs.js");
|
|
15
15
|
const require_domains_dashboards_lib_timeseries = require("../../lib/timeseries.cjs.js");
|
|
16
16
|
const require_domains_dashboards_components_widget_chrome = require("../../components/widget-chrome.cjs.js");
|
|
17
17
|
const require_domains_dashboards_components_widget_controls = require("../../components/widget-controls.cjs.js");
|
|
18
|
-
const require_MetricsStackedBarChart = require("../../../../MetricsStackedBarChart-
|
|
18
|
+
const require_MetricsStackedBarChart = require("../../../../MetricsStackedBarChart-CDLE76IB.cjs");
|
|
19
19
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
20
20
|
// src/domains/dashboards/kinds/timeseries/timeseries-widget.tsx
|
|
21
21
|
function TimeseriesWidget(props) {
|
|
22
|
-
const { view, heading } = require_domains_dashboards_hooks_use_widget_views.useViewMenu(props.widget, props.views);
|
|
22
|
+
const { view, heading } = require_domains_dashboards_hooks_use_widget_views.useViewMenu(props.widget, props.views, 0, props.expand);
|
|
23
23
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_dashboards_components_view_gate.ViewGate, {
|
|
24
24
|
queries: view.queries,
|
|
25
25
|
pending: (gate) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_dashboards_components_widget_chrome.PendingChartCard, {
|
|
@@ -105,7 +105,8 @@ function TimeseriesView({ widget, view, heading, page, onDrilldown }) {
|
|
|
105
105
|
emptyMessage: options.emptyMessage,
|
|
106
106
|
children: options.chart === "stackedBar" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MetricsStackedBarChart.MetricsStackedBarChart, { ...chart }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MetricsLineChart.MetricsLineChart, {
|
|
107
107
|
...chart,
|
|
108
|
-
yDomain
|
|
108
|
+
yDomain,
|
|
109
|
+
lineStyle: "thin"
|
|
109
110
|
})
|
|
110
111
|
})
|
|
111
112
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries-widget.cjs.js","names":["useViewMenu","ViewGate","PendingChartCard","bucketPlan","useDashboardRequests","buildRequest","useDrilldown","shapeTimeseries","answersById","FORMATTERS","chartColor","hasDrilldownAction","DrilldownAction","MetricsCard","MetricsLineChartLegend","ChartCard","ChartCardError","bucketWindow","EDGE_BUCKET_AXIS","BUCKET_AXIS","ChartArea","MetricsStackedBarChart","MetricsLineChart"],"sources":["../../../../../src/domains/dashboards/kinds/timeseries/timeseries-widget.tsx"],"sourcesContent":["import { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS, EDGE_BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { bucketPlan, bucketWindow } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { PendingChartCard } from '../../components/widget-chrome';\nimport { DrilldownAction } from '../../components/widget-controls';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { hasDrilldownAction, useDrilldown, useViewMenu } from '../../hooks/use-widget-views';\nimport type { ViewHeading } from '../../lib/chrome';\nimport { chartColor, FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeTimeseries } from '../../lib/timeseries';\nimport type { TimeseriesOptions } from '../../lib/timeseries';\nimport { answersById } from '../../lib/values';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport { MetricsCard } from '@/ds/components/MetricsCard';\nimport { MetricsLineChart, MetricsLineChartLegend } from '@/ds/components/MetricsLineChart';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsStackedBarChart } from '@/ds/components/MetricsStackedBarChart';\n\ntype Props = WidgetKindProps<TimeseriesOptions>;\ntype ViewProps = Props & {\n view: ResolvedView<TimeseriesOptions>;\n heading: ViewHeading;\n page: DashboardPageContext;\n};\n\nexport function TimeseriesWidget(props: Props) {\n const { view, heading } = useViewMenu(props.widget, props.views);\n return (\n <ViewGate queries={view.queries} pending={gate => <PendingChartCard gate={gate} heading={heading} />}>\n {page => <TimeseriesView {...props} view={view} heading={heading} page={page} />}\n </ViewGate>\n );\n}\n\nfunction TimeseriesView({ widget, view, heading, page, onDrilldown }: ViewProps) {\n const { options } = view;\n const { interval } = bucketPlan(page.window.start, page.window.end);\n const totals = new Set(options.totals ?? []);\n const results = useDashboardRequests(\n view.queries.map(q =>\n buildRequest(q, page, { interval: q.id !== undefined && totals.has(q.id) ? undefined : interval }),\n ),\n );\n const sent = results.filter(r => r !== undefined);\n const hasTraceQueries = view.queries.some(q => q.source === 'traceAggregate' || q.source === 'spanAggregate');\n const onClick = useDrilldown(widget, view, onDrilldown);\n\n const isLoading = sent.some(r => r.isLoading);\n const shaped = shapeTimeseries({\n options,\n responses: answersById(\n view.queries,\n results.map(r => r?.data),\n ),\n window: page.window,\n hasTraceQueries,\n });\n const format = FORMATTERS[options.format];\n const lines: MetricsLineChartSeries[] = shaped.series.map(s => ({\n dataKey: s.dataKey,\n label: s.label,\n color: chartColor(s.color),\n emphasis: s.emphasis,\n }));\n // Series with a range total each show theirs, marked like their line: they count different things.\n const rangeTotals = shaped.series.flatMap(s =>\n s.rangeTotal === undefined\n ? []\n : [{ label: s.label, value: format.value(s.rangeTotal), color: chartColor(s.color) }],\n );\n const withRangeTotals = options.series.some(s => s.rangeTotal !== undefined);\n\n const layout = {\n ...heading,\n actions: hasDrilldownAction(widget, view, onDrilldown) ? (\n <DrilldownAction widget={widget} view={view} onDrilldown={onDrilldown} />\n ) : undefined,\n total: withRangeTotals ? rangeTotals : undefined,\n isLoading,\n toolbar: lines.length > 0 && (\n <MetricsCard.Toolbar>\n <MetricsLineChartLegend series={lines} />\n </MetricsCard.Toolbar>\n ),\n };\n\n const failed = sent.filter(r => r.isError);\n if (failed.length) {\n return (\n <ChartCard {...layout}>\n {hasTraceQueries ? (\n <ChartCardError error={failed[0]?.error} onRetry={() => failed.forEach(r => void r.refetch())} />\n ) : (\n <ChartCardError />\n )}\n </ChartCard>\n );\n }\n\n const totalFormat = FORMATTERS[options.total?.format ?? options.format];\n const total =\n options.total &&\n (typeof options.total.value === 'object' && 'peak' in options.total.value && !shaped.total\n ? '—'\n : totalFormat.value(shaped.total ?? 0));\n\n const chart = {\n data: shaped.data,\n series: lines,\n height: 'fill' as const,\n xLabels: options.xLabels,\n showLegend: false,\n valueFormatter: format.value,\n axisFormatter: options.axis === false ? undefined : format.axis,\n onBucketClick:\n onClick &&\n ((row: Record<string, unknown>) => onClick({ window: bucketWindow(Number(row.ts), shaped.stepHours) })),\n isLoading,\n ...(options.xLabels ? EDGE_BUCKET_AXIS : BUCKET_AXIS),\n };\n const yDomain = shaped.flat && options.flatYDomain ? options.flatYDomain : options.yDomain;\n\n return (\n <ChartCard {...layout} total={layout.total ?? total} isUpdating={sent.some(r => r.isRefetching)}>\n <ChartArea isEmpty={!isLoading && shaped.empty} emptyMessage={options.emptyMessage}>\n {options.chart === 'stackedBar' ? (\n <MetricsStackedBarChart {...chart} />\n ) : (\n <MetricsLineChart {...chart} yDomain={yDomain} />\n )}\n </ChartArea>\n </ChartCard>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA8BA,SAAgB,iBAAiB,OAAc;CAC7C,MAAM,EAAE,MAAM,YAAYA,kDAAAA,YAAY,MAAM,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"timeseries-widget.cjs.js","names":["useViewMenu","ViewGate","PendingChartCard","bucketPlan","useDashboardRequests","buildRequest","useDrilldown","shapeTimeseries","answersById","FORMATTERS","chartColor","hasDrilldownAction","DrilldownAction","MetricsCard","MetricsLineChartLegend","ChartCard","ChartCardError","bucketWindow","EDGE_BUCKET_AXIS","BUCKET_AXIS","ChartArea","MetricsStackedBarChart","MetricsLineChart"],"sources":["../../../../../src/domains/dashboards/kinds/timeseries/timeseries-widget.tsx"],"sourcesContent":["import { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS, EDGE_BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { bucketPlan, bucketWindow } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { PendingChartCard } from '../../components/widget-chrome';\nimport { DrilldownAction } from '../../components/widget-controls';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { hasDrilldownAction, useDrilldown, useViewMenu } from '../../hooks/use-widget-views';\nimport type { ViewHeading } from '../../lib/chrome';\nimport { chartColor, FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeTimeseries } from '../../lib/timeseries';\nimport type { TimeseriesOptions } from '../../lib/timeseries';\nimport { answersById } from '../../lib/values';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport { MetricsCard } from '@/ds/components/MetricsCard';\nimport { MetricsLineChart, MetricsLineChartLegend } from '@/ds/components/MetricsLineChart';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsStackedBarChart } from '@/ds/components/MetricsStackedBarChart';\n\ntype Props = WidgetKindProps<TimeseriesOptions>;\ntype ViewProps = Props & {\n view: ResolvedView<TimeseriesOptions>;\n heading: ViewHeading;\n page: DashboardPageContext;\n};\n\nexport function TimeseriesWidget(props: Props) {\n const { view, heading } = useViewMenu(props.widget, props.views, 0, props.expand);\n return (\n <ViewGate queries={view.queries} pending={gate => <PendingChartCard gate={gate} heading={heading} />}>\n {page => <TimeseriesView {...props} view={view} heading={heading} page={page} />}\n </ViewGate>\n );\n}\n\nfunction TimeseriesView({ widget, view, heading, page, onDrilldown }: ViewProps) {\n const { options } = view;\n const { interval } = bucketPlan(page.window.start, page.window.end);\n const totals = new Set(options.totals ?? []);\n const results = useDashboardRequests(\n view.queries.map(q =>\n buildRequest(q, page, { interval: q.id !== undefined && totals.has(q.id) ? undefined : interval }),\n ),\n );\n const sent = results.filter(r => r !== undefined);\n const hasTraceQueries = view.queries.some(q => q.source === 'traceAggregate' || q.source === 'spanAggregate');\n const onClick = useDrilldown(widget, view, onDrilldown);\n\n const isLoading = sent.some(r => r.isLoading);\n const shaped = shapeTimeseries({\n options,\n responses: answersById(\n view.queries,\n results.map(r => r?.data),\n ),\n window: page.window,\n hasTraceQueries,\n });\n const format = FORMATTERS[options.format];\n const lines: MetricsLineChartSeries[] = shaped.series.map(s => ({\n dataKey: s.dataKey,\n label: s.label,\n color: chartColor(s.color),\n emphasis: s.emphasis,\n }));\n // Series with a range total each show theirs, marked like their line: they count different things.\n const rangeTotals = shaped.series.flatMap(s =>\n s.rangeTotal === undefined\n ? []\n : [{ label: s.label, value: format.value(s.rangeTotal), color: chartColor(s.color) }],\n );\n const withRangeTotals = options.series.some(s => s.rangeTotal !== undefined);\n\n const layout = {\n ...heading,\n actions: hasDrilldownAction(widget, view, onDrilldown) ? (\n <DrilldownAction widget={widget} view={view} onDrilldown={onDrilldown} />\n ) : undefined,\n total: withRangeTotals ? rangeTotals : undefined,\n isLoading,\n toolbar: lines.length > 0 && (\n <MetricsCard.Toolbar>\n <MetricsLineChartLegend series={lines} />\n </MetricsCard.Toolbar>\n ),\n };\n\n const failed = sent.filter(r => r.isError);\n if (failed.length) {\n return (\n <ChartCard {...layout}>\n {hasTraceQueries ? (\n <ChartCardError error={failed[0]?.error} onRetry={() => failed.forEach(r => void r.refetch())} />\n ) : (\n <ChartCardError />\n )}\n </ChartCard>\n );\n }\n\n const totalFormat = FORMATTERS[options.total?.format ?? options.format];\n const total =\n options.total &&\n (typeof options.total.value === 'object' && 'peak' in options.total.value && !shaped.total\n ? '—'\n : totalFormat.value(shaped.total ?? 0));\n\n const chart = {\n data: shaped.data,\n series: lines,\n height: 'fill' as const,\n xLabels: options.xLabels,\n showLegend: false,\n valueFormatter: format.value,\n axisFormatter: options.axis === false ? undefined : format.axis,\n onBucketClick:\n onClick &&\n ((row: Record<string, unknown>) => onClick({ window: bucketWindow(Number(row.ts), shaped.stepHours) })),\n isLoading,\n ...(options.xLabels ? EDGE_BUCKET_AXIS : BUCKET_AXIS),\n };\n const yDomain = shaped.flat && options.flatYDomain ? options.flatYDomain : options.yDomain;\n\n return (\n <ChartCard {...layout} total={layout.total ?? total} isUpdating={sent.some(r => r.isRefetching)}>\n <ChartArea isEmpty={!isLoading && shaped.empty} emptyMessage={options.emptyMessage}>\n {options.chart === 'stackedBar' ? (\n <MetricsStackedBarChart {...chart} />\n ) : (\n <MetricsLineChart {...chart} yDomain={yDomain} lineStyle=\"thin\" />\n )}\n </ChartArea>\n </ChartCard>\n );\n}\n"],"mappings":"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"}
|
|
@@ -3,22 +3,22 @@ import { buildRequest } from "../../lib/requests.es.js";
|
|
|
3
3
|
import { ViewGate } from "../../components/view-gate.es.js";
|
|
4
4
|
import { useDashboardRequests } from "../../hooks/use-dashboard-requests.es.js";
|
|
5
5
|
import { answersById } from "../../lib/values.es.js";
|
|
6
|
-
import { t as MetricsCard } from "../../../../MetricsCard-
|
|
6
|
+
import { t as MetricsCard } from "../../../../MetricsCard-ua6C6b8a.js";
|
|
7
7
|
import { ChartArea } from "../../../metrics/components/chart-area.es.js";
|
|
8
8
|
import { ChartCard } from "../../../metrics/components/chart-card.es.js";
|
|
9
9
|
import { ChartCardError } from "../../../metrics/components/chart-card-error.es.js";
|
|
10
10
|
import { BUCKET_AXIS, EDGE_BUCKET_AXIS } from "../../../metrics/lib/chart-axis.es.js";
|
|
11
11
|
import { FORMATTERS, chartColor } from "../../lib/format.es.js";
|
|
12
|
-
import { r as MetricsLineChartLegend, t as MetricsLineChart } from "../../../../MetricsLineChart-
|
|
12
|
+
import { r as MetricsLineChartLegend, t as MetricsLineChart } from "../../../../MetricsLineChart-4SwxBbQx.js";
|
|
13
13
|
import { hasDrilldownAction, useDrilldown, useViewMenu } from "../../hooks/use-widget-views.es.js";
|
|
14
14
|
import { shapeTimeseries } from "../../lib/timeseries.es.js";
|
|
15
15
|
import { PendingChartCard } from "../../components/widget-chrome.es.js";
|
|
16
16
|
import { DrilldownAction } from "../../components/widget-controls.es.js";
|
|
17
|
-
import { t as MetricsStackedBarChart } from "../../../../MetricsStackedBarChart-
|
|
17
|
+
import { t as MetricsStackedBarChart } from "../../../../MetricsStackedBarChart-D2QyS4-z.js";
|
|
18
18
|
import { jsx } from "react/jsx-runtime";
|
|
19
19
|
// src/domains/dashboards/kinds/timeseries/timeseries-widget.tsx
|
|
20
20
|
function TimeseriesWidget(props) {
|
|
21
|
-
const { view, heading } = useViewMenu(props.widget, props.views);
|
|
21
|
+
const { view, heading } = useViewMenu(props.widget, props.views, 0, props.expand);
|
|
22
22
|
return /* @__PURE__ */ jsx(ViewGate, {
|
|
23
23
|
queries: view.queries,
|
|
24
24
|
pending: (gate) => /* @__PURE__ */ jsx(PendingChartCard, {
|
|
@@ -104,7 +104,8 @@ function TimeseriesView({ widget, view, heading, page, onDrilldown }) {
|
|
|
104
104
|
emptyMessage: options.emptyMessage,
|
|
105
105
|
children: options.chart === "stackedBar" ? /* @__PURE__ */ jsx(MetricsStackedBarChart, { ...chart }) : /* @__PURE__ */ jsx(MetricsLineChart, {
|
|
106
106
|
...chart,
|
|
107
|
-
yDomain
|
|
107
|
+
yDomain,
|
|
108
|
+
lineStyle: "thin"
|
|
108
109
|
})
|
|
109
110
|
})
|
|
110
111
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeseries-widget.es.js","names":[],"sources":["../../../../../src/domains/dashboards/kinds/timeseries/timeseries-widget.tsx"],"sourcesContent":["import { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS, EDGE_BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { bucketPlan, bucketWindow } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { PendingChartCard } from '../../components/widget-chrome';\nimport { DrilldownAction } from '../../components/widget-controls';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { hasDrilldownAction, useDrilldown, useViewMenu } from '../../hooks/use-widget-views';\nimport type { ViewHeading } from '../../lib/chrome';\nimport { chartColor, FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeTimeseries } from '../../lib/timeseries';\nimport type { TimeseriesOptions } from '../../lib/timeseries';\nimport { answersById } from '../../lib/values';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport { MetricsCard } from '@/ds/components/MetricsCard';\nimport { MetricsLineChart, MetricsLineChartLegend } from '@/ds/components/MetricsLineChart';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsStackedBarChart } from '@/ds/components/MetricsStackedBarChart';\n\ntype Props = WidgetKindProps<TimeseriesOptions>;\ntype ViewProps = Props & {\n view: ResolvedView<TimeseriesOptions>;\n heading: ViewHeading;\n page: DashboardPageContext;\n};\n\nexport function TimeseriesWidget(props: Props) {\n const { view, heading } = useViewMenu(props.widget, props.views);\n return (\n <ViewGate queries={view.queries} pending={gate => <PendingChartCard gate={gate} heading={heading} />}>\n {page => <TimeseriesView {...props} view={view} heading={heading} page={page} />}\n </ViewGate>\n );\n}\n\nfunction TimeseriesView({ widget, view, heading, page, onDrilldown }: ViewProps) {\n const { options } = view;\n const { interval } = bucketPlan(page.window.start, page.window.end);\n const totals = new Set(options.totals ?? []);\n const results = useDashboardRequests(\n view.queries.map(q =>\n buildRequest(q, page, { interval: q.id !== undefined && totals.has(q.id) ? undefined : interval }),\n ),\n );\n const sent = results.filter(r => r !== undefined);\n const hasTraceQueries = view.queries.some(q => q.source === 'traceAggregate' || q.source === 'spanAggregate');\n const onClick = useDrilldown(widget, view, onDrilldown);\n\n const isLoading = sent.some(r => r.isLoading);\n const shaped = shapeTimeseries({\n options,\n responses: answersById(\n view.queries,\n results.map(r => r?.data),\n ),\n window: page.window,\n hasTraceQueries,\n });\n const format = FORMATTERS[options.format];\n const lines: MetricsLineChartSeries[] = shaped.series.map(s => ({\n dataKey: s.dataKey,\n label: s.label,\n color: chartColor(s.color),\n emphasis: s.emphasis,\n }));\n // Series with a range total each show theirs, marked like their line: they count different things.\n const rangeTotals = shaped.series.flatMap(s =>\n s.rangeTotal === undefined\n ? []\n : [{ label: s.label, value: format.value(s.rangeTotal), color: chartColor(s.color) }],\n );\n const withRangeTotals = options.series.some(s => s.rangeTotal !== undefined);\n\n const layout = {\n ...heading,\n actions: hasDrilldownAction(widget, view, onDrilldown) ? (\n <DrilldownAction widget={widget} view={view} onDrilldown={onDrilldown} />\n ) : undefined,\n total: withRangeTotals ? rangeTotals : undefined,\n isLoading,\n toolbar: lines.length > 0 && (\n <MetricsCard.Toolbar>\n <MetricsLineChartLegend series={lines} />\n </MetricsCard.Toolbar>\n ),\n };\n\n const failed = sent.filter(r => r.isError);\n if (failed.length) {\n return (\n <ChartCard {...layout}>\n {hasTraceQueries ? (\n <ChartCardError error={failed[0]?.error} onRetry={() => failed.forEach(r => void r.refetch())} />\n ) : (\n <ChartCardError />\n )}\n </ChartCard>\n );\n }\n\n const totalFormat = FORMATTERS[options.total?.format ?? options.format];\n const total =\n options.total &&\n (typeof options.total.value === 'object' && 'peak' in options.total.value && !shaped.total\n ? '—'\n : totalFormat.value(shaped.total ?? 0));\n\n const chart = {\n data: shaped.data,\n series: lines,\n height: 'fill' as const,\n xLabels: options.xLabels,\n showLegend: false,\n valueFormatter: format.value,\n axisFormatter: options.axis === false ? undefined : format.axis,\n onBucketClick:\n onClick &&\n ((row: Record<string, unknown>) => onClick({ window: bucketWindow(Number(row.ts), shaped.stepHours) })),\n isLoading,\n ...(options.xLabels ? EDGE_BUCKET_AXIS : BUCKET_AXIS),\n };\n const yDomain = shaped.flat && options.flatYDomain ? options.flatYDomain : options.yDomain;\n\n return (\n <ChartCard {...layout} total={layout.total ?? total} isUpdating={sent.some(r => r.isRefetching)}>\n <ChartArea isEmpty={!isLoading && shaped.empty} emptyMessage={options.emptyMessage}>\n {options.chart === 'stackedBar' ? (\n <MetricsStackedBarChart {...chart} />\n ) : (\n <MetricsLineChart {...chart} yDomain={yDomain} />\n )}\n </ChartArea>\n </ChartCard>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA8BA,SAAgB,iBAAiB,OAAc;CAC7C,MAAM,EAAE,MAAM,YAAY,YAAY,MAAM,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"timeseries-widget.es.js","names":[],"sources":["../../../../../src/domains/dashboards/kinds/timeseries/timeseries-widget.tsx"],"sourcesContent":["import { ChartArea } from '../../../metrics/components/chart-area';\nimport { ChartCard } from '../../../metrics/components/chart-card';\nimport { ChartCardError } from '../../../metrics/components/chart-card-error';\nimport { BUCKET_AXIS, EDGE_BUCKET_AXIS } from '../../../metrics/lib/chart-axis';\nimport { bucketPlan, bucketWindow } from '../../../metrics/lib/metrics-buckets';\nimport { ViewGate } from '../../components/view-gate';\nimport { PendingChartCard } from '../../components/widget-chrome';\nimport { DrilldownAction } from '../../components/widget-controls';\nimport { useDashboardRequests } from '../../hooks/use-dashboard-requests';\nimport { hasDrilldownAction, useDrilldown, useViewMenu } from '../../hooks/use-widget-views';\nimport type { ViewHeading } from '../../lib/chrome';\nimport { chartColor, FORMATTERS } from '../../lib/format';\nimport { buildRequest } from '../../lib/requests';\nimport type { DashboardPageContext } from '../../lib/requests';\nimport { shapeTimeseries } from '../../lib/timeseries';\nimport type { TimeseriesOptions } from '../../lib/timeseries';\nimport { answersById } from '../../lib/values';\nimport type { ResolvedView, WidgetKindProps } from '../../widget-kind';\nimport { MetricsCard } from '@/ds/components/MetricsCard';\nimport { MetricsLineChart, MetricsLineChartLegend } from '@/ds/components/MetricsLineChart';\nimport type { MetricsLineChartSeries } from '@/ds/components/MetricsLineChart';\nimport { MetricsStackedBarChart } from '@/ds/components/MetricsStackedBarChart';\n\ntype Props = WidgetKindProps<TimeseriesOptions>;\ntype ViewProps = Props & {\n view: ResolvedView<TimeseriesOptions>;\n heading: ViewHeading;\n page: DashboardPageContext;\n};\n\nexport function TimeseriesWidget(props: Props) {\n const { view, heading } = useViewMenu(props.widget, props.views, 0, props.expand);\n return (\n <ViewGate queries={view.queries} pending={gate => <PendingChartCard gate={gate} heading={heading} />}>\n {page => <TimeseriesView {...props} view={view} heading={heading} page={page} />}\n </ViewGate>\n );\n}\n\nfunction TimeseriesView({ widget, view, heading, page, onDrilldown }: ViewProps) {\n const { options } = view;\n const { interval } = bucketPlan(page.window.start, page.window.end);\n const totals = new Set(options.totals ?? []);\n const results = useDashboardRequests(\n view.queries.map(q =>\n buildRequest(q, page, { interval: q.id !== undefined && totals.has(q.id) ? undefined : interval }),\n ),\n );\n const sent = results.filter(r => r !== undefined);\n const hasTraceQueries = view.queries.some(q => q.source === 'traceAggregate' || q.source === 'spanAggregate');\n const onClick = useDrilldown(widget, view, onDrilldown);\n\n const isLoading = sent.some(r => r.isLoading);\n const shaped = shapeTimeseries({\n options,\n responses: answersById(\n view.queries,\n results.map(r => r?.data),\n ),\n window: page.window,\n hasTraceQueries,\n });\n const format = FORMATTERS[options.format];\n const lines: MetricsLineChartSeries[] = shaped.series.map(s => ({\n dataKey: s.dataKey,\n label: s.label,\n color: chartColor(s.color),\n emphasis: s.emphasis,\n }));\n // Series with a range total each show theirs, marked like their line: they count different things.\n const rangeTotals = shaped.series.flatMap(s =>\n s.rangeTotal === undefined\n ? []\n : [{ label: s.label, value: format.value(s.rangeTotal), color: chartColor(s.color) }],\n );\n const withRangeTotals = options.series.some(s => s.rangeTotal !== undefined);\n\n const layout = {\n ...heading,\n actions: hasDrilldownAction(widget, view, onDrilldown) ? (\n <DrilldownAction widget={widget} view={view} onDrilldown={onDrilldown} />\n ) : undefined,\n total: withRangeTotals ? rangeTotals : undefined,\n isLoading,\n toolbar: lines.length > 0 && (\n <MetricsCard.Toolbar>\n <MetricsLineChartLegend series={lines} />\n </MetricsCard.Toolbar>\n ),\n };\n\n const failed = sent.filter(r => r.isError);\n if (failed.length) {\n return (\n <ChartCard {...layout}>\n {hasTraceQueries ? (\n <ChartCardError error={failed[0]?.error} onRetry={() => failed.forEach(r => void r.refetch())} />\n ) : (\n <ChartCardError />\n )}\n </ChartCard>\n );\n }\n\n const totalFormat = FORMATTERS[options.total?.format ?? options.format];\n const total =\n options.total &&\n (typeof options.total.value === 'object' && 'peak' in options.total.value && !shaped.total\n ? '—'\n : totalFormat.value(shaped.total ?? 0));\n\n const chart = {\n data: shaped.data,\n series: lines,\n height: 'fill' as const,\n xLabels: options.xLabels,\n showLegend: false,\n valueFormatter: format.value,\n axisFormatter: options.axis === false ? undefined : format.axis,\n onBucketClick:\n onClick &&\n ((row: Record<string, unknown>) => onClick({ window: bucketWindow(Number(row.ts), shaped.stepHours) })),\n isLoading,\n ...(options.xLabels ? EDGE_BUCKET_AXIS : BUCKET_AXIS),\n };\n const yDomain = shaped.flat && options.flatYDomain ? options.flatYDomain : options.yDomain;\n\n return (\n <ChartCard {...layout} total={layout.total ?? total} isUpdating={sent.some(r => r.isRefetching)}>\n <ChartArea isEmpty={!isLoading && shaped.empty} emptyMessage={options.emptyMessage}>\n {options.chart === 'stackedBar' ? (\n <MetricsStackedBarChart {...chart} />\n ) : (\n <MetricsLineChart {...chart} yDomain={yDomain} lineStyle=\"thin\" />\n )}\n </ChartArea>\n </ChartCard>\n );\n}\n"],"mappings":"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"}
|
|
@@ -16,9 +16,16 @@ var viewValue = (label, index) => {
|
|
|
16
16
|
var viewLabel = (label, index) => label?.trim() || `View ${index + 1}`;
|
|
17
17
|
/**
|
|
18
18
|
* The card title for the open view: the widget's title for a single view; with several, the open
|
|
19
|
-
* view's label, as a menu of every view (as the metrics cards switch views).
|
|
19
|
+
* view's label, as a menu of every view (as the metrics cards switch views). With somewhere to
|
|
20
|
+
* expand to, the widget's title links there instead.
|
|
20
21
|
*/
|
|
21
|
-
function viewTitle(widget, views, index, onChoose) {
|
|
22
|
+
function viewTitle(widget, views, index, onChoose, expand) {
|
|
23
|
+
const href = expand?.href(widget);
|
|
24
|
+
if (href) return {
|
|
25
|
+
title: widget.title?.trim() ? widget.title : viewLabel(views[0]?.label, 0),
|
|
26
|
+
href,
|
|
27
|
+
LinkComponent: expand?.LinkComponent
|
|
28
|
+
};
|
|
22
29
|
if (views.length < 2) return { title: widget.title ?? "" };
|
|
23
30
|
const options = views.map((v, i) => ({
|
|
24
31
|
value: viewValue(v.label, i),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.cjs.js","names":[],"sources":["../../../../src/domains/dashboards/lib/chrome.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport type { ChartCardProps } from '../../metrics/components/chart-card';\n\n/** What a widget's card shows as its title: `title`, and `titleMenu` with several views. */\nexport type ViewHeading = Pick<ChartCardProps, 'title' | 'titleMenu'>;\n\n/** Filters a gate can't apply, named as the filter bar names them. */\nconst FILTER_NAMES: Record<string, string> = {\n serviceName: 'service',\n requestId: 'request ID',\n experimentId: 'experiment',\n};\n\nexport const unsupportedMessage = (fields: string[], names: Record<string, string> = FILTER_NAMES) =>\n `Not available with a ${fields.map(f => names[f] ?? f).join(' or ')} filter.`;\n\n/** A view's value in the card's menu: its label in kebab case (`Token usage` → `token-usage`), or its position when unlabelled or blank. */\nexport const viewValue = (label: string | undefined, index: number) => {\n const trimmed = label?.trim();\n return trimmed ? trimmed.toLowerCase().replace(/\\s+/g, '-') : String(index);\n};\n\n/** A view's visible name: its label, or `View n` when unlabelled or blank, so every option has an accessible name. */\nexport const viewLabel = (label: string | undefined, index: number) => label?.trim() || `View ${index + 1}`;\n\n/**\n * The card title for the open view: the widget's title for a single view; with several, the open\n * view's label, as a menu of every view (as the metrics cards switch views).\n */\nexport function viewTitle(\n widget: DashboardWidget,\n views: readonly DashboardWidgetView[],\n index: number,\n onChoose: (index: number) => void,\n): ViewHeading {\n if (views.length < 2) return { title: widget.title ?? '' };\n const options = views.map((v, i) => ({ value: viewValue(v.label, i), label: viewLabel(v.label, i) }));\n return {\n title: options[index]?.label ?? '',\n titleMenu: {\n value: options[index]?.value ?? '',\n onValueChange: (value: string) => onChoose(options.findIndex(o => o.value === value)),\n options,\n },\n };\n}\n"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"chrome.cjs.js","names":[],"sources":["../../../../src/domains/dashboards/lib/chrome.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport type { ChartCardProps } from '../../metrics/components/chart-card';\nimport type { DashboardExpand } from '../widget-kind';\n\n/** What a widget's card shows as its title: `title`, and `titleMenu` with several views or an expand link. */\nexport type ViewHeading = Pick<ChartCardProps, 'title' | 'titleMenu' | 'href' | 'LinkComponent'>;\n\n/** Filters a gate can't apply, named as the filter bar names them. */\nconst FILTER_NAMES: Record<string, string> = {\n serviceName: 'service',\n requestId: 'request ID',\n experimentId: 'experiment',\n};\n\nexport const unsupportedMessage = (fields: string[], names: Record<string, string> = FILTER_NAMES) =>\n `Not available with a ${fields.map(f => names[f] ?? f).join(' or ')} filter.`;\n\n/** A view's value in the card's menu: its label in kebab case (`Token usage` → `token-usage`), or its position when unlabelled or blank. */\nexport const viewValue = (label: string | undefined, index: number) => {\n const trimmed = label?.trim();\n return trimmed ? trimmed.toLowerCase().replace(/\\s+/g, '-') : String(index);\n};\n\n/** A view's visible name: its label, or `View n` when unlabelled or blank, so every option has an accessible name. */\nexport const viewLabel = (label: string | undefined, index: number) => label?.trim() || `View ${index + 1}`;\n\n/**\n * The card title for the open view: the widget's title for a single view; with several, the open\n * view's label, as a menu of every view (as the metrics cards switch views). With somewhere to\n * expand to, the widget's title links there instead.\n */\nexport function viewTitle(\n widget: DashboardWidget,\n views: readonly DashboardWidgetView[],\n index: number,\n onChoose: (index: number) => void,\n expand?: DashboardExpand,\n): ViewHeading {\n const href = expand?.href(widget);\n if (href) {\n // A link needs a name: a blank title falls back to the first view's label.\n const title = widget.title?.trim() ? widget.title : viewLabel(views[0]?.label, 0);\n return { title, href, LinkComponent: expand?.LinkComponent };\n }\n if (views.length < 2) return { title: widget.title ?? '' };\n const options = views.map((v, i) => ({ value: viewValue(v.label, i), label: viewLabel(v.label, i) }));\n return {\n title: options[index]?.label ?? '',\n titleMenu: {\n value: options[index]?.value ?? '',\n onValueChange: (value: string) => onChoose(options.findIndex(o => o.value === value)),\n options,\n },\n };\n}\n"],"mappings":";;;AAQA,IAAM,eAAuC;CAC3C,aAAa;CACb,WAAW;CACX,cAAc;AAChB;AAEA,IAAa,sBAAsB,QAAkB,QAAgC,iBACnF,wBAAwB,OAAO,KAAI,MAAK,MAAM,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;;AAGtE,IAAa,aAAa,OAA2B,UAAkB;CACrE,MAAM,UAAU,OAAO,KAAK;CAC5B,OAAO,UAAU,QAAQ,YAAY,CAAC,CAAC,QAAQ,QAAQ,GAAG,IAAI,OAAO,KAAK;AAC5E;;AAGA,IAAa,aAAa,OAA2B,UAAkB,OAAO,KAAK,KAAK,QAAQ,QAAQ;;;;;;AAOxG,SAAgB,UACd,QACA,OACA,OACA,UACA,QACa;CACb,MAAM,OAAO,QAAQ,KAAK,MAAM;CAChC,IAAI,MAGF,OAAO;EAAE,OADK,OAAO,OAAO,KAAK,IAAI,OAAO,QAAQ,UAAU,MAAM,EAAE,EAAE,OAAO,CAAC;EAChE;EAAM,eAAe,QAAQ;CAAc;CAE7D,IAAI,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,OAAO,SAAS,GAAG;CACzD,MAAM,UAAU,MAAM,KAAK,GAAG,OAAO;EAAE,OAAO,UAAU,EAAE,OAAO,CAAC;EAAG,OAAO,UAAU,EAAE,OAAO,CAAC;CAAE,EAAE;CACpG,OAAO;EACL,OAAO,QAAQ,MAAM,EAAE,SAAS;EAChC,WAAW;GACT,OAAO,QAAQ,MAAM,EAAE,SAAS;GAChC,gBAAgB,UAAkB,SAAS,QAAQ,WAAU,MAAK,EAAE,UAAU,KAAK,CAAC;GACpF;EACF;CACF;AACF"}
|