@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
|
@@ -5,13 +5,12 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
|
-
const Button = require('../../../Button-
|
|
9
|
-
const dialog = require('../../../dialog-
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const spinner = require('../../../spinner-CqP-NaB2.cjs');
|
|
8
|
+
const Button = require('../../../Button-C0DBEBcJ.cjs');
|
|
9
|
+
const dialog = require('../../../dialog-Cyj59QsZ.cjs');
|
|
10
|
+
const fieldErrorId = require('../../../field-error-id-6EfqmQ4C.cjs');
|
|
11
|
+
const textFieldBlock = require('../../../text-field-block-BmWGMw3a.cjs');
|
|
12
|
+
const Notice = require('../../../Notice-CoFjo8O6.cjs');
|
|
13
|
+
const spinner = require('../../../spinner-BCpN7LL9.cjs');
|
|
15
14
|
const textarea = require('../../../textarea-5b6XcMrq.cjs');
|
|
16
15
|
|
|
17
16
|
const reservedNames = /* @__PURE__ */ new Set([
|
|
@@ -116,9 +115,9 @@ function SignalDefinitionFormDialog({
|
|
|
116
115
|
onChange: (event) => setField("displayLabel", event.target.value)
|
|
117
116
|
}
|
|
118
117
|
),
|
|
119
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
120
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
121
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
+
/* @__PURE__ */ jsxRuntime.jsxs(fieldErrorId.FieldBlock.Layout, { children: [
|
|
119
|
+
/* @__PURE__ */ jsxRuntime.jsxs(fieldErrorId.FieldBlock.Column, { children: [
|
|
120
|
+
/* @__PURE__ */ jsxRuntime.jsx(fieldErrorId.FieldBlock.Label, { name: "description", children: "Description" }),
|
|
122
121
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
123
122
|
textarea.Textarea,
|
|
124
123
|
{
|
|
@@ -130,8 +129,8 @@ function SignalDefinitionFormDialog({
|
|
|
130
129
|
}
|
|
131
130
|
)
|
|
132
131
|
] }),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
134
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsxs(fieldErrorId.FieldBlock.Column, { children: [
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsx(fieldErrorId.FieldBlock.Label, { name: "taskPrompt", children: "Signal instructions" }),
|
|
135
134
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
136
135
|
textarea.Textarea,
|
|
137
136
|
{
|
|
@@ -145,12 +144,12 @@ function SignalDefinitionFormDialog({
|
|
|
145
144
|
onChange: (event) => setField("taskPrompt", event.target.value)
|
|
146
145
|
}
|
|
147
146
|
),
|
|
148
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
147
|
+
/* @__PURE__ */ jsxRuntime.jsxs(fieldErrorId.FieldBlock.HelpText, { children: [
|
|
149
148
|
"Tell the model what to evaluate and what the signal result should contain. ",
|
|
150
149
|
value.taskPrompt.length,
|
|
151
150
|
"/2,000 characters"
|
|
152
151
|
] }),
|
|
153
|
-
validationErrors.taskPrompt ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
152
|
+
validationErrors.taskPrompt ? /* @__PURE__ */ jsxRuntime.jsx(fieldErrorId.FieldBlock.ErrorMsg, { name: "taskPrompt", children: validationErrors.taskPrompt }) : null
|
|
154
153
|
] })
|
|
155
154
|
] }),
|
|
156
155
|
editing ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-meta text-muted-foreground", children: "Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged." }) : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-definition-form-dialog.cjs.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { X } from 'lucide-react';\nimport { useId, useState } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { FieldBlock, TextFieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { Notice } from '@/ds/components/Notice';\nimport { Spinner } from '@/ds/components/Spinner';\nimport { Textarea } from '@/ds/components/Textarea';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-xl\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <form\n id={formId}\n className=\"space-y-4\"\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <TextFieldBlock\n id=\"input-name\"\n name=\"name\"\n label=\"Signal name\"\n helpText=\"A stable lowercase slug. It cannot be changed after creation.\"\n placeholder=\"handoff_quality\"\n value={value.name}\n disabled={editing || pending}\n errorMsg={validationErrors.name}\n onChange={event => setField('name', event.target.value)}\n />\n <TextFieldBlock\n id=\"input-displayLabel\"\n name=\"displayLabel\"\n label=\"Display label\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n disabled={pending}\n errorMsg={validationErrors.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"description\">Description</FieldBlock.Label>\n <Textarea\n id=\"input-description\"\n rows={2}\n value={value.description}\n disabled={pending}\n onChange={event => setField('description', event.target.value)}\n />\n </FieldBlock.Column>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"taskPrompt\">Signal instructions</FieldBlock.Label>\n <Textarea\n id=\"input-taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n disabled={pending}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n error={Boolean(validationErrors.taskPrompt)}\n aria-describedby={validationErrors.taskPrompt ? fieldErrorId('taskPrompt') : undefined}\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldBlock.HelpText>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldBlock.HelpText>\n {validationErrors.taskPrompt ? (\n <FieldBlock.ErrorMsg name=\"taskPrompt\">{validationErrors.taskPrompt}</FieldBlock.ErrorMsg>\n ) : null}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n {editing ? (\n <p className=\"text-meta text-muted-foreground\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </p>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </form>\n </DialogBody>\n <DialogFooter>\n <Button icon={<X />} type=\"button\" variant=\"ghost\" disabled={pending} onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form={formId}\n variant=\"primary\"\n disabled={pending}\n icon={pending ? <Spinner /> : undefined}\n >\n {editing ? 'Save signal' : 'Create signal'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["useId","useState","Dialog","jsxs","DialogContent","DialogHeader","jsx","DialogTitle","DialogDescription","DialogBody","TextFieldBlock","FieldBlock","Textarea","fieldErrorId","Notice","DialogFooter","Button","X","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signal-definition-form-dialog.cjs.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { X } from 'lucide-react';\nimport { useId, useState } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { FieldBlock, TextFieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { Notice } from '@/ds/components/Notice';\nimport { Spinner } from '@/ds/components/Spinner';\nimport { Textarea } from '@/ds/components/Textarea';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-xl\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <form\n id={formId}\n className=\"space-y-4\"\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <TextFieldBlock\n id=\"input-name\"\n name=\"name\"\n label=\"Signal name\"\n helpText=\"A stable lowercase slug. It cannot be changed after creation.\"\n placeholder=\"handoff_quality\"\n value={value.name}\n disabled={editing || pending}\n errorMsg={validationErrors.name}\n onChange={event => setField('name', event.target.value)}\n />\n <TextFieldBlock\n id=\"input-displayLabel\"\n name=\"displayLabel\"\n label=\"Display label\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n disabled={pending}\n errorMsg={validationErrors.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"description\">Description</FieldBlock.Label>\n <Textarea\n id=\"input-description\"\n rows={2}\n value={value.description}\n disabled={pending}\n onChange={event => setField('description', event.target.value)}\n />\n </FieldBlock.Column>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"taskPrompt\">Signal instructions</FieldBlock.Label>\n <Textarea\n id=\"input-taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n disabled={pending}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n error={Boolean(validationErrors.taskPrompt)}\n aria-describedby={validationErrors.taskPrompt ? fieldErrorId('taskPrompt') : undefined}\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldBlock.HelpText>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldBlock.HelpText>\n {validationErrors.taskPrompt ? (\n <FieldBlock.ErrorMsg name=\"taskPrompt\">{validationErrors.taskPrompt}</FieldBlock.ErrorMsg>\n ) : null}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n {editing ? (\n <p className=\"text-meta text-muted-foreground\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </p>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </form>\n </DialogBody>\n <DialogFooter>\n <Button icon={<X />} type=\"button\" variant=\"ghost\" disabled={pending} onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form={formId}\n variant=\"primary\"\n disabled={pending}\n icon={pending ? <Spinner /> : undefined}\n >\n {editing ? 'Save signal' : 'Create signal'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["useId","useState","Dialog","jsxs","DialogContent","DialogHeader","jsx","DialogTitle","DialogDescription","DialogBody","TextFieldBlock","FieldBlock","Textarea","fieldErrorId","Notice","DialogFooter","Button","X","Spinner"],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { X } from 'lucide-react';
|
|
3
3
|
import { useId, useState } from 'react';
|
|
4
|
-
import { B as Button } from '../../../Button-
|
|
5
|
-
import { D as Dialog, a as DialogContent, b as DialogHeader, c as DialogTitle, d as DialogDescription, e as DialogBody, g as DialogFooter } from '../../../dialog-
|
|
6
|
-
import { F as FieldBlock } from '../../../field-
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { S as Spinner } from '../../../spinner-D2C2DYw8.js';
|
|
4
|
+
import { B as Button } from '../../../Button-C9cvaVFG.js';
|
|
5
|
+
import { D as Dialog, a as DialogContent, b as DialogHeader, c as DialogTitle, d as DialogDescription, e as DialogBody, g as DialogFooter } from '../../../dialog-D8fuBETk.js';
|
|
6
|
+
import { F as FieldBlock, f as fieldErrorId } from '../../../field-error-id-DyWx33Fu.js';
|
|
7
|
+
import { T as TextFieldBlock } from '../../../text-field-block-Cihf0IRw.js';
|
|
8
|
+
import { N as Notice } from '../../../Notice-DUdQkUqH.js';
|
|
9
|
+
import { S as Spinner } from '../../../spinner-ylbE0TJA.js';
|
|
11
10
|
import { T as Textarea } from '../../../textarea-DdnzLrI9.js';
|
|
12
11
|
|
|
13
12
|
const reservedNames = /* @__PURE__ */ new Set([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-definition-form-dialog.es.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { X } from 'lucide-react';\nimport { useId, useState } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { FieldBlock, TextFieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { Notice } from '@/ds/components/Notice';\nimport { Spinner } from '@/ds/components/Spinner';\nimport { Textarea } from '@/ds/components/Textarea';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-xl\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <form\n id={formId}\n className=\"space-y-4\"\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <TextFieldBlock\n id=\"input-name\"\n name=\"name\"\n label=\"Signal name\"\n helpText=\"A stable lowercase slug. It cannot be changed after creation.\"\n placeholder=\"handoff_quality\"\n value={value.name}\n disabled={editing || pending}\n errorMsg={validationErrors.name}\n onChange={event => setField('name', event.target.value)}\n />\n <TextFieldBlock\n id=\"input-displayLabel\"\n name=\"displayLabel\"\n label=\"Display label\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n disabled={pending}\n errorMsg={validationErrors.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"description\">Description</FieldBlock.Label>\n <Textarea\n id=\"input-description\"\n rows={2}\n value={value.description}\n disabled={pending}\n onChange={event => setField('description', event.target.value)}\n />\n </FieldBlock.Column>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"taskPrompt\">Signal instructions</FieldBlock.Label>\n <Textarea\n id=\"input-taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n disabled={pending}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n error={Boolean(validationErrors.taskPrompt)}\n aria-describedby={validationErrors.taskPrompt ? fieldErrorId('taskPrompt') : undefined}\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldBlock.HelpText>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldBlock.HelpText>\n {validationErrors.taskPrompt ? (\n <FieldBlock.ErrorMsg name=\"taskPrompt\">{validationErrors.taskPrompt}</FieldBlock.ErrorMsg>\n ) : null}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n {editing ? (\n <p className=\"text-meta text-muted-foreground\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </p>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </form>\n </DialogBody>\n <DialogFooter>\n <Button icon={<X />} type=\"button\" variant=\"ghost\" disabled={pending} onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form={formId}\n variant=\"primary\"\n disabled={pending}\n icon={pending ? <Spinner /> : undefined}\n >\n {editing ? 'Save signal' : 'Create signal'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signal-definition-form-dialog.es.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { X } from 'lucide-react';\nimport { useId, useState } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { FieldBlock, TextFieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { Notice } from '@/ds/components/Notice';\nimport { Spinner } from '@/ds/components/Spinner';\nimport { Textarea } from '@/ds/components/Textarea';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-xl\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <form\n id={formId}\n className=\"space-y-4\"\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <TextFieldBlock\n id=\"input-name\"\n name=\"name\"\n label=\"Signal name\"\n helpText=\"A stable lowercase slug. It cannot be changed after creation.\"\n placeholder=\"handoff_quality\"\n value={value.name}\n disabled={editing || pending}\n errorMsg={validationErrors.name}\n onChange={event => setField('name', event.target.value)}\n />\n <TextFieldBlock\n id=\"input-displayLabel\"\n name=\"displayLabel\"\n label=\"Display label\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n disabled={pending}\n errorMsg={validationErrors.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"description\">Description</FieldBlock.Label>\n <Textarea\n id=\"input-description\"\n rows={2}\n value={value.description}\n disabled={pending}\n onChange={event => setField('description', event.target.value)}\n />\n </FieldBlock.Column>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"taskPrompt\">Signal instructions</FieldBlock.Label>\n <Textarea\n id=\"input-taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n disabled={pending}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n error={Boolean(validationErrors.taskPrompt)}\n aria-describedby={validationErrors.taskPrompt ? fieldErrorId('taskPrompt') : undefined}\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldBlock.HelpText>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldBlock.HelpText>\n {validationErrors.taskPrompt ? (\n <FieldBlock.ErrorMsg name=\"taskPrompt\">{validationErrors.taskPrompt}</FieldBlock.ErrorMsg>\n ) : null}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n {editing ? (\n <p className=\"text-meta text-muted-foreground\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </p>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </form>\n </DialogBody>\n <DialogFooter>\n <Button icon={<X />} type=\"button\" variant=\"ghost\" disabled={pending} onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form={formId}\n variant=\"primary\"\n disabled={pending}\n icon={pending ? <Spinner /> : undefined}\n >\n {editing ? 'Save signal' : 'Create signal'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,9 @@ const ee_signals_useTraceIntelligence = require('../use-trace-intelligence.cjs.j
|
|
|
9
9
|
const ee_signals_settings_signalDefinitionFormDialog = require('./signal-definition-form-dialog.cjs.js');
|
|
10
10
|
const ee_signals_settings_useSignalManagement = require('./use-signal-management.cjs.js');
|
|
11
11
|
const Badge = require('../../../Badge-BEeYtjmv.cjs');
|
|
12
|
-
const Button = require('../../../Button-
|
|
12
|
+
const Button = require('../../../Button-C0DBEBcJ.cjs');
|
|
13
13
|
const components_DataDetailsPanel = require('../../../components/DataDetailsPanel.cjs.js');
|
|
14
|
-
const Notice = require('../../../Notice-
|
|
14
|
+
const Notice = require('../../../Notice-CoFjo8O6.cjs');
|
|
15
15
|
const skeleton = require('../../../skeleton-cXUjPrq9.cjs');
|
|
16
16
|
const _switch = require('../../../switch-6125Oajw.cjs');
|
|
17
17
|
|
|
@@ -36,7 +36,7 @@ function TraceSignalSettingsButton({ open, onClick }) {
|
|
|
36
36
|
function TraceSignalSettingsPanel({ onClose }) {
|
|
37
37
|
return /* @__PURE__ */ jsxRuntime.jsx("aside", { id: "trace-signal-settings", "aria-label": "Trace signal settings", className: "min-h-0", children: /* @__PURE__ */ jsxRuntime.jsxs(components_DataDetailsPanel.DataDetailsPanel, { children: [
|
|
38
38
|
/* @__PURE__ */ jsxRuntime.jsxs(components_DataDetailsPanel.DataDetailsPanel.Header, { children: [
|
|
39
|
-
/* @__PURE__ */ jsxRuntime.jsxs(components_DataDetailsPanel.DataDetailsPanel.Heading, { className: "
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsxs(components_DataDetailsPanel.DataDetailsPanel.Heading, { className: "items-center font-medium text-foreground", children: [
|
|
40
40
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Settings, { "aria-hidden": "true" }),
|
|
41
41
|
" Trace signal settings"
|
|
42
42
|
] }),
|
|
@@ -120,16 +120,16 @@ function TraceSignalSettingsContent() {
|
|
|
120
120
|
)
|
|
121
121
|
] }),
|
|
122
122
|
atLimit ? /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice, { variant: "info", children: /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice.Message, { children: "Archive an active definition before creating or restoring another." }) }) : null,
|
|
123
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-
|
|
123
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "divide-y divide-border", children: active.map((definition) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-16 items-center justify-between gap-4 py-2", children: [
|
|
124
124
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
125
125
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
126
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-caption text-muted-foreground
|
|
126
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-caption text-muted-foreground", children: definition.displayLabel }),
|
|
127
127
|
/* @__PURE__ */ jsxRuntime.jsxs(Badge.Badge, { variant: "neutral", size: "sm", children: [
|
|
128
128
|
"v",
|
|
129
129
|
definition.version
|
|
130
130
|
] })
|
|
131
131
|
] }),
|
|
132
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-meta text-muted-foreground
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-meta text-muted-foreground", children: definition.description || definition.name })
|
|
133
133
|
] }),
|
|
134
134
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
135
135
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -165,15 +165,15 @@ function TraceSignalSettingsContent() {
|
|
|
165
165
|
)
|
|
166
166
|
] })
|
|
167
167
|
] }, definition.id)) }),
|
|
168
|
-
active.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-caption text-muted-foreground
|
|
168
|
+
active.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-3 text-caption text-muted-foreground", children: "No custom signals yet." }) : null
|
|
169
169
|
] }),
|
|
170
170
|
archived.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("details", { children: [
|
|
171
|
-
/* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "text-caption text-muted-foreground
|
|
171
|
+
/* @__PURE__ */ jsxRuntime.jsxs("summary", { className: "cursor-pointer text-caption text-muted-foreground", children: [
|
|
172
172
|
"Archived definitions (",
|
|
173
173
|
archived.length,
|
|
174
174
|
")"
|
|
175
175
|
] }),
|
|
176
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
176
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 divide-y divide-border", children: archived.map((definition) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-12 items-center justify-between gap-3 py-2", children: [
|
|
177
177
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-caption text-muted-foreground", children: definition.displayLabel }),
|
|
178
178
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
179
179
|
Button.Button,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-signal-settings.cjs.js","sources":["../../../../src/ee/signals/settings/trace-signal-settings.tsx"],"sourcesContent":["import type { TraceSignalDefinition } from '@mastra/client-js';\nimport { Settings, ArchiveRestore, Archive, Pencil, LayoutGrid } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { SignalDefinitionFormDialog } from './signal-definition-form-dialog';\nimport { useSignalManagementList, useSignalManagementMutations } from './use-signal-management';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Skeleton } from '@/ds/components/Skeleton';\nimport { Switch } from '@/ds/components/Switch';\n\nexport function TraceSignalSettingsButton({ open, onClick }: { open: boolean; onClick: () => void }) {\n const { signalManagement } = useTraceIntelligence();\n if (!signalManagement) return null;\n\n return (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n tooltip=\"Signal settings\"\n aria-label=\"Signal settings\"\n aria-controls=\"trace-signal-settings\"\n aria-expanded={open}\n onClick={onClick}\n >\n <Settings aria-hidden=\"true\" />\n </Button>\n );\n}\n\nexport function TraceSignalSettingsPanel({ onClose }: { onClose: () => void }) {\n return (\n <aside id=\"trace-signal-settings\" aria-label=\"Trace signal settings\" className=\"min-h-0\">\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading className=\"text-foreground items-center font-medium\">\n <Settings aria-hidden=\"true\" /> Trace signal settings\n </DataDetailsPanel.Heading>\n <DataDetailsPanel.CloseButton onClick={onClose} tooltip=\"Close settings\" />\n </DataDetailsPanel.Header>\n <DataDetailsPanel.Content>\n <TraceSignalSettingsContent />\n </DataDetailsPanel.Content>\n </DataDetailsPanel>\n </aside>\n );\n}\n\nfunction TraceSignalSettingsContent() {\n const { signalManagement } = useTraceIntelligence();\n const query = useSignalManagementList();\n const mutations = useSignalManagementMutations();\n const [creating, setCreating] = useState(false);\n const [editing, setEditing] = useState<TraceSignalDefinition>();\n const [actionError, setActionError] = useState<string>();\n const canManage = signalManagement?.canManage ?? false;\n\n if (query.isPending) {\n return (\n <div className=\"space-y-3\" role=\"status\" aria-label=\"Loading signal settings\">\n <Skeleton className=\"h-5 w-40\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-full\" />\n </div>\n );\n }\n if (query.error || !query.data) {\n return (\n <Notice variant=\"destructive\">\n <Notice.Message>{query.error?.message ?? 'Failed to load signal settings'}</Notice.Message>\n </Notice>\n );\n }\n\n const active = query.data.definitions.filter(definition => definition.status === 'active');\n const archived = query.data.definitions.filter(definition => definition.status === 'archived');\n const limit = query.data.limits.maxDefinitionsPerOrganization;\n const atLimit = active.length >= limit;\n const mutationPending = creating ? mutations.create.isPending : mutations.update.isPending;\n const formError = creating ? mutations.create.error?.message : editing ? mutations.update.error?.message : undefined;\n const openCreateForm = () => {\n mutations.create.reset();\n setCreating(true);\n };\n const setCreateFormOpen = (open: boolean) => {\n if (!open) mutations.create.reset();\n setCreating(open);\n };\n const openEditForm = (definition: TraceSignalDefinition) => {\n mutations.update.reset();\n setEditing(definition);\n };\n const closeEditForm = () => {\n mutations.update.reset();\n setEditing(undefined);\n };\n\n const runAction = async (action: () => Promise<unknown>) => {\n setActionError(undefined);\n try {\n await action();\n } catch (error) {\n setActionError(error instanceof Error ? error.message : 'Failed to update signal settings');\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {!canManage ? (\n <Notice variant=\"info\">\n <Notice.Message>You have read-only access. An organization admin can change these settings.</Notice.Message>\n </Notice>\n ) : null}\n {actionError ? (\n <Notice variant=\"destructive\">\n <Notice.Message>{actionError}</Notice.Message>\n </Notice>\n ) : null}\n\n <section aria-labelledby=\"custom-signals-heading\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h3 id=\"custom-signals-heading\" className=\"text-subheading text-muted-foreground\">\n Custom signals\n </h3>\n <p className=\"text-meta text-muted-foreground\">\n {active.length} of {limit} active organization definitions\n </p>\n </div>\n <Button\n icon={<LayoutGrid />}\n size=\"sm\"\n variant=\"primary\"\n disabled={!canManage || atLimit}\n onClick={openCreateForm}\n >\n Create signal\n </Button>\n </div>\n {atLimit ? (\n <Notice variant=\"info\">\n <Notice.Message>Archive an active definition before creating or restoring another.</Notice.Message>\n </Notice>\n ) : null}\n <div className=\"divide-border divide-y\">\n {active.map(definition => (\n <div key={definition.id} className=\"flex min-h-16 items-center justify-between gap-4 py-2\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-caption text-muted-foreground truncate\">{definition.displayLabel}</span>\n <Badge variant=\"neutral\" size=\"sm\">\n v{definition.version}\n </Badge>\n </div>\n <p className=\"text-meta text-muted-foreground truncate\">{definition.description || definition.name}</p>\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <Button\n icon={<Pencil />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={!canManage}\n onClick={() => openEditForm(definition)}\n >\n Edit\n </Button>\n <Button\n icon={<Archive />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage || (mutations.archive.isPending && mutations.archive.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.archive.mutateAsync(definition.id))}\n >\n Archive\n </Button>\n <Switch\n aria-label={`Enable ${definition.displayLabel}`}\n checked={definition.enabled ?? false}\n disabled={\n !canManage ||\n (mutations.setProjectEnabled.isPending &&\n mutations.setProjectEnabled.variables?.id === definition.id)\n }\n onCheckedChange={enabled =>\n void runAction(() => mutations.setProjectEnabled.mutateAsync({ id: definition.id, enabled }))\n }\n />\n </div>\n </div>\n ))}\n </div>\n {active.length === 0 ? <p className=\"text-caption text-muted-foreground py-3\">No custom signals yet.</p> : null}\n </section>\n\n {archived.length > 0 ? (\n <details>\n <summary className=\"text-caption text-muted-foreground cursor-pointer\">\n Archived definitions ({archived.length})\n </summary>\n <div className=\"divide-border mt-2 divide-y\">\n {archived.map(definition => (\n <div key={definition.id} className=\"flex min-h-12 items-center justify-between gap-3 py-2\">\n <span className=\"text-caption text-muted-foreground\">{definition.displayLabel}</span>\n <Button\n icon={<ArchiveRestore />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage ||\n atLimit ||\n (mutations.restore.isPending && mutations.restore.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.restore.mutateAsync(definition.id))}\n >\n Restore\n </Button>\n </div>\n ))}\n </div>\n </details>\n ) : null}\n\n <p className=\"text-meta text-muted-foreground\">\n Enabling a signal starts collection for new traces. Entity status shows when enough generated data has been\n processed and clustered.\n </p>\n\n {creating ? (\n <SignalDefinitionFormDialog\n open\n onOpenChange={setCreateFormOpen}\n pending={mutationPending}\n error={formError}\n onCreate={async input => {\n await mutations.create.mutateAsync(input);\n }}\n onUpdate={async () => undefined}\n />\n ) : null}\n {editing ? (\n <SignalDefinitionFormDialog\n open\n definition={editing}\n onOpenChange={open => {\n if (!open) closeEditForm();\n }}\n pending={mutationPending}\n error={formError}\n onCreate={async () => undefined}\n onUpdate={async (id, input) => {\n await mutations.update.mutateAsync({ id, input });\n }}\n />\n ) : null}\n </div>\n );\n}\n"],"names":["useTraceIntelligence","jsx","Button","Settings","jsxs","DataDetailsPanel","useSignalManagementList","useSignalManagementMutations","useState","Skeleton","Notice","LayoutGrid","Badge","Pencil","Archive","Switch","ArchiveRestore","SignalDefinitionFormDialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-signal-settings.cjs.js","sources":["../../../../src/ee/signals/settings/trace-signal-settings.tsx"],"sourcesContent":["import type { TraceSignalDefinition } from '@mastra/client-js';\nimport { Settings, ArchiveRestore, Archive, Pencil, LayoutGrid } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { SignalDefinitionFormDialog } from './signal-definition-form-dialog';\nimport { useSignalManagementList, useSignalManagementMutations } from './use-signal-management';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Skeleton } from '@/ds/components/Skeleton';\nimport { Switch } from '@/ds/components/Switch';\n\nexport function TraceSignalSettingsButton({ open, onClick }: { open: boolean; onClick: () => void }) {\n const { signalManagement } = useTraceIntelligence();\n if (!signalManagement) return null;\n\n return (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n tooltip=\"Signal settings\"\n aria-label=\"Signal settings\"\n aria-controls=\"trace-signal-settings\"\n aria-expanded={open}\n onClick={onClick}\n >\n <Settings aria-hidden=\"true\" />\n </Button>\n );\n}\n\nexport function TraceSignalSettingsPanel({ onClose }: { onClose: () => void }) {\n return (\n <aside id=\"trace-signal-settings\" aria-label=\"Trace signal settings\" className=\"min-h-0\">\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading className=\"items-center font-medium text-foreground\">\n <Settings aria-hidden=\"true\" /> Trace signal settings\n </DataDetailsPanel.Heading>\n <DataDetailsPanel.CloseButton onClick={onClose} tooltip=\"Close settings\" />\n </DataDetailsPanel.Header>\n <DataDetailsPanel.Content>\n <TraceSignalSettingsContent />\n </DataDetailsPanel.Content>\n </DataDetailsPanel>\n </aside>\n );\n}\n\nfunction TraceSignalSettingsContent() {\n const { signalManagement } = useTraceIntelligence();\n const query = useSignalManagementList();\n const mutations = useSignalManagementMutations();\n const [creating, setCreating] = useState(false);\n const [editing, setEditing] = useState<TraceSignalDefinition>();\n const [actionError, setActionError] = useState<string>();\n const canManage = signalManagement?.canManage ?? false;\n\n if (query.isPending) {\n return (\n <div className=\"space-y-3\" role=\"status\" aria-label=\"Loading signal settings\">\n <Skeleton className=\"h-5 w-40\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-full\" />\n </div>\n );\n }\n if (query.error || !query.data) {\n return (\n <Notice variant=\"destructive\">\n <Notice.Message>{query.error?.message ?? 'Failed to load signal settings'}</Notice.Message>\n </Notice>\n );\n }\n\n const active = query.data.definitions.filter(definition => definition.status === 'active');\n const archived = query.data.definitions.filter(definition => definition.status === 'archived');\n const limit = query.data.limits.maxDefinitionsPerOrganization;\n const atLimit = active.length >= limit;\n const mutationPending = creating ? mutations.create.isPending : mutations.update.isPending;\n const formError = creating ? mutations.create.error?.message : editing ? mutations.update.error?.message : undefined;\n const openCreateForm = () => {\n mutations.create.reset();\n setCreating(true);\n };\n const setCreateFormOpen = (open: boolean) => {\n if (!open) mutations.create.reset();\n setCreating(open);\n };\n const openEditForm = (definition: TraceSignalDefinition) => {\n mutations.update.reset();\n setEditing(definition);\n };\n const closeEditForm = () => {\n mutations.update.reset();\n setEditing(undefined);\n };\n\n const runAction = async (action: () => Promise<unknown>) => {\n setActionError(undefined);\n try {\n await action();\n } catch (error) {\n setActionError(error instanceof Error ? error.message : 'Failed to update signal settings');\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {!canManage ? (\n <Notice variant=\"info\">\n <Notice.Message>You have read-only access. An organization admin can change these settings.</Notice.Message>\n </Notice>\n ) : null}\n {actionError ? (\n <Notice variant=\"destructive\">\n <Notice.Message>{actionError}</Notice.Message>\n </Notice>\n ) : null}\n\n <section aria-labelledby=\"custom-signals-heading\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h3 id=\"custom-signals-heading\" className=\"text-subheading text-muted-foreground\">\n Custom signals\n </h3>\n <p className=\"text-meta text-muted-foreground\">\n {active.length} of {limit} active organization definitions\n </p>\n </div>\n <Button\n icon={<LayoutGrid />}\n size=\"sm\"\n variant=\"primary\"\n disabled={!canManage || atLimit}\n onClick={openCreateForm}\n >\n Create signal\n </Button>\n </div>\n {atLimit ? (\n <Notice variant=\"info\">\n <Notice.Message>Archive an active definition before creating or restoring another.</Notice.Message>\n </Notice>\n ) : null}\n <div className=\"divide-y divide-border\">\n {active.map(definition => (\n <div key={definition.id} className=\"flex min-h-16 items-center justify-between gap-4 py-2\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"truncate text-caption text-muted-foreground\">{definition.displayLabel}</span>\n <Badge variant=\"neutral\" size=\"sm\">\n v{definition.version}\n </Badge>\n </div>\n <p className=\"truncate text-meta text-muted-foreground\">{definition.description || definition.name}</p>\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <Button\n icon={<Pencil />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={!canManage}\n onClick={() => openEditForm(definition)}\n >\n Edit\n </Button>\n <Button\n icon={<Archive />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage || (mutations.archive.isPending && mutations.archive.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.archive.mutateAsync(definition.id))}\n >\n Archive\n </Button>\n <Switch\n aria-label={`Enable ${definition.displayLabel}`}\n checked={definition.enabled ?? false}\n disabled={\n !canManage ||\n (mutations.setProjectEnabled.isPending &&\n mutations.setProjectEnabled.variables?.id === definition.id)\n }\n onCheckedChange={enabled =>\n void runAction(() => mutations.setProjectEnabled.mutateAsync({ id: definition.id, enabled }))\n }\n />\n </div>\n </div>\n ))}\n </div>\n {active.length === 0 ? <p className=\"py-3 text-caption text-muted-foreground\">No custom signals yet.</p> : null}\n </section>\n\n {archived.length > 0 ? (\n <details>\n <summary className=\"cursor-pointer text-caption text-muted-foreground\">\n Archived definitions ({archived.length})\n </summary>\n <div className=\"mt-2 divide-y divide-border\">\n {archived.map(definition => (\n <div key={definition.id} className=\"flex min-h-12 items-center justify-between gap-3 py-2\">\n <span className=\"text-caption text-muted-foreground\">{definition.displayLabel}</span>\n <Button\n icon={<ArchiveRestore />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage ||\n atLimit ||\n (mutations.restore.isPending && mutations.restore.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.restore.mutateAsync(definition.id))}\n >\n Restore\n </Button>\n </div>\n ))}\n </div>\n </details>\n ) : null}\n\n <p className=\"text-meta text-muted-foreground\">\n Enabling a signal starts collection for new traces. Entity status shows when enough generated data has been\n processed and clustered.\n </p>\n\n {creating ? (\n <SignalDefinitionFormDialog\n open\n onOpenChange={setCreateFormOpen}\n pending={mutationPending}\n error={formError}\n onCreate={async input => {\n await mutations.create.mutateAsync(input);\n }}\n onUpdate={async () => undefined}\n />\n ) : null}\n {editing ? (\n <SignalDefinitionFormDialog\n open\n definition={editing}\n onOpenChange={open => {\n if (!open) closeEditForm();\n }}\n pending={mutationPending}\n error={formError}\n onCreate={async () => undefined}\n onUpdate={async (id, input) => {\n await mutations.update.mutateAsync({ id, input });\n }}\n />\n ) : null}\n </div>\n );\n}\n"],"names":["useTraceIntelligence","jsx","Button","Settings","jsxs","DataDetailsPanel","useSignalManagementList","useSignalManagementMutations","useState","Skeleton","Notice","LayoutGrid","Badge","Pencil","Archive","Switch","ArchiveRestore","SignalDefinitionFormDialog"],"mappings":";;;;;;;;;;;;;;;;;AAcO,SAAS,yBAAA,CAA0B,EAAE,IAAA,EAAM,OAAA,EAAQ,EAA2C;AACnG,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAIA,oDAAA,EAAqB;AAClD,EAAA,IAAI,CAAC,kBAAkB,OAAO,IAAA;AAE9B,EAAA,uBACEC,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAK,SAAA;AAAA,MACL,OAAA,EAAQ,iBAAA;AAAA,MACR,YAAA,EAAW,iBAAA;AAAA,MACX,eAAA,EAAc,uBAAA;AAAA,MACd,eAAA,EAAe,IAAA;AAAA,MACf,OAAA;AAAA,MAEA,QAAA,kBAAAD,cAAA,CAACE,oBAAA,EAAA,EAAS,aAAA,EAAY,MAAA,EAAO;AAAA;AAAA,GAC/B;AAEJ;AAEO,SAAS,wBAAA,CAAyB,EAAE,OAAA,EAAQ,EAA4B;AAC7E,EAAA,uBACEF,cAAA,CAAC,WAAM,EAAA,EAAG,uBAAA,EAAwB,cAAW,uBAAA,EAAwB,SAAA,EAAU,SAAA,EAC7E,QAAA,kBAAAG,eAAA,CAACC,4CAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAD,eAAA,CAACC,4CAAA,CAAiB,QAAjB,EACC,QAAA,EAAA;AAAA,sBAAAD,eAAA,CAACC,4CAAA,CAAiB,OAAA,EAAjB,EAAyB,SAAA,EAAU,0CAAA,EAClC,QAAA,EAAA;AAAA,wBAAAJ,cAAA,CAACE,oBAAA,EAAA,EAAS,eAAY,MAAA,EAAO,CAAA;AAAA,QAAE;AAAA,OAAA,EACjC,CAAA;AAAA,qCACCE,4CAAA,CAAiB,WAAA,EAAjB,EAA6B,OAAA,EAAS,OAAA,EAAS,SAAQ,gBAAA,EAAiB;AAAA,KAAA,EAC3E,CAAA;AAAA,mCACCA,4CAAA,CAAiB,OAAA,EAAjB,EACC,QAAA,kBAAAJ,cAAA,CAAC,8BAA2B,CAAA,EAC9B;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,0BAAA,GAA6B;AACpC,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAID,oDAAA,EAAqB;AAClD,EAAA,MAAM,QAAQM,+DAAA,EAAwB;AACtC,EAAA,MAAM,YAAYC,oEAAA,EAA6B;AAC/C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAS,KAAK,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,cAAA,EAAgC;AAC9D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,cAAA,EAAiB;AACvD,EAAA,MAAM,SAAA,GAAY,kBAAkB,SAAA,IAAa,KAAA;AAEjD,EAAA,IAAI,MAAM,SAAA,EAAW;AACnB,IAAA,uCACG,KAAA,EAAA,EAAI,SAAA,EAAU,aAAY,IAAA,EAAK,QAAA,EAAS,cAAW,yBAAA,EAClD,QAAA,EAAA;AAAA,sBAAAP,cAAA,CAACQ,iBAAA,EAAA,EAAS,WAAU,UAAA,EAAW,CAAA;AAAA,sBAC/BR,cAAA,CAACQ,iBAAA,EAAA,EAAS,SAAA,EAAU,aAAA,EAAc,CAAA;AAAA,sBAClCR,cAAA,CAACQ,iBAAA,EAAA,EAAS,SAAA,EAAU,aAAA,EAAc;AAAA,KAAA,EACpC,CAAA;AAAA,EAEJ;AACA,EAAA,IAAI,KAAA,CAAM,KAAA,IAAS,CAAC,KAAA,CAAM,IAAA,EAAM;AAC9B,IAAA,uBACER,cAAA,CAACS,aAAA,EAAA,EAAO,OAAA,EAAQ,aAAA,EACd,QAAA,kBAAAT,cAAA,CAACS,aAAA,CAAO,OAAA,EAAP,EAAgB,QAAA,EAAA,KAAA,CAAM,KAAA,EAAO,OAAA,IAAW,gCAAA,EAAiC,CAAA,EAC5E,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,WAAA,CAAY,OAAO,CAAA,UAAA,KAAc,UAAA,CAAW,WAAW,QAAQ,CAAA;AACzF,EAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,WAAA,CAAY,OAAO,CAAA,UAAA,KAAc,UAAA,CAAW,WAAW,UAAU,CAAA;AAC7F,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,6BAAA;AAChC,EAAA,MAAM,OAAA,GAAU,OAAO,MAAA,IAAU,KAAA;AACjC,EAAA,MAAM,kBAAkB,QAAA,GAAW,SAAA,CAAU,MAAA,CAAO,SAAA,GAAY,UAAU,MAAA,CAAO,SAAA;AACjF,EAAA,MAAM,SAAA,GAAY,QAAA,GAAW,SAAA,CAAU,MAAA,CAAO,KAAA,EAAO,UAAU,OAAA,GAAU,SAAA,CAAU,MAAA,CAAO,KAAA,EAAO,OAAA,GAAU,MAAA;AAC3G,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,SAAA,CAAU,OAAO,KAAA,EAAM;AACvB,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,EAClB,CAAA;AACA,EAAA,MAAM,iBAAA,GAAoB,CAAC,IAAA,KAAkB;AAC3C,IAAA,IAAI,CAAC,IAAA,EAAM,SAAA,CAAU,MAAA,CAAO,KAAA,EAAM;AAClC,IAAA,WAAA,CAAY,IAAI,CAAA;AAAA,EAClB,CAAA;AACA,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,KAAsC;AAC1D,IAAA,SAAA,CAAU,OAAO,KAAA,EAAM;AACvB,IAAA,UAAA,CAAW,UAAU,CAAA;AAAA,EACvB,CAAA;AACA,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAA,SAAA,CAAU,OAAO,KAAA,EAAM;AACvB,IAAA,UAAA,CAAW,MAAS,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,OAAO,MAAA,KAAmC;AAC1D,IAAA,cAAA,CAAe,MAAS,CAAA;AACxB,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,EAAO;AAAA,IACf,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,kCAAkC,CAAA;AAAA,IAC5F;AAAA,EACF,CAAA;AAEA,EAAA,uBACEN,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACZ,QAAA,EAAA;AAAA,IAAA,CAAC,SAAA,mBACAH,cAAA,CAACS,aAAA,EAAA,EAAO,OAAA,EAAQ,MAAA,EACd,QAAA,kBAAAT,cAAA,CAACS,aAAA,CAAO,OAAA,EAAP,EAAe,QAAA,EAAA,6EAAA,EAA2E,CAAA,EAC7F,CAAA,GACE,IAAA;AAAA,IACH,WAAA,mBACCT,cAAA,CAACS,aAAA,EAAA,EAAO,OAAA,EAAQ,aAAA,EACd,QAAA,kBAAAT,cAAA,CAACS,aAAA,CAAO,OAAA,EAAP,EAAgB,QAAA,EAAA,WAAA,EAAY,CAAA,EAC/B,CAAA,GACE,IAAA;AAAA,oBAEJN,eAAA,CAAC,SAAA,EAAA,EAAQ,iBAAA,EAAgB,wBAAA,EACvB,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,wDAAA,EACb,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAH,cAAA,CAAC,IAAA,EAAA,EAAG,EAAA,EAAG,wBAAA,EAAyB,SAAA,EAAU,yCAAwC,QAAA,EAAA,gBAAA,EAElF,CAAA;AAAA,0BACAG,eAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAA,EACV,QAAA,EAAA;AAAA,YAAA,MAAA,CAAO,MAAA;AAAA,YAAO,MAAA;AAAA,YAAK,KAAA;AAAA,YAAM;AAAA,WAAA,EAC5B;AAAA,SAAA,EACF,CAAA;AAAA,wBACAH,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,IAAA,iCAAOS,sBAAA,EAAA,EAAW,CAAA;AAAA,YAClB,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAQ,SAAA;AAAA,YACR,QAAA,EAAU,CAAC,SAAA,IAAa,OAAA;AAAA,YACxB,OAAA,EAAS,cAAA;AAAA,YACV,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EACF,CAAA;AAAA,MACC,OAAA,mBACCV,cAAA,CAACS,aAAA,EAAA,EAAO,OAAA,EAAQ,MAAA,EACd,QAAA,kBAAAT,cAAA,CAACS,aAAA,CAAO,OAAA,EAAP,EAAe,QAAA,EAAA,oEAAA,EAAkE,CAAA,EACpF,CAAA,GACE,IAAA;AAAA,sBACJT,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA,MAAA,CAAO,IAAI,CAAA,UAAA,qBACVG,eAAA,CAAC,KAAA,EAAA,EAAwB,SAAA,EAAU,uDAAA,EACjC,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,SAAA,EACb,QAAA,EAAA;AAAA,0BAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,4BAAAH,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6CAAA,EAA+C,QAAA,EAAA,UAAA,CAAW,YAAA,EAAa,CAAA;AAAA,4BACvFG,eAAA,CAACQ,WAAA,EAAA,EAAM,OAAA,EAAQ,SAAA,EAAU,MAAK,IAAA,EAAK,QAAA,EAAA;AAAA,cAAA,GAAA;AAAA,cAC/B,UAAA,CAAW;AAAA,aAAA,EACf;AAAA,WAAA,EACF,CAAA;AAAA,yCACC,GAAA,EAAA,EAAE,SAAA,EAAU,4CAA4C,QAAA,EAAA,UAAA,CAAW,WAAA,IAAe,WAAW,IAAA,EAAK;AAAA,SAAA,EACrG,CAAA;AAAA,wBACAR,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EACb,QAAA,EAAA;AAAA,0BAAAH,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,IAAA,iCAAOW,kBAAA,EAAA,EAAO,CAAA;AAAA,cACd,IAAA,EAAK,IAAA;AAAA,cACL,OAAA,EAAQ,OAAA;AAAA,cACR,UAAU,CAAC,SAAA;AAAA,cACX,OAAA,EAAS,MAAM,YAAA,CAAa,UAAU,CAAA;AAAA,cACvC,QAAA,EAAA;AAAA;AAAA,WAED;AAAA,0BACAZ,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,IAAA,iCAAOY,mBAAA,EAAA,EAAQ,CAAA;AAAA,cACf,IAAA,EAAK,IAAA;AAAA,cACL,OAAA,EAAQ,OAAA;AAAA,cACR,QAAA,EACE,CAAC,SAAA,IAAc,SAAA,CAAU,QAAQ,SAAA,IAAa,SAAA,CAAU,OAAA,CAAQ,SAAA,KAAc,UAAA,CAAW,EAAA;AAAA,cAE3F,OAAA,EAAS,MAAM,KAAK,SAAA,CAAU,MAAM,UAAU,OAAA,CAAQ,WAAA,CAAY,UAAA,CAAW,EAAE,CAAC,CAAA;AAAA,cACjF,QAAA,EAAA;AAAA;AAAA,WAED;AAAA,0BACAb,cAAA;AAAA,YAACc,cAAA;AAAA,YAAA;AAAA,cACC,YAAA,EAAY,CAAA,OAAA,EAAU,UAAA,CAAW,YAAY,CAAA,CAAA;AAAA,cAC7C,OAAA,EAAS,WAAW,OAAA,IAAW,KAAA;AAAA,cAC/B,QAAA,EACE,CAAC,SAAA,IACA,SAAA,CAAU,iBAAA,CAAkB,aAC3B,SAAA,CAAU,iBAAA,CAAkB,SAAA,EAAW,EAAA,KAAO,UAAA,CAAW,EAAA;AAAA,cAE7D,eAAA,EAAiB,CAAA,OAAA,KACf,KAAK,SAAA,CAAU,MAAM,SAAA,CAAU,iBAAA,CAAkB,WAAA,CAAY,EAAE,EAAA,EAAI,UAAA,CAAW,EAAA,EAAI,OAAA,EAAS,CAAC;AAAA;AAAA;AAEhG,SAAA,EACF;AAAA,OAAA,EAAA,EA3CQ,UAAA,CAAW,EA4CrB,CACD,CAAA,EACH,CAAA;AAAA,MACC,MAAA,CAAO,WAAW,CAAA,mBAAId,cAAA,CAAC,OAAE,SAAA,EAAU,yCAAA,EAA0C,oCAAsB,CAAA,GAAO;AAAA,KAAA,EAC7G,CAAA;AAAA,IAEC,QAAA,CAAS,MAAA,GAAS,CAAA,mBACjBG,eAAA,CAAC,SAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,SAAA,EAAA,EAAQ,WAAU,mDAAA,EAAoD,QAAA,EAAA;AAAA,QAAA,wBAAA;AAAA,QAC9C,QAAA,CAAS,MAAA;AAAA,QAAO;AAAA,OAAA,EACzC,CAAA;AAAA,sBACAH,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,6BAAA,EACZ,QAAA,EAAA,QAAA,CAAS,IAAI,CAAA,UAAA,qBACZG,eAAA,CAAC,KAAA,EAAA,EAAwB,SAAA,EAAU,uDAAA,EACjC,QAAA,EAAA;AAAA,wBAAAH,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oCAAA,EAAsC,QAAA,EAAA,UAAA,CAAW,YAAA,EAAa,CAAA;AAAA,wBAC9EA,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,IAAA,iCAAOc,0BAAA,EAAA,EAAe,CAAA;AAAA,YACtB,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAQ,OAAA;AAAA,YACR,QAAA,EACE,CAAC,SAAA,IACD,OAAA,IACC,SAAA,CAAU,QAAQ,SAAA,IAAa,SAAA,CAAU,OAAA,CAAQ,SAAA,KAAc,UAAA,CAAW,EAAA;AAAA,YAE7E,OAAA,EAAS,MAAM,KAAK,SAAA,CAAU,MAAM,UAAU,OAAA,CAAQ,WAAA,CAAY,UAAA,CAAW,EAAE,CAAC,CAAA;AAAA,YACjF,QAAA,EAAA;AAAA;AAAA;AAED,OAAA,EAAA,EAdQ,UAAA,CAAW,EAerB,CACD,CAAA,EACH;AAAA,KAAA,EACF,CAAA,GACE,IAAA;AAAA,oBAEJf,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAA,EAAkC,QAAA,EAAA,sIAAA,EAG/C,CAAA;AAAA,IAEC,QAAA,mBACCA,cAAA;AAAA,MAACgB,yEAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAI,IAAA;AAAA,QACJ,YAAA,EAAc,iBAAA;AAAA,QACd,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO,SAAA;AAAA,QACP,QAAA,EAAU,OAAM,KAAA,KAAS;AACvB,UAAA,MAAM,SAAA,CAAU,MAAA,CAAO,WAAA,CAAY,KAAK,CAAA;AAAA,QAC1C,CAAA;AAAA,QACA,UAAU,YAAY;AAAA;AAAA,KACxB,GACE,IAAA;AAAA,IACH,OAAA,mBACChB,cAAA;AAAA,MAACgB,yEAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAI,IAAA;AAAA,QACJ,UAAA,EAAY,OAAA;AAAA,QACZ,cAAc,CAAA,IAAA,KAAQ;AACpB,UAAA,IAAI,CAAC,MAAM,aAAA,EAAc;AAAA,QAC3B,CAAA;AAAA,QACA,OAAA,EAAS,eAAA;AAAA,QACT,KAAA,EAAO,SAAA;AAAA,QACP,UAAU,YAAY,MAAA;AAAA,QACtB,QAAA,EAAU,OAAO,EAAA,EAAI,KAAA,KAAU;AAC7B,UAAA,MAAM,UAAU,MAAA,CAAO,WAAA,CAAY,EAAE,EAAA,EAAI,OAAO,CAAA;AAAA,QAClD;AAAA;AAAA,KACF,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;;;;;"}
|
|
@@ -5,9 +5,9 @@ import { useTraceIntelligence } from '../use-trace-intelligence.es.js';
|
|
|
5
5
|
import { SignalDefinitionFormDialog } from './signal-definition-form-dialog.es.js';
|
|
6
6
|
import { useSignalManagementList, useSignalManagementMutations } from './use-signal-management.es.js';
|
|
7
7
|
import { B as Badge } from '../../../Badge-TD55_qZJ.js';
|
|
8
|
-
import { B as Button } from '../../../Button-
|
|
8
|
+
import { B as Button } from '../../../Button-C9cvaVFG.js';
|
|
9
9
|
import { DataDetailsPanel } from '../../../components/DataDetailsPanel.es.js';
|
|
10
|
-
import { N as Notice } from '../../../Notice-
|
|
10
|
+
import { N as Notice } from '../../../Notice-DUdQkUqH.js';
|
|
11
11
|
import { S as Skeleton } from '../../../skeleton-BsRAXyh5.js';
|
|
12
12
|
import { S as Switch } from '../../../switch-CE9jTpUG.js';
|
|
13
13
|
|
|
@@ -32,7 +32,7 @@ function TraceSignalSettingsButton({ open, onClick }) {
|
|
|
32
32
|
function TraceSignalSettingsPanel({ onClose }) {
|
|
33
33
|
return /* @__PURE__ */ jsx("aside", { id: "trace-signal-settings", "aria-label": "Trace signal settings", className: "min-h-0", children: /* @__PURE__ */ jsxs(DataDetailsPanel, { children: [
|
|
34
34
|
/* @__PURE__ */ jsxs(DataDetailsPanel.Header, { children: [
|
|
35
|
-
/* @__PURE__ */ jsxs(DataDetailsPanel.Heading, { className: "
|
|
35
|
+
/* @__PURE__ */ jsxs(DataDetailsPanel.Heading, { className: "items-center font-medium text-foreground", children: [
|
|
36
36
|
/* @__PURE__ */ jsx(Settings, { "aria-hidden": "true" }),
|
|
37
37
|
" Trace signal settings"
|
|
38
38
|
] }),
|
|
@@ -116,16 +116,16 @@ function TraceSignalSettingsContent() {
|
|
|
116
116
|
)
|
|
117
117
|
] }),
|
|
118
118
|
atLimit ? /* @__PURE__ */ jsx(Notice, { variant: "info", children: /* @__PURE__ */ jsx(Notice.Message, { children: "Archive an active definition before creating or restoring another." }) }) : null,
|
|
119
|
-
/* @__PURE__ */ jsx("div", { className: "divide-
|
|
119
|
+
/* @__PURE__ */ jsx("div", { className: "divide-y divide-border", children: active.map((definition) => /* @__PURE__ */ jsxs("div", { className: "flex min-h-16 items-center justify-between gap-4 py-2", children: [
|
|
120
120
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
121
121
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
122
|
-
/* @__PURE__ */ jsx("span", { className: "text-caption text-muted-foreground
|
|
122
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-caption text-muted-foreground", children: definition.displayLabel }),
|
|
123
123
|
/* @__PURE__ */ jsxs(Badge, { variant: "neutral", size: "sm", children: [
|
|
124
124
|
"v",
|
|
125
125
|
definition.version
|
|
126
126
|
] })
|
|
127
127
|
] }),
|
|
128
|
-
/* @__PURE__ */ jsx("p", { className: "text-meta text-muted-foreground
|
|
128
|
+
/* @__PURE__ */ jsx("p", { className: "truncate text-meta text-muted-foreground", children: definition.description || definition.name })
|
|
129
129
|
] }),
|
|
130
130
|
/* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
131
131
|
/* @__PURE__ */ jsx(
|
|
@@ -161,15 +161,15 @@ function TraceSignalSettingsContent() {
|
|
|
161
161
|
)
|
|
162
162
|
] })
|
|
163
163
|
] }, definition.id)) }),
|
|
164
|
-
active.length === 0 ? /* @__PURE__ */ jsx("p", { className: "text-caption text-muted-foreground
|
|
164
|
+
active.length === 0 ? /* @__PURE__ */ jsx("p", { className: "py-3 text-caption text-muted-foreground", children: "No custom signals yet." }) : null
|
|
165
165
|
] }),
|
|
166
166
|
archived.length > 0 ? /* @__PURE__ */ jsxs("details", { children: [
|
|
167
|
-
/* @__PURE__ */ jsxs("summary", { className: "text-caption text-muted-foreground
|
|
167
|
+
/* @__PURE__ */ jsxs("summary", { className: "cursor-pointer text-caption text-muted-foreground", children: [
|
|
168
168
|
"Archived definitions (",
|
|
169
169
|
archived.length,
|
|
170
170
|
")"
|
|
171
171
|
] }),
|
|
172
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
172
|
+
/* @__PURE__ */ jsx("div", { className: "mt-2 divide-y divide-border", children: archived.map((definition) => /* @__PURE__ */ jsxs("div", { className: "flex min-h-12 items-center justify-between gap-3 py-2", children: [
|
|
173
173
|
/* @__PURE__ */ jsx("span", { className: "text-caption text-muted-foreground", children: definition.displayLabel }),
|
|
174
174
|
/* @__PURE__ */ jsx(
|
|
175
175
|
Button,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-signal-settings.es.js","sources":["../../../../src/ee/signals/settings/trace-signal-settings.tsx"],"sourcesContent":["import type { TraceSignalDefinition } from '@mastra/client-js';\nimport { Settings, ArchiveRestore, Archive, Pencil, LayoutGrid } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { SignalDefinitionFormDialog } from './signal-definition-form-dialog';\nimport { useSignalManagementList, useSignalManagementMutations } from './use-signal-management';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Skeleton } from '@/ds/components/Skeleton';\nimport { Switch } from '@/ds/components/Switch';\n\nexport function TraceSignalSettingsButton({ open, onClick }: { open: boolean; onClick: () => void }) {\n const { signalManagement } = useTraceIntelligence();\n if (!signalManagement) return null;\n\n return (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n tooltip=\"Signal settings\"\n aria-label=\"Signal settings\"\n aria-controls=\"trace-signal-settings\"\n aria-expanded={open}\n onClick={onClick}\n >\n <Settings aria-hidden=\"true\" />\n </Button>\n );\n}\n\nexport function TraceSignalSettingsPanel({ onClose }: { onClose: () => void }) {\n return (\n <aside id=\"trace-signal-settings\" aria-label=\"Trace signal settings\" className=\"min-h-0\">\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading className=\"text-foreground items-center font-medium\">\n <Settings aria-hidden=\"true\" /> Trace signal settings\n </DataDetailsPanel.Heading>\n <DataDetailsPanel.CloseButton onClick={onClose} tooltip=\"Close settings\" />\n </DataDetailsPanel.Header>\n <DataDetailsPanel.Content>\n <TraceSignalSettingsContent />\n </DataDetailsPanel.Content>\n </DataDetailsPanel>\n </aside>\n );\n}\n\nfunction TraceSignalSettingsContent() {\n const { signalManagement } = useTraceIntelligence();\n const query = useSignalManagementList();\n const mutations = useSignalManagementMutations();\n const [creating, setCreating] = useState(false);\n const [editing, setEditing] = useState<TraceSignalDefinition>();\n const [actionError, setActionError] = useState<string>();\n const canManage = signalManagement?.canManage ?? false;\n\n if (query.isPending) {\n return (\n <div className=\"space-y-3\" role=\"status\" aria-label=\"Loading signal settings\">\n <Skeleton className=\"h-5 w-40\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-full\" />\n </div>\n );\n }\n if (query.error || !query.data) {\n return (\n <Notice variant=\"destructive\">\n <Notice.Message>{query.error?.message ?? 'Failed to load signal settings'}</Notice.Message>\n </Notice>\n );\n }\n\n const active = query.data.definitions.filter(definition => definition.status === 'active');\n const archived = query.data.definitions.filter(definition => definition.status === 'archived');\n const limit = query.data.limits.maxDefinitionsPerOrganization;\n const atLimit = active.length >= limit;\n const mutationPending = creating ? mutations.create.isPending : mutations.update.isPending;\n const formError = creating ? mutations.create.error?.message : editing ? mutations.update.error?.message : undefined;\n const openCreateForm = () => {\n mutations.create.reset();\n setCreating(true);\n };\n const setCreateFormOpen = (open: boolean) => {\n if (!open) mutations.create.reset();\n setCreating(open);\n };\n const openEditForm = (definition: TraceSignalDefinition) => {\n mutations.update.reset();\n setEditing(definition);\n };\n const closeEditForm = () => {\n mutations.update.reset();\n setEditing(undefined);\n };\n\n const runAction = async (action: () => Promise<unknown>) => {\n setActionError(undefined);\n try {\n await action();\n } catch (error) {\n setActionError(error instanceof Error ? error.message : 'Failed to update signal settings');\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {!canManage ? (\n <Notice variant=\"info\">\n <Notice.Message>You have read-only access. An organization admin can change these settings.</Notice.Message>\n </Notice>\n ) : null}\n {actionError ? (\n <Notice variant=\"destructive\">\n <Notice.Message>{actionError}</Notice.Message>\n </Notice>\n ) : null}\n\n <section aria-labelledby=\"custom-signals-heading\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h3 id=\"custom-signals-heading\" className=\"text-subheading text-muted-foreground\">\n Custom signals\n </h3>\n <p className=\"text-meta text-muted-foreground\">\n {active.length} of {limit} active organization definitions\n </p>\n </div>\n <Button\n icon={<LayoutGrid />}\n size=\"sm\"\n variant=\"primary\"\n disabled={!canManage || atLimit}\n onClick={openCreateForm}\n >\n Create signal\n </Button>\n </div>\n {atLimit ? (\n <Notice variant=\"info\">\n <Notice.Message>Archive an active definition before creating or restoring another.</Notice.Message>\n </Notice>\n ) : null}\n <div className=\"divide-border divide-y\">\n {active.map(definition => (\n <div key={definition.id} className=\"flex min-h-16 items-center justify-between gap-4 py-2\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-caption text-muted-foreground truncate\">{definition.displayLabel}</span>\n <Badge variant=\"neutral\" size=\"sm\">\n v{definition.version}\n </Badge>\n </div>\n <p className=\"text-meta text-muted-foreground truncate\">{definition.description || definition.name}</p>\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <Button\n icon={<Pencil />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={!canManage}\n onClick={() => openEditForm(definition)}\n >\n Edit\n </Button>\n <Button\n icon={<Archive />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage || (mutations.archive.isPending && mutations.archive.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.archive.mutateAsync(definition.id))}\n >\n Archive\n </Button>\n <Switch\n aria-label={`Enable ${definition.displayLabel}`}\n checked={definition.enabled ?? false}\n disabled={\n !canManage ||\n (mutations.setProjectEnabled.isPending &&\n mutations.setProjectEnabled.variables?.id === definition.id)\n }\n onCheckedChange={enabled =>\n void runAction(() => mutations.setProjectEnabled.mutateAsync({ id: definition.id, enabled }))\n }\n />\n </div>\n </div>\n ))}\n </div>\n {active.length === 0 ? <p className=\"text-caption text-muted-foreground py-3\">No custom signals yet.</p> : null}\n </section>\n\n {archived.length > 0 ? (\n <details>\n <summary className=\"text-caption text-muted-foreground cursor-pointer\">\n Archived definitions ({archived.length})\n </summary>\n <div className=\"divide-border mt-2 divide-y\">\n {archived.map(definition => (\n <div key={definition.id} className=\"flex min-h-12 items-center justify-between gap-3 py-2\">\n <span className=\"text-caption text-muted-foreground\">{definition.displayLabel}</span>\n <Button\n icon={<ArchiveRestore />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage ||\n atLimit ||\n (mutations.restore.isPending && mutations.restore.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.restore.mutateAsync(definition.id))}\n >\n Restore\n </Button>\n </div>\n ))}\n </div>\n </details>\n ) : null}\n\n <p className=\"text-meta text-muted-foreground\">\n Enabling a signal starts collection for new traces. Entity status shows when enough generated data has been\n processed and clustered.\n </p>\n\n {creating ? (\n <SignalDefinitionFormDialog\n open\n onOpenChange={setCreateFormOpen}\n pending={mutationPending}\n error={formError}\n onCreate={async input => {\n await mutations.create.mutateAsync(input);\n }}\n onUpdate={async () => undefined}\n />\n ) : null}\n {editing ? (\n <SignalDefinitionFormDialog\n open\n definition={editing}\n onOpenChange={open => {\n if (!open) closeEditForm();\n }}\n pending={mutationPending}\n error={formError}\n onCreate={async () => undefined}\n onUpdate={async (id, input) => {\n await mutations.update.mutateAsync({ id, input });\n }}\n />\n ) : null}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-signal-settings.es.js","sources":["../../../../src/ee/signals/settings/trace-signal-settings.tsx"],"sourcesContent":["import type { TraceSignalDefinition } from '@mastra/client-js';\nimport { Settings, ArchiveRestore, Archive, Pencil, LayoutGrid } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { SignalDefinitionFormDialog } from './signal-definition-form-dialog';\nimport { useSignalManagementList, useSignalManagementMutations } from './use-signal-management';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { Notice } from '@/ds/components/Notice';\nimport { Skeleton } from '@/ds/components/Skeleton';\nimport { Switch } from '@/ds/components/Switch';\n\nexport function TraceSignalSettingsButton({ open, onClick }: { open: boolean; onClick: () => void }) {\n const { signalManagement } = useTraceIntelligence();\n if (!signalManagement) return null;\n\n return (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n tooltip=\"Signal settings\"\n aria-label=\"Signal settings\"\n aria-controls=\"trace-signal-settings\"\n aria-expanded={open}\n onClick={onClick}\n >\n <Settings aria-hidden=\"true\" />\n </Button>\n );\n}\n\nexport function TraceSignalSettingsPanel({ onClose }: { onClose: () => void }) {\n return (\n <aside id=\"trace-signal-settings\" aria-label=\"Trace signal settings\" className=\"min-h-0\">\n <DataDetailsPanel>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading className=\"items-center font-medium text-foreground\">\n <Settings aria-hidden=\"true\" /> Trace signal settings\n </DataDetailsPanel.Heading>\n <DataDetailsPanel.CloseButton onClick={onClose} tooltip=\"Close settings\" />\n </DataDetailsPanel.Header>\n <DataDetailsPanel.Content>\n <TraceSignalSettingsContent />\n </DataDetailsPanel.Content>\n </DataDetailsPanel>\n </aside>\n );\n}\n\nfunction TraceSignalSettingsContent() {\n const { signalManagement } = useTraceIntelligence();\n const query = useSignalManagementList();\n const mutations = useSignalManagementMutations();\n const [creating, setCreating] = useState(false);\n const [editing, setEditing] = useState<TraceSignalDefinition>();\n const [actionError, setActionError] = useState<string>();\n const canManage = signalManagement?.canManage ?? false;\n\n if (query.isPending) {\n return (\n <div className=\"space-y-3\" role=\"status\" aria-label=\"Loading signal settings\">\n <Skeleton className=\"h-5 w-40\" />\n <Skeleton className=\"h-16 w-full\" />\n <Skeleton className=\"h-16 w-full\" />\n </div>\n );\n }\n if (query.error || !query.data) {\n return (\n <Notice variant=\"destructive\">\n <Notice.Message>{query.error?.message ?? 'Failed to load signal settings'}</Notice.Message>\n </Notice>\n );\n }\n\n const active = query.data.definitions.filter(definition => definition.status === 'active');\n const archived = query.data.definitions.filter(definition => definition.status === 'archived');\n const limit = query.data.limits.maxDefinitionsPerOrganization;\n const atLimit = active.length >= limit;\n const mutationPending = creating ? mutations.create.isPending : mutations.update.isPending;\n const formError = creating ? mutations.create.error?.message : editing ? mutations.update.error?.message : undefined;\n const openCreateForm = () => {\n mutations.create.reset();\n setCreating(true);\n };\n const setCreateFormOpen = (open: boolean) => {\n if (!open) mutations.create.reset();\n setCreating(open);\n };\n const openEditForm = (definition: TraceSignalDefinition) => {\n mutations.update.reset();\n setEditing(definition);\n };\n const closeEditForm = () => {\n mutations.update.reset();\n setEditing(undefined);\n };\n\n const runAction = async (action: () => Promise<unknown>) => {\n setActionError(undefined);\n try {\n await action();\n } catch (error) {\n setActionError(error instanceof Error ? error.message : 'Failed to update signal settings');\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {!canManage ? (\n <Notice variant=\"info\">\n <Notice.Message>You have read-only access. An organization admin can change these settings.</Notice.Message>\n </Notice>\n ) : null}\n {actionError ? (\n <Notice variant=\"destructive\">\n <Notice.Message>{actionError}</Notice.Message>\n </Notice>\n ) : null}\n\n <section aria-labelledby=\"custom-signals-heading\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-3\">\n <div>\n <h3 id=\"custom-signals-heading\" className=\"text-subheading text-muted-foreground\">\n Custom signals\n </h3>\n <p className=\"text-meta text-muted-foreground\">\n {active.length} of {limit} active organization definitions\n </p>\n </div>\n <Button\n icon={<LayoutGrid />}\n size=\"sm\"\n variant=\"primary\"\n disabled={!canManage || atLimit}\n onClick={openCreateForm}\n >\n Create signal\n </Button>\n </div>\n {atLimit ? (\n <Notice variant=\"info\">\n <Notice.Message>Archive an active definition before creating or restoring another.</Notice.Message>\n </Notice>\n ) : null}\n <div className=\"divide-y divide-border\">\n {active.map(definition => (\n <div key={definition.id} className=\"flex min-h-16 items-center justify-between gap-4 py-2\">\n <div className=\"min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"truncate text-caption text-muted-foreground\">{definition.displayLabel}</span>\n <Badge variant=\"neutral\" size=\"sm\">\n v{definition.version}\n </Badge>\n </div>\n <p className=\"truncate text-meta text-muted-foreground\">{definition.description || definition.name}</p>\n </div>\n <div className=\"flex shrink-0 items-center gap-2\">\n <Button\n icon={<Pencil />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={!canManage}\n onClick={() => openEditForm(definition)}\n >\n Edit\n </Button>\n <Button\n icon={<Archive />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage || (mutations.archive.isPending && mutations.archive.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.archive.mutateAsync(definition.id))}\n >\n Archive\n </Button>\n <Switch\n aria-label={`Enable ${definition.displayLabel}`}\n checked={definition.enabled ?? false}\n disabled={\n !canManage ||\n (mutations.setProjectEnabled.isPending &&\n mutations.setProjectEnabled.variables?.id === definition.id)\n }\n onCheckedChange={enabled =>\n void runAction(() => mutations.setProjectEnabled.mutateAsync({ id: definition.id, enabled }))\n }\n />\n </div>\n </div>\n ))}\n </div>\n {active.length === 0 ? <p className=\"py-3 text-caption text-muted-foreground\">No custom signals yet.</p> : null}\n </section>\n\n {archived.length > 0 ? (\n <details>\n <summary className=\"cursor-pointer text-caption text-muted-foreground\">\n Archived definitions ({archived.length})\n </summary>\n <div className=\"mt-2 divide-y divide-border\">\n {archived.map(definition => (\n <div key={definition.id} className=\"flex min-h-12 items-center justify-between gap-3 py-2\">\n <span className=\"text-caption text-muted-foreground\">{definition.displayLabel}</span>\n <Button\n icon={<ArchiveRestore />}\n size=\"sm\"\n variant=\"ghost\"\n disabled={\n !canManage ||\n atLimit ||\n (mutations.restore.isPending && mutations.restore.variables === definition.id)\n }\n onClick={() => void runAction(() => mutations.restore.mutateAsync(definition.id))}\n >\n Restore\n </Button>\n </div>\n ))}\n </div>\n </details>\n ) : null}\n\n <p className=\"text-meta text-muted-foreground\">\n Enabling a signal starts collection for new traces. Entity status shows when enough generated data has been\n processed and clustered.\n </p>\n\n {creating ? (\n <SignalDefinitionFormDialog\n open\n onOpenChange={setCreateFormOpen}\n pending={mutationPending}\n error={formError}\n onCreate={async input => {\n await mutations.create.mutateAsync(input);\n }}\n onUpdate={async () => undefined}\n />\n ) : null}\n {editing ? (\n <SignalDefinitionFormDialog\n open\n definition={editing}\n onOpenChange={open => {\n if (!open) closeEditForm();\n }}\n pending={mutationPending}\n error={formError}\n onCreate={async () => undefined}\n onUpdate={async (id, input) => {\n await mutations.update.mutateAsync({ id, input });\n }}\n />\n ) : null}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ function SignalDeltaColumn({
|
|
|
36
36
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
37
37
|
"h3",
|
|
38
38
|
{
|
|
39
|
-
className: "text-column
|
|
39
|
+
className: "font-mono text-column tracking-widest uppercase",
|
|
40
40
|
style: { color: sankeyColor.nodeColor(ee_signals_signalColors.getSignalHue(signalName)) },
|
|
41
41
|
children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
42
42
|
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { "aria-label": signalName, className: "cursor-default uppercase", children: label }),
|
|
@@ -45,15 +45,15 @@ function SignalDeltaColumn({
|
|
|
45
45
|
}
|
|
46
46
|
),
|
|
47
47
|
/* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "mt-2 space-y-1.5", children: [
|
|
48
|
-
deltas.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("li", { className: "text-muted-foreground
|
|
48
|
+
deltas.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("li", { className: "text-caption text-muted-foreground", children: "No themes in either snapshot." }) : null,
|
|
49
49
|
deltas.map((delta) => {
|
|
50
50
|
const themeId = delta.themeId;
|
|
51
51
|
const card = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
52
52
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [
|
|
53
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-
|
|
54
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "
|
|
53
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-column text-foreground", title: delta.label, children: delta.label }),
|
|
54
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 font-mono text-column text-foreground tabular-nums", children: deltaLabel(delta.delta) })
|
|
55
55
|
] }),
|
|
56
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "
|
|
56
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-mono text-caption text-muted-foreground tabular-nums", children: [
|
|
57
57
|
percent(delta.fromShare),
|
|
58
58
|
" → ",
|
|
59
59
|
percent(delta.toShare)
|
|
@@ -70,12 +70,12 @@ function SignalDeltaColumn({
|
|
|
70
70
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
71
71
|
"li",
|
|
72
72
|
{
|
|
73
|
-
className: `
|
|
73
|
+
className: `rounded-lg border border-border ${delta.delta > 0 ? "bg-green-500/5" : delta.delta < 0 ? "bg-red-500/5" : "bg-card"}`,
|
|
74
74
|
children: themeId === void 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2.5 py-2", children: card }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
75
75
|
"button",
|
|
76
76
|
{
|
|
77
77
|
"aria-label": `View theme details for ${delta.label}`,
|
|
78
|
-
className: "
|
|
78
|
+
className: "block w-full cursor-pointer rounded-lg px-2.5 py-2 text-left hover:border-border-strong hover:bg-white/[0.03]",
|
|
79
79
|
onClick: () => onThemeSelect({ kind: "theme", signalName, themeId, label: delta.label }, detailIndexFor(delta)),
|
|
80
80
|
type: "button",
|
|
81
81
|
children: card
|