@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
|
@@ -7,9 +7,9 @@ import { t as Txt } from "../Txt-BM6TVV_c.js";
|
|
|
7
7
|
import { passwordManagerOptOutProps } from "../primitives/password-manager-autofill.es.js";
|
|
8
8
|
import { t as DropdownMenu } from "../dropdown-menu-B4jY3J9e.js";
|
|
9
9
|
import { t as ContextMenu } from "../context-menu-Dv0NU0oM.js";
|
|
10
|
+
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./HoverCard.es.js";
|
|
10
11
|
import { n as savedViewNameSchema, r as serializeSavedViews, t as parseSavedViews } from "../saved-view-schema-eJXlRRel.js";
|
|
11
12
|
import { o as FilterBarFieldLabel, u as formatValue } from "../filter-bar-chip-CABeKrtf.js";
|
|
12
|
-
import { HoverCard, HoverCardContent, HoverCardTrigger } from "./HoverCard.es.js";
|
|
13
13
|
import { VisuallyHidden } from "../primitives/visually-hidden.es.js";
|
|
14
14
|
import { Fragment, useRef, useState, useSyncExternalStore } from "react";
|
|
15
15
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_activity = require("../../activity-
|
|
2
|
+
const require_activity = require("../../activity-CcQZeDYi.cjs");
|
|
3
3
|
exports.Activity = require_activity.Activity;
|
|
4
4
|
exports.ActivityContent = require_activity.ActivityContent;
|
|
5
5
|
exports.ActivityDetail = require_activity.ActivityDetail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { s as Activity, c as ActivityContent, l as ActivityDetail, u as ActivityDisclosure, d as ActivityHeader, f as ActivityHeadline, p as ActivityIcon, m as ActivityItem, h as ActivityLabel, g as ActivityLeading, _ as ActivitySpacer, v as ActivitySummary, y as ActivityTrailing, b as ActivityTrigger, x as ActivityWorkingDirectory, o as NotificationActivity, n as ReasoningActivity, a as ReasoningText, t as SignalActivity, r as hasReasoningText, i as hasVisibleReasoning, S as useRelativePaths } from "../../activity-
|
|
1
|
+
export { s as Activity, c as ActivityContent, l as ActivityDetail, u as ActivityDisclosure, d as ActivityHeader, f as ActivityHeadline, p as ActivityIcon, m as ActivityItem, h as ActivityLabel, g as ActivityLeading, _ as ActivitySpacer, v as ActivitySummary, y as ActivityTrailing, b as ActivityTrigger, x as ActivityWorkingDirectory, o as NotificationActivity, n as ReasoningActivity, a as ReasoningText, t as SignalActivity, r as hasReasoningText, i as hasVisibleReasoning, S as useRelativePaths } from "../../activity-C8Ql81WM.js";
|
|
@@ -5,7 +5,7 @@ const require_Button = require("../../Button-DLcMcuUL.cjs");
|
|
|
5
5
|
const require_Txt = require("../../Txt-BnoSqxKE.cjs");
|
|
6
6
|
const require_hooks_use_copy_to_clipboard = require("../../hooks/use-copy-to-clipboard.cjs.js");
|
|
7
7
|
const require_Badge = require("../../Badge-DZ6r6bcw.cjs");
|
|
8
|
-
const require_MarkdownRenderer = require("../../MarkdownRenderer-
|
|
8
|
+
const require_MarkdownRenderer = require("../../MarkdownRenderer-y65WGBhC.cjs");
|
|
9
9
|
const require_components_CollapsibleBox = require("../CollapsibleBox.cjs.js");
|
|
10
10
|
let react = require("react");
|
|
11
11
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -4,7 +4,7 @@ import { t as Button } from "../../Button-CLXTbAY8.js";
|
|
|
4
4
|
import { t as Txt } from "../../Txt-BM6TVV_c.js";
|
|
5
5
|
import { useCopyToClipboard } from "../../hooks/use-copy-to-clipboard.es.js";
|
|
6
6
|
import { t as Badge } from "../../Badge-aVu5iGAF.js";
|
|
7
|
-
import { t as MarkdownRenderer } from "../../MarkdownRenderer-
|
|
7
|
+
import { t as MarkdownRenderer } from "../../MarkdownRenderer-CI30RqdB.js";
|
|
8
8
|
import { CollapsibleBox, useCollapsibleBox } from "../CollapsibleBox.es.js";
|
|
9
9
|
import { createContext, useContext } from "react";
|
|
10
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_approval = require("../../tool-approval-
|
|
2
|
+
const require_tool_approval = require("../../tool-approval-CJvPDL7D.cjs");
|
|
3
3
|
exports.ToolApproval = require_tool_approval.ToolApproval;
|
|
4
4
|
exports.ToolApprovalActions = require_tool_approval.ToolApprovalActions;
|
|
5
5
|
exports.ToolApprovalStatus = require_tool_approval.ToolApprovalStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as ToolApproval, n as ToolApprovalActions, r as ToolApprovalStatus } from "../../tool-approval-
|
|
1
|
+
export { t as ToolApproval, n as ToolApprovalActions, r as ToolApprovalStatus } from "../../tool-approval-DyN11vFA.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_call = require("../../tool-call-
|
|
3
|
-
const require_tool_presentation = require("../../tool-presentation-
|
|
2
|
+
const require_tool_call = require("../../tool-call-DBn14X-3.cjs");
|
|
3
|
+
const require_tool_presentation = require("../../tool-presentation-D6nzVruN.cjs");
|
|
4
4
|
exports.TOOL_GROUP_MIN = require_tool_call.TOOL_GROUP_MIN;
|
|
5
5
|
exports.ToolCallArguments = require_tool_call.ToolCallArguments;
|
|
6
6
|
exports.ToolCallCommand = require_tool_call.ToolCallCommand;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as ToolCallArguments, c as ToolCallMono, d as stripAnsi, f as stripSerializedAnsi, i as ToolCallGroup, l as TOOL_GROUP_MIN, n as toolPhrases, o as ToolCallEdit, r as ToolCallOutput, s as ToolCallCommand, t as ToolCallTime, u as groupConsecutive } from "../../tool-call-
|
|
2
|
-
import { a as toolEdit, i as stringifyToolValue, n as isTaskTool, o as visibleToolArgumentsText, r as presentTool, t as hasToolArguments } from "../../tool-presentation-
|
|
1
|
+
import { a as ToolCallArguments, c as ToolCallMono, d as stripAnsi, f as stripSerializedAnsi, i as ToolCallGroup, l as TOOL_GROUP_MIN, n as toolPhrases, o as ToolCallEdit, r as ToolCallOutput, s as ToolCallCommand, t as ToolCallTime, u as groupConsecutive } from "../../tool-call-Dsj43lvJ.js";
|
|
2
|
+
import { a as toolEdit, i as stringifyToolValue, n as isTaskTool, o as visibleToolArgumentsText, r as presentTool, t as hasToolArguments } from "../../tool-presentation-CvibOP1J.js";
|
|
3
3
|
export { TOOL_GROUP_MIN, ToolCallArguments, ToolCallCommand, ToolCallEdit, ToolCallGroup, ToolCallMono, ToolCallOutput, ToolCallTime, groupConsecutive, hasToolArguments, isTaskTool, presentTool, stringifyToolValue, stripAnsi, stripSerializedAnsi, toolEdit, toolPhrases, visibleToolArgumentsText };
|
|
@@ -176,6 +176,16 @@ var DATE_PRESETS = [
|
|
|
176
176
|
label: "Custom range..."
|
|
177
177
|
}
|
|
178
178
|
];
|
|
179
|
+
var sameTime = (a, b) => a?.getTime() === b?.getTime();
|
|
180
|
+
/**
|
|
181
|
+
* Whether a named range breaks the limits the custom editor enforces: it starts before
|
|
182
|
+
* `minDate`'s day, or spans more than `maxRangeMs` (an open end counts up to now).
|
|
183
|
+
*/
|
|
184
|
+
function outsideLimits(range, minDate, maxRangeMs) {
|
|
185
|
+
const tooEarly = minDate !== void 0 && range.from < (0, date_fns.startOfDay)(minDate);
|
|
186
|
+
const span = (range.to ?? /* @__PURE__ */ new Date()).getTime() - range.from.getTime();
|
|
187
|
+
return tooEarly || maxRangeMs !== void 0 && span > maxRangeMs;
|
|
188
|
+
}
|
|
179
189
|
var fmtClock = (d) => d.toLocaleTimeString("en-US", d.getMinutes() === 0 ? { hour: "numeric" } : {
|
|
180
190
|
hour: "numeric",
|
|
181
191
|
minute: "2-digit"
|
|
@@ -197,7 +207,7 @@ function customRangeLabel(dateFrom, dateTo) {
|
|
|
197
207
|
if (!dateTo) return `${start} \u2013 End`;
|
|
198
208
|
return `${start} \u2013 ${dateFrom !== void 0 && fmtDay(dateFrom) === fmtDay(dateTo) ? fmtClock(dateTo) : fmtMoment(dateTo)}`;
|
|
199
209
|
}
|
|
200
|
-
function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, size = "sm", defaultPreset, onReset, ref }) {
|
|
210
|
+
function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, namedRanges = [], size = "sm", defaultPreset, onReset, ref }) {
|
|
201
211
|
const visiblePresets = presets ? DATE_PRESETS.filter((p) => presets.includes(p.value)) : DATE_PRESETS;
|
|
202
212
|
const [customRangeOpen, setCustomRangeOpen] = (0, react.useState)(false);
|
|
203
213
|
const [presetMenuOpen, setPresetMenuOpen] = (0, react.useState)(false);
|
|
@@ -240,9 +250,16 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
240
250
|
if (presetBeforeCustom) applyPreset(presetBeforeCustom);
|
|
241
251
|
setPresetMenuOpen(true);
|
|
242
252
|
};
|
|
243
|
-
const
|
|
244
|
-
const
|
|
245
|
-
const
|
|
253
|
+
const namedIndex = shownPreset === "custom" ? namedRanges.findIndex((r) => sameTime(r.from, dateFrom) && sameTime(r.to, dateTo)) : -1;
|
|
254
|
+
const named = namedRanges[namedIndex];
|
|
255
|
+
const canReset = defaultPreset !== void 0 && shownPreset === "custom" && !named;
|
|
256
|
+
const editingCustomRange = shownPreset === "custom" && !presetMenuOpen && (!named || customRangeOpen);
|
|
257
|
+
const label = named ? named.label : shownPreset === "custom" ? customRangeLabel(dateFrom, dateTo) : datePresetLabel;
|
|
258
|
+
const applyNamedRange = (range) => {
|
|
259
|
+
setPresetMenuOpen(false);
|
|
260
|
+
onPresetChange?.("custom");
|
|
261
|
+
applyCustomRange(range.from, range.to);
|
|
262
|
+
};
|
|
246
263
|
const trigger = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Button.Button, {
|
|
247
264
|
ref,
|
|
248
265
|
size,
|
|
@@ -279,14 +296,24 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
279
296
|
onOpenChange: setPresetMenuOpen,
|
|
280
297
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_dropdown_menu.DropdownMenu.Trigger, { render: trigger }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_dropdown_menu.DropdownMenu.Content, {
|
|
281
298
|
align: "start",
|
|
282
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.
|
|
283
|
-
value: shownPreset,
|
|
284
|
-
children:
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
299
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_dropdown_menu.DropdownMenu.RadioGroup, {
|
|
300
|
+
value: named ? `named-${namedIndex}` : shownPreset,
|
|
301
|
+
children: [
|
|
302
|
+
namedRanges.map((r, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_dropdown_menu.DropdownMenu.RadioItem, {
|
|
303
|
+
value: `named-${i}`,
|
|
304
|
+
disabled: outsideLimits(r, minDate, maxRangeMs),
|
|
305
|
+
closeOnClick: true,
|
|
306
|
+
onClick: () => applyNamedRange(r),
|
|
307
|
+
children: r.label
|
|
308
|
+
}, `named-${i}`)),
|
|
309
|
+
namedRanges.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_dropdown_menu.DropdownMenu.Separator, {}),
|
|
310
|
+
visiblePresets.map((p) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_dropdown_menu.DropdownMenu.RadioItem, {
|
|
311
|
+
value: p.value,
|
|
312
|
+
closeOnClick: true,
|
|
313
|
+
onClick: () => handlePresetSelect(p.value),
|
|
314
|
+
children: p.label
|
|
315
|
+
}, p.value))
|
|
316
|
+
]
|
|
290
317
|
})
|
|
291
318
|
})]
|
|
292
319
|
})]
|
|
@@ -318,4 +345,4 @@ Object.defineProperty(exports, "DateTimeRangePicker", {
|
|
|
318
345
|
}
|
|
319
346
|
});
|
|
320
347
|
|
|
321
|
-
//# sourceMappingURL=date-time-range-picker-
|
|
348
|
+
//# sourceMappingURL=date-time-range-picker-CWGjoR3j.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-range-picker-CWGjoR3j.cjs","names":["parse","isValid","useState","useId","startOfDay","format","_Fragment","cn","Txt","DatePicker","TimePicker","Field","FieldError","Button","Check","startOfDay","useState","Button","CalendarIcon","TriggerChevron","Popover","PopoverTrigger","PopoverContent","cn","DropdownMenu","XIcon","ButtonsGroup"],"sources":["../src/ds/components/DateTimeRangePicker/custom-range-editor.tsx","../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { format, isValid, parse, startOfDay } from 'date-fns';\nimport { Check } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { Field, FieldError } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nfunction formatDays(ms: number): string {\n const days = Math.round(ms / (24 * 60 * 60 * 1000));\n return `${days} day${days === 1 ? '' : 's'}`;\n}\n\n/** The draft day at the draft time, or the bare day when the time doesn't parse. */\nfunction combineDateAndTime(date: Date | undefined, timeStr: string): Date | undefined {\n if (!date) return undefined;\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : date;\n}\n\nexport interface CustomRangeEditorProps {\n dateFrom?: Date;\n dateTo?: Date;\n disabled?: boolean;\n /** Widest range that can be applied, in milliseconds. */\n maxRangeMs?: number;\n /** Earliest day a range can start on. Days before it are disabled. */\n minDate?: Date;\n onApply: (from: Date | undefined, to: Date | undefined) => void;\n onShowPresets: () => void;\n}\n\n/**\n * The custom range popover body. It mounts each time the popover opens, so its drafts\n * start from the current range without the picker resetting them.\n */\nexport function CustomRangeEditor({\n dateFrom,\n dateTo,\n disabled,\n maxRangeMs,\n minDate,\n onApply,\n onShowPresets,\n}: CustomRangeEditorProps) {\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [applyAttempted, setApplyAttempted] = useState(false);\n const errorId = useId();\n\n const fromDate = combineDateAndTime(draftDateFrom, draftTimeFrom);\n const toDate = combineDateAndTime(draftDateTo, draftTimeTo);\n const rangeReversed = fromDate !== undefined && toDate !== undefined && fromDate.getTime() > toDate.getTime();\n const rangeTooWide =\n fromDate !== undefined && toDate !== undefined && toDate.getTime() - fromDate.getTime() > (maxRangeMs ?? Infinity);\n const firstDay = minDate ? startOfDay(minDate) : undefined;\n const endFirstDay = draftDateFrom && (!firstDay || draftDateFrom > firstDay) ? draftDateFrom : firstDay;\n const rangeTooEarly = fromDate !== undefined && firstDay !== undefined && fromDate < firstDay;\n const rangeInvalid = rangeReversed || rangeTooWide || rangeTooEarly;\n // Shown after a failed Apply, and gone as soon as the drafts form a valid range again.\n let error: string | undefined;\n if (applyAttempted && rangeReversed) error = 'Start date/time must be before end date/time';\n else if (applyAttempted && rangeTooWide) error = `Range cannot be longer than ${formatDays(maxRangeMs ?? 0)}`;\n else if (applyAttempted && firstDay && rangeTooEarly)\n error = `Range cannot start before ${format(firstDay, 'MMM d, yyyy')}`;\n\n const apply = () => {\n if (rangeInvalid) {\n setApplyAttempted(true);\n return;\n }\n onApply(fromDate, toDate);\n };\n\n return (\n <>\n <div\n role=\"group\"\n aria-label=\"Custom date range\"\n aria-invalid={error ? true : undefined}\n aria-describedby={error ? errorId : undefined}\n className=\"flex\"\n >\n <div className={cn('border-r border-border')}>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n Start\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n fromDate={firstDay}\n toDate={draftDateTo}\n />\n <TimePicker\n label=\"Start time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n End\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={endFirstDay}\n />\n <TimePicker\n label=\"End time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n <Field invalid={Boolean(error)}>\n <FieldError id={errorId} className=\"px-4 pb-1\">\n {error}\n </FieldError>\n </Field>\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <Button variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={onShowPresets}>\n ← Presets\n </Button>\n <Button icon={<Check />} variant=\"primary\" size=\"sm\" onClick={apply} disabled={disabled}>\n Apply\n </Button>\n </div>\n </>\n );\n}\n","import { startOfDay } from 'date-fns';\nimport { CalendarIcon, XIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport type { ReactNode, Ref } from 'react';\nimport { CustomRangeEditor } from './custom-range-editor';\nimport { Button, TriggerChevron } from '@/ds/components/Button/Button';\nimport type { TextButtonSize } from '@/ds/components/Button/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup/buttons-group';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nconst sameTime = (a: Date | undefined, b: Date | undefined) => a?.getTime() === b?.getTime();\n\n/**\n * Whether a named range breaks the limits the custom editor enforces: it starts before\n * `minDate`'s day, or spans more than `maxRangeMs` (an open end counts up to now).\n */\nfunction outsideLimits(range: DateTimeRangePickerNamedRange, minDate?: Date, maxRangeMs?: number) {\n const tooEarly = minDate !== undefined && range.from < startOfDay(minDate);\n const span = (range.to ?? new Date()).getTime() - range.from.getTime();\n const tooWide = maxRangeMs !== undefined && span > maxRangeMs;\n return tooEarly || tooWide;\n}\n\nconst fmtClock = (d: Date) =>\n d.toLocaleTimeString('en-US', d.getMinutes() === 0 ? { hour: 'numeric' } : { hour: 'numeric', minute: '2-digit' });\n\n/**\n * A custom range as day and time, kept short: `Oct 21, 2:05 PM – 4 PM` within one day,\n * `Oct 20, 12 AM – Oct 27, 9:30 AM` across days, with years only outside the current one.\n */\nfunction customRangeLabel(dateFrom: Date | undefined, dateTo: Date | undefined) {\n const thisYear = new Date().getFullYear();\n const withYear = [dateFrom, dateTo].some(d => d && d.getFullYear() !== thisYear);\n const fmtDay = (d: Date) =>\n d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', ...(withYear && { year: 'numeric' }) });\n const fmtMoment = (d: Date) => `${fmtDay(d)}, ${fmtClock(d)}`;\n\n const start = dateFrom ? fmtMoment(dateFrom) : 'Start';\n if (!dateTo) return `${start} \\u2013 End`;\n const sameDay = dateFrom !== undefined && fmtDay(dateFrom) === fmtDay(dateTo);\n return `${start} \\u2013 ${sameDay ? fmtClock(dateTo) : fmtMoment(dateTo)}`;\n}\n\n/** A fixed range offered beside the presets, e.g. the current billing period. */\nexport type DateTimeRangePickerNamedRange = { label: string; from: Date; to?: Date };\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n /**\n * Called once with both ends when a custom range is applied. When provided it replaces\n * the two `onDateChange` calls for that step, so consumers can write the range atomically.\n */\n onDateRangeChange?: (from: Date | undefined, to: Date | undefined) => void;\n disabled?: boolean;\n /** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */\n maxRangeMs?: number;\n /** Earliest day a custom range can start on, e.g. the oldest data still kept. Earlier days are disabled. */\n minDate?: Date;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /**\n * Fixed ranges listed above the presets, e.g. `{ label: 'This period', from: periodStart }`.\n * Picking one applies it as a custom range; while it's applied the trigger shows its label.\n */\n namedRanges?: readonly DateTimeRangePickerNamedRange[];\n /** Size of the trigger Button. Defaults to 'sm', the toolbar rung. */\n size?: TextButtonSize;\n /**\n * The preset a custom range resets to. While a custom range is applied, a × joined to the\n * trigger takes the chevron's place and switches back to it.\n */\n defaultPreset?: DateRangePreset;\n /** Replaces what the reset × does, e.g. to undo a histogram zoom before falling back to `defaultPreset`. */\n onReset?: () => void;\n /** The trigger Button. */\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n onDateRangeChange,\n disabled,\n maxRangeMs,\n minDate,\n presets,\n namedRanges = [],\n size = 'sm',\n defaultPreset,\n onReset,\n ref,\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [presetMenuOpen, setPresetMenuOpen] = useState(false);\n // The preset active before \"Custom range...\" was picked, until a range is applied.\n // \"← Presets\" restores it instead of jumping to the first preset in the list.\n const [presetBeforeCustom, setPresetBeforeCustom] = useState<DateRangePreset | undefined>();\n\n // \"← Presets\" restores the previous preset through the parent, which may apply it a\n // render later (e.g. a router URL update). Show it right away instead of \"custom\".\n const restoringPreset = presetMenuOpen && preset === 'custom' ? presetBeforeCustom : undefined;\n const shownPreset = restoringPreset ?? preset;\n const datePresetLabel = DATE_PRESETS.find(p => p.value === shownPreset)?.label ?? 'All';\n\n const applyPreset = (value: DateRangePreset) => {\n onPresetChange?.(value);\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const handlePresetSelect = (value: DateRangePreset) => {\n setPresetMenuOpen(false);\n if (value === 'custom') {\n if (preset !== 'custom') setPresetBeforeCustom(preset);\n onPresetChange?.(value);\n setCustomRangeOpen(true);\n return;\n }\n setPresetBeforeCustom(undefined);\n applyPreset(value);\n };\n\n const applyCustomRange = (fromDate: Date | undefined, toDate: Date | undefined) => {\n if (onDateRangeChange) {\n onDateRangeChange(fromDate, toDate);\n } else {\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n }\n setPresetBeforeCustom(undefined);\n setCustomRangeOpen(false);\n };\n\n // Back to the preset list. Restores the preset the user came from; an applied custom\n // range matches no preset, so it stays and the list shows \"Custom range...\" as current.\n const showPresets = () => {\n setCustomRangeOpen(false);\n if (presetBeforeCustom) applyPreset(presetBeforeCustom);\n setPresetMenuOpen(true);\n };\n\n // The applied custom range, when it is one of the named ranges.\n const namedIndex =\n shownPreset === 'custom' ? namedRanges.findIndex(r => sameTime(r.from, dateFrom) && sameTime(r.to, dateTo)) : -1;\n const named = namedRanges[namedIndex];\n const canReset = defaultPreset !== undefined && shownPreset === 'custom' && !named;\n // A named range shows the preset list, unless \"Custom range...\" was picked to edit it.\n const editingCustomRange = shownPreset === 'custom' && !presetMenuOpen && (!named || customRangeOpen);\n const label = named ? named.label : shownPreset === 'custom' ? customRangeLabel(dateFrom, dateTo) : datePresetLabel;\n\n const applyNamedRange = (range: DateTimeRangePickerNamedRange) => {\n setPresetMenuOpen(false);\n onPresetChange?.('custom');\n applyCustomRange(range.from, range.to);\n };\n const trigger = (\n <Button\n ref={ref}\n size={size}\n disabled={disabled}\n icon={<CalendarIcon />}\n iconEnd={canReset ? undefined : <TriggerChevron />}\n >\n {label}\n </Button>\n );\n\n return (\n <JoinReset\n size={size}\n reset={\n canReset && (\n <ResetRangeButton size={size} disabled={disabled} onReset={onReset ?? (() => applyPreset(defaultPreset))} />\n )\n }\n >\n {editingCustomRange && (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger render={trigger} />\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <CustomRangeEditor\n dateFrom={dateFrom}\n dateTo={dateTo}\n disabled={disabled}\n maxRangeMs={maxRangeMs}\n minDate={minDate}\n onApply={applyCustomRange}\n onShowPresets={showPresets}\n />\n </PopoverContent>\n </Popover>\n )}\n {!editingCustomRange && (\n <DropdownMenu open={presetMenuOpen} onOpenChange={setPresetMenuOpen}>\n <DropdownMenu.Trigger render={trigger} />\n <DropdownMenu.Content align=\"start\">\n {/* Items select on click (not onValueChange) so re-picking the checked\n \"Custom range...\" still reopens the range editor. */}\n <DropdownMenu.RadioGroup value={named ? `named-${namedIndex}` : shownPreset}>\n {namedRanges.map((r, i) => (\n <DropdownMenu.RadioItem\n key={`named-${i}`}\n value={`named-${i}`}\n disabled={outsideLimits(r, minDate, maxRangeMs)}\n closeOnClick\n onClick={() => applyNamedRange(r)}\n >\n {r.label}\n </DropdownMenu.RadioItem>\n ))}\n {namedRanges.length > 0 && <DropdownMenu.Separator />}\n {visiblePresets.map(p => (\n <DropdownMenu.RadioItem\n key={p.value}\n value={p.value}\n closeOnClick\n onClick={() => handlePresetSelect(p.value)}\n >\n {p.label}\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu>\n )}\n </JoinReset>\n );\n}\n\n/** Switches a custom range back to the picker's default preset. */\nfunction ResetRangeButton({\n size,\n disabled,\n onReset,\n}: {\n size: TextButtonSize;\n disabled?: boolean;\n onReset: () => void;\n}) {\n return (\n <Button\n type=\"button\"\n size={`icon-${size}` as const}\n tooltip=\"Reset time range\"\n disabled={disabled}\n onClick={onReset}\n >\n <XIcon />\n </Button>\n );\n}\n\n/** The trigger alone, or joined with the reset × as one pill. */\nfunction JoinReset({ reset, size, children }: { reset: ReactNode; size: TextButtonSize; children: ReactNode }) {\n if (!reset) return children;\n return (\n <ButtonsGroup size={size}>\n {children}\n {reset}\n </ButtonsGroup>\n );\n}\n"],"mappings":"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"}
|
|
@@ -176,6 +176,16 @@ var DATE_PRESETS = [
|
|
|
176
176
|
label: "Custom range..."
|
|
177
177
|
}
|
|
178
178
|
];
|
|
179
|
+
var sameTime = (a, b) => a?.getTime() === b?.getTime();
|
|
180
|
+
/**
|
|
181
|
+
* Whether a named range breaks the limits the custom editor enforces: it starts before
|
|
182
|
+
* `minDate`'s day, or spans more than `maxRangeMs` (an open end counts up to now).
|
|
183
|
+
*/
|
|
184
|
+
function outsideLimits(range, minDate, maxRangeMs) {
|
|
185
|
+
const tooEarly = minDate !== void 0 && range.from < startOfDay(minDate);
|
|
186
|
+
const span = (range.to ?? /* @__PURE__ */ new Date()).getTime() - range.from.getTime();
|
|
187
|
+
return tooEarly || maxRangeMs !== void 0 && span > maxRangeMs;
|
|
188
|
+
}
|
|
179
189
|
var fmtClock = (d) => d.toLocaleTimeString("en-US", d.getMinutes() === 0 ? { hour: "numeric" } : {
|
|
180
190
|
hour: "numeric",
|
|
181
191
|
minute: "2-digit"
|
|
@@ -197,7 +207,7 @@ function customRangeLabel(dateFrom, dateTo) {
|
|
|
197
207
|
if (!dateTo) return `${start} \u2013 End`;
|
|
198
208
|
return `${start} \u2013 ${dateFrom !== void 0 && fmtDay(dateFrom) === fmtDay(dateTo) ? fmtClock(dateTo) : fmtMoment(dateTo)}`;
|
|
199
209
|
}
|
|
200
|
-
function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, size = "sm", defaultPreset, onReset, ref }) {
|
|
210
|
+
function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo, onDateChange, onDateRangeChange, disabled, maxRangeMs, minDate, presets, namedRanges = [], size = "sm", defaultPreset, onReset, ref }) {
|
|
201
211
|
const visiblePresets = presets ? DATE_PRESETS.filter((p) => presets.includes(p.value)) : DATE_PRESETS;
|
|
202
212
|
const [customRangeOpen, setCustomRangeOpen] = useState(false);
|
|
203
213
|
const [presetMenuOpen, setPresetMenuOpen] = useState(false);
|
|
@@ -240,9 +250,16 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
240
250
|
if (presetBeforeCustom) applyPreset(presetBeforeCustom);
|
|
241
251
|
setPresetMenuOpen(true);
|
|
242
252
|
};
|
|
243
|
-
const
|
|
244
|
-
const
|
|
245
|
-
const
|
|
253
|
+
const namedIndex = shownPreset === "custom" ? namedRanges.findIndex((r) => sameTime(r.from, dateFrom) && sameTime(r.to, dateTo)) : -1;
|
|
254
|
+
const named = namedRanges[namedIndex];
|
|
255
|
+
const canReset = defaultPreset !== void 0 && shownPreset === "custom" && !named;
|
|
256
|
+
const editingCustomRange = shownPreset === "custom" && !presetMenuOpen && (!named || customRangeOpen);
|
|
257
|
+
const label = named ? named.label : shownPreset === "custom" ? customRangeLabel(dateFrom, dateTo) : datePresetLabel;
|
|
258
|
+
const applyNamedRange = (range) => {
|
|
259
|
+
setPresetMenuOpen(false);
|
|
260
|
+
onPresetChange?.("custom");
|
|
261
|
+
applyCustomRange(range.from, range.to);
|
|
262
|
+
};
|
|
246
263
|
const trigger = /* @__PURE__ */ jsx(Button, {
|
|
247
264
|
ref,
|
|
248
265
|
size,
|
|
@@ -279,14 +296,24 @@ function DateTimeRangePicker({ preset = "all", onPresetChange, dateFrom, dateTo,
|
|
|
279
296
|
onOpenChange: setPresetMenuOpen,
|
|
280
297
|
children: [/* @__PURE__ */ jsx(DropdownMenu.Trigger, { render: trigger }), /* @__PURE__ */ jsx(DropdownMenu.Content, {
|
|
281
298
|
align: "start",
|
|
282
|
-
children: /* @__PURE__ */
|
|
283
|
-
value: shownPreset,
|
|
284
|
-
children:
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
299
|
+
children: /* @__PURE__ */ jsxs(DropdownMenu.RadioGroup, {
|
|
300
|
+
value: named ? `named-${namedIndex}` : shownPreset,
|
|
301
|
+
children: [
|
|
302
|
+
namedRanges.map((r, i) => /* @__PURE__ */ jsx(DropdownMenu.RadioItem, {
|
|
303
|
+
value: `named-${i}`,
|
|
304
|
+
disabled: outsideLimits(r, minDate, maxRangeMs),
|
|
305
|
+
closeOnClick: true,
|
|
306
|
+
onClick: () => applyNamedRange(r),
|
|
307
|
+
children: r.label
|
|
308
|
+
}, `named-${i}`)),
|
|
309
|
+
namedRanges.length > 0 && /* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
310
|
+
visiblePresets.map((p) => /* @__PURE__ */ jsx(DropdownMenu.RadioItem, {
|
|
311
|
+
value: p.value,
|
|
312
|
+
closeOnClick: true,
|
|
313
|
+
onClick: () => handlePresetSelect(p.value),
|
|
314
|
+
children: p.label
|
|
315
|
+
}, p.value))
|
|
316
|
+
]
|
|
290
317
|
})
|
|
291
318
|
})]
|
|
292
319
|
})]
|
|
@@ -313,4 +340,4 @@ function JoinReset({ reset, size, children }) {
|
|
|
313
340
|
}
|
|
314
341
|
export { DateTimeRangePicker as t };
|
|
315
342
|
|
|
316
|
-
//# sourceMappingURL=date-time-range-picker-
|
|
343
|
+
//# sourceMappingURL=date-time-range-picker-CdSiXwB4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-range-picker-CdSiXwB4.js","names":["_Fragment"],"sources":["../src/ds/components/DateTimeRangePicker/custom-range-editor.tsx","../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { format, isValid, parse, startOfDay } from 'date-fns';\nimport { Check } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { Field, FieldError } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nfunction formatDays(ms: number): string {\n const days = Math.round(ms / (24 * 60 * 60 * 1000));\n return `${days} day${days === 1 ? '' : 's'}`;\n}\n\n/** The draft day at the draft time, or the bare day when the time doesn't parse. */\nfunction combineDateAndTime(date: Date | undefined, timeStr: string): Date | undefined {\n if (!date) return undefined;\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : date;\n}\n\nexport interface CustomRangeEditorProps {\n dateFrom?: Date;\n dateTo?: Date;\n disabled?: boolean;\n /** Widest range that can be applied, in milliseconds. */\n maxRangeMs?: number;\n /** Earliest day a range can start on. Days before it are disabled. */\n minDate?: Date;\n onApply: (from: Date | undefined, to: Date | undefined) => void;\n onShowPresets: () => void;\n}\n\n/**\n * The custom range popover body. It mounts each time the popover opens, so its drafts\n * start from the current range without the picker resetting them.\n */\nexport function CustomRangeEditor({\n dateFrom,\n dateTo,\n disabled,\n maxRangeMs,\n minDate,\n onApply,\n onShowPresets,\n}: CustomRangeEditorProps) {\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [applyAttempted, setApplyAttempted] = useState(false);\n const errorId = useId();\n\n const fromDate = combineDateAndTime(draftDateFrom, draftTimeFrom);\n const toDate = combineDateAndTime(draftDateTo, draftTimeTo);\n const rangeReversed = fromDate !== undefined && toDate !== undefined && fromDate.getTime() > toDate.getTime();\n const rangeTooWide =\n fromDate !== undefined && toDate !== undefined && toDate.getTime() - fromDate.getTime() > (maxRangeMs ?? Infinity);\n const firstDay = minDate ? startOfDay(minDate) : undefined;\n const endFirstDay = draftDateFrom && (!firstDay || draftDateFrom > firstDay) ? draftDateFrom : firstDay;\n const rangeTooEarly = fromDate !== undefined && firstDay !== undefined && fromDate < firstDay;\n const rangeInvalid = rangeReversed || rangeTooWide || rangeTooEarly;\n // Shown after a failed Apply, and gone as soon as the drafts form a valid range again.\n let error: string | undefined;\n if (applyAttempted && rangeReversed) error = 'Start date/time must be before end date/time';\n else if (applyAttempted && rangeTooWide) error = `Range cannot be longer than ${formatDays(maxRangeMs ?? 0)}`;\n else if (applyAttempted && firstDay && rangeTooEarly)\n error = `Range cannot start before ${format(firstDay, 'MMM d, yyyy')}`;\n\n const apply = () => {\n if (rangeInvalid) {\n setApplyAttempted(true);\n return;\n }\n onApply(fromDate, toDate);\n };\n\n return (\n <>\n <div\n role=\"group\"\n aria-label=\"Custom date range\"\n aria-invalid={error ? true : undefined}\n aria-describedby={error ? errorId : undefined}\n className=\"flex\"\n >\n <div className={cn('border-r border-border')}>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n Start\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n fromDate={firstDay}\n toDate={draftDateTo}\n />\n <TimePicker\n label=\"Start time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <Txt as=\"span\" variant=\"column\" tone=\"muted\" className=\"block px-4 pt-3\">\n End\n </Txt>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={endFirstDay}\n />\n <TimePicker\n label=\"End time\"\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n <Field invalid={Boolean(error)}>\n <FieldError id={errorId} className=\"px-4 pb-1\">\n {error}\n </FieldError>\n </Field>\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <Button variant=\"ghost\" size=\"sm\" disabled={disabled} onClick={onShowPresets}>\n ← Presets\n </Button>\n <Button icon={<Check />} variant=\"primary\" size=\"sm\" onClick={apply} disabled={disabled}>\n Apply\n </Button>\n </div>\n </>\n );\n}\n","import { startOfDay } from 'date-fns';\nimport { CalendarIcon, XIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport type { ReactNode, Ref } from 'react';\nimport { CustomRangeEditor } from './custom-range-editor';\nimport { Button, TriggerChevron } from '@/ds/components/Button/Button';\nimport type { TextButtonSize } from '@/ds/components/Button/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup/buttons-group';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nconst sameTime = (a: Date | undefined, b: Date | undefined) => a?.getTime() === b?.getTime();\n\n/**\n * Whether a named range breaks the limits the custom editor enforces: it starts before\n * `minDate`'s day, or spans more than `maxRangeMs` (an open end counts up to now).\n */\nfunction outsideLimits(range: DateTimeRangePickerNamedRange, minDate?: Date, maxRangeMs?: number) {\n const tooEarly = minDate !== undefined && range.from < startOfDay(minDate);\n const span = (range.to ?? new Date()).getTime() - range.from.getTime();\n const tooWide = maxRangeMs !== undefined && span > maxRangeMs;\n return tooEarly || tooWide;\n}\n\nconst fmtClock = (d: Date) =>\n d.toLocaleTimeString('en-US', d.getMinutes() === 0 ? { hour: 'numeric' } : { hour: 'numeric', minute: '2-digit' });\n\n/**\n * A custom range as day and time, kept short: `Oct 21, 2:05 PM – 4 PM` within one day,\n * `Oct 20, 12 AM – Oct 27, 9:30 AM` across days, with years only outside the current one.\n */\nfunction customRangeLabel(dateFrom: Date | undefined, dateTo: Date | undefined) {\n const thisYear = new Date().getFullYear();\n const withYear = [dateFrom, dateTo].some(d => d && d.getFullYear() !== thisYear);\n const fmtDay = (d: Date) =>\n d.toLocaleDateString('en-US', { month: 'short', day: 'numeric', ...(withYear && { year: 'numeric' }) });\n const fmtMoment = (d: Date) => `${fmtDay(d)}, ${fmtClock(d)}`;\n\n const start = dateFrom ? fmtMoment(dateFrom) : 'Start';\n if (!dateTo) return `${start} \\u2013 End`;\n const sameDay = dateFrom !== undefined && fmtDay(dateFrom) === fmtDay(dateTo);\n return `${start} \\u2013 ${sameDay ? fmtClock(dateTo) : fmtMoment(dateTo)}`;\n}\n\n/** A fixed range offered beside the presets, e.g. the current billing period. */\nexport type DateTimeRangePickerNamedRange = { label: string; from: Date; to?: Date };\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n /**\n * Called once with both ends when a custom range is applied. When provided it replaces\n * the two `onDateChange` calls for that step, so consumers can write the range atomically.\n */\n onDateRangeChange?: (from: Date | undefined, to: Date | undefined) => void;\n disabled?: boolean;\n /** Widest custom range that can be applied, in milliseconds. Presets are unaffected. */\n maxRangeMs?: number;\n /** Earliest day a custom range can start on, e.g. the oldest data still kept. Earlier days are disabled. */\n minDate?: Date;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /**\n * Fixed ranges listed above the presets, e.g. `{ label: 'This period', from: periodStart }`.\n * Picking one applies it as a custom range; while it's applied the trigger shows its label.\n */\n namedRanges?: readonly DateTimeRangePickerNamedRange[];\n /** Size of the trigger Button. Defaults to 'sm', the toolbar rung. */\n size?: TextButtonSize;\n /**\n * The preset a custom range resets to. While a custom range is applied, a × joined to the\n * trigger takes the chevron's place and switches back to it.\n */\n defaultPreset?: DateRangePreset;\n /** Replaces what the reset × does, e.g. to undo a histogram zoom before falling back to `defaultPreset`. */\n onReset?: () => void;\n /** The trigger Button. */\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n onDateRangeChange,\n disabled,\n maxRangeMs,\n minDate,\n presets,\n namedRanges = [],\n size = 'sm',\n defaultPreset,\n onReset,\n ref,\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [presetMenuOpen, setPresetMenuOpen] = useState(false);\n // The preset active before \"Custom range...\" was picked, until a range is applied.\n // \"← Presets\" restores it instead of jumping to the first preset in the list.\n const [presetBeforeCustom, setPresetBeforeCustom] = useState<DateRangePreset | undefined>();\n\n // \"← Presets\" restores the previous preset through the parent, which may apply it a\n // render later (e.g. a router URL update). Show it right away instead of \"custom\".\n const restoringPreset = presetMenuOpen && preset === 'custom' ? presetBeforeCustom : undefined;\n const shownPreset = restoringPreset ?? preset;\n const datePresetLabel = DATE_PRESETS.find(p => p.value === shownPreset)?.label ?? 'All';\n\n const applyPreset = (value: DateRangePreset) => {\n onPresetChange?.(value);\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const handlePresetSelect = (value: DateRangePreset) => {\n setPresetMenuOpen(false);\n if (value === 'custom') {\n if (preset !== 'custom') setPresetBeforeCustom(preset);\n onPresetChange?.(value);\n setCustomRangeOpen(true);\n return;\n }\n setPresetBeforeCustom(undefined);\n applyPreset(value);\n };\n\n const applyCustomRange = (fromDate: Date | undefined, toDate: Date | undefined) => {\n if (onDateRangeChange) {\n onDateRangeChange(fromDate, toDate);\n } else {\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n }\n setPresetBeforeCustom(undefined);\n setCustomRangeOpen(false);\n };\n\n // Back to the preset list. Restores the preset the user came from; an applied custom\n // range matches no preset, so it stays and the list shows \"Custom range...\" as current.\n const showPresets = () => {\n setCustomRangeOpen(false);\n if (presetBeforeCustom) applyPreset(presetBeforeCustom);\n setPresetMenuOpen(true);\n };\n\n // The applied custom range, when it is one of the named ranges.\n const namedIndex =\n shownPreset === 'custom' ? namedRanges.findIndex(r => sameTime(r.from, dateFrom) && sameTime(r.to, dateTo)) : -1;\n const named = namedRanges[namedIndex];\n const canReset = defaultPreset !== undefined && shownPreset === 'custom' && !named;\n // A named range shows the preset list, unless \"Custom range...\" was picked to edit it.\n const editingCustomRange = shownPreset === 'custom' && !presetMenuOpen && (!named || customRangeOpen);\n const label = named ? named.label : shownPreset === 'custom' ? customRangeLabel(dateFrom, dateTo) : datePresetLabel;\n\n const applyNamedRange = (range: DateTimeRangePickerNamedRange) => {\n setPresetMenuOpen(false);\n onPresetChange?.('custom');\n applyCustomRange(range.from, range.to);\n };\n const trigger = (\n <Button\n ref={ref}\n size={size}\n disabled={disabled}\n icon={<CalendarIcon />}\n iconEnd={canReset ? undefined : <TriggerChevron />}\n >\n {label}\n </Button>\n );\n\n return (\n <JoinReset\n size={size}\n reset={\n canReset && (\n <ResetRangeButton size={size} disabled={disabled} onReset={onReset ?? (() => applyPreset(defaultPreset))} />\n )\n }\n >\n {editingCustomRange && (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger render={trigger} />\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <CustomRangeEditor\n dateFrom={dateFrom}\n dateTo={dateTo}\n disabled={disabled}\n maxRangeMs={maxRangeMs}\n minDate={minDate}\n onApply={applyCustomRange}\n onShowPresets={showPresets}\n />\n </PopoverContent>\n </Popover>\n )}\n {!editingCustomRange && (\n <DropdownMenu open={presetMenuOpen} onOpenChange={setPresetMenuOpen}>\n <DropdownMenu.Trigger render={trigger} />\n <DropdownMenu.Content align=\"start\">\n {/* Items select on click (not onValueChange) so re-picking the checked\n \"Custom range...\" still reopens the range editor. */}\n <DropdownMenu.RadioGroup value={named ? `named-${namedIndex}` : shownPreset}>\n {namedRanges.map((r, i) => (\n <DropdownMenu.RadioItem\n key={`named-${i}`}\n value={`named-${i}`}\n disabled={outsideLimits(r, minDate, maxRangeMs)}\n closeOnClick\n onClick={() => applyNamedRange(r)}\n >\n {r.label}\n </DropdownMenu.RadioItem>\n ))}\n {namedRanges.length > 0 && <DropdownMenu.Separator />}\n {visiblePresets.map(p => (\n <DropdownMenu.RadioItem\n key={p.value}\n value={p.value}\n closeOnClick\n onClick={() => handlePresetSelect(p.value)}\n >\n {p.label}\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu>\n )}\n </JoinReset>\n );\n}\n\n/** Switches a custom range back to the picker's default preset. */\nfunction ResetRangeButton({\n size,\n disabled,\n onReset,\n}: {\n size: TextButtonSize;\n disabled?: boolean;\n onReset: () => void;\n}) {\n return (\n <Button\n type=\"button\"\n size={`icon-${size}` as const}\n tooltip=\"Reset time range\"\n disabled={disabled}\n onClick={onReset}\n >\n <XIcon />\n </Button>\n );\n}\n\n/** The trigger alone, or joined with the reset × as one pill. */\nfunction JoinReset({ reset, size, children }: { reset: ReactNode; size: TextButtonSize; children: ReactNode }) {\n if (!reset) return children;\n return (\n <ButtonsGroup size={size}>\n {children}\n {reset}\n </ButtonsGroup>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_domains_chat_activity_use_activity_disclosure = require("./use-activity-disclosure.cjs.js");
|
|
3
|
-
const require_activity = require("../../../activity-
|
|
3
|
+
const require_activity = require("../../../activity-CcQZeDYi.cjs");
|
|
4
4
|
const require_domains_chat_activity_components_activity_fold = require("./components/activity-fold.cjs.js");
|
|
5
5
|
const require_domains_chat_activity_components_stretch_content = require("./components/stretch-content.cjs.js");
|
|
6
6
|
const require_domains_chat_activity_model_activity_segments = require("./model/activity-segments.cjs.js");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ActivityDisclosureContext, useDisclosureStore, useIsOpen } from "./use-activity-disclosure.es.js";
|
|
2
|
-
import { r as hasReasoningText } from "../../../activity-
|
|
2
|
+
import { r as hasReasoningText } from "../../../activity-C8Ql81WM.js";
|
|
3
3
|
import { ActivityFold } from "./components/activity-fold.es.js";
|
|
4
4
|
import { StretchContent } from "./components/stretch-content.es.js";
|
|
5
5
|
import { activitySegments } from "./model/activity-segments.es.js";
|
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_utils = require("../../../../utils-uDc1ofX1.cjs");
|
|
3
3
|
const require_Txt = require("../../../../Txt-BnoSqxKE.cjs");
|
|
4
4
|
const require_AgentIndicator = require("../../../../AgentIndicator-to30W73z.cjs");
|
|
5
|
-
const require_activity = require("../../../../activity-
|
|
5
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
6
6
|
const require_Arrival = require("../../../../Arrival-Cs1oWjo4.cjs");
|
|
7
7
|
const require_components_Shimmer = require("../../../../components/Shimmer.cjs.js");
|
|
8
8
|
const require_domains_chat_activity_model_activity_words = require("../model/activity-words.cjs.js");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cn } from "../../../../utils-DQx8TpNT.js";
|
|
2
2
|
import { t as Txt } from "../../../../Txt-BM6TVV_c.js";
|
|
3
3
|
import { n as AgentIndicator, t as agentGlyph } from "../../../../AgentIndicator-Bs2S8AWJ.js";
|
|
4
|
-
import { S as useRelativePaths, d as ActivityHeader, h as ActivityLabel, l as ActivityDetail, p as ActivityIcon$1, s as Activity, u as ActivityDisclosure } from "../../../../activity-
|
|
4
|
+
import { S as useRelativePaths, d as ActivityHeader, h as ActivityLabel, l as ActivityDetail, p as ActivityIcon$1, s as Activity, u as ActivityDisclosure } from "../../../../activity-C8Ql81WM.js";
|
|
5
5
|
import { i as Unwatched } from "../../../../Arrival-CJFEOXr5.js";
|
|
6
6
|
import { Shimmer } from "../../../../components/Shimmer.es.js";
|
|
7
7
|
import { callsOutcome, liveWords, outcomeText, settledWords, stretchPose, wordsName } from "../model/activity-words.es.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils_date_format = require("../../../../utils/date-format.cjs.js");
|
|
3
3
|
const require_tooltip = require("../../../../tooltip-BiRLT3Th.cjs");
|
|
4
|
-
const require_activity = require("../../../../activity-
|
|
4
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
5
5
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
6
|
// src/domains/chat/activity/components/activity-timed-trigger.tsx
|
|
7
7
|
/** A line's trigger that names when its work began, on hover and to screen readers. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { formatMoment, toDate } from "../../../../utils/date-format.es.js";
|
|
2
2
|
import { i as TooltipTrigger, n as TooltipContent, t as Tooltip } from "../../../../tooltip-HzcLyGtV.js";
|
|
3
|
-
import { b as ActivityTrigger } from "../../../../activity-
|
|
3
|
+
import { b as ActivityTrigger } from "../../../../activity-C8Ql81WM.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
// src/domains/chat/activity/components/activity-timed-trigger.tsx
|
|
6
6
|
/** A line's trigger that names when its work began, on hover and to screen readers. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_scroll_area = require("../../../../scroll-area-BP4gPZ4G.cjs");
|
|
3
3
|
const require_domains_chat_activity_use_activity_disclosure = require("../use-activity-disclosure.cjs.js");
|
|
4
|
-
const require_activity = require("../../../../activity-
|
|
4
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
5
5
|
const require_domains_chat_activity_components_reading_row = require("./reading-row.cjs.js");
|
|
6
6
|
let react = require("react");
|
|
7
7
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as ScrollAreaViewport, t as ScrollArea } from "../../../../scroll-area-C226l0v0.js";
|
|
2
2
|
import { useDisclosureStore } from "../use-activity-disclosure.es.js";
|
|
3
|
-
import { c as ActivityContent } from "../../../../activity-
|
|
3
|
+
import { c as ActivityContent } from "../../../../activity-C8Ql81WM.js";
|
|
4
4
|
import { keepFollowing, keepReadingRow, listRow } from "./reading-row.es.js";
|
|
5
5
|
import { useState } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_activity = require("../../../../activity-
|
|
2
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
3
3
|
const require_domains_chat_activity_components_calls_panel = require("./calls-panel.cjs.js");
|
|
4
4
|
const require_domains_chat_activity_components_stretch_thought = require("./stretch-thought.cjs.js");
|
|
5
5
|
const require_domains_chat_activity_components_stretch_segment = require("./stretch-segment.cjs.js");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as ActivityContent } from "../../../../activity-
|
|
1
|
+
import { c as ActivityContent } from "../../../../activity-C8Ql81WM.js";
|
|
2
2
|
import { CallsPanel } from "./calls-panel.es.js";
|
|
3
3
|
import { StretchThought } from "./stretch-thought.es.js";
|
|
4
4
|
import { StretchSegment } from "./stretch-segment.es.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_activity = require("../../../../activity-
|
|
2
|
+
const require_activity = require("../../../../activity-CcQZeDYi.cjs");
|
|
3
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
4
|
// src/domains/chat/activity/components/stretch-thought.tsx
|
|
5
5
|
/** A thought in an open stretch, read like the answer around it. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ReasoningText } from "../../../../activity-
|
|
1
|
+
import { a as ReasoningText } from "../../../../activity-C8Ql81WM.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
// src/domains/chat/activity/components/stretch-thought.tsx
|
|
4
4
|
/** A thought in an open stretch, read like the answer around it. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_tool_call = require("../../../../tool-call-
|
|
2
|
+
const require_tool_call = require("../../../../tool-call-DBn14X-3.cjs");
|
|
3
3
|
// src/domains/chat/activity/model/activity-segments.ts
|
|
4
4
|
function activitySegments(members) {
|
|
5
5
|
const groups = require_tool_call.groupConsecutive(members, {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as groupConsecutive } from "../../../../tool-call-
|
|
1
|
+
import { u as groupConsecutive } from "../../../../tool-call-Dsj43lvJ.js";
|
|
2
2
|
// src/domains/chat/activity/model/activity-segments.ts
|
|
3
3
|
function activitySegments(members) {
|
|
4
4
|
const groups = groupConsecutive(members, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils_duration = require("../../../../utils/duration.cjs.js");
|
|
3
3
|
const require_AgentIndicator = require("../../../../AgentIndicator-to30W73z.cjs");
|
|
4
|
-
const require_tool_call = require("../../../../tool-call-
|
|
5
|
-
const require_tool_presentation = require("../../../../tool-presentation-
|
|
4
|
+
const require_tool_call = require("../../../../tool-call-DBn14X-3.cjs");
|
|
5
|
+
const require_tool_presentation = require("../../../../tool-presentation-D6nzVruN.cjs");
|
|
6
6
|
// src/domains/chat/activity/model/activity-words.ts
|
|
7
7
|
var SUMMARY_KINDS = 3;
|
|
8
8
|
function secondsDuration(elapsedMs) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { formatDuration } from "../../../../utils/duration.es.js";
|
|
2
2
|
import { t as agentGlyph } from "../../../../AgentIndicator-Bs2S8AWJ.js";
|
|
3
|
-
import { n as toolPhrases } from "../../../../tool-call-
|
|
4
|
-
import { r as presentTool } from "../../../../tool-presentation-
|
|
3
|
+
import { n as toolPhrases } from "../../../../tool-call-Dsj43lvJ.js";
|
|
4
|
+
import { r as presentTool } from "../../../../tool-presentation-CvibOP1J.js";
|
|
5
5
|
// src/domains/chat/activity/model/activity-words.ts
|
|
6
6
|
var SUMMARY_KINDS = 3;
|
|
7
7
|
function secondsDuration(elapsedMs) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_utils = require("../../../utils-uDc1ofX1.cjs");
|
|
3
|
-
const require_activity = require("../../../activity-
|
|
3
|
+
const require_activity = require("../../../activity-CcQZeDYi.cjs");
|
|
4
4
|
const require_domains_chat_context_chat_context = require("../context/chat-context.cjs.js");
|
|
5
5
|
let react = require("react");
|
|
6
6
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cn } from "../../../utils-DQx8TpNT.js";
|
|
2
|
-
import { b as ActivityTrigger, c as ActivityContent, f as ActivityHeadline, s as Activity, y as ActivityTrailing } from "../../../activity-
|
|
2
|
+
import { b as ActivityTrigger, c as ActivityContent, f as ActivityHeadline, s as Activity, y as ActivityTrailing } from "../../../activity-C8Ql81WM.js";
|
|
3
3
|
import { useChatRunning } from "../context/chat-context.es.js";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|