@mastra/playground-ui 63.0.0-alpha.2 → 63.0.0-alpha.4
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/README.md +98 -0
- package/dist/{Avatar-D6ybWljK.cjs → Avatar-0u68PVfu.cjs} +34 -42
- package/dist/Avatar-0u68PVfu.cjs.map +1 -0
- package/dist/{Avatar-C2Sz53u5.js → Avatar-BwkyFiED.js} +20 -28
- package/dist/Avatar-BwkyFiED.js.map +1 -0
- package/dist/{Button-C8QDEN9j.js → Button-60jVnaHt.js} +10 -4
- package/dist/Button-60jVnaHt.js.map +1 -0
- package/dist/{Button-BfZzgZrA.cjs → Button-CAVPKK09.cjs} +10 -4
- package/dist/Button-CAVPKK09.cjs.map +1 -0
- package/dist/{ErrorBoundary-3wDeQWo0.js → ErrorBoundary-BqNfJHRT.js} +2 -2
- package/dist/{ErrorBoundary-3wDeQWo0.js.map → ErrorBoundary-BqNfJHRT.js.map} +1 -1
- package/dist/{ErrorBoundary-BLsO6xv6.cjs → ErrorBoundary-SRNDrd4h.cjs} +2 -2
- package/dist/{ErrorBoundary-BLsO6xv6.cjs.map → ErrorBoundary-SRNDrd4h.cjs.map} +1 -1
- package/dist/{alert-dialog-j626w-Qb.cjs → alert-dialog-C-ODvRWT.cjs} +3 -3
- package/dist/{alert-dialog-j626w-Qb.cjs.map → alert-dialog-C-ODvRWT.cjs.map} +1 -1
- package/dist/{alert-dialog-R9z2SJLl.js → alert-dialog-DVAC9zdj.js} +3 -3
- package/dist/{alert-dialog-R9z2SJLl.js.map → alert-dialog-DVAC9zdj.js.map} +1 -1
- package/dist/{ask-user-card-40a18Qea.cjs → ask-user-card-BMiCYmFY.cjs} +2 -2
- package/dist/{ask-user-card-40a18Qea.cjs.map → ask-user-card-BMiCYmFY.cjs.map} +1 -1
- package/dist/{ask-user-card-xR8YiiQa.js → ask-user-card-CmfZg1wt.js} +2 -2
- package/dist/{ask-user-card-xR8YiiQa.js.map → ask-user-card-CmfZg1wt.js.map} +1 -1
- package/dist/avatar-size-CNR0U-LW.js +27 -0
- package/dist/avatar-size-CNR0U-LW.js.map +1 -0
- package/dist/avatar-size-DxStOo5A.cjs +32 -0
- package/dist/avatar-size-DxStOo5A.cjs.map +1 -0
- package/dist/{code-block-DQJ3NHRf.cjs → code-block-BuGosknt.cjs} +4 -4
- package/dist/{code-block-DQJ3NHRf.cjs.map → code-block-BuGosknt.cjs.map} +1 -1
- package/dist/{code-block-BQZUoOfS.js → code-block-vvYFcnqm.js} +4 -4
- package/dist/{code-block-BQZUoOfS.js.map → code-block-vvYFcnqm.js.map} +1 -1
- package/dist/{code-editor-D69saH4C.js → code-editor-B_v1EfzX.js} +2 -2
- package/dist/{code-editor-D69saH4C.js.map → code-editor-B_v1EfzX.js.map} +1 -1
- package/dist/{code-editor-Dg6Y6Q8z.cjs → code-editor-CH8c-KF1.cjs} +2 -2
- package/dist/{code-editor-Dg6Y6Q8z.cjs.map → code-editor-CH8c-KF1.cjs.map} +1 -1
- package/dist/{collapsible-box-B7YQWv7L.js → collapsible-box-CMmJEn3f.js} +2 -2
- package/dist/{collapsible-box-B7YQWv7L.js.map → collapsible-box-CMmJEn3f.js.map} +1 -1
- package/dist/{collapsible-box-Bu2jHdsK.cjs → collapsible-box-oUO65pxW.cjs} +2 -2
- package/dist/{collapsible-box-Bu2jHdsK.cjs.map → collapsible-box-oUO65pxW.cjs.map} +1 -1
- package/dist/{combobox-D9CFzzx8.cjs → combobox-fEMKH9nJ.cjs} +3 -3
- package/dist/{combobox-D9CFzzx8.cjs.map → combobox-fEMKH9nJ.cjs.map} +1 -1
- package/dist/{combobox-DDUIREaG.js → combobox-so2V71F7.js} +3 -3
- package/dist/{combobox-DDUIREaG.js.map → combobox-so2V71F7.js.map} +1 -1
- package/dist/{combobox-styles-BGCZADLP.cjs → combobox-styles-BJPT0TpQ.cjs} +2 -2
- package/dist/{combobox-styles-BGCZADLP.cjs.map → combobox-styles-BJPT0TpQ.cjs.map} +1 -1
- package/dist/{combobox-styles-wLpeTjOR.js → combobox-styles-BQnNIOpr.js} +2 -2
- package/dist/{combobox-styles-wLpeTjOR.js.map → combobox-styles-BQnNIOpr.js.map} +1 -1
- package/dist/{command-DbZ6CSAy.cjs → command-B_C36ppQ.cjs} +2 -2
- package/dist/{command-DbZ6CSAy.cjs.map → command-B_C36ppQ.cjs.map} +1 -1
- package/dist/{command-DtIlcv-t.js → command-DMqzDhzs.js} +2 -2
- package/dist/{command-DtIlcv-t.js.map → command-DMqzDhzs.js.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +2 -2
- 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/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/CollapsibleBox.cjs.js +1 -1
- package/dist/components/CollapsibleBox.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 +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +2 -2
- package/dist/components/Comment.es.js +2 -2
- 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 +2 -2
- package/dist/components/DataDetailsPanel.es.js +2 -2
- package/dist/components/DataList.cjs.js +15 -17
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -5
- 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 +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- 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 +2 -2
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
- package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +3 -3
- package/dist/components/FilterBar.es.js +4 -4
- package/dist/components/FormFieldBlocks.cjs.js +2 -2
- package/dist/components/FormFieldBlocks.es.js +2 -2
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +2 -2
- package/dist/components/InputNumber.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +5 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +5 -2
- package/dist/components/LogsDataList.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 +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +1 -1
- package/dist/components/PageLayout.cjs.js.map +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/PageLayout.es.js.map +1 -1
- package/dist/components/Pagination.cjs.js +17 -0
- package/dist/components/Pagination.cjs.js.map +1 -0
- package/dist/components/Pagination.d.ts +2 -0
- package/dist/components/Pagination.es.js +2 -0
- package/dist/components/Pagination.es.js.map +1 -0
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/ProductAvatar.cjs.js +19 -2
- package/dist/components/ProductAvatar.cjs.js.map +1 -1
- package/dist/components/ProductAvatar.es.js +19 -2
- package/dist/components/ProductAvatar.es.js.map +1 -1
- package/dist/components/PropertyFilter.cjs.js +3 -3
- package/dist/components/PropertyFilter.es.js +4 -4
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/SavedViews.cjs.js +2 -2
- package/dist/components/SavedViews.es.js +2 -2
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Sidebar.cjs.js +3 -3
- package/dist/components/Sidebar.es.js +3 -3
- package/dist/components/Table.cjs.js +286 -47
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js +284 -49
- package/dist/components/Table.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +6 -6
- package/dist/components/Workflow.es.js +6 -6
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +3 -3
- package/dist/components/ai/tool-call.es.js +3 -3
- package/dist/{copy-button-CUVxXN4H.cjs → copy-button-5tVWqoTk.cjs} +2 -2
- package/dist/{copy-button-CUVxXN4H.cjs.map → copy-button-5tVWqoTk.cjs.map} +1 -1
- package/dist/{copy-button-CDyuUYUr.js → copy-button-Af_Qt7G1.js} +2 -2
- package/dist/{copy-button-CDyuUYUr.js.map → copy-button-Af_Qt7G1.js.map} +1 -1
- package/dist/{data-code-section-B2Ea7FwM.cjs → data-code-section-Bs8sHDux.cjs} +5 -5
- package/dist/{data-code-section-B2Ea7FwM.cjs.map → data-code-section-Bs8sHDux.cjs.map} +1 -1
- package/dist/{data-code-section-DrJYy1dR.js → data-code-section-CqdjmClK.js} +5 -5
- package/dist/{data-code-section-DrJYy1dR.js.map → data-code-section-CqdjmClK.js.map} +1 -1
- package/dist/{data-list-top-BJCC62oy.js → data-list-B2ArWwsJ.js} +332 -5
- package/dist/data-list-B2ArWwsJ.js.map +1 -0
- package/dist/{data-list-top-Ds-NWyPO.cjs → data-list-BLfHObw8.cjs} +339 -13
- package/dist/data-list-BLfHObw8.cjs.map +1 -0
- package/dist/{data-list-skeleton-CfVsXhx1.cjs → data-list-skeleton-BGJD4qMF.cjs} +6 -6
- package/dist/{data-list-skeleton-CfVsXhx1.cjs.map → data-list-skeleton-BGJD4qMF.cjs.map} +1 -1
- package/dist/{data-list-skeleton-BmsDYJrA.js → data-list-skeleton-BNsWWamC.js} +2 -2
- package/dist/{data-list-skeleton-BmsDYJrA.js.map → data-list-skeleton-BNsWWamC.js.map} +1 -1
- package/dist/{data-panel-COU5dbUJ.js → data-panel-BdCw3F_h.js} +46 -23
- package/dist/data-panel-BdCw3F_h.js.map +1 -0
- package/dist/{data-panel-CTqb-0qN.cjs → data-panel-Wjgbl6zx.cjs} +45 -22
- package/dist/data-panel-Wjgbl6zx.cjs.map +1 -0
- package/dist/{date-time-range-picker-BvRPfy1i.cjs → date-time-range-picker-ByNvjYuV.cjs} +3 -3
- package/dist/{date-time-range-picker-BvRPfy1i.cjs.map → date-time-range-picker-ByNvjYuV.cjs.map} +1 -1
- package/dist/{date-time-range-picker-CIfaXUuy.js → date-time-range-picker-SU1Q1h1h.js} +3 -3
- package/dist/{date-time-range-picker-CIfaXUuy.js.map → date-time-range-picker-SU1Q1h1h.js.map} +1 -1
- package/dist/{dialog-DQI9ChYf.cjs → dialog-B5nLi0ER.cjs} +3 -3
- package/dist/{dialog-DQI9ChYf.cjs.map → dialog-B5nLi0ER.cjs.map} +1 -1
- package/dist/{dialog-DlZmNahd.js → dialog-Jz2ZfO-z.js} +3 -3
- package/dist/{dialog-DlZmNahd.js.map → dialog-Jz2ZfO-z.js.map} +1 -1
- package/dist/{dialog-action-c4nfPomF.js → dialog-action-BxXhAz-P.js} +3 -3
- package/dist/{dialog-action-c4nfPomF.js.map → dialog-action-BxXhAz-P.js.map} +1 -1
- package/dist/{dialog-action-gdo9CwUv.cjs → dialog-action-DdkbsKfP.cjs} +3 -3
- package/dist/{dialog-action-gdo9CwUv.cjs.map → dialog-action-DdkbsKfP.cjs.map} +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +1 -1
- package/dist/domains/auth/components/session-expired.es.js +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.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +6 -5
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +6 -5
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +3 -3
- package/dist/domains/chat/messages/message-row.es.js +3 -3
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +5 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +5 -4
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +11 -6
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +11 -6
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
- package/dist/domains/logs/components/log-data-panel.es.js +3 -3
- package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +3 -2
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.es.js +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/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
- package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/usage-card.es.js +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +5 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +5 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
- package/dist/domains/scores/components/score-data-panel.es.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
- package/dist/domains/scores/components/span-scoring.es.js +3 -3
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
- package/dist/domains/traces/components/feedback-thread.es.js +4 -4
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.es.js +3 -3
- 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 +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- 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/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.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.es.js +2 -2
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -2
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -2
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +4 -4
- package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -4
- package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -3
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +4 -3
- package/dist/domains/traces/components/trace-data-panel.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-span-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +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-thread-item-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.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-list-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +4 -5
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +3 -4
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-information.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-tree.es.js +2 -2
- package/dist/{drawer-CeUYCG-S.cjs → drawer-C6PBqg__.cjs} +2 -2
- package/dist/{drawer-CeUYCG-S.cjs.map → drawer-C6PBqg__.cjs.map} +1 -1
- package/dist/{drawer-CZlqOjd2.js → drawer-CwVDeB8H.js} +2 -2
- package/dist/{drawer-CZlqOjd2.js.map → drawer-CwVDeB8H.js.map} +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -6
- 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 +6 -8
- package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +33 -32
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +35 -34
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-model.cjs.js +7 -0
- package/dist/ee/signals/components/entity-index-model.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-model.es.js +7 -1
- package/dist/ee/signals/components/entity-index-model.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-status.cjs.js +26 -0
- package/dist/ee/signals/components/entity-index-status.cjs.js.map +1 -0
- package/dist/ee/signals/components/entity-index-status.d.ts +2 -0
- package/dist/ee/signals/components/entity-index-status.es.js +22 -0
- package/dist/ee/signals/components/entity-index-status.es.js.map +1 -0
- package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +15 -13
- 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 +15 -13
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +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/{filter-bar-chip-C_371aon.cjs → filter-bar-chip-BBErw_aR.cjs} +3 -3
- package/dist/{filter-bar-chip-C_371aon.cjs.map → filter-bar-chip-BBErw_aR.cjs.map} +1 -1
- package/dist/{filter-bar-chip-Dc6phYqZ.js → filter-bar-chip-DvRTWRwT.js} +3 -3
- package/dist/{filter-bar-chip-Dc6phYqZ.js.map → filter-bar-chip-DvRTWRwT.js.map} +1 -1
- package/dist/{input-group-BWsGYnES.js → input-group-CIIwoggO.js} +2 -2
- package/dist/{input-group-BWsGYnES.js.map → input-group-CIIwoggO.js.map} +1 -1
- package/dist/{input-group-Cy7k5JRg.cjs → input-group-DQuyC9Pz.cjs} +2 -2
- package/dist/{input-group-Cy7k5JRg.cjs.map → input-group-DQuyC9Pz.cjs.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +4 -4
- package/dist/layout/tabbed-container.es.js +4 -4
- package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
- package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-wrapper.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +1 -1
- package/dist/lib/form/components/date-field.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
- package/dist/lib/form/components/form-submit-row.es.js +1 -1
- package/dist/lib/form/components/record-field.cjs.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/{list-search-xHadeMHl.cjs → list-search-C5j3HYkb.cjs} +2 -2
- package/dist/{list-search-xHadeMHl.cjs.map → list-search-C5j3HYkb.cjs.map} +1 -1
- package/dist/{list-search-BNnMwbpv.js → list-search-Cwp-OPvC.js} +2 -2
- package/dist/{list-search-BNnMwbpv.js.map → list-search-Cwp-OPvC.js.map} +1 -1
- package/dist/{logs-data-list-C262Be3o.js → logs-data-list-B-gmgU74.js} +2 -3
- package/dist/{logs-data-list-C262Be3o.js.map → logs-data-list-B-gmgU74.js.map} +1 -1
- package/dist/{logs-data-list-DfuVMd6f.cjs → logs-data-list-CaXnNnC5.cjs} +21 -22
- package/dist/{logs-data-list-DfuVMd6f.cjs.map → logs-data-list-CaXnNnC5.cjs.map} +1 -1
- package/dist/{markdown-renderer-DaXAim8y.cjs → markdown-renderer-BXTNiZbz.cjs} +3 -3
- package/dist/{markdown-renderer-DaXAim8y.cjs.map → markdown-renderer-BXTNiZbz.cjs.map} +1 -1
- package/dist/{markdown-renderer-D5Wjk1Cs.js → markdown-renderer-Ct-q_KTF.js} +3 -3
- package/dist/{markdown-renderer-D5Wjk1Cs.js.map → markdown-renderer-Ct-q_KTF.js.map} +1 -1
- package/dist/{message-copy-button-CREuo4t5.cjs → message-copy-button-Cni-zv0j.cjs} +2 -2
- package/dist/{message-copy-button-CREuo4t5.cjs.map → message-copy-button-Cni-zv0j.cjs.map} +1 -1
- package/dist/{message-copy-button-BlwQej7y.js → message-copy-button-DDgqbtbv.js} +2 -2
- package/dist/{message-copy-button-BlwQej7y.js.map → message-copy-button-DDgqbtbv.js.map} +1 -1
- package/dist/{metrics-card-oEbbYDo7.js → metrics-card-C33VsuXf.js} +2 -2
- package/dist/{metrics-card-oEbbYDo7.js.map → metrics-card-C33VsuXf.js.map} +1 -1
- package/dist/{metrics-card-Bv2A5G41.cjs → metrics-card-CxOVpP1t.cjs} +2 -2
- package/dist/{metrics-card-Bv2A5G41.cjs.map → metrics-card-CxOVpP1t.cjs.map} +1 -1
- package/dist/new/layout/app-shell.cjs.js +9 -4
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +10 -5
- 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/{page-header-CLxPq7T5.cjs → page-header-9Q9vOrh-.cjs} +3 -9
- package/dist/page-header-9Q9vOrh-.cjs.map +1 -0
- package/dist/{page-header-Bf0zLkyY.js → page-header-d2cK2zOg.js} +3 -9
- package/dist/page-header-d2cK2zOg.js.map +1 -0
- package/dist/pagination-range-BlUsZjqD.js +191 -0
- package/dist/pagination-range-BlUsZjqD.js.map +1 -0
- package/dist/pagination-range-C0i6gunh.cjs +200 -0
- package/dist/pagination-range-C0i6gunh.cjs.map +1 -0
- package/dist/{plan-CdtX72kw.cjs → plan-CL-lbDuy.cjs} +4 -4
- package/dist/{plan-CdtX72kw.cjs.map → plan-CL-lbDuy.cjs.map} +1 -1
- package/dist/{plan-Cl3-JgbI.js → plan-TXWANP1R.js} +4 -4
- package/dist/{plan-Cl3-JgbI.js.map → plan-TXWANP1R.js.map} +1 -1
- package/dist/primitives/menu-item.cjs.js +1 -1
- package/dist/primitives/menu-item.es.js +1 -1
- package/dist/primitives/raised-surface.cjs.js +2 -0
- package/dist/primitives/raised-surface.cjs.js.map +1 -1
- package/dist/primitives/raised-surface.es.js +2 -1
- package/dist/primitives/raised-surface.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-BeLCh3zo.cjs → property-filter-applied-BBvaTC4B.cjs} +2 -2
- package/dist/{property-filter-applied-BeLCh3zo.cjs.map → property-filter-applied-BBvaTC4B.cjs.map} +1 -1
- package/dist/{property-filter-applied-CZLzY0OH.js → property-filter-applied-Ru3OQoGo.js} +2 -2
- package/dist/{property-filter-applied-CZLzY0OH.js.map → property-filter-applied-Ru3OQoGo.js.map} +1 -1
- package/dist/{reasoning-activity-DehWtcyc.cjs → reasoning-activity-CFEaSv4J.cjs} +2 -2
- package/dist/{reasoning-activity-DehWtcyc.cjs.map → reasoning-activity-CFEaSv4J.cjs.map} +1 -1
- package/dist/{reasoning-activity-CIuVSAGA.js → reasoning-activity-CHlEe011.js} +2 -2
- package/dist/{reasoning-activity-CIuVSAGA.js.map → reasoning-activity-CHlEe011.js.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{search-input-UtTJMjJu.cjs → search-input-2DhcUIvn.cjs} +2 -2
- package/dist/{search-input-UtTJMjJu.cjs.map → search-input-2DhcUIvn.cjs.map} +1 -1
- package/dist/{search-input-fqSrRTLU.js → search-input-RybUdqzg.js} +2 -2
- package/dist/{search-input-fqSrRTLU.js.map → search-input-RybUdqzg.js.map} +1 -1
- package/dist/{select-N2lgBRsg.js → select-BvYdi3X0.js} +2 -2
- package/dist/{select-N2lgBRsg.js.map → select-BvYdi3X0.js.map} +1 -1
- package/dist/{select-Cdz5I0A5.cjs → select-D5cu0K7R.cjs} +2 -2
- package/dist/{select-Cdz5I0A5.cjs.map → select-D5cu0K7R.cjs.map} +1 -1
- package/dist/{side-dialog-DldgOJIk.cjs → side-dialog-CUQGSSLs.cjs} +4 -4
- package/dist/{side-dialog-DldgOJIk.cjs.map → side-dialog-CUQGSSLs.cjs.map} +1 -1
- package/dist/{side-dialog-CWQL33WR.js → side-dialog-DSxU1To7.js} +4 -4
- package/dist/{side-dialog-CWQL33WR.js.map → side-dialog-DSxU1To7.js.map} +1 -1
- package/dist/{span-payload-primitives-sEGOgFlX.cjs → span-payload-primitives-DIxmotnO.cjs} +2 -2
- package/dist/{span-payload-primitives-sEGOgFlX.cjs.map → span-payload-primitives-DIxmotnO.cjs.map} +1 -1
- package/dist/{span-payload-primitives-WqYTBiGx.js → span-payload-primitives-dTs5UrjA.js} +2 -2
- package/dist/{span-payload-primitives-WqYTBiGx.js.map → span-payload-primitives-dTs5UrjA.js.map} +1 -1
- package/dist/src/ds/components/Avatar/avatar-group.d.ts +1 -1
- package/dist/src/ds/components/DataPanel/data-panel-context.d.ts +3 -0
- package/dist/src/ds/components/DataPanel/data-panel-root.d.ts +28 -9
- package/dist/src/ds/components/DataPanel/index.d.ts +1 -1
- package/dist/src/ds/components/Pagination/index.d.ts +2 -0
- package/dist/src/ds/components/Pagination/pagination-context.d.ts +10 -0
- package/dist/src/ds/components/Pagination/pagination-range.d.ts +8 -0
- package/dist/src/ds/components/Pagination/pagination.d.ts +23 -0
- package/dist/src/ds/components/ProductAvatar/ProductAvatar.d.ts +3 -1
- package/dist/src/ds/components/ProductAvatar/product-avatar-size.d.ts +3 -0
- package/dist/src/ds/components/Table/Cells.d.ts +6 -2
- package/dist/src/ds/components/Table/Table.d.ts +30 -7
- package/dist/src/ds/components/Table/index.d.ts +10 -0
- package/dist/src/ds/components/Table/table-align.d.ts +7 -0
- package/dist/src/ds/components/Table/table-context.d.ts +4 -0
- package/dist/src/ds/components/Table/table-pagination.d.ts +7 -0
- package/dist/src/ds/components/Table/table-row-button.d.ts +3 -0
- package/dist/src/ds/components/Table/table-row-link.d.ts +3 -0
- package/dist/src/ds/components/Table/table-row-target.d.ts +2 -0
- package/dist/src/ds/components/Table/table-sort-button.d.ts +6 -0
- package/dist/src/ds/primitives/raised-surface.d.ts +5 -0
- package/dist/src/ee/signals/components/entity-index-model.d.ts +5 -0
- package/dist/src/ee/signals/components/entity-index-status.d.ts +4 -0
- package/dist/style.css +200 -24
- package/dist/{tabs-tab-D9ndsGQu.cjs → tabs-tab-CqcY4tHE.cjs} +2 -2
- package/dist/{tabs-tab-D9ndsGQu.cjs.map → tabs-tab-CqcY4tHE.cjs.map} +1 -1
- package/dist/{tabs-tab-BchiQf0E.js → tabs-tab-CzpXzpf-.js} +2 -2
- package/dist/{tabs-tab-BchiQf0E.js.map → tabs-tab-CzpXzpf-.js.map} +1 -1
- package/dist/{thread-list-D6tyuO1M.cjs → thread-list-D-VuTZnC.cjs} +2 -2
- package/dist/{thread-list-D6tyuO1M.cjs.map → thread-list-D-VuTZnC.cjs.map} +1 -1
- package/dist/{thread-list-2YHnS82L.js → thread-list-Duf5N74Z.js} +2 -2
- package/dist/{thread-list-2YHnS82L.js.map → thread-list-Duf5N74Z.js.map} +1 -1
- package/dist/{time-picker-J7GaNaEd.js → time-picker-CF6_miti.js} +2 -2
- package/dist/{time-picker-J7GaNaEd.js.map → time-picker-CF6_miti.js.map} +1 -1
- package/dist/{time-picker-D7hr3X0_.cjs → time-picker-DbDeIg8E.cjs} +2 -2
- package/dist/{time-picker-D7hr3X0_.cjs.map → time-picker-DbDeIg8E.cjs.map} +1 -1
- package/dist/{tool-approval-BpskZTWy.cjs → tool-approval-S6ml_xyU.cjs} +3 -3
- package/dist/{tool-approval-BpskZTWy.cjs.map → tool-approval-S6ml_xyU.cjs.map} +1 -1
- package/dist/{tool-approval-nsbG8-qI.js → tool-approval-TB8r2U_c.js} +3 -3
- package/dist/{tool-approval-nsbG8-qI.js.map → tool-approval-TB8r2U_c.js.map} +1 -1
- package/dist/{tool-call-arguments-RKyYP3xh.js → tool-call-arguments-CCkJ1btR.js} +3 -3
- package/dist/{tool-call-arguments-RKyYP3xh.js.map → tool-call-arguments-CCkJ1btR.js.map} +1 -1
- package/dist/{tool-call-arguments-Bj2MA4SW.cjs → tool-call-arguments-DyukJmhY.cjs} +3 -3
- package/dist/{tool-call-arguments-Bj2MA4SW.cjs.map → tool-call-arguments-DyukJmhY.cjs.map} +1 -1
- package/dist/{tool-call-mono-BAYC7OZl.js → tool-call-mono-CASKyxNt.js} +2 -2
- package/dist/{tool-call-mono-BAYC7OZl.js.map → tool-call-mono-CASKyxNt.js.map} +1 -1
- package/dist/{tool-call-mono-C42l0zrM.cjs → tool-call-mono-D8XffwXR.cjs} +2 -2
- package/dist/{tool-call-mono-C42l0zrM.cjs.map → tool-call-mono-D8XffwXR.cjs.map} +1 -1
- package/dist/{tool-call-output-CO6lqtGh.js → tool-call-output-qgqn19KC.js} +2 -2
- package/dist/{tool-call-output-CO6lqtGh.js.map → tool-call-output-qgqn19KC.js.map} +1 -1
- package/dist/{tool-call-output-BDua5O1z.cjs → tool-call-output-xx1drXqO.cjs} +2 -2
- package/dist/{tool-call-output-BDua5O1z.cjs.map → tool-call-output-xx1drXqO.cjs.map} +1 -1
- package/dist/{tool-card-BtPh44u6.js → tool-card-BftktBoV.js} +4 -4
- package/dist/{tool-card-BtPh44u6.js.map → tool-card-BftktBoV.js.map} +1 -1
- package/dist/{tool-card-C0pNVEva.cjs → tool-card-NFkMpChW.cjs} +4 -4
- package/dist/{tool-card-C0pNVEva.cjs.map → tool-card-NFkMpChW.cjs.map} +1 -1
- package/dist/{traces-data-list-_mFOMw0U.js → traces-data-list-1X6UBM6Y.js} +2 -4
- package/dist/{traces-data-list-_mFOMw0U.js.map → traces-data-list-1X6UBM6Y.js.map} +1 -1
- package/dist/{traces-data-list-Cf_PpmSN.cjs → traces-data-list-BXSXW3E6.cjs} +17 -19
- package/dist/{traces-data-list-Cf_PpmSN.cjs.map → traces-data-list-BXSXW3E6.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-CwDL7DzY.cjs → use-workflow-graph-runtime-C8TkqjvM.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-CwDL7DzY.cjs.map → use-workflow-graph-runtime-C8TkqjvM.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js → use-workflow-graph-runtime-DX56livO.js} +3 -3
- package/dist/{use-workflow-graph-runtime-CAyNWN_Z.js.map → use-workflow-graph-runtime-DX56livO.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-CNDoMFAV.js → workflow-code-dialog-content-DG-Lmvgu.js} +3 -3
- package/dist/{workflow-code-dialog-content-CNDoMFAV.js.map → workflow-code-dialog-content-DG-Lmvgu.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-B7YU2kfe.cjs → workflow-code-dialog-content-vC_ddCYp.cjs} +3 -3
- package/dist/{workflow-code-dialog-content-B7YU2kfe.cjs.map → workflow-code-dialog-content-vC_ddCYp.cjs.map} +1 -1
- package/dist/{workflow-condition-card-DnSlcZ2s.js → workflow-condition-card-DMkPh5TM.js} +3 -3
- package/dist/{workflow-condition-card-DnSlcZ2s.js.map → workflow-condition-card-DMkPh5TM.js.map} +1 -1
- package/dist/{workflow-condition-card-CbaDpVa_.cjs → workflow-condition-card-bn5mrwKe.cjs} +3 -3
- package/dist/{workflow-condition-card-CbaDpVa_.cjs.map → workflow-condition-card-bn5mrwKe.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-BaA6YJye.js → workflow-data-edge-view-De0xCrVu.js} +2 -2
- package/dist/{workflow-data-edge-view-BaA6YJye.js.map → workflow-data-edge-view-De0xCrVu.js.map} +1 -1
- package/dist/{workflow-data-edge-view-BHvpuvmp.cjs → workflow-data-edge-view-kmB6j-ui.cjs} +2 -2
- package/dist/{workflow-data-edge-view-BHvpuvmp.cjs.map → workflow-data-edge-view-kmB6j-ui.cjs.map} +1 -1
- package/dist/{workflow-debug-controls-h7Q-RlJ2.js → workflow-debug-controls-CJTqoarc.js} +2 -2
- package/dist/{workflow-debug-controls-h7Q-RlJ2.js.map → workflow-debug-controls-CJTqoarc.js.map} +1 -1
- package/dist/{workflow-debug-controls-D9rmMeH-.cjs → workflow-debug-controls-CqaM7s-K.cjs} +2 -2
- package/dist/{workflow-debug-controls-D9rmMeH-.cjs.map → workflow-debug-controls-CqaM7s-K.cjs.map} +1 -1
- package/dist/{workflow-edge-data-button-6EDXzRxr.js → workflow-edge-data-button-CXbj67U9.js} +4 -4
- package/dist/{workflow-edge-data-button-6EDXzRxr.js.map → workflow-edge-data-button-CXbj67U9.js.map} +1 -1
- package/dist/{workflow-edge-data-button-Cz2rcoDr.cjs → workflow-edge-data-button-av1zCMfP.cjs} +4 -4
- package/dist/{workflow-edge-data-button-Cz2rcoDr.cjs.map → workflow-edge-data-button-av1zCMfP.cjs.map} +1 -1
- package/dist/{workflow-step-action-DmUW2AMM.js → workflow-step-action-AG05Ly8P.js} +2 -2
- package/dist/{workflow-step-action-DmUW2AMM.js.map → workflow-step-action-AG05Ly8P.js.map} +1 -1
- package/dist/{workflow-step-action-Ssz6Z2t5.cjs → workflow-step-action-BsBZk7j6.cjs} +2 -2
- package/dist/{workflow-step-action-Ssz6Z2t5.cjs.map → workflow-step-action-BsBZk7j6.cjs.map} +1 -1
- package/package.json +11 -11
- package/dist/Avatar-C2Sz53u5.js.map +0 -1
- package/dist/Avatar-D6ybWljK.cjs.map +0 -1
- package/dist/Button-BfZzgZrA.cjs.map +0 -1
- package/dist/Button-C8QDEN9j.js.map +0 -1
- package/dist/data-list-DkVOwk8l.cjs +0 -142
- package/dist/data-list-DkVOwk8l.cjs.map +0 -1
- package/dist/data-list-Dv2lP-dU.js +0 -138
- package/dist/data-list-Dv2lP-dU.js.map +0 -1
- package/dist/data-list-spacer-DEMquKp9.js +0 -209
- package/dist/data-list-spacer-DEMquKp9.js.map +0 -1
- package/dist/data-list-spacer-pXP8xDlg.cjs +0 -218
- package/dist/data-list-spacer-pXP8xDlg.cjs.map +0 -1
- package/dist/data-list-top-BJCC62oy.js.map +0 -1
- package/dist/data-list-top-Ds-NWyPO.cjs.map +0 -1
- package/dist/data-panel-COU5dbUJ.js.map +0 -1
- package/dist/data-panel-CTqb-0qN.cjs.map +0 -1
- package/dist/page-header-Bf0zLkyY.js.map +0 -1
- package/dist/page-header-CLxPq7T5.cjs.map +0 -1
|
@@ -2,15 +2,16 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useDatasets, useDatasetMutations } from '@mastra/react/hooks/datasets';
|
|
3
3
|
import { DatabaseIcon, X, Check } from 'lucide-react';
|
|
4
4
|
import { useState, useRef, useEffect } from 'react';
|
|
5
|
-
import { B as Button } from '../../../Button-
|
|
6
|
-
import { C as CodeEditor } from '../../../code-editor-
|
|
5
|
+
import { B as Button } from '../../../Button-60jVnaHt.js';
|
|
6
|
+
import { C as CodeEditor } from '../../../code-editor-B_v1EfzX.js';
|
|
7
7
|
import { F as Field, e as FieldLabel } from '../../../field-B89BEZg4.js';
|
|
8
8
|
import '../../../field-control-aria-DB6y41tQ.js';
|
|
9
9
|
import { F as Form } from '../../../form-CDRsQaFS.js';
|
|
10
|
-
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-
|
|
11
|
-
import { S as SideDialog } from '../../../side-dialog-
|
|
10
|
+
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-BvYdi3X0.js';
|
|
11
|
+
import { S as SideDialog } from '../../../side-dialog-DSxU1To7.js';
|
|
12
12
|
import { T as TextAndIcon } from '../../../text-and-icon-CGupOpWs.js';
|
|
13
13
|
import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
|
|
14
|
+
import { useLinkComponent } from '../../../lib/framework.es.js';
|
|
14
15
|
import { t as toast } from '../../../toast-WCmYXnuT.js';
|
|
15
16
|
|
|
16
17
|
function SaveAsDatasetItemDialog({
|
|
@@ -32,6 +33,7 @@ function SaveAsDatasetItemDialog({
|
|
|
32
33
|
const [toolMocks, setToolMocks] = useState("");
|
|
33
34
|
const { data, isLoading: isDatasetsLoading } = useDatasets();
|
|
34
35
|
const { addItem } = useDatasetMutations();
|
|
36
|
+
const { navigate, paths } = useLinkComponent();
|
|
35
37
|
const datasets = data?.datasets ?? [];
|
|
36
38
|
const prevOpenRef = useRef(false);
|
|
37
39
|
const trajectorySeededRef = useRef(false);
|
|
@@ -133,7 +135,7 @@ function SaveAsDatasetItemDialog({
|
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
137
|
try {
|
|
136
|
-
await addItem.mutateAsync({
|
|
138
|
+
const item = await addItem.mutateAsync({
|
|
137
139
|
datasetId: selectedDatasetId,
|
|
138
140
|
input: parsedInput,
|
|
139
141
|
groundTruth: parsedGroundTruth,
|
|
@@ -142,7 +144,10 @@ function SaveAsDatasetItemDialog({
|
|
|
142
144
|
...source ? { source } : {}
|
|
143
145
|
});
|
|
144
146
|
const targetDataset = datasets.find((d) => d.id === selectedDatasetId);
|
|
145
|
-
|
|
147
|
+
const itemHref = paths.datasetItemLink(selectedDatasetId, item.id);
|
|
148
|
+
toast.success(`Added to "${targetDataset?.name}"`, {
|
|
149
|
+
action: itemHref ? { label: "Go to dataset", onClick: () => navigate(itemHref) } : void 0
|
|
150
|
+
});
|
|
146
151
|
setSelectedDatasetId("");
|
|
147
152
|
setInput("{}");
|
|
148
153
|
setGroundTruth("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-as-dataset-item-dialog.es.js","sources":["../../../../src/domains/datasets/components/save-as-dataset-item-dialog.tsx"],"sourcesContent":["'use client';\n\nimport type { DatasetItemToolMock, AddDatasetItemParams } from '@mastra/client-js';\nimport { useDatasetMutations, useDatasets } from '@mastra/react/hooks/datasets';\nimport { DatabaseIcon, Check, X } from 'lucide-react';\nimport { useState, useEffect, useRef } from 'react';\nimport type { ReactNode } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { Field, FieldLabel } from '@/ds/components/Field';\nimport { Form } from '@/ds/components/Form';\nimport { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '@/ds/components/Select';\nimport { SideDialog } from '@/ds/components/SideDialog';\nimport type { SideDialogRootProps } from '@/ds/components/SideDialog';\nimport { TextAndIcon } from '@/ds/components/Text';\nimport { Txt } from '@/ds/components/Txt';\nimport { toast } from '@/utils/toast';\n\nexport type SaveAsDatasetItemDialogProps = {\n initialInput: string;\n initialGroundTruth: string;\n /** JSON string of the expected trajectory */\n initialTrajectory?: string;\n /** Whether the trajectory is still being fetched */\n trajectoryLoading?: boolean;\n /** JSON string of the tool mocks (array of { toolName, args, output }) */\n initialToolMocks?: string;\n breadcrumb: ReactNode;\n isOpen: boolean;\n onClose: () => void;\n level?: SideDialogRootProps['level'];\n source?: {\n type: 'csv' | 'json' | 'trace' | 'llm' | 'experiment-result' | 'candidate-screener';\n referenceId?: string;\n };\n};\n\nexport function SaveAsDatasetItemDialog({\n initialInput,\n initialGroundTruth,\n initialTrajectory,\n trajectoryLoading,\n initialToolMocks,\n breadcrumb,\n isOpen,\n onClose,\n level = 2,\n source,\n}: SaveAsDatasetItemDialogProps) {\n const [selectedDatasetId, setSelectedDatasetId] = useState<string>('');\n const [input, setInput] = useState('');\n const [groundTruth, setGroundTruth] = useState('');\n const [expectedTrajectory, setExpectedTrajectory] = useState('');\n const [toolMocks, setToolMocks] = useState('');\n // source is passed through — not editable in the UI\n\n const { data, isLoading: isDatasetsLoading } = useDatasets();\n const { addItem } = useDatasetMutations();\n\n const datasets = data?.datasets ?? [];\n\n const prevOpenRef = useRef(false);\n const trajectorySeededRef = useRef(false);\n const inputSeededRef = useRef(false);\n const groundTruthSeededRef = useRef(false);\n useEffect(() => {\n if (isOpen && !prevOpenRef.current) {\n setInput(initialInput);\n setGroundTruth(initialGroundTruth);\n setExpectedTrajectory(initialTrajectory ?? '');\n setToolMocks(initialToolMocks ?? '');\n trajectorySeededRef.current = !!initialTrajectory;\n inputSeededRef.current = initialInput !== '{}';\n groundTruthSeededRef.current = !!initialGroundTruth;\n }\n prevOpenRef.current = isOpen;\n if (!isOpen) {\n trajectorySeededRef.current = false;\n inputSeededRef.current = false;\n groundTruthSeededRef.current = false;\n }\n }, [isOpen, initialInput, initialGroundTruth, initialTrajectory, initialToolMocks]);\n\n // Mark fields as user-edited so async seeding won't overwrite them.\n const handleInputChange = (value: string) => {\n inputSeededRef.current = true;\n setInput(value);\n };\n\n const handleGroundTruthChange = (value: string) => {\n groundTruthSeededRef.current = true;\n setGroundTruth(value);\n };\n\n const handleExpectedTrajectoryChange = (value: string) => {\n trajectorySeededRef.current = true;\n setExpectedTrajectory(value);\n };\n\n const handleToolMocksChange = (value: string) => {\n setToolMocks(value);\n };\n\n // Seed input when it arrives asynchronously after the dialog is already open\n useEffect(() => {\n if (isOpen && initialInput !== '{}' && !inputSeededRef.current) {\n setInput(initialInput);\n inputSeededRef.current = true;\n }\n }, [isOpen, initialInput]);\n\n // Seed groundTruth when it arrives asynchronously after the dialog is already open\n useEffect(() => {\n if (isOpen && initialGroundTruth && !groundTruthSeededRef.current) {\n setGroundTruth(initialGroundTruth);\n groundTruthSeededRef.current = true;\n }\n }, [isOpen, initialGroundTruth]);\n\n // Seed trajectory when it arrives asynchronously after the dialog is already open\n useEffect(() => {\n if (isOpen && initialTrajectory && !trajectorySeededRef.current) {\n setExpectedTrajectory(initialTrajectory);\n trajectorySeededRef.current = true;\n }\n }, [isOpen, initialTrajectory]);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!selectedDatasetId) {\n toast.error('Please select a dataset');\n return;\n }\n\n let parsedInput: unknown;\n try {\n parsedInput = JSON.parse(input);\n } catch {\n toast.error('Input must be valid JSON');\n return;\n }\n\n let parsedGroundTruth: unknown | undefined;\n if (groundTruth.trim()) {\n try {\n parsedGroundTruth = JSON.parse(groundTruth);\n } catch {\n toast.error('Ground Truth must be valid JSON');\n return;\n }\n }\n\n let parsedTrajectory: AddDatasetItemParams['expectedTrajectory'];\n if (expectedTrajectory.trim()) {\n try {\n parsedTrajectory = JSON.parse(expectedTrajectory);\n } catch {\n toast.error('Expected Trajectory must be valid JSON');\n return;\n }\n }\n\n let parsedToolMocks: DatasetItemToolMock[] | undefined;\n if (toolMocks.trim()) {\n try {\n const parsed = JSON.parse(toolMocks);\n if (!Array.isArray(parsed)) {\n toast.error('Tool Mocks must be a JSON array');\n return;\n }\n parsedToolMocks = parsed as DatasetItemToolMock[];\n } catch {\n toast.error('Tool Mocks must be valid JSON');\n return;\n }\n }\n\n try {\n await addItem.mutateAsync({\n datasetId: selectedDatasetId,\n input: parsedInput,\n groundTruth: parsedGroundTruth,\n expectedTrajectory: parsedTrajectory,\n toolMocks: parsedToolMocks,\n ...(source ? { source } : {}),\n });\n\n const targetDataset = datasets.find(d => d.id === selectedDatasetId);\n toast.success(`Item saved to \"${targetDataset?.name}\"`);\n\n setSelectedDatasetId('');\n setInput('{}');\n setGroundTruth('');\n setExpectedTrajectory('');\n setToolMocks('');\n onClose();\n } catch (error) {\n toast.error(`Failed to save item: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n };\n\n const handleCancel = () => {\n setSelectedDatasetId('');\n onClose();\n };\n\n return (\n <SideDialog\n dialogTitle=\"Save as Dataset Item\"\n dialogDescription=\"Save data as a dataset item\"\n isOpen={isOpen}\n onClose={onClose}\n level={level}\n >\n <SideDialog.Top>\n {breadcrumb}›\n <TextAndIcon>\n <DatabaseIcon /> Save as Dataset Item\n </TextAndIcon>\n </SideDialog.Top>\n\n <SideDialog.Content>\n <SideDialog.Header>\n <SideDialog.Heading>\n <DatabaseIcon /> Save as Dataset Item\n </SideDialog.Heading>\n </SideDialog.Header>\n\n <Form onSubmit={handleSubmit}>\n <Field>\n <FieldLabel required>Dataset</FieldLabel>\n <Select\n value={selectedDatasetId}\n onValueChange={setSelectedDatasetId}\n disabled={addItem.isPending || isDatasetsLoading}\n >\n <SelectTrigger>\n <SelectValue placeholder={isDatasetsLoading ? 'Loading datasets...' : 'Select a dataset'} />\n </SelectTrigger>\n <SelectContent>\n {datasets.length === 0 ? (\n <Txt as=\"p\" variant=\"body\" tone=\"muted\" className=\"px-2 py-4 text-center\">\n No datasets available\n </Txt>\n ) : (\n datasets.map(dataset => (\n <SelectItem key={dataset.id} value={dataset.id}>\n {dataset.name}\n </SelectItem>\n ))\n )}\n </SelectContent>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel required>Input (JSON)</FieldLabel>\n <CodeEditor value={input} onChange={handleInputChange} showCopyButton={false} className=\"min-h-30\" />\n </Field>\n\n <Field>\n <FieldLabel>Ground Truth (JSON, optional)</FieldLabel>\n <CodeEditor\n value={groundTruth}\n onChange={handleGroundTruthChange}\n showCopyButton={false}\n className=\"min-h-20\"\n />\n </Field>\n\n <Field>\n <FieldLabel>Expected Trajectory (JSON, optional)</FieldLabel>\n <CodeEditor\n value={expectedTrajectory}\n onChange={handleExpectedTrajectoryChange}\n showCopyButton={false}\n className=\"min-h-20\"\n />\n </Field>\n\n <Field>\n <FieldLabel>Tool Mocks (JSON, optional)</FieldLabel>\n <CodeEditor\n value={toolMocks}\n onChange={handleToolMocksChange}\n showCopyButton={false}\n className=\"min-h-20\"\n />\n </Field>\n\n <div className=\"flex justify-end gap-2 pt-4\">\n <Button icon={<X />} type=\"button\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button\n icon={<Check />}\n type=\"submit\"\n variant=\"default\"\n disabled={addItem.isPending || trajectoryLoading || !selectedDatasetId || datasets.length === 0}\n >\n {addItem.isPending ? 'Saving...' : trajectoryLoading ? 'Loading...' : 'Save Item'}\n </Button>\n </div>\n </Form>\n </SideDialog.Content>\n </SideDialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"save-as-dataset-item-dialog.es.js","sources":["../../../../src/domains/datasets/components/save-as-dataset-item-dialog.tsx"],"sourcesContent":["'use client';\n\nimport type { DatasetItemToolMock, AddDatasetItemParams } from '@mastra/client-js';\nimport { useDatasetMutations, useDatasets } from '@mastra/react/hooks/datasets';\nimport { DatabaseIcon, Check, X } from 'lucide-react';\nimport { useState, useEffect, useRef } from 'react';\nimport type { ReactNode } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport { Field, FieldLabel } from '@/ds/components/Field';\nimport { Form } from '@/ds/components/Form';\nimport { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from '@/ds/components/Select';\nimport { SideDialog } from '@/ds/components/SideDialog';\nimport type { SideDialogRootProps } from '@/ds/components/SideDialog';\nimport { TextAndIcon } from '@/ds/components/Text';\nimport { Txt } from '@/ds/components/Txt';\nimport { useLinkComponent } from '@/lib/framework';\nimport { toast } from '@/utils/toast';\n\nexport type SaveAsDatasetItemDialogProps = {\n initialInput: string;\n initialGroundTruth: string;\n /** JSON string of the expected trajectory */\n initialTrajectory?: string;\n /** Whether the trajectory is still being fetched */\n trajectoryLoading?: boolean;\n /** JSON string of the tool mocks (array of { toolName, args, output }) */\n initialToolMocks?: string;\n breadcrumb: ReactNode;\n isOpen: boolean;\n onClose: () => void;\n level?: SideDialogRootProps['level'];\n source?: {\n type: 'csv' | 'json' | 'trace' | 'llm' | 'experiment-result' | 'candidate-screener';\n referenceId?: string;\n };\n};\n\nexport function SaveAsDatasetItemDialog({\n initialInput,\n initialGroundTruth,\n initialTrajectory,\n trajectoryLoading,\n initialToolMocks,\n breadcrumb,\n isOpen,\n onClose,\n level = 2,\n source,\n}: SaveAsDatasetItemDialogProps) {\n const [selectedDatasetId, setSelectedDatasetId] = useState<string>('');\n const [input, setInput] = useState('');\n const [groundTruth, setGroundTruth] = useState('');\n const [expectedTrajectory, setExpectedTrajectory] = useState('');\n const [toolMocks, setToolMocks] = useState('');\n // source is passed through — not editable in the UI\n\n const { data, isLoading: isDatasetsLoading } = useDatasets();\n const { addItem } = useDatasetMutations();\n const { navigate, paths } = useLinkComponent();\n\n const datasets = data?.datasets ?? [];\n\n const prevOpenRef = useRef(false);\n const trajectorySeededRef = useRef(false);\n const inputSeededRef = useRef(false);\n const groundTruthSeededRef = useRef(false);\n useEffect(() => {\n if (isOpen && !prevOpenRef.current) {\n setInput(initialInput);\n setGroundTruth(initialGroundTruth);\n setExpectedTrajectory(initialTrajectory ?? '');\n setToolMocks(initialToolMocks ?? '');\n trajectorySeededRef.current = !!initialTrajectory;\n inputSeededRef.current = initialInput !== '{}';\n groundTruthSeededRef.current = !!initialGroundTruth;\n }\n prevOpenRef.current = isOpen;\n if (!isOpen) {\n trajectorySeededRef.current = false;\n inputSeededRef.current = false;\n groundTruthSeededRef.current = false;\n }\n }, [isOpen, initialInput, initialGroundTruth, initialTrajectory, initialToolMocks]);\n\n // Mark fields as user-edited so async seeding won't overwrite them.\n const handleInputChange = (value: string) => {\n inputSeededRef.current = true;\n setInput(value);\n };\n\n const handleGroundTruthChange = (value: string) => {\n groundTruthSeededRef.current = true;\n setGroundTruth(value);\n };\n\n const handleExpectedTrajectoryChange = (value: string) => {\n trajectorySeededRef.current = true;\n setExpectedTrajectory(value);\n };\n\n const handleToolMocksChange = (value: string) => {\n setToolMocks(value);\n };\n\n // Seed input when it arrives asynchronously after the dialog is already open\n useEffect(() => {\n if (isOpen && initialInput !== '{}' && !inputSeededRef.current) {\n setInput(initialInput);\n inputSeededRef.current = true;\n }\n }, [isOpen, initialInput]);\n\n // Seed groundTruth when it arrives asynchronously after the dialog is already open\n useEffect(() => {\n if (isOpen && initialGroundTruth && !groundTruthSeededRef.current) {\n setGroundTruth(initialGroundTruth);\n groundTruthSeededRef.current = true;\n }\n }, [isOpen, initialGroundTruth]);\n\n // Seed trajectory when it arrives asynchronously after the dialog is already open\n useEffect(() => {\n if (isOpen && initialTrajectory && !trajectorySeededRef.current) {\n setExpectedTrajectory(initialTrajectory);\n trajectorySeededRef.current = true;\n }\n }, [isOpen, initialTrajectory]);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n\n if (!selectedDatasetId) {\n toast.error('Please select a dataset');\n return;\n }\n\n let parsedInput: unknown;\n try {\n parsedInput = JSON.parse(input);\n } catch {\n toast.error('Input must be valid JSON');\n return;\n }\n\n let parsedGroundTruth: unknown | undefined;\n if (groundTruth.trim()) {\n try {\n parsedGroundTruth = JSON.parse(groundTruth);\n } catch {\n toast.error('Ground Truth must be valid JSON');\n return;\n }\n }\n\n let parsedTrajectory: AddDatasetItemParams['expectedTrajectory'];\n if (expectedTrajectory.trim()) {\n try {\n parsedTrajectory = JSON.parse(expectedTrajectory);\n } catch {\n toast.error('Expected Trajectory must be valid JSON');\n return;\n }\n }\n\n let parsedToolMocks: DatasetItemToolMock[] | undefined;\n if (toolMocks.trim()) {\n try {\n const parsed = JSON.parse(toolMocks);\n if (!Array.isArray(parsed)) {\n toast.error('Tool Mocks must be a JSON array');\n return;\n }\n parsedToolMocks = parsed as DatasetItemToolMock[];\n } catch {\n toast.error('Tool Mocks must be valid JSON');\n return;\n }\n }\n\n try {\n const item = await addItem.mutateAsync({\n datasetId: selectedDatasetId,\n input: parsedInput,\n groundTruth: parsedGroundTruth,\n expectedTrajectory: parsedTrajectory,\n toolMocks: parsedToolMocks,\n ...(source ? { source } : {}),\n });\n\n const targetDataset = datasets.find(d => d.id === selectedDatasetId);\n // Opens the dataset with the new item's drawer; apps without that route return ''.\n const itemHref = paths.datasetItemLink(selectedDatasetId, item.id);\n toast.success(`Added to \"${targetDataset?.name}\"`, {\n action: itemHref ? { label: 'Go to dataset', onClick: () => navigate(itemHref) } : undefined,\n });\n\n setSelectedDatasetId('');\n setInput('{}');\n setGroundTruth('');\n setExpectedTrajectory('');\n setToolMocks('');\n onClose();\n } catch (error) {\n toast.error(`Failed to save item: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n };\n\n const handleCancel = () => {\n setSelectedDatasetId('');\n onClose();\n };\n\n return (\n <SideDialog\n dialogTitle=\"Save as Dataset Item\"\n dialogDescription=\"Save data as a dataset item\"\n isOpen={isOpen}\n onClose={onClose}\n level={level}\n >\n <SideDialog.Top>\n {breadcrumb}›\n <TextAndIcon>\n <DatabaseIcon /> Save as Dataset Item\n </TextAndIcon>\n </SideDialog.Top>\n\n <SideDialog.Content>\n <SideDialog.Header>\n <SideDialog.Heading>\n <DatabaseIcon /> Save as Dataset Item\n </SideDialog.Heading>\n </SideDialog.Header>\n\n <Form onSubmit={handleSubmit}>\n <Field>\n <FieldLabel required>Dataset</FieldLabel>\n <Select\n value={selectedDatasetId}\n onValueChange={setSelectedDatasetId}\n disabled={addItem.isPending || isDatasetsLoading}\n >\n <SelectTrigger>\n <SelectValue placeholder={isDatasetsLoading ? 'Loading datasets...' : 'Select a dataset'} />\n </SelectTrigger>\n <SelectContent>\n {datasets.length === 0 ? (\n <Txt as=\"p\" variant=\"body\" tone=\"muted\" className=\"px-2 py-4 text-center\">\n No datasets available\n </Txt>\n ) : (\n datasets.map(dataset => (\n <SelectItem key={dataset.id} value={dataset.id}>\n {dataset.name}\n </SelectItem>\n ))\n )}\n </SelectContent>\n </Select>\n </Field>\n\n <Field>\n <FieldLabel required>Input (JSON)</FieldLabel>\n <CodeEditor value={input} onChange={handleInputChange} showCopyButton={false} className=\"min-h-30\" />\n </Field>\n\n <Field>\n <FieldLabel>Ground Truth (JSON, optional)</FieldLabel>\n <CodeEditor\n value={groundTruth}\n onChange={handleGroundTruthChange}\n showCopyButton={false}\n className=\"min-h-20\"\n />\n </Field>\n\n <Field>\n <FieldLabel>Expected Trajectory (JSON, optional)</FieldLabel>\n <CodeEditor\n value={expectedTrajectory}\n onChange={handleExpectedTrajectoryChange}\n showCopyButton={false}\n className=\"min-h-20\"\n />\n </Field>\n\n <Field>\n <FieldLabel>Tool Mocks (JSON, optional)</FieldLabel>\n <CodeEditor\n value={toolMocks}\n onChange={handleToolMocksChange}\n showCopyButton={false}\n className=\"min-h-20\"\n />\n </Field>\n\n <div className=\"flex justify-end gap-2 pt-4\">\n <Button icon={<X />} type=\"button\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button\n icon={<Check />}\n type=\"submit\"\n variant=\"default\"\n disabled={addItem.isPending || trajectoryLoading || !selectedDatasetId || datasets.length === 0}\n >\n {addItem.isPending ? 'Saving...' : trajectoryLoading ? 'Loading...' : 'Save Item'}\n </Button>\n </div>\n </Form>\n </SideDialog.Content>\n </SideDialog>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@ 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-
|
|
8
|
+
const Button = require('../../../Button-CAVPKK09.cjs');
|
|
9
9
|
const buttonsGroup = require('../../../buttons-group-C2lPe7sm.cjs');
|
|
10
|
-
const copyButton = require('../../../copy-button-
|
|
10
|
+
const copyButton = require('../../../copy-button-5tVWqoTk.cjs');
|
|
11
11
|
const dataKeysAndValues = require('../../../data-keys-and-values-C1I--hWn.cjs');
|
|
12
|
-
const dataPanel = require('../../../data-panel-
|
|
12
|
+
const dataPanel = require('../../../data-panel-Wjgbl6zx.cjs');
|
|
13
13
|
const Txt = require('../../../Txt-DXjXpX9r.cjs');
|
|
14
14
|
const utils_dateFormat = require('../../../utils/date-format.cjs.js');
|
|
15
15
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { ArrowRightIcon } from 'lucide-react';
|
|
3
3
|
import { Fragment as Fragment$1 } from 'react';
|
|
4
|
-
import { B as Button } from '../../../Button-
|
|
4
|
+
import { B as Button } from '../../../Button-60jVnaHt.js';
|
|
5
5
|
import { B as ButtonsGroup } from '../../../buttons-group-BU9ErJSH.js';
|
|
6
|
-
import { C as CopyButton } from '../../../copy-button-
|
|
6
|
+
import { C as CopyButton } from '../../../copy-button-Af_Qt7G1.js';
|
|
7
7
|
import { D as DataKeysAndValues } from '../../../data-keys-and-values-B1u00ihh.js';
|
|
8
|
-
import { D as DataPanel } from '../../../data-panel-
|
|
8
|
+
import { D as DataPanel } from '../../../data-panel-BdCw3F_h.js';
|
|
9
9
|
import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
|
|
10
10
|
import { formatTimestampPrecise } from '../../../utils/date-format.es.js';
|
|
11
11
|
|
|
@@ -5,9 +5,10 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const reactVirtual = require('@tanstack/react-virtual');
|
|
7
7
|
const React = require('react');
|
|
8
|
-
|
|
8
|
+
require('../../../data-list-BLfHObw8.cjs');
|
|
9
|
+
const dataListSkeleton = require('../../../data-list-skeleton-BGJD4qMF.cjs');
|
|
9
10
|
const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
|
|
10
|
-
const logsDataList = require('../../../logs-data-list-
|
|
11
|
+
const logsDataList = require('../../../logs-data-list-CaXnNnC5.cjs');
|
|
11
12
|
|
|
12
13
|
const COLUMNS = "6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)";
|
|
13
14
|
const ROW_HEIGHT = 36;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs-list-view.cjs.js","sources":["../../../../src/domains/logs/components/logs-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { useEffect, useRef } from 'react';\nimport type { LogRecord } from '../types';\nimport { useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { LogsDataList, LogsDataListSkeleton } from '@/ds/components/LogsDataList';\n\n// Fixed widths on non-flex columns prevent track shifts as the virtualizer swaps rows in/out.\nconst COLUMNS = '6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)';\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n\nexport interface LogsListViewProps {\n logs: LogRecord[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n /** Stable per-render id for each log — used for React keys and for matching against `featuredLogId`.\n * Build with `useLogsListNavigation`. */\n logIdMap: Map<LogRecord, string>;\n /** Currently featured/selected log — its row gets the highlighted background. */\n featuredLogId?: string | null;\n /** Called when a row is clicked. The current toggle + trace-sync logic is the consumer's call. */\n onLogClick: (log: LogRecord) => void;\n /** Current timestamp sort direction. When `onSortChange` is provided the Date/Time headers become sortable. */\n timestampSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'timestamp') => void;\n}\n\n/**\n * Virtualized presentational list. Renders only the visible window of logs via\n * TanStack Virtual, sandwiched between top/bottom Spacers that preserve total\n * scroll height. Owns no state and fetches no data.\n */\nexport function LogsListView({\n logs,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n logIdMap,\n featuredLogId,\n onLogClick,\n timestampSort,\n onSortChange,\n}: LogsListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n\n const virtualizer = useVirtualizer({\n count: logs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: logs.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <LogsDataListSkeleton columns={COLUMNS} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <LogsDataList columns={COLUMNS} scrollRef={scrollRef} className=\"min-w-0\" fit=\"container\">\n <LogsDataList.Top>\n {onSortChange ? (\n <LogsDataList.SortableTopCell sortKey=\"timestamp\" sort={timestampSort} onSortChange={onSortChange}>\n Date\n </LogsDataList.SortableTopCell>\n ) : (\n <LogsDataList.TopCell>Date</LogsDataList.TopCell>\n )}\n <LogsDataList.TopCell>Time</LogsDataList.TopCell>\n <LogsDataList.TopCell>Level</LogsDataList.TopCell>\n <LogsDataList.TopCell>Entity</LogsDataList.TopCell>\n <LogsDataList.TopCell>Message</LogsDataList.TopCell>\n <LogsDataList.TopCell>Data</LogsDataList.TopCell>\n </LogsDataList.Top>\n\n {logs.length === 0 ? (\n <LogsDataList.NoMatch message=\"No logs match your search\" />\n ) : (\n <>\n <LogsDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const log = logs[vi.index];\n if (!log) return null;\n const id = logIdMap.get(log);\n // Defensive: consumer is expected to build `logIdMap` from the same `logs` list\n // (via `useLogsListNavigation`), but if they drift we'd rather drop the row than\n // ship a missing-key warning and broken selection highlighting.\n if (!id) return null;\n const isFeatured = id === featuredLogId;\n\n return (\n <LogsDataList.RowButton\n key={id}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onLogClick(log)}\n featured={isFeatured}\n variant={log.level === 'error' || log.level === 'fatal' ? 'error' : 'default'}\n >\n <LogsDataList.DateCell timestamp={log.timestamp} />\n <LogsDataList.TimeCell timestamp={log.timestamp} />\n <LogsDataList.LevelCell level={log.level} />\n <LogsDataList.EntityCell entityType={log.entityType} entityName={log.entityName} />\n <LogsDataList.MessageCell message={log.message} />\n <LogsDataList.DataCell data={log.data} />\n </LogsDataList.RowButton>\n );\n })}\n <LogsDataList.Spacer height={paddingBottom} />\n </>\n )}\n <LogsDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </LogsDataList>\n );\n}\n"],"names":["useRef","useVirtualizer","useDataListKeyboard","useEffect","jsx","LogsDataListSkeleton","jsxs","LogsDataList","Fragment"],"mappings":";;;;;;;;;;;AAQA,MAAM,OAAA,GAAU,wDAAA;AAEhB,MAAM,UAAA,GAAa,EAAA;AACnB,MAAM,QAAA,GAAW,CAAA;AAyBV,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,SAAA,GAAYA,aAA8B,IAAI,CAAA;AAEpD,EAAA,MAAM,cAAcC,2BAAA,CAAe;AAAA,IACjC,OAAO,IAAA,CAAK,MAAA;AAAA,IACZ,gBAAA,EAAkB,MAAM,SAAA,CAAU,OAAA;AAAA,IAClC,cAAc,MAAM,UAAA;AAAA,IACpB,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,EAAE,WAAA,EAAY,GAAIC,uCAAA,CAAoB;AAAA,IAC1C,OAAO,IAAA,CAAK,MAAA;AAAA,IACZ,YAAA,EAAc,SAAA;AAAA,IACd,UAAA,EAAY,CAAA,KAAA,KAAS,WAAA,CAAY,aAAA,CAAc,KAAK,CAAA;AAAA,IACpD,MAAA,EAAQ;AAAA,GACT,CAAA;AAYD,EAAA,MAAM,aAAA,GAAgBF,aAAO,SAAS,CAAA;AACtC,EAAAG,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,aAAA,CAAc,OAAA,IAAW,CAAC,SAAA,EAAW;AACvC,MAAA,SAAA,CAAU,OAAA,EAAS,aAAA,CAAc,IAAI,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,IACtD;AACA,IAAA,aAAA,CAAc,OAAA,GAAU,SAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBAAOC,cAAA,CAACC,iCAAA,EAAA,EAAqB,OAAA,EAAS,OAAA,EAAS,KAAI,WAAA,EAAY,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,YAAA,GAAe,YAAY,eAAA,EAAgB;AACjD,EAAA,MAAM,SAAA,GAAY,YAAY,YAAA,EAAa;AAC3C,EAAA,MAAM,UAAA,GAAa,YAAA,CAAa,CAAC,CAAA,EAAG,KAAA,IAAS,CAAA;AAC7C,EAAA,MAAM,aAAA,GACJ,YAAA,CAAa,MAAA,GAAS,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,IAAa,YAAA,CAAa,aAAa,MAAA,GAAS,CAAC,CAAA,EAAG,GAAA,IAAO,EAAE,CAAA,GAAI,CAAA;AAEzG,EAAA,uBACEC,eAAA,CAACC,6BAAa,OAAA,EAAS,OAAA,EAAS,WAAsB,SAAA,EAAU,SAAA,EAAU,KAAI,WAAA,EAC5E,QAAA,EAAA;AAAA,oBAAAD,eAAA,CAACC,yBAAA,CAAa,KAAb,EACE,QAAA,EAAA;AAAA,MAAA,YAAA,mBACCH,cAAA,CAACG,yBAAA,CAAa,eAAA,EAAb,EAA6B,SAAQ,WAAA,EAAY,IAAA,EAAM,aAAA,EAAe,YAAA,EAA4B,kBAEnG,CAAA,mBAEAH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBAE5BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBAC1BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,sBAC3BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,sBAC5BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,sBAC7BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,MAAA,EAAI;AAAA,KAAA,EAC5B,CAAA;AAAA,IAEC,IAAA,CAAK,MAAA,KAAW,CAAA,mBACfH,cAAA,CAACG,yBAAA,CAAa,SAAb,EAAqB,OAAA,EAAQ,2BAAA,EAA4B,CAAA,mBAE1DD,eAAA,CAAAE,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAJ,cAAA,CAACG,yBAAA,CAAa,MAAA,EAAb,EAAoB,MAAA,EAAQ,UAAA,EAAY,CAAA;AAAA,MACxC,YAAA,CAAa,IAAI,CAAA,EAAA,KAAM;AACtB,QAAA,MAAM,GAAA,GAAM,IAAA,CAAK,EAAA,CAAG,KAAK,CAAA;AACzB,QAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,QAAA,MAAM,EAAA,GAAK,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA;AAI3B,QAAA,IAAI,CAAC,IAAI,OAAO,IAAA;AAChB,QAAA,MAAM,aAAa,EAAA,KAAO,aAAA;AAE1B,QAAA,uBACED,eAAA;AAAA,UAACC,yBAAA,CAAa,SAAA;AAAA,UAAb;AAAA,YAEC,KAAK,WAAA,CAAY,cAAA;AAAA,YACjB,cAAY,EAAA,CAAG,KAAA;AAAA,YACd,GAAG,WAAA,CAAY,EAAA,CAAG,KAAK,CAAA;AAAA,YACxB,OAAA,EAAS,MAAM,UAAA,CAAW,GAAG,CAAA;AAAA,YAC7B,QAAA,EAAU,UAAA;AAAA,YACV,SAAS,GAAA,CAAI,KAAA,KAAU,WAAW,GAAA,CAAI,KAAA,KAAU,UAAU,OAAA,GAAU,SAAA;AAAA,YAEpE,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACG,yBAAA,CAAa,QAAA,EAAb,EAAsB,SAAA,EAAW,IAAI,SAAA,EAAW,CAAA;AAAA,6CAChDA,yBAAA,CAAa,QAAA,EAAb,EAAsB,SAAA,EAAW,IAAI,SAAA,EAAW,CAAA;AAAA,6CAChDA,yBAAA,CAAa,SAAA,EAAb,EAAuB,KAAA,EAAO,IAAI,KAAA,EAAO,CAAA;AAAA,8BAC1CH,cAAA,CAACG,0BAAa,UAAA,EAAb,EAAwB,YAAY,GAAA,CAAI,UAAA,EAAY,UAAA,EAAY,GAAA,CAAI,UAAA,EAAY,CAAA;AAAA,6CAChFA,yBAAA,CAAa,WAAA,EAAb,EAAyB,OAAA,EAAS,IAAI,OAAA,EAAS,CAAA;AAAA,6CAC/CA,yBAAA,CAAa,QAAA,EAAb,EAAsB,IAAA,EAAM,IAAI,IAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAblC;AAAA,SAcP;AAAA,MAEJ,CAAC,CAAA;AAAA,sBACDH,cAAA,CAACG,yBAAA,CAAa,MAAA,EAAb,EAAoB,QAAQ,aAAA,EAAe;AAAA,KAAA,EAC9C,CAAA;AAAA,oBAEFH,cAAA;AAAA,MAACG,yBAAA,CAAa,eAAA;AAAA,MAAb;AAAA,QACC,SAAA,EAAW,kBAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACT;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"logs-list-view.cjs.js","sources":["../../../../src/domains/logs/components/logs-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { useEffect, useRef } from 'react';\nimport type { LogRecord } from '../types';\nimport { useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { LogsDataList, LogsDataListSkeleton } from '@/ds/components/LogsDataList';\n\n// Fixed widths on non-flex columns prevent track shifts as the virtualizer swaps rows in/out.\nconst COLUMNS = '6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)';\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n\nexport interface LogsListViewProps {\n logs: LogRecord[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n /** Stable per-render id for each log — used for React keys and for matching against `featuredLogId`.\n * Build with `useLogsListNavigation`. */\n logIdMap: Map<LogRecord, string>;\n /** Currently featured/selected log — its row gets the highlighted background. */\n featuredLogId?: string | null;\n /** Called when a row is clicked. The current toggle + trace-sync logic is the consumer's call. */\n onLogClick: (log: LogRecord) => void;\n /** Current timestamp sort direction. When `onSortChange` is provided the Date/Time headers become sortable. */\n timestampSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'timestamp') => void;\n}\n\n/**\n * Virtualized presentational list. Renders only the visible window of logs via\n * TanStack Virtual, sandwiched between top/bottom Spacers that preserve total\n * scroll height. Owns no state and fetches no data.\n */\nexport function LogsListView({\n logs,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n logIdMap,\n featuredLogId,\n onLogClick,\n timestampSort,\n onSortChange,\n}: LogsListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n\n const virtualizer = useVirtualizer({\n count: logs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: logs.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <LogsDataListSkeleton columns={COLUMNS} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <LogsDataList columns={COLUMNS} scrollRef={scrollRef} className=\"min-w-0\" fit=\"container\">\n <LogsDataList.Top>\n {onSortChange ? (\n <LogsDataList.SortableTopCell sortKey=\"timestamp\" sort={timestampSort} onSortChange={onSortChange}>\n Date\n </LogsDataList.SortableTopCell>\n ) : (\n <LogsDataList.TopCell>Date</LogsDataList.TopCell>\n )}\n <LogsDataList.TopCell>Time</LogsDataList.TopCell>\n <LogsDataList.TopCell>Level</LogsDataList.TopCell>\n <LogsDataList.TopCell>Entity</LogsDataList.TopCell>\n <LogsDataList.TopCell>Message</LogsDataList.TopCell>\n <LogsDataList.TopCell>Data</LogsDataList.TopCell>\n </LogsDataList.Top>\n\n {logs.length === 0 ? (\n <LogsDataList.NoMatch message=\"No logs match your search\" />\n ) : (\n <>\n <LogsDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const log = logs[vi.index];\n if (!log) return null;\n const id = logIdMap.get(log);\n // Defensive: consumer is expected to build `logIdMap` from the same `logs` list\n // (via `useLogsListNavigation`), but if they drift we'd rather drop the row than\n // ship a missing-key warning and broken selection highlighting.\n if (!id) return null;\n const isFeatured = id === featuredLogId;\n\n return (\n <LogsDataList.RowButton\n key={id}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onLogClick(log)}\n featured={isFeatured}\n variant={log.level === 'error' || log.level === 'fatal' ? 'error' : 'default'}\n >\n <LogsDataList.DateCell timestamp={log.timestamp} />\n <LogsDataList.TimeCell timestamp={log.timestamp} />\n <LogsDataList.LevelCell level={log.level} />\n <LogsDataList.EntityCell entityType={log.entityType} entityName={log.entityName} />\n <LogsDataList.MessageCell message={log.message} />\n <LogsDataList.DataCell data={log.data} />\n </LogsDataList.RowButton>\n );\n })}\n <LogsDataList.Spacer height={paddingBottom} />\n </>\n )}\n <LogsDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </LogsDataList>\n );\n}\n"],"names":["useRef","useVirtualizer","useDataListKeyboard","useEffect","jsx","LogsDataListSkeleton","jsxs","LogsDataList","Fragment"],"mappings":";;;;;;;;;;;;AAQA,MAAM,OAAA,GAAU,wDAAA;AAEhB,MAAM,UAAA,GAAa,EAAA;AACnB,MAAM,QAAA,GAAW,CAAA;AAyBV,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,SAAA,GAAYA,aAA8B,IAAI,CAAA;AAEpD,EAAA,MAAM,cAAcC,2BAAA,CAAe;AAAA,IACjC,OAAO,IAAA,CAAK,MAAA;AAAA,IACZ,gBAAA,EAAkB,MAAM,SAAA,CAAU,OAAA;AAAA,IAClC,cAAc,MAAM,UAAA;AAAA,IACpB,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,EAAE,WAAA,EAAY,GAAIC,uCAAA,CAAoB;AAAA,IAC1C,OAAO,IAAA,CAAK,MAAA;AAAA,IACZ,YAAA,EAAc,SAAA;AAAA,IACd,UAAA,EAAY,CAAA,KAAA,KAAS,WAAA,CAAY,aAAA,CAAc,KAAK,CAAA;AAAA,IACpD,MAAA,EAAQ;AAAA,GACT,CAAA;AAYD,EAAA,MAAM,aAAA,GAAgBF,aAAO,SAAS,CAAA;AACtC,EAAAG,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,aAAA,CAAc,OAAA,IAAW,CAAC,SAAA,EAAW;AACvC,MAAA,SAAA,CAAU,OAAA,EAAS,aAAA,CAAc,IAAI,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,IACtD;AACA,IAAA,aAAA,CAAc,OAAA,GAAU,SAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBAAOC,cAAA,CAACC,iCAAA,EAAA,EAAqB,OAAA,EAAS,OAAA,EAAS,KAAI,WAAA,EAAY,CAAA;AAAA,EACjE;AAEA,EAAA,MAAM,YAAA,GAAe,YAAY,eAAA,EAAgB;AACjD,EAAA,MAAM,SAAA,GAAY,YAAY,YAAA,EAAa;AAC3C,EAAA,MAAM,UAAA,GAAa,YAAA,CAAa,CAAC,CAAA,EAAG,KAAA,IAAS,CAAA;AAC7C,EAAA,MAAM,aAAA,GACJ,YAAA,CAAa,MAAA,GAAS,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,EAAG,SAAA,IAAa,YAAA,CAAa,aAAa,MAAA,GAAS,CAAC,CAAA,EAAG,GAAA,IAAO,EAAE,CAAA,GAAI,CAAA;AAEzG,EAAA,uBACEC,eAAA,CAACC,6BAAa,OAAA,EAAS,OAAA,EAAS,WAAsB,SAAA,EAAU,SAAA,EAAU,KAAI,WAAA,EAC5E,QAAA,EAAA;AAAA,oBAAAD,eAAA,CAACC,yBAAA,CAAa,KAAb,EACE,QAAA,EAAA;AAAA,MAAA,YAAA,mBACCH,cAAA,CAACG,yBAAA,CAAa,eAAA,EAAb,EAA6B,SAAQ,WAAA,EAAY,IAAA,EAAM,aAAA,EAAe,YAAA,EAA4B,kBAEnG,CAAA,mBAEAH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBAE5BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,sBAC1BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,sBAC3BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,sBAC5BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,sBAC7BH,cAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,QAAA,EAAA,MAAA,EAAI;AAAA,KAAA,EAC5B,CAAA;AAAA,IAEC,IAAA,CAAK,MAAA,KAAW,CAAA,mBACfH,cAAA,CAACG,yBAAA,CAAa,SAAb,EAAqB,OAAA,EAAQ,2BAAA,EAA4B,CAAA,mBAE1DD,eAAA,CAAAE,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAJ,cAAA,CAACG,yBAAA,CAAa,MAAA,EAAb,EAAoB,MAAA,EAAQ,UAAA,EAAY,CAAA;AAAA,MACxC,YAAA,CAAa,IAAI,CAAA,EAAA,KAAM;AACtB,QAAA,MAAM,GAAA,GAAM,IAAA,CAAK,EAAA,CAAG,KAAK,CAAA;AACzB,QAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,QAAA,MAAM,EAAA,GAAK,QAAA,CAAS,GAAA,CAAI,GAAG,CAAA;AAI3B,QAAA,IAAI,CAAC,IAAI,OAAO,IAAA;AAChB,QAAA,MAAM,aAAa,EAAA,KAAO,aAAA;AAE1B,QAAA,uBACED,eAAA;AAAA,UAACC,yBAAA,CAAa,SAAA;AAAA,UAAb;AAAA,YAEC,KAAK,WAAA,CAAY,cAAA;AAAA,YACjB,cAAY,EAAA,CAAG,KAAA;AAAA,YACd,GAAG,WAAA,CAAY,EAAA,CAAG,KAAK,CAAA;AAAA,YACxB,OAAA,EAAS,MAAM,UAAA,CAAW,GAAG,CAAA;AAAA,YAC7B,QAAA,EAAU,UAAA;AAAA,YACV,SAAS,GAAA,CAAI,KAAA,KAAU,WAAW,GAAA,CAAI,KAAA,KAAU,UAAU,OAAA,GAAU,SAAA;AAAA,YAEpE,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACG,yBAAA,CAAa,QAAA,EAAb,EAAsB,SAAA,EAAW,IAAI,SAAA,EAAW,CAAA;AAAA,6CAChDA,yBAAA,CAAa,QAAA,EAAb,EAAsB,SAAA,EAAW,IAAI,SAAA,EAAW,CAAA;AAAA,6CAChDA,yBAAA,CAAa,SAAA,EAAb,EAAuB,KAAA,EAAO,IAAI,KAAA,EAAO,CAAA;AAAA,8BAC1CH,cAAA,CAACG,0BAAa,UAAA,EAAb,EAAwB,YAAY,GAAA,CAAI,UAAA,EAAY,UAAA,EAAY,GAAA,CAAI,UAAA,EAAY,CAAA;AAAA,6CAChFA,yBAAA,CAAa,WAAA,EAAb,EAAyB,OAAA,EAAS,IAAI,OAAA,EAAS,CAAA;AAAA,6CAC/CA,yBAAA,CAAa,QAAA,EAAb,EAAsB,IAAA,EAAM,IAAI,IAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAblC;AAAA,SAcP;AAAA,MAEJ,CAAC,CAAA;AAAA,sBACDH,cAAA,CAACG,yBAAA,CAAa,MAAA,EAAb,EAAoB,QAAQ,aAAA,EAAe;AAAA,KAAA,EAC9C,CAAA;AAAA,oBAEFH,cAAA;AAAA,MAACG,yBAAA,CAAa,eAAA;AAAA,MAAb;AAAA,QACC,SAAA,EAAW,kBAAA;AAAA,QACX,OAAA,EAAS,WAAA;AAAA,QACT;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
3
3
|
import { useRef, useEffect } from 'react';
|
|
4
|
-
import
|
|
4
|
+
import '../../../data-list-B2ArWwsJ.js';
|
|
5
|
+
import { D as DataListSkeleton } from '../../../data-list-skeleton-BNsWWamC.js';
|
|
5
6
|
import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
|
|
6
|
-
import { L as LogsDataList } from '../../../logs-data-list-
|
|
7
|
+
import { L as LogsDataList } from '../../../logs-data-list-B-gmgU74.js';
|
|
7
8
|
|
|
8
9
|
const COLUMNS = "6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)";
|
|
9
10
|
const ROW_HEIGHT = 36;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs-list-view.es.js","sources":["../../../../src/domains/logs/components/logs-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { useEffect, useRef } from 'react';\nimport type { LogRecord } from '../types';\nimport { useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { LogsDataList, LogsDataListSkeleton } from '@/ds/components/LogsDataList';\n\n// Fixed widths on non-flex columns prevent track shifts as the virtualizer swaps rows in/out.\nconst COLUMNS = '6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)';\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n\nexport interface LogsListViewProps {\n logs: LogRecord[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n /** Stable per-render id for each log — used for React keys and for matching against `featuredLogId`.\n * Build with `useLogsListNavigation`. */\n logIdMap: Map<LogRecord, string>;\n /** Currently featured/selected log — its row gets the highlighted background. */\n featuredLogId?: string | null;\n /** Called when a row is clicked. The current toggle + trace-sync logic is the consumer's call. */\n onLogClick: (log: LogRecord) => void;\n /** Current timestamp sort direction. When `onSortChange` is provided the Date/Time headers become sortable. */\n timestampSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'timestamp') => void;\n}\n\n/**\n * Virtualized presentational list. Renders only the visible window of logs via\n * TanStack Virtual, sandwiched between top/bottom Spacers that preserve total\n * scroll height. Owns no state and fetches no data.\n */\nexport function LogsListView({\n logs,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n logIdMap,\n featuredLogId,\n onLogClick,\n timestampSort,\n onSortChange,\n}: LogsListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n\n const virtualizer = useVirtualizer({\n count: logs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: logs.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <LogsDataListSkeleton columns={COLUMNS} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <LogsDataList columns={COLUMNS} scrollRef={scrollRef} className=\"min-w-0\" fit=\"container\">\n <LogsDataList.Top>\n {onSortChange ? (\n <LogsDataList.SortableTopCell sortKey=\"timestamp\" sort={timestampSort} onSortChange={onSortChange}>\n Date\n </LogsDataList.SortableTopCell>\n ) : (\n <LogsDataList.TopCell>Date</LogsDataList.TopCell>\n )}\n <LogsDataList.TopCell>Time</LogsDataList.TopCell>\n <LogsDataList.TopCell>Level</LogsDataList.TopCell>\n <LogsDataList.TopCell>Entity</LogsDataList.TopCell>\n <LogsDataList.TopCell>Message</LogsDataList.TopCell>\n <LogsDataList.TopCell>Data</LogsDataList.TopCell>\n </LogsDataList.Top>\n\n {logs.length === 0 ? (\n <LogsDataList.NoMatch message=\"No logs match your search\" />\n ) : (\n <>\n <LogsDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const log = logs[vi.index];\n if (!log) return null;\n const id = logIdMap.get(log);\n // Defensive: consumer is expected to build `logIdMap` from the same `logs` list\n // (via `useLogsListNavigation`), but if they drift we'd rather drop the row than\n // ship a missing-key warning and broken selection highlighting.\n if (!id) return null;\n const isFeatured = id === featuredLogId;\n\n return (\n <LogsDataList.RowButton\n key={id}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onLogClick(log)}\n featured={isFeatured}\n variant={log.level === 'error' || log.level === 'fatal' ? 'error' : 'default'}\n >\n <LogsDataList.DateCell timestamp={log.timestamp} />\n <LogsDataList.TimeCell timestamp={log.timestamp} />\n <LogsDataList.LevelCell level={log.level} />\n <LogsDataList.EntityCell entityType={log.entityType} entityName={log.entityName} />\n <LogsDataList.MessageCell message={log.message} />\n <LogsDataList.DataCell data={log.data} />\n </LogsDataList.RowButton>\n );\n })}\n <LogsDataList.Spacer height={paddingBottom} />\n </>\n )}\n <LogsDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </LogsDataList>\n );\n}\n"],"names":["LogsDataListSkeleton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logs-list-view.es.js","sources":["../../../../src/domains/logs/components/logs-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { useEffect, useRef } from 'react';\nimport type { LogRecord } from '../types';\nimport { useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { LogsDataList, LogsDataListSkeleton } from '@/ds/components/LogsDataList';\n\n// Fixed widths on non-flex columns prevent track shifts as the virtualizer swaps rows in/out.\nconst COLUMNS = '6rem 9rem 5rem 10rem minmax(8rem,1fr) minmax(8rem,1fr)';\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n\nexport interface LogsListViewProps {\n logs: LogRecord[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n /** Stable per-render id for each log — used for React keys and for matching against `featuredLogId`.\n * Build with `useLogsListNavigation`. */\n logIdMap: Map<LogRecord, string>;\n /** Currently featured/selected log — its row gets the highlighted background. */\n featuredLogId?: string | null;\n /** Called when a row is clicked. The current toggle + trace-sync logic is the consumer's call. */\n onLogClick: (log: LogRecord) => void;\n /** Current timestamp sort direction. When `onSortChange` is provided the Date/Time headers become sortable. */\n timestampSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'timestamp') => void;\n}\n\n/**\n * Virtualized presentational list. Renders only the visible window of logs via\n * TanStack Virtual, sandwiched between top/bottom Spacers that preserve total\n * scroll height. Owns no state and fetches no data.\n */\nexport function LogsListView({\n logs,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n logIdMap,\n featuredLogId,\n onLogClick,\n timestampSort,\n onSortChange,\n}: LogsListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n\n const virtualizer = useVirtualizer({\n count: logs.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: logs.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <LogsDataListSkeleton columns={COLUMNS} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <LogsDataList columns={COLUMNS} scrollRef={scrollRef} className=\"min-w-0\" fit=\"container\">\n <LogsDataList.Top>\n {onSortChange ? (\n <LogsDataList.SortableTopCell sortKey=\"timestamp\" sort={timestampSort} onSortChange={onSortChange}>\n Date\n </LogsDataList.SortableTopCell>\n ) : (\n <LogsDataList.TopCell>Date</LogsDataList.TopCell>\n )}\n <LogsDataList.TopCell>Time</LogsDataList.TopCell>\n <LogsDataList.TopCell>Level</LogsDataList.TopCell>\n <LogsDataList.TopCell>Entity</LogsDataList.TopCell>\n <LogsDataList.TopCell>Message</LogsDataList.TopCell>\n <LogsDataList.TopCell>Data</LogsDataList.TopCell>\n </LogsDataList.Top>\n\n {logs.length === 0 ? (\n <LogsDataList.NoMatch message=\"No logs match your search\" />\n ) : (\n <>\n <LogsDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const log = logs[vi.index];\n if (!log) return null;\n const id = logIdMap.get(log);\n // Defensive: consumer is expected to build `logIdMap` from the same `logs` list\n // (via `useLogsListNavigation`), but if they drift we'd rather drop the row than\n // ship a missing-key warning and broken selection highlighting.\n if (!id) return null;\n const isFeatured = id === featuredLogId;\n\n return (\n <LogsDataList.RowButton\n key={id}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onLogClick(log)}\n featured={isFeatured}\n variant={log.level === 'error' || log.level === 'fatal' ? 'error' : 'default'}\n >\n <LogsDataList.DateCell timestamp={log.timestamp} />\n <LogsDataList.TimeCell timestamp={log.timestamp} />\n <LogsDataList.LevelCell level={log.level} />\n <LogsDataList.EntityCell entityType={log.entityType} entityName={log.entityName} />\n <LogsDataList.MessageCell message={log.message} />\n <LogsDataList.DataCell data={log.data} />\n </LogsDataList.RowButton>\n );\n })}\n <LogsDataList.Spacer height={paddingBottom} />\n </>\n )}\n <LogsDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </LogsDataList>\n );\n}\n"],"names":["LogsDataListSkeleton"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const propertyFilterApplied = require('../../../property-filter-applied-
|
|
6
|
+
const propertyFilterApplied = require('../../../property-filter-applied-BBvaTC4B.cjs');
|
|
7
7
|
const utils_cn = require('../../../cn-TqD01zH-.cjs');
|
|
8
8
|
|
|
9
9
|
function LogsToolbar({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { P as PropertyFilterApplied, a as PropertyFilterActions } from '../../../property-filter-applied-
|
|
2
|
+
import { P as PropertyFilterApplied, a as PropertyFilterActions } from '../../../property-filter-applied-Ru3OQoGo.js';
|
|
3
3
|
import { c as cn } from '../../../cn-coERSHz5.js';
|
|
4
4
|
|
|
5
5
|
function LogsToolbar({
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
|
-
const Button = require('../../../Button-
|
|
7
|
+
const Button = require('../../../Button-CAVPKK09.cjs');
|
|
8
8
|
const EmptyState = require('../../../EmptyState-ChzkDnbJ.cjs');
|
|
9
9
|
const utils_dateFormat = require('../../../utils/date-format.cjs.js');
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { ExternalLinkIcon } from 'lucide-react';
|
|
3
|
-
import { B as Button } from '../../../Button-
|
|
3
|
+
import { B as Button } from '../../../Button-60jVnaHt.js';
|
|
4
4
|
import { E as EmptyState } from '../../../EmptyState-Cu6JKbrk.js';
|
|
5
5
|
import { formatDate } from '../../../utils/date-format.es.js';
|
|
6
6
|
|
|
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const recharts = require('recharts');
|
|
9
|
-
const Button = require('../../../Button-
|
|
9
|
+
const Button = require('../../../Button-CAVPKK09.cjs');
|
|
10
10
|
const Txt = require('../../../Txt-DXjXpX9r.cjs');
|
|
11
11
|
const primitives_raisedSurface = require('../../../primitives/raised-surface.cjs.js');
|
|
12
12
|
const domains_memory_lib_replaySelection = require('../lib/replay-selection.cjs.js');
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { RotateCcw } from 'lucide-react';
|
|
3
3
|
import { useCallback, useState, useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { ResponsiveContainer, ComposedChart, XAxis, YAxis, Tooltip, Area, ReferenceLine, AreaChart, ScatterChart, Scatter } from 'recharts';
|
|
5
|
-
import { B as Button } from '../../../Button-
|
|
5
|
+
import { B as Button } from '../../../Button-60jVnaHt.js';
|
|
6
6
|
import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
|
|
7
7
|
import { overlaySurfaceStyle } from '../../../primitives/raised-surface.es.js';
|
|
8
8
|
import { tToTimestampMs } from '../lib/replay-selection.es.js';
|
|
@@ -5,7 +5,7 @@ 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-
|
|
8
|
+
const Button = require('../../../Button-CAVPKK09.cjs');
|
|
9
9
|
const skeleton = require('../../../skeleton-bUFvB8ok.cjs');
|
|
10
10
|
const Txt = require('../../../Txt-DXjXpX9r.cjs');
|
|
11
11
|
const icons_MemoryIcon = require('../../../icons/MemoryIcon.cjs.js');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { ArrowLeftIcon } from 'lucide-react';
|
|
3
3
|
import { useState, useMemo, useEffect } from 'react';
|
|
4
|
-
import { B as Button } from '../../../Button-
|
|
4
|
+
import { B as Button } from '../../../Button-60jVnaHt.js';
|
|
5
5
|
import { S as Skeleton } from '../../../skeleton-Bjxvf3Y-.js';
|
|
6
6
|
import { T as Txt } from '../../../Txt-BuzYj7Vy.js';
|
|
7
7
|
import { MemoryIcon } from '../../../icons/MemoryIcon.es.js';
|
|
@@ -12,7 +12,7 @@ const domains_metrics_lib_metricsBuckets = require('../lib/metrics-buckets.cjs.j
|
|
|
12
12
|
const domains_metrics_components_chartArea = require('./chart-area.cjs.js');
|
|
13
13
|
const domains_metrics_components_chartCard = require('./chart-card.cjs.js');
|
|
14
14
|
const domains_metrics_components_chartCardError = require('./chart-card-error.cjs.js');
|
|
15
|
-
const metricsCard = require('../../../metrics-card-
|
|
15
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
16
16
|
const metricsStackedBarChart = require('../../../metrics-stacked-bar-chart-BKhaGInr.cjs');
|
|
17
17
|
|
|
18
18
|
const SERIES = [
|
|
@@ -8,7 +8,7 @@ import { bucketPlan, bucketWindow } from '../lib/metrics-buckets.es.js';
|
|
|
8
8
|
import { ChartArea } from './chart-area.es.js';
|
|
9
9
|
import { ChartCard } from './chart-card.es.js';
|
|
10
10
|
import { ChartCardError } from './chart-card-error.es.js';
|
|
11
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
11
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
12
12
|
import { M as MetricsStackedBarChart } from '../../../metrics-stacked-bar-chart-3MKRp0RI.js';
|
|
13
13
|
|
|
14
14
|
const SERIES = [
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
|
-
const Button = require('../../../Button-
|
|
7
|
+
const Button = require('../../../Button-CAVPKK09.cjs');
|
|
8
8
|
|
|
9
9
|
function OpenInTracesButton({ onClick }) {
|
|
10
10
|
return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { onClick, variant: "ghost", size: "icon-md", tooltip: "View in Traces", "aria-label": "View in Traces", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.EyeIcon, {}) });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { LogsIcon, EyeIcon } from 'lucide-react';
|
|
3
|
-
import { B as Button } from '../../../Button-
|
|
3
|
+
import { B as Button } from '../../../Button-60jVnaHt.js';
|
|
4
4
|
|
|
5
5
|
function OpenInTracesButton({ onClick }) {
|
|
6
6
|
return /* @__PURE__ */ jsx(Button, { onClick, variant: "ghost", size: "icon-md", tooltip: "View in Traces", "aria-label": "View in Traces", children: /* @__PURE__ */ jsx(EyeIcon, {}) });
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const metricsCard = require('../../../metrics-card-
|
|
6
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
7
7
|
|
|
8
8
|
function ChartArea({ isEmpty = false, emptyMessage = "No data in this range.", children }) {
|
|
9
9
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex min-h-0 flex-1 flex-col", children: [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
2
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
3
3
|
|
|
4
4
|
function ChartArea({ isEmpty = false, emptyMessage = "No data in this range.", children }) {
|
|
5
5
|
return /* @__PURE__ */ jsxs("div", { className: "relative flex min-h-0 flex-1 flex-col", children: [
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const metricsCard = require('../../../metrics-card-
|
|
6
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
7
7
|
|
|
8
8
|
function ChartCardError() {
|
|
9
9
|
return /* @__PURE__ */ jsxRuntime.jsx(metricsCard.MetricsCard.Error, { message: "Couldn't load this data. Try again in a moment.", className: "h-full" });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
2
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
3
3
|
|
|
4
4
|
function ChartCardError() {
|
|
5
5
|
return /* @__PURE__ */ jsx(MetricsCard.Error, { message: "Couldn't load this data. Try again in a moment.", className: "h-full" });
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const metricsCard = require('../../../metrics-card-
|
|
6
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
7
7
|
const utils_cn = require('../../../cn-TqD01zH-.cjs');
|
|
8
8
|
|
|
9
9
|
function ChartCard({
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const React = require('react');
|
|
7
|
-
const dateTimeRangePicker = require('../../../date-time-range-picker-
|
|
7
|
+
const dateTimeRangePicker = require('../../../date-time-range-picker-ByNvjYuV.cjs');
|
|
8
8
|
const domains_metrics_hooks_useMetrics = require('../hooks/use-metrics.cjs.js');
|
|
9
9
|
|
|
10
10
|
const METRICS_PRESETS = [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useRef } from 'react';
|
|
3
|
-
import { D as DateTimeRangePicker } from '../../../date-time-range-picker-
|
|
3
|
+
import { D as DateTimeRangePicker } from '../../../date-time-range-picker-SU1Q1h1h.js';
|
|
4
4
|
import { useMetrics } from '../hooks/use-metrics.es.js';
|
|
5
5
|
|
|
6
6
|
const METRICS_PRESETS = [
|
|
@@ -13,7 +13,7 @@ const domains_metrics_components_cardActionButtons = require('./card-action-butt
|
|
|
13
13
|
const domains_metrics_components_chartArea = require('./chart-area.cjs.js');
|
|
14
14
|
const domains_metrics_components_chartCard = require('./chart-card.cjs.js');
|
|
15
15
|
const domains_metrics_components_chartCardError = require('./chart-card-error.cjs.js');
|
|
16
|
-
const metricsCard = require('../../../metrics-card-
|
|
16
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
17
17
|
const metricsLineChart = require('../../../metrics-line-chart-D7fE4EQJ.cjs');
|
|
18
18
|
|
|
19
19
|
const SERIES = [{ dataKey: "failureRate", label: "Failed runs", color: domains_metrics_lib_chartColors.CHART_COLORS.error }];
|
|
@@ -9,7 +9,7 @@ import { OpenErrorsInLogsButton } from './card-action-buttons.es.js';
|
|
|
9
9
|
import { ChartArea } from './chart-area.es.js';
|
|
10
10
|
import { ChartCard } from './chart-card.es.js';
|
|
11
11
|
import { ChartCardError } from './chart-card-error.es.js';
|
|
12
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
12
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
13
13
|
import { M as MetricsLineChart } from '../../../metrics-line-chart-BBn0LeqC.js';
|
|
14
14
|
|
|
15
15
|
const SERIES = [{ dataKey: "failureRate", label: "Failed runs", color: CHART_COLORS.error }];
|
|
@@ -15,7 +15,7 @@ const domains_metrics_components_cardActionButtons = require('./card-action-butt
|
|
|
15
15
|
const domains_metrics_components_chartArea = require('./chart-area.cjs.js');
|
|
16
16
|
const domains_metrics_components_chartCard = require('./chart-card.cjs.js');
|
|
17
17
|
const domains_metrics_components_chartCardError = require('./chart-card-error.cjs.js');
|
|
18
|
-
const metricsCard = require('../../../metrics-card-
|
|
18
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
19
19
|
const metricsLineChart = require('../../../metrics-line-chart-D7fE4EQJ.cjs');
|
|
20
20
|
const metricsLineChartTooltip = require('../../../metrics-line-chart-tooltip-BSzXdRFR.cjs');
|
|
21
21
|
|
|
@@ -11,7 +11,7 @@ import { OpenInTracesButton } from './card-action-buttons.es.js';
|
|
|
11
11
|
import { ChartArea } from './chart-area.es.js';
|
|
12
12
|
import { ChartCard } from './chart-card.es.js';
|
|
13
13
|
import { ChartCardError } from './chart-card-error.es.js';
|
|
14
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
14
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
15
15
|
import { M as MetricsLineChart } from '../../../metrics-line-chart-BBn0LeqC.js';
|
|
16
16
|
import { M as MetricsLineChartLegend } from '../../../metrics-line-chart-tooltip-bgRf6KTb.js';
|
|
17
17
|
|
|
@@ -9,7 +9,7 @@ const domains_metrics_lib_chartColors = require('../lib/chart-colors.cjs.js');
|
|
|
9
9
|
const domains_metrics_components_chartArea = require('./chart-area.cjs.js');
|
|
10
10
|
const domains_metrics_components_chartCard = require('./chart-card.cjs.js');
|
|
11
11
|
const domains_metrics_components_chartCardError = require('./chart-card-error.cjs.js');
|
|
12
|
-
const metricsCard = require('../../../metrics-card-
|
|
12
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
13
13
|
const metricsLineChart = require('../../../metrics-line-chart-D7fE4EQJ.cjs');
|
|
14
14
|
|
|
15
15
|
const SCORER_COLORS = [
|
|
@@ -5,7 +5,7 @@ import { CHART_COLORS } from '../lib/chart-colors.es.js';
|
|
|
5
5
|
import { ChartArea } from './chart-area.es.js';
|
|
6
6
|
import { ChartCard } from './chart-card.es.js';
|
|
7
7
|
import { ChartCardError } from './chart-card-error.es.js';
|
|
8
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
8
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
9
9
|
import { M as MetricsLineChart } from '../../../metrics-line-chart-BBn0LeqC.js';
|
|
10
10
|
|
|
11
11
|
const SCORER_COLORS = [
|
|
@@ -14,7 +14,7 @@ const domains_metrics_components_cardActionButtons = require('./card-action-butt
|
|
|
14
14
|
const domains_metrics_components_chartArea = require('./chart-area.cjs.js');
|
|
15
15
|
const domains_metrics_components_chartCard = require('./chart-card.cjs.js');
|
|
16
16
|
const domains_metrics_components_chartCardError = require('./chart-card-error.cjs.js');
|
|
17
|
-
const metricsCard = require('../../../metrics-card-
|
|
17
|
+
const metricsCard = require('../../../metrics-card-CxOVpP1t.cjs');
|
|
18
18
|
const metricsLineChartTooltip = require('../../../metrics-line-chart-tooltip-BSzXdRFR.cjs');
|
|
19
19
|
const metricsStackedBarChart = require('../../../metrics-stacked-bar-chart-BKhaGInr.cjs');
|
|
20
20
|
|
|
@@ -10,7 +10,7 @@ import { OpenInTracesButton } from './card-action-buttons.es.js';
|
|
|
10
10
|
import { ChartArea } from './chart-area.es.js';
|
|
11
11
|
import { ChartCard } from './chart-card.es.js';
|
|
12
12
|
import { ChartCardError } from './chart-card-error.es.js';
|
|
13
|
-
import { M as MetricsCard } from '../../../metrics-card-
|
|
13
|
+
import { M as MetricsCard } from '../../../metrics-card-C33VsuXf.js';
|
|
14
14
|
import { M as MetricsLineChartLegend } from '../../../metrics-line-chart-tooltip-bgRf6KTb.js';
|
|
15
15
|
import { M as MetricsStackedBarChart } from '../../../metrics-stacked-bar-chart-3MKRp0RI.js';
|
|
16
16
|
|