@mastra/playground-ui 56.0.0 → 57.0.0-alpha.1
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/{Button-CVewl8nT.cjs → Button-C0DBEBcJ.cjs} +12 -5
- package/dist/Button-C0DBEBcJ.cjs.map +1 -0
- package/dist/{Button-cWcBEd-G.js → Button-C9cvaVFG.js} +13 -6
- package/dist/Button-C9cvaVFG.js.map +1 -0
- package/dist/{Card-DEvGFj-Z.js → Card-B_buJ5yF.js} +3 -3
- package/dist/{Card-DEvGFj-Z.js.map → Card-B_buJ5yF.js.map} +1 -1
- package/dist/{Card-D0kFp9j9.cjs → Card-DwGasv0K.cjs} +3 -3
- package/dist/{Card-D0kFp9j9.cjs.map → Card-DwGasv0K.cjs.map} +1 -1
- package/dist/{EmptyState-UWXhBp5U.js → EmptyState-B6cyZw6m.js} +12 -6
- package/dist/EmptyState-B6cyZw6m.js.map +1 -0
- package/dist/{EmptyState-CdRjFB06.cjs → EmptyState-DiSP6UIy.cjs} +12 -6
- package/dist/EmptyState-DiSP6UIy.cjs.map +1 -0
- package/dist/ErrorState-B0839u-q.cjs +21 -0
- package/dist/ErrorState-B0839u-q.cjs.map +1 -0
- package/dist/ErrorState-HyRJdaA2.js +19 -0
- package/dist/ErrorState-HyRJdaA2.js.map +1 -0
- package/dist/Header-BVnFQlzE.js +31 -0
- package/dist/Header-BVnFQlzE.js.map +1 -0
- package/dist/Header-CGjhJ0nQ.cjs +36 -0
- package/dist/Header-CGjhJ0nQ.cjs.map +1 -0
- package/dist/{Notice-Cjti0e0j.cjs → Notice-CoFjo8O6.cjs} +3 -3
- package/dist/{Notice-Cjti0e0j.cjs.map → Notice-CoFjo8O6.cjs.map} +1 -1
- package/dist/{Notice-Ah-84yi6.js → Notice-DUdQkUqH.js} +3 -3
- package/dist/{Notice-Ah-84yi6.js.map → Notice-DUdQkUqH.js.map} +1 -1
- package/dist/{PermissionDenied-B6TSGolC.js → PermissionDenied-CTqnE57B.js} +11 -6
- package/dist/PermissionDenied-CTqnE57B.js.map +1 -0
- package/dist/{PermissionDenied-Dz5qXpQj.cjs → PermissionDenied-fdVmTjjf.cjs} +11 -6
- package/dist/PermissionDenied-fdVmTjjf.cjs.map +1 -0
- package/dist/{SessionExpired-CF0BGNo_.cjs → SessionExpired-CFGTqnU5.cjs} +5 -6
- package/dist/SessionExpired-CFGTqnU5.cjs.map +1 -0
- package/dist/{SessionExpired-Bq5LcsDu.js → SessionExpired-COK6flhT.js} +5 -6
- package/dist/SessionExpired-COK6flhT.js.map +1 -0
- package/dist/ask-user-3fufbFt8.cjs +216 -0
- package/dist/ask-user-3fufbFt8.cjs.map +1 -0
- package/dist/ask-user-CvCMHkhI.js +206 -0
- package/dist/ask-user-CvCMHkhI.js.map +1 -0
- package/dist/buttons-group-CoZP3lJt.cjs +59 -0
- package/dist/buttons-group-CoZP3lJt.cjs.map +1 -0
- package/dist/buttons-group-DsZgrZBZ.js +37 -0
- package/dist/buttons-group-DsZgrZBZ.js.map +1 -0
- package/dist/buttons-group.css +113 -22
- package/dist/{chat-notification-4OuPNhtu.js → chat-notification-BM24QnK9.js} +7 -7
- package/dist/{chat-notification-4OuPNhtu.js.map → chat-notification-BM24QnK9.js.map} +1 -1
- package/dist/{chat-notification-CPrlBwP_.cjs → chat-notification-CQlc3Z3y.cjs} +7 -7
- package/dist/{chat-notification-CPrlBwP_.cjs.map → chat-notification-CQlc3Z3y.cjs.map} +1 -1
- package/dist/{chat-signal-CG5-vy21.js → chat-signal-5gAZo10e.js} +6 -6
- package/dist/{chat-signal-CG5-vy21.js.map → chat-signal-5gAZo10e.js.map} +1 -1
- package/dist/{chat-signal-B_T2DSzo.cjs → chat-signal-CUkeTh1i.cjs} +6 -6
- package/dist/{chat-signal-B_T2DSzo.cjs.map → chat-signal-CUkeTh1i.cjs.map} +1 -1
- package/dist/{code-block-Cd4u7Bo9.cjs → code-block-D2q4w1t-.cjs} +10 -10
- package/dist/{code-block-Cd4u7Bo9.cjs.map → code-block-D2q4w1t-.cjs.map} +1 -1
- package/dist/{code-block-CSqjpBvb.js → code-block-D3BWud_S.js} +10 -10
- package/dist/{code-block-CSqjpBvb.js.map → code-block-D3BWud_S.js.map} +1 -1
- package/dist/{code-diff-C5uY-3Hz.js → code-diff-BHZTS4Zh.js} +2 -2
- package/dist/{code-diff-C5uY-3Hz.js.map → code-diff-BHZTS4Zh.js.map} +1 -1
- package/dist/{code-diff-DBtbPe9D.cjs → code-diff-CG8veSa-.cjs} +2 -2
- package/dist/{code-diff-DBtbPe9D.cjs.map → code-diff-CG8veSa-.cjs.map} +1 -1
- package/dist/{code-editor-vCt7l9Bl.js → code-editor-7wJJDE9d.js} +2 -2
- package/dist/{code-editor-vCt7l9Bl.js.map → code-editor-7wJJDE9d.js.map} +1 -1
- package/dist/{code-editor-DgY7d8kg.cjs → code-editor-Ce1FXyFV.cjs} +2 -2
- package/dist/{code-editor-DgY7d8kg.cjs.map → code-editor-Ce1FXyFV.cjs.map} +1 -1
- package/dist/{collapsible-BvrI6XnN.cjs → collapsible-BFSJouuI.cjs} +2 -2
- package/dist/{collapsible-BvrI6XnN.cjs.map → collapsible-BFSJouuI.cjs.map} +1 -1
- package/dist/{collapsible-B2uUy8w5.js → collapsible-DhhP5p1j.js} +2 -2
- package/dist/{collapsible-B2uUy8w5.js.map → collapsible-DhhP5p1j.js.map} +1 -1
- package/dist/{combobox-D7xJFZuO.js → combobox-CV-Ue388.js} +5 -5
- package/dist/combobox-CV-Ue388.js.map +1 -0
- package/dist/{combobox-BWM3VH-n.cjs → combobox-Dw3W6EHS.cjs} +6 -6
- package/dist/combobox-Dw3W6EHS.cjs.map +1 -0
- package/dist/{combobox-styles-CRebmeht.js → combobox-styles-Dgc_Jp-E.js} +3 -6
- package/dist/combobox-styles-Dgc_Jp-E.js.map +1 -0
- package/dist/{combobox-styles-DYlNNjKC.cjs → combobox-styles-ExU7SMb7.cjs} +3 -6
- package/dist/combobox-styles-ExU7SMb7.cjs.map +1 -0
- package/dist/{command-DuT06mTw.cjs → command-BJrGchxZ.cjs} +6 -6
- package/dist/{command-DuT06mTw.cjs.map → command-BJrGchxZ.cjs.map} +1 -1
- package/dist/{command-jRiL1vXM.js → command-kHnYspgO.js} +6 -6
- package/dist/{command-jRiL1vXM.js.map → command-kHnYspgO.js.map} +1 -1
- package/dist/components/ActionRow.cjs.js +38 -0
- package/dist/components/ActionRow.cjs.js.map +1 -0
- package/dist/components/ActionRow.d.ts +2 -0
- package/dist/components/ActionRow.es.js +34 -0
- package/dist/components/ActionRow.es.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/Button.cjs.js +2 -2
- package/dist/components/Button.es.js +3 -3
- package/dist/components/ButtonsGroup.cjs.js +1 -2
- package/dist/components/ButtonsGroup.cjs.js.map +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeDiff.cjs.js +1 -1
- package/dist/components/CodeDiff.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +12 -12
- package/dist/components/CommandPalette.cjs.js.map +1 -1
- package/dist/components/CommandPalette.es.js +12 -12
- package/dist/components/CommandPalette.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +6 -7
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +5 -6
- package/dist/components/Comment.es.js.map +1 -1
- package/dist/components/Composer.cjs.js +6 -6
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +6 -6
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContextMenu.cjs.js +1 -6
- package/dist/components/ContextMenu.cjs.js.map +1 -1
- package/dist/components/ContextMenu.es.js +1 -6
- package/dist/components/ContextMenu.es.js.map +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +10 -11
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +10 -11
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataFilter.cjs.js +2 -2
- package/dist/components/DataFilter.es.js +2 -2
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +8 -8
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +8 -8
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +6 -6
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +6 -6
- package/dist/components/DateRangeTimeline.es.js.map +1 -1
- package/dist/components/DateTimePicker.cjs.js +4 -4
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +4 -4
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +3 -3
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.cjs.js.map +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/EntityHeader.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +15 -16
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +9 -10
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/ErrorBoundary.cjs.js +3 -3
- package/dist/components/ErrorBoundary.cjs.js.map +1 -1
- package/dist/components/ErrorBoundary.es.js +3 -3
- package/dist/components/ErrorBoundary.es.js.map +1 -1
- package/dist/components/ErrorState.cjs.js +1 -1
- package/dist/components/ErrorState.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +495 -43
- package/dist/components/FilterBar.cjs.js.map +1 -1
- package/dist/components/FilterBar.es.js +495 -47
- package/dist/components/FilterBar.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +11 -12
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +4 -5
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/Header.cjs.js +6 -31
- package/dist/components/Header.cjs.js.map +1 -1
- package/dist/components/Header.es.js +1 -30
- package/dist/components/Header.es.js.map +1 -1
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/HoverCard.cjs.js +1 -1
- package/dist/components/HoverCard.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/IntegrationDialog.cjs.js +6 -6
- package/dist/components/IntegrationDialog.cjs.js.map +1 -1
- package/dist/components/IntegrationDialog.es.js +6 -6
- package/dist/components/IntegrationDialog.es.js.map +1 -1
- package/dist/components/ItemList.cjs.js +4 -4
- package/dist/components/ItemList.cjs.js.map +1 -1
- package/dist/components/ItemList.es.js +4 -4
- package/dist/components/ItemList.es.js.map +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +3 -3
- package/dist/components/JSONSchemaForm.es.js +3 -3
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +1 -1
- package/dist/components/KeyValueList.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +4 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +4 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainHeader.cjs.js +3 -3
- package/dist/components/MainHeader.cjs.js.map +1 -1
- package/dist/components/MainHeader.es.js +3 -3
- package/dist/components/MainHeader.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +11 -125
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +1 -120
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +2 -2
- package/dist/components/Message.es.js +3 -3
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +30 -8
- package/dist/components/PageLayout.cjs.js.map +1 -1
- package/dist/components/PageLayout.es.js +32 -3
- package/dist/components/PageLayout.es.js.map +1 -1
- package/dist/components/PendingIndicator.cjs.js +1 -1
- package/dist/components/PendingIndicator.cjs.js.map +1 -1
- package/dist/components/PendingIndicator.es.js +1 -1
- package/dist/components/PendingIndicator.es.js.map +1 -1
- package/dist/components/PermissionDenied.cjs.js +1 -1
- package/dist/components/PermissionDenied.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +18 -19
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +21 -22
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +3 -56
- package/dist/components/RadioGroup.cjs.js.map +1 -1
- package/dist/components/RadioGroup.es.js +1 -39
- package/dist/components/RadioGroup.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +10 -10
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +10 -10
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +2 -2
- package/dist/components/ScatterPlotChart.cjs.js.map +1 -1
- package/dist/components/ScatterPlotChart.es.js +2 -2
- package/dist/components/ScatterPlotChart.es.js.map +1 -1
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SettingsLayout.cjs.js +1 -1
- package/dist/components/SettingsLayout.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +17 -10
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +17 -10
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/Spinner.cjs.js +1 -1
- package/dist/components/Spinner.es.js +1 -1
- package/dist/components/StatusIndicators.cjs.js +3 -3
- package/dist/components/StatusIndicators.cjs.js.map +1 -1
- package/dist/components/StatusIndicators.es.js +3 -3
- package/dist/components/StatusIndicators.es.js.map +1 -1
- package/dist/components/Steps.cjs.js +3 -3
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +3 -3
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/ThreadList.cjs.js +2 -2
- package/dist/components/ThreadList.cjs.js.map +1 -1
- package/dist/components/ThreadList.es.js +2 -2
- package/dist/components/ThreadList.es.js.map +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/TokenBudget.cjs.js +1 -1
- package/dist/components/TokenBudget.cjs.js.map +1 -1
- package/dist/components/TokenBudget.es.js +1 -1
- package/dist/components/TokenBudget.es.js.map +1 -1
- package/dist/components/Tree.cjs.js +3 -3
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +3 -3
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +36 -36
- package/dist/components/Workflow.cjs.js.map +1 -1
- package/dist/components/Workflow.es.js +36 -36
- package/dist/components/Workflow.es.js.map +1 -1
- package/dist/components/ai/ask-user.cjs.js +4 -3
- package/dist/components/ai/ask-user.cjs.js.map +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/chat-event.cjs.js +6 -6
- package/dist/components/ai/chat-event.cjs.js.map +1 -1
- package/dist/components/ai/chat-event.es.js +7 -7
- package/dist/components/ai/chat-event.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +2 -2
- package/dist/components/ai/plan.es.js +2 -2
- package/dist/components/ai/task-list.cjs.js +7 -7
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +7 -7
- package/dist/components/ai/task-list.es.js.map +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +8 -8
- package/dist/components/ai/tool-call.cjs.js.map +1 -1
- package/dist/components/ai/tool-call.es.js +9 -9
- package/dist/components/ai/tool-call.es.js.map +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js +13 -35
- package/dist/components/fluid-hover-highlight.cjs.js.map +1 -1
- package/dist/components/fluid-hover-highlight.es.js +14 -33
- package/dist/components/fluid-hover-highlight.es.js.map +1 -1
- package/dist/{composer-BUoRnMDd.cjs → composer-B_Err196.cjs} +6 -6
- package/dist/{composer-BUoRnMDd.cjs.map → composer-B_Err196.cjs.map} +1 -1
- package/dist/{composer-CEL1glw7.js → composer-DJGAoBcn.js} +6 -6
- package/dist/{composer-CEL1glw7.js.map → composer-DJGAoBcn.js.map} +1 -1
- package/dist/{copy-button-BbDBpBMl.cjs → copy-button-C5dMlWsW.cjs} +2 -2
- package/dist/{copy-button-BbDBpBMl.cjs.map → copy-button-C5dMlWsW.cjs.map} +1 -1
- package/dist/{copy-button-2cwdZ3dW.js → copy-button-C6RswD_D.js} +2 -2
- package/dist/{copy-button-2cwdZ3dW.js.map → copy-button-C6RswD_D.js.map} +1 -1
- package/dist/{data-code-section-qujvEc6j.cjs → data-code-section-B-y2WPBl.cjs} +17 -19
- package/dist/data-code-section-B-y2WPBl.cjs.map +1 -0
- package/dist/{data-code-section-DKz9Okaz.js → data-code-section-DcocgDAN.js} +17 -19
- package/dist/data-code-section-DcocgDAN.js.map +1 -0
- package/dist/{data-keys-and-values-4pYpSbqS.cjs → data-keys-and-values-BduKvvC5.cjs} +2 -2
- package/dist/{data-keys-and-values-4pYpSbqS.cjs.map → data-keys-and-values-BduKvvC5.cjs.map} +1 -1
- package/dist/{data-keys-and-values-j0NVKPOl.js → data-keys-and-values-DhC4U4Yl.js} +2 -2
- package/dist/{data-keys-and-values-j0NVKPOl.js.map → data-keys-and-values-DhC4U4Yl.js.map} +1 -1
- package/dist/{data-list-DnSdaRES.js → data-list-gN4SP7a8.js} +5 -5
- package/dist/{data-list-DnSdaRES.js.map → data-list-gN4SP7a8.js.map} +1 -1
- package/dist/{data-list-skeleton-ADXw-opu.cjs → data-list-skeleton-DYG2LLri.cjs} +2 -2
- package/dist/{data-list-skeleton-ADXw-opu.cjs.map → data-list-skeleton-DYG2LLri.cjs.map} +1 -1
- package/dist/{data-list-skeleton-D7-glFuk.js → data-list-skeleton-PXHovGLv.js} +2 -2
- package/dist/{data-list-skeleton-D7-glFuk.js.map → data-list-skeleton-PXHovGLv.js.map} +1 -1
- package/dist/{data-list-spacer-DRHNUeeP.js → data-list-spacer-D-AQzTYw.js} +3 -3
- package/dist/{data-list-spacer-DRHNUeeP.js.map → data-list-spacer-D-AQzTYw.js.map} +1 -1
- package/dist/{data-list-spacer-EWo65MrK.cjs → data-list-spacer-MpuBsXjL.cjs} +3 -3
- package/dist/{data-list-spacer-EWo65MrK.cjs.map → data-list-spacer-MpuBsXjL.cjs.map} +1 -1
- package/dist/{data-list-top-DLwt_Sv-.js → data-list-top-BTeM7hI4.js} +5 -5
- package/dist/{data-list-top-DLwt_Sv-.js.map → data-list-top-BTeM7hI4.js.map} +1 -1
- package/dist/{data-list-top-RK_yX6z8.cjs → data-list-top-DDux1Eu4.cjs} +5 -5
- package/dist/{data-list-top-RK_yX6z8.cjs.map → data-list-top-DDux1Eu4.cjs.map} +1 -1
- package/dist/{data-list-CypPKOQ_.cjs → data-list-yJm-3f2w.cjs} +5 -5
- package/dist/{data-list-CypPKOQ_.cjs.map → data-list-yJm-3f2w.cjs.map} +1 -1
- package/dist/{data-panel-CWZJKBeW.cjs → data-panel-CM3N_4M7.cjs} +9 -9
- package/dist/{data-panel-CWZJKBeW.cjs.map → data-panel-CM3N_4M7.cjs.map} +1 -1
- package/dist/{data-panel-CWjgS1Gh.js → data-panel-D3UfzCoE.js} +9 -9
- package/dist/{data-panel-CWjgS1Gh.js.map → data-panel-D3UfzCoE.js.map} +1 -1
- package/dist/{date-time-range-picker-C6hjZswK.cjs → date-time-range-picker-2Pkg-FoU.cjs} +6 -7
- package/dist/{date-time-range-picker-C6hjZswK.cjs.map → date-time-range-picker-2Pkg-FoU.cjs.map} +1 -1
- package/dist/{date-time-range-picker-BcjLbkGu.js → date-time-range-picker-DHg-fuV3.js} +5 -6
- package/dist/{date-time-range-picker-BcjLbkGu.js.map → date-time-range-picker-DHg-fuV3.js.map} +1 -1
- package/dist/{dialog-Dm33cZqt.cjs → dialog-Cyj59QsZ.cjs} +3 -3
- package/dist/{dialog-Dm33cZqt.cjs.map → dialog-Cyj59QsZ.cjs.map} +1 -1
- package/dist/{dialog-DRpMek34.js → dialog-D8fuBETk.js} +3 -3
- package/dist/{dialog-DRpMek34.js.map → dialog-D8fuBETk.js.map} +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.cjs.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.es.js.map +1 -1
- package/dist/domains/chat/components/loading-badge.cjs.js +1 -1
- package/dist/domains/chat/components/loading-badge.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js.map +1 -1
- 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-streaming-line.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +4 -4
- package/dist/domains/chat/messages/reasoning.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning.es.js +4 -4
- package/dist/domains/chat/messages/reasoning.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +6 -6
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +6 -6
- package/dist/domains/chat/messages/system-reminder-badge.es.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +3 -3
- package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +3 -3
- package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +5 -5
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +5 -5
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +29 -29
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +29 -29
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +11 -11
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +11 -11
- package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +10 -12
- package/dist/domains/logs/components/log-details-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-details-view.es.js +10 -12
- package/dist/domains/logs/components/log-details-view.es.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +4 -7
- package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +4 -7
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +6 -6
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +7 -7
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +19 -19
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +19 -19
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.cjs.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +17 -18
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +17 -18
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.cjs.js +3 -3
- package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +3 -3
- package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.cjs.js +9 -9
- package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.es.js +9 -9
- package/dist/domains/metrics/components/bar-list.es.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js +6 -6
- package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
- package/dist/domains/traces/components/no-traces-info.cjs.js +2 -3
- package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +2 -3
- package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +7 -7
- package/dist/domains/traces/components/span-data-panel-view.es.js +7 -7
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +4 -4
- 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 +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +4 -6
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +4 -6
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.cjs.js +4 -4
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +4 -4
- package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +2 -2
- package/dist/domains/traces/components/span-timing-hover-card.es.js +2 -2
- package/dist/domains/traces/components/span-token-usage.cjs.js +5 -5
- package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.es.js +5 -5
- package/dist/domains/traces/components/span-token-usage.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +2 -2
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.es.js +2 -2
- package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +8 -8
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +6 -6
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +11 -13
- 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 +11 -13
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +1 -1
- package/dist/domains/traces/components/trace-keys-and-values.es.js +1 -1
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
- package/dist/domains/traces/components/traces-error-content.cjs.js +3 -3
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +3 -3
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view.cjs.js +5 -5
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +5 -5
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +3 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +3 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +4 -2
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +5 -3
- package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +92 -11
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +87 -13
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +76 -45
- package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +76 -46
- package/dist/domains/traces/trace-query-filters.es.js.map +1 -1
- package/dist/domains/traces.cjs.js +7 -0
- package/dist/domains/traces.cjs.js.map +1 -1
- package/dist/domains/traces.es.js +2 -2
- package/dist/{drawer-BL5shtHH.cjs → drawer-9eoZbmRK.cjs} +5 -5
- package/dist/{drawer-BL5shtHH.cjs.map → drawer-9eoZbmRK.cjs.map} +1 -1
- package/dist/{drawer-Bv2DRY8E.js → drawer-DnfOugYZ.js} +5 -5
- package/dist/{drawer-Bv2DRY8E.js.map → drawer-DnfOugYZ.js.map} +1 -1
- package/dist/{dropdown-menu-DL0MzjEb.js → dropdown-menu-DpEn6HwK.js} +2 -7
- package/dist/dropdown-menu-DpEn6HwK.js.map +1 -0
- package/dist/{dropdown-menu-DNRCA4Gj.cjs → dropdown-menu-j2y37TL5.cjs} +2 -7
- package/dist/dropdown-menu-j2y37TL5.cjs.map +1 -0
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
- package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +3 -1
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +34 -34
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +34 -34
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -7
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -7
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +15 -17
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +16 -18
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +2 -2
- package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
- package/dist/ee/signals/examples-pager.es.js +2 -2
- package/dist/ee/signals/examples-pager.es.js.map +1 -1
- package/dist/ee/signals/flow-card.cjs.js +6 -6
- package/dist/ee/signals/flow-card.cjs.js.map +1 -1
- package/dist/ee/signals/flow-card.es.js +6 -6
- package/dist/ee/signals/flow-card.es.js.map +1 -1
- package/dist/ee/signals/lifeline-row.cjs.js +4 -4
- package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-row.es.js +4 -4
- package/dist/ee/signals/lifeline-row.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +12 -12
- package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +12 -12
- package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +6 -6
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +6 -6
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +13 -14
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +6 -7
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +9 -9
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +9 -9
- package/dist/ee/signals/settings/trace-signal-settings.es.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.cjs.js +7 -7
- package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.es.js +7 -7
- package/dist/ee/signals/signal-delta-column.es.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.cjs.js +2 -2
- package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.es.js +2 -2
- package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +3 -3
- package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
- package/dist/ee/signals/signals-error-state.es.js +3 -3
- package/dist/ee/signals/signals-error-state.es.js.map +1 -1
- package/dist/ee/signals/signals-loading-skeleton.cjs.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.cjs.js.map +1 -1
- package/dist/ee/signals/signals-loading-skeleton.es.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.es.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +5 -5
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +5 -5
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -1
- package/dist/ee/signals/theme-compare-sparkline.cjs.js +1 -1
- package/dist/ee/signals/theme-compare-sparkline.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare-sparkline.es.js +1 -1
- package/dist/ee/signals/theme-compare-sparkline.es.js.map +1 -1
- package/dist/ee/signals/theme-compare.cjs.js +5 -5
- package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare.es.js +5 -5
- package/dist/ee/signals/theme-compare.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +18 -18
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +18 -18
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +2 -2
- package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +2 -2
- package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.es.js +1 -1
- package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +12 -12
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +12 -12
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +2 -2
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +2 -2
- package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/ee/topics/components/topics-layout.cjs.js +3 -3
- package/dist/ee/topics/components/topics-layout.cjs.js.map +1 -1
- package/dist/ee/topics/components/topics-layout.es.js +3 -3
- package/dist/ee/topics/components/topics-layout.es.js.map +1 -1
- package/dist/{field-block-Dy1IaWbv.cjs → field-error-id-6EfqmQ4C.cjs} +5 -2
- package/dist/field-error-id-6EfqmQ4C.cjs.map +1 -0
- package/dist/{field-block-DWkbNcsV.js → field-error-id-DyWx33Fu.js} +5 -3
- package/dist/field-error-id-DyWx33Fu.js.map +1 -0
- package/dist/{filter-bar-chip-BxI0NgEz.cjs → filter-bar-chip-D8O9jpCW.cjs} +300 -69
- package/dist/filter-bar-chip-D8O9jpCW.cjs.map +1 -0
- package/dist/{filter-bar-chip-C-JxWUU8.js → filter-bar-chip-DMhUPTt8.js} +297 -71
- package/dist/filter-bar-chip-DMhUPTt8.js.map +1 -0
- package/dist/filter-bar-chip.css +33 -1
- package/dist/hooks/use-fluid-hover.cjs.js +15 -9
- package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
- package/dist/hooks/use-fluid-hover.es.js +15 -9
- package/dist/hooks/use-fluid-hover.es.js.map +1 -1
- package/dist/{horizontal-bars-nyWGmQ7g.cjs → horizontal-bars-BkVi2dEb.cjs} +7 -7
- package/dist/{horizontal-bars-nyWGmQ7g.cjs.map → horizontal-bars-BkVi2dEb.cjs.map} +1 -1
- package/dist/{horizontal-bars-CksEKcCE.js → horizontal-bars-nTOFylzc.js} +7 -7
- package/dist/{horizontal-bars-CksEKcCE.js.map → horizontal-bars-nTOFylzc.js.map} +1 -1
- package/dist/{hover-card-Ch5smNcf.js → hover-card-B1-n3amu.js} +3 -3
- package/dist/{hover-card-Ch5smNcf.js.map → hover-card-B1-n3amu.js.map} +1 -1
- package/dist/{hover-card-DdHnkGcs.cjs → hover-card-DVfZ2INZ.cjs} +3 -3
- package/dist/{hover-card-DdHnkGcs.cjs.map → hover-card-DVfZ2INZ.cjs.map} +1 -1
- package/dist/icons/Icon.cjs.js +1 -1
- package/dist/icons/Icon.cjs.js.map +1 -1
- package/dist/icons/Icon.es.js +1 -1
- package/dist/icons/Icon.es.js.map +1 -1
- package/dist/{input-group-CvWwK1Vz.cjs → input-group-2yWKRuq9.cjs} +7 -5
- package/dist/input-group-2yWKRuq9.cjs.map +1 -0
- package/dist/{input-group-BEdHivvy.js → input-group-Czviwtvr.js} +8 -6
- package/dist/input-group-Czviwtvr.js.map +1 -0
- package/dist/{kbd-CINtikLh.js → kbd-BDVTQHD_.js} +2 -2
- package/dist/{kbd-CINtikLh.js.map → kbd-BDVTQHD_.js.map} +1 -1
- package/dist/{kbd-B-Z2sNvK.cjs → kbd-BptPsKP6.cjs} +2 -2
- package/dist/{kbd-B-Z2sNvK.cjs.map → kbd-BptPsKP6.cjs.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +6 -6
- package/dist/layout/tabbed-container.es.js +6 -6
- package/dist/{list-search-BTW0Neuc.js → list-search-Jm6SLN0g.js} +2 -2
- package/dist/{list-search-BTW0Neuc.js.map → list-search-Jm6SLN0g.js.map} +1 -1
- package/dist/{list-search-vyxsZMAK.cjs → list-search-s3DRIfz6.cjs} +2 -2
- package/dist/{list-search-vyxsZMAK.cjs.map → list-search-s3DRIfz6.cjs.map} +1 -1
- package/dist/{logs-data-list-BSHJPGi6.cjs → logs-data-list-C5tjRtkQ.cjs} +5 -5
- package/dist/{logs-data-list-BSHJPGi6.cjs.map → logs-data-list-C5tjRtkQ.cjs.map} +1 -1
- package/dist/{logs-data-list-CG-UgC_x.js → logs-data-list-Cl3abARp.js} +5 -5
- package/dist/{logs-data-list-CG-UgC_x.js.map → logs-data-list-Cl3abARp.js.map} +1 -1
- package/dist/{main-sidebar-link-active-DbCvKZy2.cjs → main-sidebar-BsEmFpKN.cjs} +122 -9
- package/dist/main-sidebar-BsEmFpKN.cjs.map +1 -0
- package/dist/{main-sidebar-link-active-CmDoiX6g.js → main-sidebar-C5PU7zgc.js} +123 -11
- package/dist/main-sidebar-C5PU7zgc.js.map +1 -0
- package/dist/{markdown-renderer-D8qYAU7K.cjs → markdown-renderer-C74wABzc.cjs} +6 -7
- package/dist/markdown-renderer-C74wABzc.cjs.map +1 -0
- package/dist/{markdown-renderer-B0gTm_Ea.js → markdown-renderer-DZAcPOxC.js} +6 -7
- package/dist/markdown-renderer-DZAcPOxC.js.map +1 -0
- package/dist/{message-BrwbcLPi.js → message-Cs8NW-MR.js} +2 -2
- package/dist/{message-BrwbcLPi.js.map → message-Cs8NW-MR.js.map} +1 -1
- package/dist/{message-CszposMZ.cjs → message-D9b33Pf_.cjs} +2 -2
- package/dist/{message-CszposMZ.cjs.map → message-D9b33Pf_.cjs.map} +1 -1
- package/dist/{metrics-card-BUJxiwec.cjs → metrics-card-BdWGPlnt.cjs} +8 -8
- package/dist/metrics-card-BdWGPlnt.cjs.map +1 -0
- package/dist/{metrics-card-BlBt1WHw.js → metrics-card-C5znWn69.js} +8 -8
- package/dist/metrics-card-C5znWn69.js.map +1 -0
- package/dist/{metrics-kpi-card-CBSNmtc5.js → metrics-kpi-card-CinKYTBn.js} +4 -4
- package/dist/{metrics-kpi-card-CBSNmtc5.js.map → metrics-kpi-card-CinKYTBn.js.map} +1 -1
- package/dist/{metrics-kpi-card-CgqmNcEC.cjs → metrics-kpi-card-HU17WRTT.cjs} +4 -4
- package/dist/{metrics-kpi-card-CgqmNcEC.cjs.map → metrics-kpi-card-HU17WRTT.cjs.map} +1 -1
- package/dist/{metrics-line-chart-B_sP3eiL.cjs → metrics-line-chart-0FR3SYSt.cjs} +3 -3
- package/dist/{metrics-line-chart-B_sP3eiL.cjs.map → metrics-line-chart-0FR3SYSt.cjs.map} +1 -1
- package/dist/{metrics-line-chart-DHyrDPkJ.js → metrics-line-chart-knlgw8bV.js} +3 -3
- package/dist/{metrics-line-chart-DHyrDPkJ.js.map → metrics-line-chart-knlgw8bV.js.map} +1 -1
- package/dist/new/layout/app-shell.cjs.js +23 -28
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +23 -28
- package/dist/new/layout/app-shell.es.js.map +1 -1
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/new/sidebar.cjs.js +40 -40
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +10 -10
- package/dist/new/sidebar.es.js.map +1 -1
- package/dist/{page-header-BIoUf7MA.js → page-header-CSigVThQ.js} +2 -2
- package/dist/{page-header-BIoUf7MA.js.map → page-header-CSigVThQ.js.map} +1 -1
- package/dist/{page-header-BBlPmW-T.cjs → page-header-DzEEkOca.cjs} +2 -2
- package/dist/{page-header-BBlPmW-T.cjs.map → page-header-DzEEkOca.cjs.map} +1 -1
- package/dist/primitives/control-size.cjs.js +24 -2
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +5 -3
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/fluid-menu.cjs.js +30 -18
- package/dist/primitives/fluid-menu.cjs.js.map +1 -1
- package/dist/primitives/fluid-menu.es.js +30 -18
- package/dist/primitives/fluid-menu.es.js.map +1 -1
- package/dist/primitives/form-element.cjs.js +4 -4
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +4 -3
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +7 -4
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +7 -4
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-BBiUbtr0.js → property-filter-applied-C15IJHLs.js} +30 -36
- package/dist/property-filter-applied-C15IJHLs.js.map +1 -0
- package/dist/{property-filter-applied-BmxCPe2d.cjs → property-filter-applied-DtSjGypB.cjs} +30 -36
- package/dist/property-filter-applied-DtSjGypB.cjs.map +1 -0
- package/dist/radio-group-BdEPWGzi.cjs +62 -0
- package/dist/radio-group-BdEPWGzi.cjs.map +1 -0
- package/dist/radio-group-CFZXUXZ5.js +40 -0
- package/dist/radio-group-CFZXUXZ5.js.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +1 -1
- package/dist/resize/collapsible-panel.es.js +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{sankey-chart-Bcm9jMhe.cjs → sankey-chart-C1e0nRc3.cjs} +4 -4
- package/dist/{sankey-chart-Bcm9jMhe.cjs.map → sankey-chart-C1e0nRc3.cjs.map} +1 -1
- package/dist/{sankey-chart-CqngN2lw.js → sankey-chart-jvMXKzud.js} +4 -4
- package/dist/{sankey-chart-CqngN2lw.js.map → sankey-chart-jvMXKzud.js.map} +1 -1
- package/dist/{scroll-area-Qjf7e0Ik.cjs → scroll-area-BzOyuS8Y.cjs} +2 -2
- package/dist/{scroll-area-Qjf7e0Ik.cjs.map → scroll-area-BzOyuS8Y.cjs.map} +1 -1
- package/dist/{scroll-area-CdQ_5bLm.js → scroll-area-DyTZoISq.js} +2 -2
- package/dist/{scroll-area-CdQ_5bLm.js.map → scroll-area-DyTZoISq.js.map} +1 -1
- package/dist/{search-field-block-D0PUUCAE.cjs → search-field-block-ChXCuPrB.cjs} +9 -10
- package/dist/{search-field-block-D0PUUCAE.cjs.map → search-field-block-ChXCuPrB.cjs.map} +1 -1
- package/dist/{search-field-block-B5vUVTpl.js → search-field-block-nVeIkFXN.js} +3 -4
- package/dist/{search-field-block-B5vUVTpl.js.map → search-field-block-nVeIkFXN.js.map} +1 -1
- package/dist/{select--DXpTg0O.js → select-CDIt5aab.js} +3 -6
- package/dist/select-CDIt5aab.js.map +1 -0
- package/dist/{select-7ACAVdGX.cjs → select-CH5XO18L.cjs} +3 -6
- package/dist/select-CH5XO18L.cjs.map +1 -0
- package/dist/{select-field-block-Bu7UXI2H.js → select-field-block-BtjE0P5d.js} +3 -4
- package/dist/{select-field-block-Bu7UXI2H.js.map → select-field-block-BtjE0P5d.js.map} +1 -1
- package/dist/{select-field-block-W2u2WmN3.cjs → select-field-block-CpzMTsP6.cjs} +9 -10
- package/dist/{select-field-block-W2u2WmN3.cjs.map → select-field-block-CpzMTsP6.cjs.map} +1 -1
- package/dist/{settings-layout-NP_1dC-e.cjs → settings-layout-BGvMSClL.cjs} +2 -2
- package/dist/{settings-layout-NP_1dC-e.cjs.map → settings-layout-BGvMSClL.cjs.map} +1 -1
- package/dist/{settings-layout-C80s-D31.js → settings-layout-DA-JWqW3.js} +2 -2
- package/dist/{settings-layout-C80s-D31.js.map → settings-layout-DA-JWqW3.js.map} +1 -1
- package/dist/{span-payload-primitives-DnRsP93D.cjs → span-payload-primitives-70wznWZl.cjs} +6 -6
- package/dist/{span-payload-primitives-DnRsP93D.cjs.map → span-payload-primitives-70wznWZl.cjs.map} +1 -1
- package/dist/{span-payload-primitives-sbxk4CHC.js → span-payload-primitives-BvoMauDb.js} +6 -6
- package/dist/{span-payload-primitives-sbxk4CHC.js.map → span-payload-primitives-BvoMauDb.js.map} +1 -1
- package/dist/{spinner-CqP-NaB2.cjs → spinner-BCpN7LL9.cjs} +9 -3
- package/dist/spinner-BCpN7LL9.cjs.map +1 -0
- package/dist/{spinner-D2C2DYw8.js → spinner-ylbE0TJA.js} +9 -3
- package/dist/spinner-ylbE0TJA.js.map +1 -0
- package/dist/src/components/fluid-hover-highlight.d.ts +4 -58
- package/dist/src/domains/traces/components/traces-error-content.d.ts +2 -2
- package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +5 -3
- package/dist/src/domains/traces/trace-filters.d.ts +19 -4
- package/dist/src/domains/traces/trace-query-filters.d.ts +13 -1
- package/dist/src/ds/components/ActionRow/action-row.d.ts +9 -0
- package/dist/src/ds/components/ActionRow/action-row.stories.d.ts +8 -0
- package/dist/src/ds/components/ActionRow/index.d.ts +5 -0
- package/dist/src/ds/components/Badge/badge.stories.d.ts +0 -1
- package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +11 -11
- package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +17 -7
- package/dist/src/ds/components/EmptyState/EmptyState.d.ts +8 -2
- package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +1 -0
- package/dist/src/ds/components/ErrorState/ErrorState.d.ts +3 -1
- package/dist/src/ds/components/ErrorState/error-state.stories.d.ts +1 -0
- package/dist/src/ds/components/FilterBar/filter-bar-advanced-chip.d.ts +10 -0
- package/dist/src/ds/components/FilterBar/filter-bar-context.d.ts +46 -9
- package/dist/src/ds/components/FilterBar/filter-bar-group-editor.d.ts +25 -0
- package/dist/src/ds/components/FilterBar/filter-bar-input.d.ts +8 -1
- package/dist/src/ds/components/FilterBar/filter-bar-option-list.d.ts +5 -0
- package/dist/src/ds/components/FilterBar/filter-bar-tree.d.ts +36 -0
- package/dist/src/ds/components/FilterBar/filter-bar.d.ts +28 -7
- package/dist/src/ds/components/FilterBar/filter-bar.stories.d.ts +3 -0
- package/dist/src/ds/components/FilterBar/index.d.ts +6 -1
- package/dist/src/ds/components/FilterBar/types.d.ts +36 -0
- package/dist/src/ds/components/FilterBar/use-settle-on-leave.d.ts +2 -0
- package/dist/src/ds/components/PageLayout/index.d.ts +1 -2
- package/dist/src/ds/components/PageLayout/page-layout.d.ts +13 -11
- package/dist/src/ds/components/PageLayout/page-layout.stories.d.ts +1 -2
- package/dist/src/ds/components/PermissionDenied/PermissionDenied.d.ts +3 -1
- package/dist/src/ds/components/PermissionDenied/permission-denied.stories.d.ts +1 -0
- package/dist/src/ds/components/SessionExpired/SessionExpired.d.ts +3 -1
- package/dist/src/ds/components/SessionExpired/session-expired.stories.d.ts +1 -0
- package/dist/src/ds/components/Spinner/spinner.d.ts +6 -3
- package/dist/src/ds/components/Spinner/spinner.stories.d.ts +1 -0
- package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +13 -8
- package/dist/src/ds/new/layout/app-shell/app-shell.d.ts +2 -8
- package/dist/src/ds/new/layout/app-shell/app-shell.stories.d.ts +0 -1
- package/dist/src/ds/primitives/control-size.d.ts +3 -1
- package/dist/src/ds/primitives/fluid-menu.d.ts +8 -3
- package/dist/src/ds/primitives/form-element.d.ts +1 -2
- package/dist/src/hooks/use-fluid-hover.d.ts +7 -2
- package/dist/style.css +83 -120
- package/dist/{tabs-content-CKC4kIpH.js → tabs-content-BeFlc4E_.js} +2 -2
- package/dist/{tabs-content-CKC4kIpH.js.map → tabs-content-BeFlc4E_.js.map} +1 -1
- package/dist/{tabs-content-Bz6CZuv9.cjs → tabs-content-Cdu6HP8U.cjs} +2 -2
- package/dist/{tabs-content-Bz6CZuv9.cjs.map → tabs-content-Cdu6HP8U.cjs.map} +1 -1
- package/dist/{tabs-root-C5ABfm1F.cjs → tabs-root-BiV8irc3.cjs} +4 -4
- package/dist/{tabs-root-C5ABfm1F.cjs.map → tabs-root-BiV8irc3.cjs.map} +1 -1
- package/dist/{tabs-root-CcEQrwTM.js → tabs-root-CJ3GkDzi.js} +4 -4
- package/dist/{tabs-root-CcEQrwTM.js.map → tabs-root-CJ3GkDzi.js.map} +1 -1
- package/dist/{tabs-tab-BycF4dvx.js → tabs-tab-CoSCf5Ku.js} +2 -2
- package/dist/{tabs-tab-BycF4dvx.js.map → tabs-tab-CoSCf5Ku.js.map} +1 -1
- package/dist/{tabs-tab-DA466DbX.cjs → tabs-tab-J91Szy3Q.cjs} +2 -2
- package/dist/{tabs-tab-DA466DbX.cjs.map → tabs-tab-J91Szy3Q.cjs.map} +1 -1
- package/dist/{text-field-block-BLpLWmu8.cjs → text-field-block-BmWGMw3a.cjs} +8 -9
- package/dist/{text-field-block-BLpLWmu8.cjs.map → text-field-block-BmWGMw3a.cjs.map} +1 -1
- package/dist/{text-field-block--EUJKlY_.js → text-field-block-Cihf0IRw.js} +2 -3
- package/dist/{text-field-block--EUJKlY_.js.map → text-field-block-Cihf0IRw.js.map} +1 -1
- package/dist/{thread-rail-b-8RHNX_.cjs → thread-rail-BVpfkSyT.cjs} +6 -6
- package/dist/{thread-rail-b-8RHNX_.cjs.map → thread-rail-BVpfkSyT.cjs.map} +1 -1
- package/dist/{thread-rail-vsR5C0j4.js → thread-rail-DV89nFnn.js} +6 -6
- package/dist/{thread-rail-vsR5C0j4.js.map → thread-rail-DV89nFnn.js.map} +1 -1
- package/dist/{time-picker-Dlm-C-n4.cjs → time-picker-DXuXFGa-.cjs} +2 -2
- package/dist/{time-picker-Dlm-C-n4.cjs.map → time-picker-DXuXFGa-.cjs.map} +1 -1
- package/dist/{time-picker-DVt1ZUsS.js → time-picker-vFozGRyK.js} +2 -2
- package/dist/{time-picker-DVt1ZUsS.js.map → time-picker-vFozGRyK.js.map} +1 -1
- package/dist/{tool-approval-DB82iiRa.js → tool-approval-C11ECt4s.js} +5 -5
- package/dist/{tool-approval-DB82iiRa.js.map → tool-approval-C11ECt4s.js.map} +1 -1
- package/dist/{tool-approval-Dys524ty.cjs → tool-approval-DODxfqk7.cjs} +5 -5
- package/dist/{tool-approval-Dys524ty.cjs.map → tool-approval-DODxfqk7.cjs.map} +1 -1
- package/dist/{tool-call-K147tCug.js → tool-call-BjAGFbH-.js} +5 -5
- package/dist/{tool-call-K147tCug.js.map → tool-call-BjAGFbH-.js.map} +1 -1
- package/dist/{tool-call-CMRvRE-v.cjs → tool-call-CNBGnCmO.cjs} +5 -5
- package/dist/{tool-call-CMRvRE-v.cjs.map → tool-call-CNBGnCmO.cjs.map} +1 -1
- package/dist/{traces-data-list-CDNE9P8W.js → traces-data-list-BhKK8-wa.js} +7 -7
- package/dist/{traces-data-list-CDNE9P8W.js.map → traces-data-list-BhKK8-wa.js.map} +1 -1
- package/dist/{traces-data-list-B3q_cy6c.cjs → traces-data-list-D58cw23x.cjs} +7 -7
- package/dist/{traces-data-list-B3q_cy6c.cjs.map → traces-data-list-D58cw23x.cjs.map} +1 -1
- package/dist/types-CIPrYAzY.js +9 -0
- package/dist/types-CIPrYAzY.js.map +1 -0
- package/dist/types-Ns4ZNp-g.cjs +12 -0
- package/dist/types-Ns4ZNp-g.cjs.map +1 -0
- package/package.json +6 -7
- package/theme/surfaces.css +2 -2
- package/dist/Button-CVewl8nT.cjs.map +0 -1
- package/dist/Button-cWcBEd-G.js.map +0 -1
- package/dist/EmptyState-CdRjFB06.cjs.map +0 -1
- package/dist/EmptyState-UWXhBp5U.js.map +0 -1
- package/dist/ErrorState-B3uTRAEd.cjs +0 -16
- package/dist/ErrorState-B3uTRAEd.cjs.map +0 -1
- package/dist/ErrorState-DqRx8Dw_.js +0 -14
- package/dist/ErrorState-DqRx8Dw_.js.map +0 -1
- package/dist/PermissionDenied-B6TSGolC.js.map +0 -1
- package/dist/PermissionDenied-Dz5qXpQj.cjs.map +0 -1
- package/dist/SessionExpired-Bq5LcsDu.js.map +0 -1
- package/dist/SessionExpired-CF0BGNo_.cjs.map +0 -1
- package/dist/ask-user-CS2e6Re4.cjs +0 -147
- package/dist/ask-user-CS2e6Re4.cjs.map +0 -1
- package/dist/ask-user-gS3Y1bCc.js +0 -138
- package/dist/ask-user-gS3Y1bCc.js.map +0 -1
- package/dist/buttons-group-BiLEV_Ak.cjs +0 -101
- package/dist/buttons-group-BiLEV_Ak.cjs.map +0 -1
- package/dist/buttons-group-CaA7KAWf.js +0 -78
- package/dist/buttons-group-CaA7KAWf.js.map +0 -1
- package/dist/combobox-BWM3VH-n.cjs.map +0 -1
- package/dist/combobox-D7xJFZuO.js.map +0 -1
- package/dist/combobox-styles-CRebmeht.js.map +0 -1
- package/dist/combobox-styles-DYlNNjKC.cjs.map +0 -1
- package/dist/components/MainContent.cjs.js +0 -81
- package/dist/components/MainContent.cjs.js.map +0 -1
- package/dist/components/MainContent.d.ts +0 -2
- package/dist/components/MainContent.es.js +0 -75
- package/dist/components/MainContent.es.js.map +0 -1
- package/dist/data-code-section-DKz9Okaz.js.map +0 -1
- package/dist/data-code-section-qujvEc6j.cjs.map +0 -1
- package/dist/dropdown-menu-DL0MzjEb.js.map +0 -1
- package/dist/dropdown-menu-DNRCA4Gj.cjs.map +0 -1
- package/dist/field-block-DWkbNcsV.js.map +0 -1
- package/dist/field-block-Dy1IaWbv.cjs.map +0 -1
- package/dist/field-error-id-B3Z2Zu5y.cjs +0 -6
- package/dist/field-error-id-B3Z2Zu5y.cjs.map +0 -1
- package/dist/field-error-id-D3yg1nBh.js +0 -4
- package/dist/field-error-id-D3yg1nBh.js.map +0 -1
- package/dist/filter-bar-chip-BxI0NgEz.cjs.map +0 -1
- package/dist/filter-bar-chip-C-JxWUU8.js.map +0 -1
- package/dist/input-group-BEdHivvy.js.map +0 -1
- package/dist/input-group-CvWwK1Vz.cjs.map +0 -1
- package/dist/lib/springs.cjs.js +0 -32
- package/dist/lib/springs.cjs.js.map +0 -1
- package/dist/lib/springs.d.ts +0 -2
- package/dist/lib/springs.es.js +0 -27
- package/dist/lib/springs.es.js.map +0 -1
- package/dist/main-sidebar-link-active-CmDoiX6g.js.map +0 -1
- package/dist/main-sidebar-link-active-DbCvKZy2.cjs.map +0 -1
- package/dist/markdown-renderer-B0gTm_Ea.js.map +0 -1
- package/dist/markdown-renderer-D8qYAU7K.cjs.map +0 -1
- package/dist/metrics-card-BUJxiwec.cjs.map +0 -1
- package/dist/metrics-card-BlBt1WHw.js.map +0 -1
- package/dist/new/layout/page-shell.cjs.js +0 -34
- package/dist/new/layout/page-shell.cjs.js.map +0 -1
- package/dist/new/layout/page-shell.d.ts +0 -2
- package/dist/new/layout/page-shell.es.js +0 -30
- package/dist/new/layout/page-shell.es.js.map +0 -1
- package/dist/no-data-page-layout-DcVPjj-J.js +0 -9
- package/dist/no-data-page-layout-DcVPjj-J.js.map +0 -1
- package/dist/no-data-page-layout-Drzbg_w8.cjs +0 -11
- package/dist/no-data-page-layout-Drzbg_w8.cjs.map +0 -1
- package/dist/page-heading-context-D3yjYoJE.js +0 -9
- package/dist/page-heading-context-D3yjYoJE.js.map +0 -1
- package/dist/page-heading-context-Du-CpxAx.cjs +0 -12
- package/dist/page-heading-context-Du-CpxAx.cjs.map +0 -1
- package/dist/page-layout-C9ifD9Q8.cjs +0 -99
- package/dist/page-layout-C9ifD9Q8.cjs.map +0 -1
- package/dist/page-layout-xcM8IR-B.js +0 -97
- package/dist/page-layout-xcM8IR-B.js.map +0 -1
- package/dist/property-filter-applied-BBiUbtr0.js.map +0 -1
- package/dist/property-filter-applied-BmxCPe2d.cjs.map +0 -1
- package/dist/select--DXpTg0O.js.map +0 -1
- package/dist/select-7ACAVdGX.cjs.map +0 -1
- package/dist/spinner-CqP-NaB2.cjs.map +0 -1
- package/dist/spinner-D2C2DYw8.js.map +0 -1
- package/dist/src/ds/components/MainContent/index.d.ts +0 -1
- package/dist/src/ds/components/MainContent/main-content.d.ts +0 -21
- package/dist/src/ds/components/MainContent/main-content.stories.d.ts +0 -10
- package/dist/src/ds/components/PageLayout/no-data-page-layout.d.ts +0 -6
- package/dist/src/ds/components/PageLayout/page-heading-context.d.ts +0 -2
- package/dist/src/ds/components/PageLayout/page-layout-column.d.ts +0 -5
- package/dist/src/ds/components/PageLayout/page-layout-main-area.d.ts +0 -7
- package/dist/src/ds/components/PageLayout/page-layout-root.d.ts +0 -7
- package/dist/src/ds/components/PageLayout/page-layout-row.d.ts +0 -11
- package/dist/src/ds/components/PageLayout/page-layout-top-area.d.ts +0 -5
- package/dist/src/ds/new/layout/page-shell/index.d.ts +0 -1
- package/dist/src/ds/new/layout/page-shell/page-shell.d.ts +0 -24
- package/dist/src/ds/new/layout/page-shell/page-shell.stories.d.ts +0 -63
- package/dist/src/lib/springs.d.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation-renderer.cjs.js","sources":["../../../../../src/domains/chat/tools/badges/observation-renderer.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { cn } from '@/utils/cn';\n\n// Priority emoji to color mapping\n// P1 (🔴) = highest priority = purple theme\n// P2 (🟡) = medium priority = blue theme\n// P3 (🟢) = lower priority = green theme\nconst PRIORITY_COLORS = {\n '🔴': 'text-foreground',\n '🟡': 'text-foreground',\n '🟢': 'text-foreground',\n} as const;\n\n// Dark backgrounds for all priorities\nconst PRIORITY_BG = {\n '🔴': 'bg-purple-500/15',\n '🟡': 'bg-blue-500/15',\n '🟢': 'bg-green-500/15',\n} as const;\n\n// Full color left border accent\nconst PRIORITY_BORDER = {\n '🔴': 'border-l-purple-500',\n '🟡': 'border-l-blue-500',\n '🟢': 'border-l-green-500',\n} as const;\n\ntype Priority = keyof typeof PRIORITY_COLORS;\n\ninterface ParsedObservation {\n priority: Priority | null;\n time: string | null;\n content: string;\n children: ParsedObservation[];\n isNested: boolean;\n}\n\ninterface ParsedDateBlock {\n date: string;\n relativeTime?: string; // e.g., \"(3 days ago)\"\n observations: ParsedObservation[];\n}\n\ninterface ParsedThread {\n threadId: string;\n dateBlocks: ParsedDateBlock[];\n}\n\ninterface ParsedObservations {\n threads: ParsedThread[];\n currentTask?: string;\n suggestedResponse?: string;\n}\n\n/**\n * Parse a single observation line\n */\nfunction parseObservationLine(line: string, isNested: boolean = false): ParsedObservation | null {\n // Match: * 🔴 (14:30) Content or * -> nested content\n const trimmed = line.trim();\n\n if (!trimmed) return null;\n\n // Check for nested arrow format: * -> content\n if (trimmed.startsWith('* ->') || trimmed.startsWith('->')) {\n const content = trimmed.replace(/^\\*?\\s*->\\s*/, '');\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for indented dash list item: - content (used as sub-items)\n if (isNested && trimmed.startsWith('-')) {\n const content = trimmed.replace(/^-\\s*/, '');\n if (!content) return null;\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for standard format: * 🔴 (14:30) Content\n const match = trimmed.match(/^\\*\\s*(🔴|🟡|🟢)?\\s*(?:\\((\\d{1,2}:\\d{2})\\))?\\s*(.+)$/);\n\n if (match) {\n const [, priority, time, content] = match;\n return {\n priority: (priority as Priority) || null,\n time: time || null,\n content: (content ?? '').trim(),\n children: [],\n isNested,\n };\n }\n\n // Fallback for lines that don't match the pattern\n if (trimmed.startsWith('*')) {\n return {\n priority: null,\n time: null,\n content: trimmed.replace(/^\\*\\s*/, ''),\n children: [],\n isNested,\n };\n }\n\n return null;\n}\n\n/**\n * Parse the raw observations string into structured data\n */\nfunction parseObservations(raw: string): ParsedObservations {\n const result: ParsedObservations = {\n threads: [],\n };\n\n // Extract current-task if present\n const currentTaskMatch = raw.match(/<current-task>\\s*([\\s\\S]*?)\\s*<\\/current-task>/);\n if (currentTaskMatch) {\n result.currentTask = (currentTaskMatch[1] ?? '').trim();\n }\n\n // Extract suggested-response if present\n const suggestedMatch = raw.match(/<suggested-response>\\s*([\\s\\S]*?)\\s*<\\/suggested-response>/);\n if (suggestedMatch) {\n result.suggestedResponse = (suggestedMatch[1] ?? '').trim();\n }\n\n // Extract observations content\n const observationsMatch = raw.match(/<observations>\\s*([\\s\\S]*?)\\s*<\\/observations>/);\n const observationsContent = observationsMatch?.[1] ?? raw;\n\n // Split by thread headers if present\n const threadSections = observationsContent.split(/(?=Thread [a-f0-9]+:)/i);\n\n for (const section of threadSections) {\n const trimmedSection = section.trim();\n if (!trimmedSection) continue;\n\n // Check for thread header\n const threadMatch = trimmedSection.match(/^Thread ([a-f0-9]+):/i);\n const threadId = threadMatch?.[1] ?? 'default';\n const content = threadMatch ? trimmedSection.replace(/^Thread [a-f0-9]+:\\s*/i, '') : trimmedSection;\n\n const thread: ParsedThread = {\n threadId,\n dateBlocks: [],\n };\n\n // Split by date headers\n const lines = content.split('\\n');\n let currentDateBlock: ParsedDateBlock | null = null;\n let lastObservation: ParsedObservation | null = null;\n\n for (const line of lines) {\n const trimmedLine = line.trim();\n\n // Check for date header: \"Date: Dec 4, 2025\" or \"Date: Dec 4, 2025 (3 days ago)\"\n const dateMatch = trimmedLine.match(/^Date:\\s*(.+?)(?:\\s*\\(([^)]+)\\))?$/);\n if (dateMatch) {\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n currentDateBlock = {\n date: (dateMatch[1] ?? '').trim(),\n relativeTime: dateMatch[2]?.trim(),\n observations: [],\n };\n lastObservation = null;\n continue;\n }\n\n // Check indentation for nested observations\n const indentMatch = line.match(/^(\\s*)/);\n const indent = indentMatch?.[1]?.length ?? 0;\n const isNested =\n indent >= 2 && (trimmedLine.startsWith('* ->') || trimmedLine.startsWith('->') || trimmedLine.startsWith('-'));\n\n const observation = parseObservationLine(trimmedLine, isNested);\n\n if (observation) {\n if (!currentDateBlock) {\n // Create a default date block if none exists\n currentDateBlock = {\n date: 'Recent',\n observations: [],\n };\n }\n\n if (observation.isNested && lastObservation) {\n // Add as child of last observation\n lastObservation.children.push(observation);\n } else {\n currentDateBlock.observations.push(observation);\n lastObservation = observation;\n }\n }\n }\n\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n\n if (thread.dateBlocks.length > 0) {\n result.threads.push(thread);\n }\n }\n\n return result;\n}\n\n/**\n * Render a single observation\n */\nfunction ObservationItem({\n observation,\n useInheritedTextColor,\n}: {\n observation: ParsedObservation;\n useInheritedTextColor?: boolean;\n}) {\n // When useInheritedTextColor is true, don't apply priority colors - inherit from parent\n const priorityColor = useInheritedTextColor\n ? ''\n : observation.priority\n ? PRIORITY_COLORS[observation.priority]\n : 'text-muted-foreground';\n const bgColor = useInheritedTextColor ? '' : observation.priority ? PRIORITY_BG[observation.priority] : '';\n\n // Get a subtle left border color based on priority (using blue shades for visual hierarchy)\n const borderColor = observation.priority ? PRIORITY_BORDER[observation.priority] : 'border-l-transparent';\n\n return (\n <div className={cn('py-0.5', observation.isNested && 'border-border/50 ml-4 border-l pl-2')}>\n <div\n className={cn(\n 'flex items-start gap-1.5 text-caption',\n bgColor && 'rounded px-1.5 py-0.5',\n bgColor,\n !observation.isNested && observation.priority && `border-l-2 ${borderColor} pl-1.5`,\n )}\n >\n {observation.isNested && (\n <span className={cn('shrink-0', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>→</span>\n )}\n <span className=\"[&_code]:text-meta flex-1 [&_code]:rounded [&_code]:bg-black/10 [&_code]:px-1 [&_code]:py-0.5\">\n <MarkdownRenderer className={priorityColor}>{observation.content}</MarkdownRenderer>\n </span>\n {observation.time && (\n <span\n className={cn(\n 'ml-2 shrink-0 font-mono text-meta',\n useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground',\n )}\n >\n {observation.time}\n </span>\n )}\n </div>\n {observation.children.length > 0 && (\n <div className=\"mt-0.5\">\n {observation.children.map((child, i) => (\n <ObservationItem key={i} observation={child} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Render a date block\n */\nfunction DateBlock({ block, useInheritedTextColor }: { block: ParsedDateBlock; useInheritedTextColor?: boolean }) {\n return (\n <div className=\"mb-2\">\n <div\n className={cn(\n 'sticky top-0 mb-1 flex items-center gap-2 py-1 backdrop-blur-sm',\n useInheritedTextColor ? 'bg-transparent' : 'bg-background/95',\n )}\n >\n <span className={cn('text-column', useInheritedTextColor ? 'opacity-80' : 'text-foreground')}>\n {block.date}\n </span>\n {block.relativeTime && (\n <span className={cn('text-meta', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>\n ({block.relativeTime})\n </span>\n )}\n </div>\n <div className=\"space-y-0\">\n {block.observations.map((obs, i) => (\n <ObservationItem key={i} observation={obs} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n </div>\n );\n}\n\n/**\n * Render a thread section\n */\nfunction ThreadSection({\n thread,\n showThreadId,\n useInheritedTextColor,\n}: {\n thread: ParsedThread;\n showThreadId: boolean;\n useInheritedTextColor?: boolean;\n}) {\n return (\n <div className=\"mb-3\">\n {showThreadId && thread.threadId !== 'default' && (\n <div\n className={cn(\n 'mb-1 inline-block rounded px-1 py-0.5 font-mono text-meta',\n useInheritedTextColor ? 'bg-current/10 opacity-60' : 'text-muted-foreground bg-muted/50',\n )}\n >\n Thread {thread.threadId}\n </div>\n )}\n {thread.dateBlocks.map((block, i) => (\n <DateBlock key={i} block={block} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n );\n}\n\nexport interface ObservationRendererProps {\n observations: string;\n className?: string;\n maxHeight?: string;\n showCurrentTask?: boolean;\n showSuggestedResponse?: boolean;\n /** If true, observations inherit text color from parent instead of using priority colors */\n useInheritedTextColor?: boolean;\n}\n\n/**\n * Renders raw observation text with proper formatting\n */\nexport function ObservationRenderer({\n observations,\n className,\n maxHeight,\n showCurrentTask = false,\n showSuggestedResponse = false,\n useInheritedTextColor = false,\n}: ObservationRendererProps) {\n const parsed = useMemo(() => parseObservations(observations), [observations]);\n\n const hasMultipleThreads =\n parsed.threads.length > 1 || (parsed.threads.length === 1 && parsed.threads[0]?.threadId !== 'default');\n\n if (parsed.threads.length === 0 && !parsed.currentTask && !parsed.suggestedResponse) {\n return <div className={cn('text-muted-foreground text-caption italic', className)}>No observations</div>;\n }\n\n return (\n <div className={cn('overflow-hidden text-body', className)}>\n <div\n className={cn('wrap-break-word', maxHeight && 'overflow-y-auto pr-1')}\n style={maxHeight ? { maxHeight } : undefined}\n >\n {parsed.threads.map((thread, i) => (\n <ThreadSection\n key={thread.threadId + i}\n thread={thread}\n showThreadId={hasMultipleThreads}\n useInheritedTextColor={useInheritedTextColor}\n />\n ))}\n </div>\n\n {showCurrentTask && parsed.currentTask && (\n <div className=\"border-border mt-2 border-t pt-2\">\n <div className=\"text-muted-foreground text-meta mb-1 tracking-wide uppercase\">Current Task</div>\n <div className=\"text-foreground text-caption whitespace-pre-wrap\">{parsed.currentTask}</div>\n </div>\n )}\n\n {showSuggestedResponse && parsed.suggestedResponse && (\n <div className=\"border-border mt-2 border-t pt-2\">\n <div className=\"text-muted-foreground text-meta mb-1 tracking-wide uppercase\">Suggested Response</div>\n <div className=\"text-foreground/80 text-caption whitespace-pre-wrap italic\">{parsed.suggestedResponse}</div>\n </div>\n )}\n </div>\n );\n}\n\nexport default ObservationRenderer;\n"],"names":["jsxs","cn","jsx","MarkdownRenderer","useMemo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"observation-renderer.cjs.js","sources":["../../../../../src/domains/chat/tools/badges/observation-renderer.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { cn } from '@/utils/cn';\n\n// Priority emoji to color mapping\n// P1 (🔴) = highest priority = purple theme\n// P2 (🟡) = medium priority = blue theme\n// P3 (🟢) = lower priority = green theme\nconst PRIORITY_COLORS = {\n '🔴': 'text-foreground',\n '🟡': 'text-foreground',\n '🟢': 'text-foreground',\n} as const;\n\n// Dark backgrounds for all priorities\nconst PRIORITY_BG = {\n '🔴': 'bg-purple-500/15',\n '🟡': 'bg-blue-500/15',\n '🟢': 'bg-green-500/15',\n} as const;\n\n// Full color left border accent\nconst PRIORITY_BORDER = {\n '🔴': 'border-l-purple-500',\n '🟡': 'border-l-blue-500',\n '🟢': 'border-l-green-500',\n} as const;\n\ntype Priority = keyof typeof PRIORITY_COLORS;\n\ninterface ParsedObservation {\n priority: Priority | null;\n time: string | null;\n content: string;\n children: ParsedObservation[];\n isNested: boolean;\n}\n\ninterface ParsedDateBlock {\n date: string;\n relativeTime?: string; // e.g., \"(3 days ago)\"\n observations: ParsedObservation[];\n}\n\ninterface ParsedThread {\n threadId: string;\n dateBlocks: ParsedDateBlock[];\n}\n\ninterface ParsedObservations {\n threads: ParsedThread[];\n currentTask?: string;\n suggestedResponse?: string;\n}\n\n/**\n * Parse a single observation line\n */\nfunction parseObservationLine(line: string, isNested: boolean = false): ParsedObservation | null {\n // Match: * 🔴 (14:30) Content or * -> nested content\n const trimmed = line.trim();\n\n if (!trimmed) return null;\n\n // Check for nested arrow format: * -> content\n if (trimmed.startsWith('* ->') || trimmed.startsWith('->')) {\n const content = trimmed.replace(/^\\*?\\s*->\\s*/, '');\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for indented dash list item: - content (used as sub-items)\n if (isNested && trimmed.startsWith('-')) {\n const content = trimmed.replace(/^-\\s*/, '');\n if (!content) return null;\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for standard format: * 🔴 (14:30) Content\n const match = trimmed.match(/^\\*\\s*(🔴|🟡|🟢)?\\s*(?:\\((\\d{1,2}:\\d{2})\\))?\\s*(.+)$/);\n\n if (match) {\n const [, priority, time, content] = match;\n return {\n priority: (priority as Priority) || null,\n time: time || null,\n content: (content ?? '').trim(),\n children: [],\n isNested,\n };\n }\n\n // Fallback for lines that don't match the pattern\n if (trimmed.startsWith('*')) {\n return {\n priority: null,\n time: null,\n content: trimmed.replace(/^\\*\\s*/, ''),\n children: [],\n isNested,\n };\n }\n\n return null;\n}\n\n/**\n * Parse the raw observations string into structured data\n */\nfunction parseObservations(raw: string): ParsedObservations {\n const result: ParsedObservations = {\n threads: [],\n };\n\n // Extract current-task if present\n const currentTaskMatch = raw.match(/<current-task>\\s*([\\s\\S]*?)\\s*<\\/current-task>/);\n if (currentTaskMatch) {\n result.currentTask = (currentTaskMatch[1] ?? '').trim();\n }\n\n // Extract suggested-response if present\n const suggestedMatch = raw.match(/<suggested-response>\\s*([\\s\\S]*?)\\s*<\\/suggested-response>/);\n if (suggestedMatch) {\n result.suggestedResponse = (suggestedMatch[1] ?? '').trim();\n }\n\n // Extract observations content\n const observationsMatch = raw.match(/<observations>\\s*([\\s\\S]*?)\\s*<\\/observations>/);\n const observationsContent = observationsMatch?.[1] ?? raw;\n\n // Split by thread headers if present\n const threadSections = observationsContent.split(/(?=Thread [a-f0-9]+:)/i);\n\n for (const section of threadSections) {\n const trimmedSection = section.trim();\n if (!trimmedSection) continue;\n\n // Check for thread header\n const threadMatch = trimmedSection.match(/^Thread ([a-f0-9]+):/i);\n const threadId = threadMatch?.[1] ?? 'default';\n const content = threadMatch ? trimmedSection.replace(/^Thread [a-f0-9]+:\\s*/i, '') : trimmedSection;\n\n const thread: ParsedThread = {\n threadId,\n dateBlocks: [],\n };\n\n // Split by date headers\n const lines = content.split('\\n');\n let currentDateBlock: ParsedDateBlock | null = null;\n let lastObservation: ParsedObservation | null = null;\n\n for (const line of lines) {\n const trimmedLine = line.trim();\n\n // Check for date header: \"Date: Dec 4, 2025\" or \"Date: Dec 4, 2025 (3 days ago)\"\n const dateMatch = trimmedLine.match(/^Date:\\s*(.+?)(?:\\s*\\(([^)]+)\\))?$/);\n if (dateMatch) {\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n currentDateBlock = {\n date: (dateMatch[1] ?? '').trim(),\n relativeTime: dateMatch[2]?.trim(),\n observations: [],\n };\n lastObservation = null;\n continue;\n }\n\n // Check indentation for nested observations\n const indentMatch = line.match(/^(\\s*)/);\n const indent = indentMatch?.[1]?.length ?? 0;\n const isNested =\n indent >= 2 && (trimmedLine.startsWith('* ->') || trimmedLine.startsWith('->') || trimmedLine.startsWith('-'));\n\n const observation = parseObservationLine(trimmedLine, isNested);\n\n if (observation) {\n if (!currentDateBlock) {\n // Create a default date block if none exists\n currentDateBlock = {\n date: 'Recent',\n observations: [],\n };\n }\n\n if (observation.isNested && lastObservation) {\n // Add as child of last observation\n lastObservation.children.push(observation);\n } else {\n currentDateBlock.observations.push(observation);\n lastObservation = observation;\n }\n }\n }\n\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n\n if (thread.dateBlocks.length > 0) {\n result.threads.push(thread);\n }\n }\n\n return result;\n}\n\n/**\n * Render a single observation\n */\nfunction ObservationItem({\n observation,\n useInheritedTextColor,\n}: {\n observation: ParsedObservation;\n useInheritedTextColor?: boolean;\n}) {\n // When useInheritedTextColor is true, don't apply priority colors - inherit from parent\n const priorityColor = useInheritedTextColor\n ? ''\n : observation.priority\n ? PRIORITY_COLORS[observation.priority]\n : 'text-muted-foreground';\n const bgColor = useInheritedTextColor ? '' : observation.priority ? PRIORITY_BG[observation.priority] : '';\n\n // Get a subtle left border color based on priority (using blue shades for visual hierarchy)\n const borderColor = observation.priority ? PRIORITY_BORDER[observation.priority] : 'border-l-transparent';\n\n return (\n <div className={cn('py-0.5', observation.isNested && 'ml-4 border-l border-border/50 pl-2')}>\n <div\n className={cn(\n 'flex items-start gap-1.5 text-caption',\n bgColor && 'rounded px-1.5 py-0.5',\n bgColor,\n !observation.isNested && observation.priority && `border-l-2 ${borderColor} pl-1.5`,\n )}\n >\n {observation.isNested && (\n <span className={cn('shrink-0', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>→</span>\n )}\n <span className=\"flex-1 [&_code]:rounded [&_code]:bg-black/10 [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-meta\">\n <MarkdownRenderer className={priorityColor}>{observation.content}</MarkdownRenderer>\n </span>\n {observation.time && (\n <span\n className={cn(\n 'ml-2 shrink-0 font-mono text-meta',\n useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground',\n )}\n >\n {observation.time}\n </span>\n )}\n </div>\n {observation.children.length > 0 && (\n <div className=\"mt-0.5\">\n {observation.children.map((child, i) => (\n <ObservationItem key={i} observation={child} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Render a date block\n */\nfunction DateBlock({ block, useInheritedTextColor }: { block: ParsedDateBlock; useInheritedTextColor?: boolean }) {\n return (\n <div className=\"mb-2\">\n <div\n className={cn(\n 'sticky top-0 mb-1 flex items-center gap-2 py-1 backdrop-blur-sm',\n useInheritedTextColor ? 'bg-transparent' : 'bg-background/95',\n )}\n >\n <span className={cn('text-column', useInheritedTextColor ? 'opacity-80' : 'text-foreground')}>\n {block.date}\n </span>\n {block.relativeTime && (\n <span className={cn('text-meta', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>\n ({block.relativeTime})\n </span>\n )}\n </div>\n <div className=\"space-y-0\">\n {block.observations.map((obs, i) => (\n <ObservationItem key={i} observation={obs} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n </div>\n );\n}\n\n/**\n * Render a thread section\n */\nfunction ThreadSection({\n thread,\n showThreadId,\n useInheritedTextColor,\n}: {\n thread: ParsedThread;\n showThreadId: boolean;\n useInheritedTextColor?: boolean;\n}) {\n return (\n <div className=\"mb-3\">\n {showThreadId && thread.threadId !== 'default' && (\n <div\n className={cn(\n 'mb-1 inline-block rounded px-1 py-0.5 font-mono text-meta',\n useInheritedTextColor ? 'bg-current/10 opacity-60' : 'bg-muted/50 text-muted-foreground',\n )}\n >\n Thread {thread.threadId}\n </div>\n )}\n {thread.dateBlocks.map((block, i) => (\n <DateBlock key={i} block={block} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n );\n}\n\nexport interface ObservationRendererProps {\n observations: string;\n className?: string;\n maxHeight?: string;\n showCurrentTask?: boolean;\n showSuggestedResponse?: boolean;\n /** If true, observations inherit text color from parent instead of using priority colors */\n useInheritedTextColor?: boolean;\n}\n\n/**\n * Renders raw observation text with proper formatting\n */\nexport function ObservationRenderer({\n observations,\n className,\n maxHeight,\n showCurrentTask = false,\n showSuggestedResponse = false,\n useInheritedTextColor = false,\n}: ObservationRendererProps) {\n const parsed = useMemo(() => parseObservations(observations), [observations]);\n\n const hasMultipleThreads =\n parsed.threads.length > 1 || (parsed.threads.length === 1 && parsed.threads[0]?.threadId !== 'default');\n\n if (parsed.threads.length === 0 && !parsed.currentTask && !parsed.suggestedResponse) {\n return <div className={cn('text-caption text-muted-foreground italic', className)}>No observations</div>;\n }\n\n return (\n <div className={cn('overflow-hidden text-body', className)}>\n <div\n className={cn('wrap-break-word', maxHeight && 'overflow-y-auto pr-1')}\n style={maxHeight ? { maxHeight } : undefined}\n >\n {parsed.threads.map((thread, i) => (\n <ThreadSection\n key={thread.threadId + i}\n thread={thread}\n showThreadId={hasMultipleThreads}\n useInheritedTextColor={useInheritedTextColor}\n />\n ))}\n </div>\n\n {showCurrentTask && parsed.currentTask && (\n <div className=\"mt-2 border-t border-border pt-2\">\n <div className=\"mb-1 text-meta tracking-wide text-muted-foreground uppercase\">Current Task</div>\n <div className=\"text-caption whitespace-pre-wrap text-foreground\">{parsed.currentTask}</div>\n </div>\n )}\n\n {showSuggestedResponse && parsed.suggestedResponse && (\n <div className=\"mt-2 border-t border-border pt-2\">\n <div className=\"mb-1 text-meta tracking-wide text-muted-foreground uppercase\">Suggested Response</div>\n <div className=\"text-caption whitespace-pre-wrap text-foreground/80 italic\">{parsed.suggestedResponse}</div>\n </div>\n )}\n </div>\n );\n}\n\nexport default ObservationRenderer;\n"],"names":["jsxs","cn","jsx","MarkdownRenderer","useMemo"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { M as MarkdownRenderer } from '../../../../markdown-renderer-
|
|
3
|
+
import { M as MarkdownRenderer } from '../../../../markdown-renderer-DZAcPOxC.js';
|
|
4
4
|
import { c as cn } from '../../../../cn-65Adrsfj.js';
|
|
5
5
|
|
|
6
6
|
const PRIORITY_COLORS = {
|
|
@@ -142,7 +142,7 @@ function ObservationItem({
|
|
|
142
142
|
const priorityColor = useInheritedTextColor ? "" : observation.priority ? PRIORITY_COLORS[observation.priority] : "text-muted-foreground";
|
|
143
143
|
const bgColor = useInheritedTextColor ? "" : observation.priority ? PRIORITY_BG[observation.priority] : "";
|
|
144
144
|
const borderColor = observation.priority ? PRIORITY_BORDER[observation.priority] : "border-l-transparent";
|
|
145
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("py-0.5", observation.isNested && "
|
|
145
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("py-0.5", observation.isNested && "ml-4 border-l border-border/50 pl-2"), children: [
|
|
146
146
|
/* @__PURE__ */ jsxs(
|
|
147
147
|
"div",
|
|
148
148
|
{
|
|
@@ -154,7 +154,7 @@ function ObservationItem({
|
|
|
154
154
|
),
|
|
155
155
|
children: [
|
|
156
156
|
observation.isNested && /* @__PURE__ */ jsx("span", { className: cn("shrink-0", useInheritedTextColor ? "opacity-60" : "text-muted-foreground"), children: "→" }),
|
|
157
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
157
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 [&_code]:rounded [&_code]:bg-black/10 [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-meta", children: /* @__PURE__ */ jsx(MarkdownRenderer, { className: priorityColor, children: observation.content }) }),
|
|
158
158
|
observation.time && /* @__PURE__ */ jsx(
|
|
159
159
|
"span",
|
|
160
160
|
{
|
|
@@ -204,7 +204,7 @@ function ThreadSection({
|
|
|
204
204
|
{
|
|
205
205
|
className: cn(
|
|
206
206
|
"mb-1 inline-block rounded px-1 py-0.5 font-mono text-meta",
|
|
207
|
-
useInheritedTextColor ? "bg-current/10 opacity-60" : "text-muted-foreground
|
|
207
|
+
useInheritedTextColor ? "bg-current/10 opacity-60" : "bg-muted/50 text-muted-foreground"
|
|
208
208
|
),
|
|
209
209
|
children: [
|
|
210
210
|
"Thread ",
|
|
@@ -226,7 +226,7 @@ function ObservationRenderer({
|
|
|
226
226
|
const parsed = useMemo(() => parseObservations(observations), [observations]);
|
|
227
227
|
const hasMultipleThreads = parsed.threads.length > 1 || parsed.threads.length === 1 && parsed.threads[0]?.threadId !== "default";
|
|
228
228
|
if (parsed.threads.length === 0 && !parsed.currentTask && !parsed.suggestedResponse) {
|
|
229
|
-
return /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground
|
|
229
|
+
return /* @__PURE__ */ jsx("div", { className: cn("text-caption text-muted-foreground italic", className), children: "No observations" });
|
|
230
230
|
}
|
|
231
231
|
return /* @__PURE__ */ jsxs("div", { className: cn("overflow-hidden text-body", className), children: [
|
|
232
232
|
/* @__PURE__ */ jsx(
|
|
@@ -245,13 +245,13 @@ function ObservationRenderer({
|
|
|
245
245
|
))
|
|
246
246
|
}
|
|
247
247
|
),
|
|
248
|
-
showCurrentTask && parsed.currentTask && /* @__PURE__ */ jsxs("div", { className: "
|
|
249
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
250
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
248
|
+
showCurrentTask && parsed.currentTask && /* @__PURE__ */ jsxs("div", { className: "mt-2 border-t border-border pt-2", children: [
|
|
249
|
+
/* @__PURE__ */ jsx("div", { className: "mb-1 text-meta tracking-wide text-muted-foreground uppercase", children: "Current Task" }),
|
|
250
|
+
/* @__PURE__ */ jsx("div", { className: "text-caption whitespace-pre-wrap text-foreground", children: parsed.currentTask })
|
|
251
251
|
] }),
|
|
252
|
-
showSuggestedResponse && parsed.suggestedResponse && /* @__PURE__ */ jsxs("div", { className: "
|
|
253
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
254
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
252
|
+
showSuggestedResponse && parsed.suggestedResponse && /* @__PURE__ */ jsxs("div", { className: "mt-2 border-t border-border pt-2", children: [
|
|
253
|
+
/* @__PURE__ */ jsx("div", { className: "mb-1 text-meta tracking-wide text-muted-foreground uppercase", children: "Suggested Response" }),
|
|
254
|
+
/* @__PURE__ */ jsx("div", { className: "text-caption whitespace-pre-wrap text-foreground/80 italic", children: parsed.suggestedResponse })
|
|
255
255
|
] })
|
|
256
256
|
] });
|
|
257
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation-renderer.es.js","sources":["../../../../../src/domains/chat/tools/badges/observation-renderer.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { cn } from '@/utils/cn';\n\n// Priority emoji to color mapping\n// P1 (🔴) = highest priority = purple theme\n// P2 (🟡) = medium priority = blue theme\n// P3 (🟢) = lower priority = green theme\nconst PRIORITY_COLORS = {\n '🔴': 'text-foreground',\n '🟡': 'text-foreground',\n '🟢': 'text-foreground',\n} as const;\n\n// Dark backgrounds for all priorities\nconst PRIORITY_BG = {\n '🔴': 'bg-purple-500/15',\n '🟡': 'bg-blue-500/15',\n '🟢': 'bg-green-500/15',\n} as const;\n\n// Full color left border accent\nconst PRIORITY_BORDER = {\n '🔴': 'border-l-purple-500',\n '🟡': 'border-l-blue-500',\n '🟢': 'border-l-green-500',\n} as const;\n\ntype Priority = keyof typeof PRIORITY_COLORS;\n\ninterface ParsedObservation {\n priority: Priority | null;\n time: string | null;\n content: string;\n children: ParsedObservation[];\n isNested: boolean;\n}\n\ninterface ParsedDateBlock {\n date: string;\n relativeTime?: string; // e.g., \"(3 days ago)\"\n observations: ParsedObservation[];\n}\n\ninterface ParsedThread {\n threadId: string;\n dateBlocks: ParsedDateBlock[];\n}\n\ninterface ParsedObservations {\n threads: ParsedThread[];\n currentTask?: string;\n suggestedResponse?: string;\n}\n\n/**\n * Parse a single observation line\n */\nfunction parseObservationLine(line: string, isNested: boolean = false): ParsedObservation | null {\n // Match: * 🔴 (14:30) Content or * -> nested content\n const trimmed = line.trim();\n\n if (!trimmed) return null;\n\n // Check for nested arrow format: * -> content\n if (trimmed.startsWith('* ->') || trimmed.startsWith('->')) {\n const content = trimmed.replace(/^\\*?\\s*->\\s*/, '');\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for indented dash list item: - content (used as sub-items)\n if (isNested && trimmed.startsWith('-')) {\n const content = trimmed.replace(/^-\\s*/, '');\n if (!content) return null;\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for standard format: * 🔴 (14:30) Content\n const match = trimmed.match(/^\\*\\s*(🔴|🟡|🟢)?\\s*(?:\\((\\d{1,2}:\\d{2})\\))?\\s*(.+)$/);\n\n if (match) {\n const [, priority, time, content] = match;\n return {\n priority: (priority as Priority) || null,\n time: time || null,\n content: (content ?? '').trim(),\n children: [],\n isNested,\n };\n }\n\n // Fallback for lines that don't match the pattern\n if (trimmed.startsWith('*')) {\n return {\n priority: null,\n time: null,\n content: trimmed.replace(/^\\*\\s*/, ''),\n children: [],\n isNested,\n };\n }\n\n return null;\n}\n\n/**\n * Parse the raw observations string into structured data\n */\nfunction parseObservations(raw: string): ParsedObservations {\n const result: ParsedObservations = {\n threads: [],\n };\n\n // Extract current-task if present\n const currentTaskMatch = raw.match(/<current-task>\\s*([\\s\\S]*?)\\s*<\\/current-task>/);\n if (currentTaskMatch) {\n result.currentTask = (currentTaskMatch[1] ?? '').trim();\n }\n\n // Extract suggested-response if present\n const suggestedMatch = raw.match(/<suggested-response>\\s*([\\s\\S]*?)\\s*<\\/suggested-response>/);\n if (suggestedMatch) {\n result.suggestedResponse = (suggestedMatch[1] ?? '').trim();\n }\n\n // Extract observations content\n const observationsMatch = raw.match(/<observations>\\s*([\\s\\S]*?)\\s*<\\/observations>/);\n const observationsContent = observationsMatch?.[1] ?? raw;\n\n // Split by thread headers if present\n const threadSections = observationsContent.split(/(?=Thread [a-f0-9]+:)/i);\n\n for (const section of threadSections) {\n const trimmedSection = section.trim();\n if (!trimmedSection) continue;\n\n // Check for thread header\n const threadMatch = trimmedSection.match(/^Thread ([a-f0-9]+):/i);\n const threadId = threadMatch?.[1] ?? 'default';\n const content = threadMatch ? trimmedSection.replace(/^Thread [a-f0-9]+:\\s*/i, '') : trimmedSection;\n\n const thread: ParsedThread = {\n threadId,\n dateBlocks: [],\n };\n\n // Split by date headers\n const lines = content.split('\\n');\n let currentDateBlock: ParsedDateBlock | null = null;\n let lastObservation: ParsedObservation | null = null;\n\n for (const line of lines) {\n const trimmedLine = line.trim();\n\n // Check for date header: \"Date: Dec 4, 2025\" or \"Date: Dec 4, 2025 (3 days ago)\"\n const dateMatch = trimmedLine.match(/^Date:\\s*(.+?)(?:\\s*\\(([^)]+)\\))?$/);\n if (dateMatch) {\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n currentDateBlock = {\n date: (dateMatch[1] ?? '').trim(),\n relativeTime: dateMatch[2]?.trim(),\n observations: [],\n };\n lastObservation = null;\n continue;\n }\n\n // Check indentation for nested observations\n const indentMatch = line.match(/^(\\s*)/);\n const indent = indentMatch?.[1]?.length ?? 0;\n const isNested =\n indent >= 2 && (trimmedLine.startsWith('* ->') || trimmedLine.startsWith('->') || trimmedLine.startsWith('-'));\n\n const observation = parseObservationLine(trimmedLine, isNested);\n\n if (observation) {\n if (!currentDateBlock) {\n // Create a default date block if none exists\n currentDateBlock = {\n date: 'Recent',\n observations: [],\n };\n }\n\n if (observation.isNested && lastObservation) {\n // Add as child of last observation\n lastObservation.children.push(observation);\n } else {\n currentDateBlock.observations.push(observation);\n lastObservation = observation;\n }\n }\n }\n\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n\n if (thread.dateBlocks.length > 0) {\n result.threads.push(thread);\n }\n }\n\n return result;\n}\n\n/**\n * Render a single observation\n */\nfunction ObservationItem({\n observation,\n useInheritedTextColor,\n}: {\n observation: ParsedObservation;\n useInheritedTextColor?: boolean;\n}) {\n // When useInheritedTextColor is true, don't apply priority colors - inherit from parent\n const priorityColor = useInheritedTextColor\n ? ''\n : observation.priority\n ? PRIORITY_COLORS[observation.priority]\n : 'text-muted-foreground';\n const bgColor = useInheritedTextColor ? '' : observation.priority ? PRIORITY_BG[observation.priority] : '';\n\n // Get a subtle left border color based on priority (using blue shades for visual hierarchy)\n const borderColor = observation.priority ? PRIORITY_BORDER[observation.priority] : 'border-l-transparent';\n\n return (\n <div className={cn('py-0.5', observation.isNested && 'border-border/50 ml-4 border-l pl-2')}>\n <div\n className={cn(\n 'flex items-start gap-1.5 text-caption',\n bgColor && 'rounded px-1.5 py-0.5',\n bgColor,\n !observation.isNested && observation.priority && `border-l-2 ${borderColor} pl-1.5`,\n )}\n >\n {observation.isNested && (\n <span className={cn('shrink-0', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>→</span>\n )}\n <span className=\"[&_code]:text-meta flex-1 [&_code]:rounded [&_code]:bg-black/10 [&_code]:px-1 [&_code]:py-0.5\">\n <MarkdownRenderer className={priorityColor}>{observation.content}</MarkdownRenderer>\n </span>\n {observation.time && (\n <span\n className={cn(\n 'ml-2 shrink-0 font-mono text-meta',\n useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground',\n )}\n >\n {observation.time}\n </span>\n )}\n </div>\n {observation.children.length > 0 && (\n <div className=\"mt-0.5\">\n {observation.children.map((child, i) => (\n <ObservationItem key={i} observation={child} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Render a date block\n */\nfunction DateBlock({ block, useInheritedTextColor }: { block: ParsedDateBlock; useInheritedTextColor?: boolean }) {\n return (\n <div className=\"mb-2\">\n <div\n className={cn(\n 'sticky top-0 mb-1 flex items-center gap-2 py-1 backdrop-blur-sm',\n useInheritedTextColor ? 'bg-transparent' : 'bg-background/95',\n )}\n >\n <span className={cn('text-column', useInheritedTextColor ? 'opacity-80' : 'text-foreground')}>\n {block.date}\n </span>\n {block.relativeTime && (\n <span className={cn('text-meta', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>\n ({block.relativeTime})\n </span>\n )}\n </div>\n <div className=\"space-y-0\">\n {block.observations.map((obs, i) => (\n <ObservationItem key={i} observation={obs} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n </div>\n );\n}\n\n/**\n * Render a thread section\n */\nfunction ThreadSection({\n thread,\n showThreadId,\n useInheritedTextColor,\n}: {\n thread: ParsedThread;\n showThreadId: boolean;\n useInheritedTextColor?: boolean;\n}) {\n return (\n <div className=\"mb-3\">\n {showThreadId && thread.threadId !== 'default' && (\n <div\n className={cn(\n 'mb-1 inline-block rounded px-1 py-0.5 font-mono text-meta',\n useInheritedTextColor ? 'bg-current/10 opacity-60' : 'text-muted-foreground bg-muted/50',\n )}\n >\n Thread {thread.threadId}\n </div>\n )}\n {thread.dateBlocks.map((block, i) => (\n <DateBlock key={i} block={block} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n );\n}\n\nexport interface ObservationRendererProps {\n observations: string;\n className?: string;\n maxHeight?: string;\n showCurrentTask?: boolean;\n showSuggestedResponse?: boolean;\n /** If true, observations inherit text color from parent instead of using priority colors */\n useInheritedTextColor?: boolean;\n}\n\n/**\n * Renders raw observation text with proper formatting\n */\nexport function ObservationRenderer({\n observations,\n className,\n maxHeight,\n showCurrentTask = false,\n showSuggestedResponse = false,\n useInheritedTextColor = false,\n}: ObservationRendererProps) {\n const parsed = useMemo(() => parseObservations(observations), [observations]);\n\n const hasMultipleThreads =\n parsed.threads.length > 1 || (parsed.threads.length === 1 && parsed.threads[0]?.threadId !== 'default');\n\n if (parsed.threads.length === 0 && !parsed.currentTask && !parsed.suggestedResponse) {\n return <div className={cn('text-muted-foreground text-caption italic', className)}>No observations</div>;\n }\n\n return (\n <div className={cn('overflow-hidden text-body', className)}>\n <div\n className={cn('wrap-break-word', maxHeight && 'overflow-y-auto pr-1')}\n style={maxHeight ? { maxHeight } : undefined}\n >\n {parsed.threads.map((thread, i) => (\n <ThreadSection\n key={thread.threadId + i}\n thread={thread}\n showThreadId={hasMultipleThreads}\n useInheritedTextColor={useInheritedTextColor}\n />\n ))}\n </div>\n\n {showCurrentTask && parsed.currentTask && (\n <div className=\"border-border mt-2 border-t pt-2\">\n <div className=\"text-muted-foreground text-meta mb-1 tracking-wide uppercase\">Current Task</div>\n <div className=\"text-foreground text-caption whitespace-pre-wrap\">{parsed.currentTask}</div>\n </div>\n )}\n\n {showSuggestedResponse && parsed.suggestedResponse && (\n <div className=\"border-border mt-2 border-t pt-2\">\n <div className=\"text-muted-foreground text-meta mb-1 tracking-wide uppercase\">Suggested Response</div>\n <div className=\"text-foreground/80 text-caption whitespace-pre-wrap italic\">{parsed.suggestedResponse}</div>\n </div>\n )}\n </div>\n );\n}\n\nexport default ObservationRenderer;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"observation-renderer.es.js","sources":["../../../../../src/domains/chat/tools/badges/observation-renderer.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { cn } from '@/utils/cn';\n\n// Priority emoji to color mapping\n// P1 (🔴) = highest priority = purple theme\n// P2 (🟡) = medium priority = blue theme\n// P3 (🟢) = lower priority = green theme\nconst PRIORITY_COLORS = {\n '🔴': 'text-foreground',\n '🟡': 'text-foreground',\n '🟢': 'text-foreground',\n} as const;\n\n// Dark backgrounds for all priorities\nconst PRIORITY_BG = {\n '🔴': 'bg-purple-500/15',\n '🟡': 'bg-blue-500/15',\n '🟢': 'bg-green-500/15',\n} as const;\n\n// Full color left border accent\nconst PRIORITY_BORDER = {\n '🔴': 'border-l-purple-500',\n '🟡': 'border-l-blue-500',\n '🟢': 'border-l-green-500',\n} as const;\n\ntype Priority = keyof typeof PRIORITY_COLORS;\n\ninterface ParsedObservation {\n priority: Priority | null;\n time: string | null;\n content: string;\n children: ParsedObservation[];\n isNested: boolean;\n}\n\ninterface ParsedDateBlock {\n date: string;\n relativeTime?: string; // e.g., \"(3 days ago)\"\n observations: ParsedObservation[];\n}\n\ninterface ParsedThread {\n threadId: string;\n dateBlocks: ParsedDateBlock[];\n}\n\ninterface ParsedObservations {\n threads: ParsedThread[];\n currentTask?: string;\n suggestedResponse?: string;\n}\n\n/**\n * Parse a single observation line\n */\nfunction parseObservationLine(line: string, isNested: boolean = false): ParsedObservation | null {\n // Match: * 🔴 (14:30) Content or * -> nested content\n const trimmed = line.trim();\n\n if (!trimmed) return null;\n\n // Check for nested arrow format: * -> content\n if (trimmed.startsWith('* ->') || trimmed.startsWith('->')) {\n const content = trimmed.replace(/^\\*?\\s*->\\s*/, '');\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for indented dash list item: - content (used as sub-items)\n if (isNested && trimmed.startsWith('-')) {\n const content = trimmed.replace(/^-\\s*/, '');\n if (!content) return null;\n return {\n priority: null,\n time: null,\n content,\n children: [],\n isNested: true,\n };\n }\n\n // Check for standard format: * 🔴 (14:30) Content\n const match = trimmed.match(/^\\*\\s*(🔴|🟡|🟢)?\\s*(?:\\((\\d{1,2}:\\d{2})\\))?\\s*(.+)$/);\n\n if (match) {\n const [, priority, time, content] = match;\n return {\n priority: (priority as Priority) || null,\n time: time || null,\n content: (content ?? '').trim(),\n children: [],\n isNested,\n };\n }\n\n // Fallback for lines that don't match the pattern\n if (trimmed.startsWith('*')) {\n return {\n priority: null,\n time: null,\n content: trimmed.replace(/^\\*\\s*/, ''),\n children: [],\n isNested,\n };\n }\n\n return null;\n}\n\n/**\n * Parse the raw observations string into structured data\n */\nfunction parseObservations(raw: string): ParsedObservations {\n const result: ParsedObservations = {\n threads: [],\n };\n\n // Extract current-task if present\n const currentTaskMatch = raw.match(/<current-task>\\s*([\\s\\S]*?)\\s*<\\/current-task>/);\n if (currentTaskMatch) {\n result.currentTask = (currentTaskMatch[1] ?? '').trim();\n }\n\n // Extract suggested-response if present\n const suggestedMatch = raw.match(/<suggested-response>\\s*([\\s\\S]*?)\\s*<\\/suggested-response>/);\n if (suggestedMatch) {\n result.suggestedResponse = (suggestedMatch[1] ?? '').trim();\n }\n\n // Extract observations content\n const observationsMatch = raw.match(/<observations>\\s*([\\s\\S]*?)\\s*<\\/observations>/);\n const observationsContent = observationsMatch?.[1] ?? raw;\n\n // Split by thread headers if present\n const threadSections = observationsContent.split(/(?=Thread [a-f0-9]+:)/i);\n\n for (const section of threadSections) {\n const trimmedSection = section.trim();\n if (!trimmedSection) continue;\n\n // Check for thread header\n const threadMatch = trimmedSection.match(/^Thread ([a-f0-9]+):/i);\n const threadId = threadMatch?.[1] ?? 'default';\n const content = threadMatch ? trimmedSection.replace(/^Thread [a-f0-9]+:\\s*/i, '') : trimmedSection;\n\n const thread: ParsedThread = {\n threadId,\n dateBlocks: [],\n };\n\n // Split by date headers\n const lines = content.split('\\n');\n let currentDateBlock: ParsedDateBlock | null = null;\n let lastObservation: ParsedObservation | null = null;\n\n for (const line of lines) {\n const trimmedLine = line.trim();\n\n // Check for date header: \"Date: Dec 4, 2025\" or \"Date: Dec 4, 2025 (3 days ago)\"\n const dateMatch = trimmedLine.match(/^Date:\\s*(.+?)(?:\\s*\\(([^)]+)\\))?$/);\n if (dateMatch) {\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n currentDateBlock = {\n date: (dateMatch[1] ?? '').trim(),\n relativeTime: dateMatch[2]?.trim(),\n observations: [],\n };\n lastObservation = null;\n continue;\n }\n\n // Check indentation for nested observations\n const indentMatch = line.match(/^(\\s*)/);\n const indent = indentMatch?.[1]?.length ?? 0;\n const isNested =\n indent >= 2 && (trimmedLine.startsWith('* ->') || trimmedLine.startsWith('->') || trimmedLine.startsWith('-'));\n\n const observation = parseObservationLine(trimmedLine, isNested);\n\n if (observation) {\n if (!currentDateBlock) {\n // Create a default date block if none exists\n currentDateBlock = {\n date: 'Recent',\n observations: [],\n };\n }\n\n if (observation.isNested && lastObservation) {\n // Add as child of last observation\n lastObservation.children.push(observation);\n } else {\n currentDateBlock.observations.push(observation);\n lastObservation = observation;\n }\n }\n }\n\n if (currentDateBlock) {\n thread.dateBlocks.push(currentDateBlock);\n }\n\n if (thread.dateBlocks.length > 0) {\n result.threads.push(thread);\n }\n }\n\n return result;\n}\n\n/**\n * Render a single observation\n */\nfunction ObservationItem({\n observation,\n useInheritedTextColor,\n}: {\n observation: ParsedObservation;\n useInheritedTextColor?: boolean;\n}) {\n // When useInheritedTextColor is true, don't apply priority colors - inherit from parent\n const priorityColor = useInheritedTextColor\n ? ''\n : observation.priority\n ? PRIORITY_COLORS[observation.priority]\n : 'text-muted-foreground';\n const bgColor = useInheritedTextColor ? '' : observation.priority ? PRIORITY_BG[observation.priority] : '';\n\n // Get a subtle left border color based on priority (using blue shades for visual hierarchy)\n const borderColor = observation.priority ? PRIORITY_BORDER[observation.priority] : 'border-l-transparent';\n\n return (\n <div className={cn('py-0.5', observation.isNested && 'ml-4 border-l border-border/50 pl-2')}>\n <div\n className={cn(\n 'flex items-start gap-1.5 text-caption',\n bgColor && 'rounded px-1.5 py-0.5',\n bgColor,\n !observation.isNested && observation.priority && `border-l-2 ${borderColor} pl-1.5`,\n )}\n >\n {observation.isNested && (\n <span className={cn('shrink-0', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>→</span>\n )}\n <span className=\"flex-1 [&_code]:rounded [&_code]:bg-black/10 [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-meta\">\n <MarkdownRenderer className={priorityColor}>{observation.content}</MarkdownRenderer>\n </span>\n {observation.time && (\n <span\n className={cn(\n 'ml-2 shrink-0 font-mono text-meta',\n useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground',\n )}\n >\n {observation.time}\n </span>\n )}\n </div>\n {observation.children.length > 0 && (\n <div className=\"mt-0.5\">\n {observation.children.map((child, i) => (\n <ObservationItem key={i} observation={child} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Render a date block\n */\nfunction DateBlock({ block, useInheritedTextColor }: { block: ParsedDateBlock; useInheritedTextColor?: boolean }) {\n return (\n <div className=\"mb-2\">\n <div\n className={cn(\n 'sticky top-0 mb-1 flex items-center gap-2 py-1 backdrop-blur-sm',\n useInheritedTextColor ? 'bg-transparent' : 'bg-background/95',\n )}\n >\n <span className={cn('text-column', useInheritedTextColor ? 'opacity-80' : 'text-foreground')}>\n {block.date}\n </span>\n {block.relativeTime && (\n <span className={cn('text-meta', useInheritedTextColor ? 'opacity-60' : 'text-muted-foreground')}>\n ({block.relativeTime})\n </span>\n )}\n </div>\n <div className=\"space-y-0\">\n {block.observations.map((obs, i) => (\n <ObservationItem key={i} observation={obs} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n </div>\n );\n}\n\n/**\n * Render a thread section\n */\nfunction ThreadSection({\n thread,\n showThreadId,\n useInheritedTextColor,\n}: {\n thread: ParsedThread;\n showThreadId: boolean;\n useInheritedTextColor?: boolean;\n}) {\n return (\n <div className=\"mb-3\">\n {showThreadId && thread.threadId !== 'default' && (\n <div\n className={cn(\n 'mb-1 inline-block rounded px-1 py-0.5 font-mono text-meta',\n useInheritedTextColor ? 'bg-current/10 opacity-60' : 'bg-muted/50 text-muted-foreground',\n )}\n >\n Thread {thread.threadId}\n </div>\n )}\n {thread.dateBlocks.map((block, i) => (\n <DateBlock key={i} block={block} useInheritedTextColor={useInheritedTextColor} />\n ))}\n </div>\n );\n}\n\nexport interface ObservationRendererProps {\n observations: string;\n className?: string;\n maxHeight?: string;\n showCurrentTask?: boolean;\n showSuggestedResponse?: boolean;\n /** If true, observations inherit text color from parent instead of using priority colors */\n useInheritedTextColor?: boolean;\n}\n\n/**\n * Renders raw observation text with proper formatting\n */\nexport function ObservationRenderer({\n observations,\n className,\n maxHeight,\n showCurrentTask = false,\n showSuggestedResponse = false,\n useInheritedTextColor = false,\n}: ObservationRendererProps) {\n const parsed = useMemo(() => parseObservations(observations), [observations]);\n\n const hasMultipleThreads =\n parsed.threads.length > 1 || (parsed.threads.length === 1 && parsed.threads[0]?.threadId !== 'default');\n\n if (parsed.threads.length === 0 && !parsed.currentTask && !parsed.suggestedResponse) {\n return <div className={cn('text-caption text-muted-foreground italic', className)}>No observations</div>;\n }\n\n return (\n <div className={cn('overflow-hidden text-body', className)}>\n <div\n className={cn('wrap-break-word', maxHeight && 'overflow-y-auto pr-1')}\n style={maxHeight ? { maxHeight } : undefined}\n >\n {parsed.threads.map((thread, i) => (\n <ThreadSection\n key={thread.threadId + i}\n thread={thread}\n showThreadId={hasMultipleThreads}\n useInheritedTextColor={useInheritedTextColor}\n />\n ))}\n </div>\n\n {showCurrentTask && parsed.currentTask && (\n <div className=\"mt-2 border-t border-border pt-2\">\n <div className=\"mb-1 text-meta tracking-wide text-muted-foreground uppercase\">Current Task</div>\n <div className=\"text-caption whitespace-pre-wrap text-foreground\">{parsed.currentTask}</div>\n </div>\n )}\n\n {showSuggestedResponse && parsed.suggestedResponse && (\n <div className=\"mt-2 border-t border-border pt-2\">\n <div className=\"mb-1 text-meta tracking-wide text-muted-foreground uppercase\">Suggested Response</div>\n <div className=\"text-caption whitespace-pre-wrap text-foreground/80 italic\">{parsed.suggestedResponse}</div>\n </div>\n )}\n </div>\n );\n}\n\nexport default ObservationRenderer;\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const domains_chat_components_sectionLabel = require('../../components/section-label.cjs.js');
|
|
7
7
|
const domains_chat_context_toolCallContext = require('../../context/tool-call-context.cjs.js');
|
|
8
|
-
const toolApproval = require('../../../../tool-approval-
|
|
8
|
+
const toolApproval = require('../../../../tool-approval-DODxfqk7.cjs');
|
|
9
9
|
|
|
10
10
|
const ToolApprovalButtons = ({
|
|
11
11
|
toolCalled,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { SectionLabel } from '../../components/section-label.es.js';
|
|
3
3
|
import { useToolCall } from '../../context/tool-call-context.es.js';
|
|
4
|
-
import { a as ToolApprovalActions } from '../../../../tool-approval-
|
|
4
|
+
import { a as ToolApprovalActions } from '../../../../tool-approval-C11ECt4s.js';
|
|
5
5
|
|
|
6
6
|
const ToolApprovalButtons = ({
|
|
7
7
|
toolCalled,
|
|
@@ -6,9 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const dateFns = require('date-fns');
|
|
7
7
|
const lucideReact = require('lucide-react');
|
|
8
8
|
const React = require('react');
|
|
9
|
-
const Button = require('../../../Button-
|
|
10
|
-
const buttonsGroup = require('../../../buttons-group-
|
|
11
|
-
const copyButton = require('../../../copy-button-
|
|
9
|
+
const Button = require('../../../Button-C0DBEBcJ.cjs');
|
|
10
|
+
const buttonsGroup = require('../../../buttons-group-CoZP3lJt.cjs');
|
|
11
|
+
const copyButton = require('../../../copy-button-C5dMlWsW.cjs');
|
|
12
12
|
const components_DataDetailsPanel = require('../../../components/DataDetailsPanel.cjs.js');
|
|
13
13
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
14
14
|
|
|
@@ -49,53 +49,51 @@ function LogDetailsView({
|
|
|
49
49
|
}
|
|
50
50
|
),
|
|
51
51
|
/* @__PURE__ */ jsxRuntime.jsxs(buttonsGroup.ButtonsGroup, { children: [
|
|
52
|
-
/* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
|
|
53
|
-
/* @__PURE__ */ jsxRuntime.jsx(Button.Button, {
|
|
52
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button.Button, { tooltip: "Previous log", onClick: onPrevious, disabled: !onPrevious, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUpIcon, {}) }),
|
|
53
|
+
/* @__PURE__ */ jsxRuntime.jsx(Button.Button, { tooltip: "Next log", onClick: onNext, disabled: !onNext, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowDownIcon, {}) })
|
|
54
54
|
] }),
|
|
55
55
|
/* @__PURE__ */ jsxRuntime.jsx(components_DataDetailsPanel.DataDetailsPanel.CloseButton, { onClick: onClose })
|
|
56
56
|
] })
|
|
57
57
|
] }),
|
|
58
58
|
!collapsed && /* @__PURE__ */ jsxRuntime.jsxs(components_DataDetailsPanel.DataDetailsPanel.Content, { children: [
|
|
59
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
59
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-body wrap-break-word whitespace-pre-wrap text-muted-foreground", children: log.message }),
|
|
60
60
|
(traceId || spanId) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("my-8 grid gap-2", "[&>button]:justify-between [&>button]:overflow-hidden"), children: [
|
|
61
61
|
traceId && /* @__PURE__ */ jsxRuntime.jsxs(buttonsGroup.ButtonsGroup, { className: "w-full min-w-0", children: [
|
|
62
62
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
63
63
|
Button.Button,
|
|
64
64
|
{
|
|
65
|
-
size: "md",
|
|
66
65
|
className: "min-w-0 flex-1 overflow-hidden",
|
|
67
66
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {}),
|
|
68
67
|
onClick: () => onTraceClick?.(traceId),
|
|
69
68
|
children: [
|
|
70
69
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Trace" }),
|
|
71
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "
|
|
70
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto min-w-0 truncate text-caption text-placeholder", children: [
|
|
72
71
|
"# ",
|
|
73
72
|
traceId
|
|
74
73
|
] })
|
|
75
74
|
]
|
|
76
75
|
}
|
|
77
76
|
),
|
|
78
|
-
/* @__PURE__ */ jsxRuntime.jsx(copyButton.CopyButton, { content: traceId,
|
|
77
|
+
/* @__PURE__ */ jsxRuntime.jsx(copyButton.CopyButton, { content: traceId, tooltip: "Copy Trace ID to clipboard" })
|
|
79
78
|
] }),
|
|
80
79
|
spanId && /* @__PURE__ */ jsxRuntime.jsxs(buttonsGroup.ButtonsGroup, { className: "w-full min-w-0", children: [
|
|
81
80
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
82
81
|
Button.Button,
|
|
83
82
|
{
|
|
84
|
-
size: "md",
|
|
85
83
|
className: "min-w-0 flex-1 overflow-hidden",
|
|
86
84
|
disabled: !traceId || !onSpanClick,
|
|
87
85
|
onClick: () => traceId && onSpanClick?.(traceId, spanId),
|
|
88
86
|
icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {}),
|
|
89
87
|
children: [
|
|
90
88
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Span" }),
|
|
91
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "
|
|
89
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto min-w-0 truncate text-caption text-placeholder", children: [
|
|
92
90
|
"# ",
|
|
93
91
|
spanId
|
|
94
92
|
] })
|
|
95
93
|
]
|
|
96
94
|
}
|
|
97
95
|
),
|
|
98
|
-
/* @__PURE__ */ jsxRuntime.jsx(copyButton.CopyButton, { content: spanId,
|
|
96
|
+
/* @__PURE__ */ jsxRuntime.jsx(copyButton.CopyButton, { content: spanId, tooltip: "Copy Span ID to clipboard" })
|
|
99
97
|
] })
|
|
100
98
|
] }),
|
|
101
99
|
/* @__PURE__ */ jsxRuntime.jsxs(KV, { className: "mb-6", children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-details-view.cjs.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <div className=\"ml-auto flex shrink-0 items-center gap-2\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup>\n <Button size=\"md\" tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </div>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"text-body text-muted-foreground font-mono wrap-break-word whitespace-pre-wrap\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n icon={<ArrowRightIcon />}\n onClick={() => onTraceClick?.(traceId)}\n >\n <span>Trace</span>\n <span className=\"text-caption text-placeholder ml-auto min-w-0 truncate\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} size=\"md\" tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n icon={<ArrowRightIcon />}\n >\n <span>Span</span>\n <span className=\"text-caption text-placeholder ml-auto min-w-0 truncate\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} size=\"md\" tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["DataDetailsPanel","useState","jsxs","jsx","format","Button","ChevronsUpDownIcon","ChevronsDownUpIcon","ButtonsGroup","ArrowUpIcon","ArrowDownIcon","cn","ArrowRightIcon","CopyButton","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log-details-view.cjs.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <div className=\"ml-auto flex shrink-0 items-center gap-2\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup>\n <Button tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </div>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"font-mono text-body wrap-break-word whitespace-pre-wrap text-muted-foreground\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 overflow-hidden\"\n icon={<ArrowRightIcon />}\n onClick={() => onTraceClick?.(traceId)}\n >\n <span>Trace</span>\n <span className=\"ml-auto min-w-0 truncate text-caption text-placeholder\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n icon={<ArrowRightIcon />}\n >\n <span>Span</span>\n <span className=\"ml-auto min-w-0 truncate text-caption text-placeholder\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["DataDetailsPanel","useState","jsxs","jsx","format","Button","ChevronsUpDownIcon","ChevronsDownUpIcon","ButtonsGroup","ArrowUpIcon","ArrowDownIcon","cn","ArrowRightIcon","CopyButton","Fragment"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { format } from 'date-fns';
|
|
3
3
|
import { ChevronsUpDownIcon, ChevronsDownUpIcon, ArrowUpIcon, ArrowDownIcon, ArrowRightIcon } from 'lucide-react';
|
|
4
4
|
import { useState, Fragment as Fragment$1 } from 'react';
|
|
5
|
-
import { B as Button } from '../../../Button-
|
|
6
|
-
import { B as ButtonsGroup } from '../../../buttons-group-
|
|
7
|
-
import { C as CopyButton } from '../../../copy-button-
|
|
5
|
+
import { B as Button } from '../../../Button-C9cvaVFG.js';
|
|
6
|
+
import { B as ButtonsGroup } from '../../../buttons-group-DsZgrZBZ.js';
|
|
7
|
+
import { C as CopyButton } from '../../../copy-button-C6RswD_D.js';
|
|
8
8
|
import { DataDetailsPanel } from '../../../components/DataDetailsPanel.es.js';
|
|
9
9
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
10
10
|
|
|
@@ -45,53 +45,51 @@ function LogDetailsView({
|
|
|
45
45
|
}
|
|
46
46
|
),
|
|
47
47
|
/* @__PURE__ */ jsxs(ButtonsGroup, { children: [
|
|
48
|
-
/* @__PURE__ */ jsx(Button, {
|
|
49
|
-
/* @__PURE__ */ jsx(Button, {
|
|
48
|
+
/* @__PURE__ */ jsx(Button, { tooltip: "Previous log", onClick: onPrevious, disabled: !onPrevious, children: /* @__PURE__ */ jsx(ArrowUpIcon, {}) }),
|
|
49
|
+
/* @__PURE__ */ jsx(Button, { tooltip: "Next log", onClick: onNext, disabled: !onNext, children: /* @__PURE__ */ jsx(ArrowDownIcon, {}) })
|
|
50
50
|
] }),
|
|
51
51
|
/* @__PURE__ */ jsx(DataDetailsPanel.CloseButton, { onClick: onClose })
|
|
52
52
|
] })
|
|
53
53
|
] }),
|
|
54
54
|
!collapsed && /* @__PURE__ */ jsxs(DataDetailsPanel.Content, { children: [
|
|
55
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
55
|
+
/* @__PURE__ */ jsx("p", { className: "font-mono text-body wrap-break-word whitespace-pre-wrap text-muted-foreground", children: log.message }),
|
|
56
56
|
(traceId || spanId) && /* @__PURE__ */ jsxs("div", { className: cn("my-8 grid gap-2", "[&>button]:justify-between [&>button]:overflow-hidden"), children: [
|
|
57
57
|
traceId && /* @__PURE__ */ jsxs(ButtonsGroup, { className: "w-full min-w-0", children: [
|
|
58
58
|
/* @__PURE__ */ jsxs(
|
|
59
59
|
Button,
|
|
60
60
|
{
|
|
61
|
-
size: "md",
|
|
62
61
|
className: "min-w-0 flex-1 overflow-hidden",
|
|
63
62
|
icon: /* @__PURE__ */ jsx(ArrowRightIcon, {}),
|
|
64
63
|
onClick: () => onTraceClick?.(traceId),
|
|
65
64
|
children: [
|
|
66
65
|
/* @__PURE__ */ jsx("span", { children: "Trace" }),
|
|
67
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
66
|
+
/* @__PURE__ */ jsxs("span", { className: "ml-auto min-w-0 truncate text-caption text-placeholder", children: [
|
|
68
67
|
"# ",
|
|
69
68
|
traceId
|
|
70
69
|
] })
|
|
71
70
|
]
|
|
72
71
|
}
|
|
73
72
|
),
|
|
74
|
-
/* @__PURE__ */ jsx(CopyButton, { content: traceId,
|
|
73
|
+
/* @__PURE__ */ jsx(CopyButton, { content: traceId, tooltip: "Copy Trace ID to clipboard" })
|
|
75
74
|
] }),
|
|
76
75
|
spanId && /* @__PURE__ */ jsxs(ButtonsGroup, { className: "w-full min-w-0", children: [
|
|
77
76
|
/* @__PURE__ */ jsxs(
|
|
78
77
|
Button,
|
|
79
78
|
{
|
|
80
|
-
size: "md",
|
|
81
79
|
className: "min-w-0 flex-1 overflow-hidden",
|
|
82
80
|
disabled: !traceId || !onSpanClick,
|
|
83
81
|
onClick: () => traceId && onSpanClick?.(traceId, spanId),
|
|
84
82
|
icon: /* @__PURE__ */ jsx(ArrowRightIcon, {}),
|
|
85
83
|
children: [
|
|
86
84
|
/* @__PURE__ */ jsx("span", { children: "Span" }),
|
|
87
|
-
/* @__PURE__ */ jsxs("span", { className: "
|
|
85
|
+
/* @__PURE__ */ jsxs("span", { className: "ml-auto min-w-0 truncate text-caption text-placeholder", children: [
|
|
88
86
|
"# ",
|
|
89
87
|
spanId
|
|
90
88
|
] })
|
|
91
89
|
]
|
|
92
90
|
}
|
|
93
91
|
),
|
|
94
|
-
/* @__PURE__ */ jsx(CopyButton, { content: spanId,
|
|
92
|
+
/* @__PURE__ */ jsx(CopyButton, { content: spanId, tooltip: "Copy Span ID to clipboard" })
|
|
95
93
|
] })
|
|
96
94
|
] }),
|
|
97
95
|
/* @__PURE__ */ jsxs(KV, { className: "mb-6", children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-details-view.es.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <div className=\"ml-auto flex shrink-0 items-center gap-2\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup>\n <Button size=\"md\" tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </div>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"text-body text-muted-foreground font-mono wrap-break-word whitespace-pre-wrap\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n icon={<ArrowRightIcon />}\n onClick={() => onTraceClick?.(traceId)}\n >\n <span>Trace</span>\n <span className=\"text-caption text-placeholder ml-auto min-w-0 truncate\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} size=\"md\" tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n icon={<ArrowRightIcon />}\n >\n <span>Span</span>\n <span className=\"text-caption text-placeholder ml-auto min-w-0 truncate\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} size=\"md\" tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log-details-view.es.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <div className=\"ml-auto flex shrink-0 items-center gap-2\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup>\n <Button tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </div>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"font-mono text-body wrap-break-word whitespace-pre-wrap text-muted-foreground\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 overflow-hidden\"\n icon={<ArrowRightIcon />}\n onClick={() => onTraceClick?.(traceId)}\n >\n <span>Trace</span>\n <span className=\"ml-auto min-w-0 truncate text-caption text-placeholder\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup className=\"w-full min-w-0\">\n <Button\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n icon={<ArrowRightIcon />}\n >\n <span>Span</span>\n <span className=\"ml-auto min-w-0 truncate text-caption text-placeholder\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["Fragment"],"mappings":"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"}
|