@mastra/playground-ui 60.0.0-alpha.9 → 60.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -15
- package/dist/{Button-DbJn0bJX.cjs → Button-BnmR2HRc.cjs} +5 -1
- package/dist/Button-BnmR2HRc.cjs.map +1 -0
- package/dist/{Button-CHTvSq4d.js → Button-C6eUqcPI.js} +6 -2
- package/dist/Button-C6eUqcPI.js.map +1 -0
- package/dist/{Card-BbwF20OW.cjs → Card-BQsKHkyB.cjs} +5 -5
- package/dist/Card-BQsKHkyB.cjs.map +1 -0
- package/dist/{Card-DmT57Pve.js → Card-DVy0QS4m.js} +5 -5
- package/dist/Card-DVy0QS4m.js.map +1 -0
- package/dist/{ErrorBoundary-DDi5RBQv.js → ErrorBoundary-Bb2R5IMR.js} +2 -2
- package/dist/{ErrorBoundary-DDi5RBQv.js.map → ErrorBoundary-Bb2R5IMR.js.map} +1 -1
- package/dist/{ErrorBoundary-BRQxBc51.cjs → ErrorBoundary-CKrwONAU.cjs} +2 -2
- package/dist/{ErrorBoundary-BRQxBc51.cjs.map → ErrorBoundary-CKrwONAU.cjs.map} +1 -1
- package/dist/{Notice-JX9yuy6r.cjs → Notice-CEBwitdf.cjs} +2 -2
- package/dist/{Notice-JX9yuy6r.cjs.map → Notice-CEBwitdf.cjs.map} +1 -1
- package/dist/{Notice-b3XjkEVP.js → Notice-Ce3r5x-7.js} +2 -2
- package/dist/{Notice-b3XjkEVP.js.map → Notice-Ce3r5x-7.js.map} +1 -1
- package/dist/{activity-BYD9ugQK.cjs → activity-8egTNbaI.cjs} +2 -2
- package/dist/{activity-BYD9ugQK.cjs.map → activity-8egTNbaI.cjs.map} +1 -1
- package/dist/{activity-BnyR9d_6.js → activity-Duth8KP_.js} +2 -2
- package/dist/{activity-BnyR9d_6.js.map → activity-Duth8KP_.js.map} +1 -1
- package/dist/activity.css +3 -3
- package/dist/{alert-dialog-JQyJ-qjE.cjs → alert-dialog-BcOSIOSW.cjs} +3 -3
- package/dist/{alert-dialog-JQyJ-qjE.cjs.map → alert-dialog-BcOSIOSW.cjs.map} +1 -1
- package/dist/{alert-dialog-CAGfWxfv.js → alert-dialog-D1UYVW__.js} +3 -3
- package/dist/{alert-dialog-CAGfWxfv.js.map → alert-dialog-D1UYVW__.js.map} +1 -1
- package/dist/{ask-user-BSitQ3cU.js → ask-user-Crg1O-o6.js} +2 -2
- package/dist/{ask-user-BSitQ3cU.js.map → ask-user-Crg1O-o6.js.map} +1 -1
- package/dist/{ask-user-C8PIlzDe.cjs → ask-user-DJXmLJzy.cjs} +2 -2
- package/dist/{ask-user-C8PIlzDe.cjs.map → ask-user-DJXmLJzy.cjs.map} +1 -1
- package/dist/buttons-group.css +4 -14
- package/dist/{code-block-FI2Y_vRg.cjs → code-block-C7A4Hv96.cjs} +5 -5
- package/dist/{code-block-FI2Y_vRg.cjs.map → code-block-C7A4Hv96.cjs.map} +1 -1
- package/dist/{code-block-D1_YjIGG.js → code-block-C_pvalBv.js} +5 -5
- package/dist/{code-block-D1_YjIGG.js.map → code-block-C_pvalBv.js.map} +1 -1
- package/dist/{code-editor-8l_YoqYu.cjs → code-editor-BXchPl_F.cjs} +3 -3
- package/dist/code-editor-BXchPl_F.cjs.map +1 -0
- package/dist/{code-editor-m5ktiTwB.js → code-editor-Cltwid7c.js} +3 -3
- package/dist/code-editor-Cltwid7c.js.map +1 -0
- package/dist/{collapsible-DhhP5p1j.js → collapsible-BNUn4644.js} +2 -2
- package/dist/collapsible-BNUn4644.js.map +1 -0
- package/dist/{collapsible-BFSJouuI.cjs → collapsible-jfzzU7Gp.cjs} +2 -2
- package/dist/collapsible-jfzzU7Gp.cjs.map +1 -0
- package/dist/{combobox-DDvFeXkN.js → combobox-B_C0cNid.js} +4 -4
- package/dist/{combobox-DDvFeXkN.js.map → combobox-B_C0cNid.js.map} +1 -1
- package/dist/{combobox-Dm1hKirJ.cjs → combobox-rKV-Lksj.cjs} +4 -4
- package/dist/{combobox-Dm1hKirJ.cjs.map → combobox-rKV-Lksj.cjs.map} +1 -1
- package/dist/{combobox-styles-B0qifmU6.cjs → combobox-styles-C4Kq1NFV.cjs} +2 -2
- package/dist/{combobox-styles-B0qifmU6.cjs.map → combobox-styles-C4Kq1NFV.cjs.map} +1 -1
- package/dist/{combobox-styles-VF_qaHQZ.js → combobox-styles-CLxC7VLA.js} +2 -2
- package/dist/{combobox-styles-VF_qaHQZ.js.map → combobox-styles-CLxC7VLA.js.map} +1 -1
- package/dist/{command-DxGz6-Jx.js → command-C6JnofUJ.js} +3 -3
- package/dist/{command-DxGz6-Jx.js.map → command-C6JnofUJ.js.map} +1 -1
- package/dist/{command-B4ue1PCR.cjs → command-CpXMoss8.cjs} +3 -3
- package/dist/{command-B4ue1PCR.cjs.map → command-CpXMoss8.cjs.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/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 +2 -2
- package/dist/components/CommandPalette.es.js +2 -2
- package/dist/components/Comment.cjs.js +2 -2
- package/dist/components/Comment.es.js +2 -2
- package/dist/components/Composer.cjs.js +2 -2
- package/dist/components/Composer.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 +5 -5
- package/dist/components/DataList.es.js +5 -5
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +5 -3
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +5 -3
- package/dist/components/DateRangeTimeline.es.js.map +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 +4 -4
- package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
- 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/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- 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 +2 -4
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -4
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +2 -2
- 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/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +3 -3
- package/dist/components/PropertyFilter.es.js +4 -4
- package/dist/components/RelativeTimestamp.cjs.js +1 -1
- package/dist/components/RelativeTimestamp.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/SectionCard.cjs.js +1 -12
- package/dist/components/SectionCard.cjs.js.map +1 -1
- package/dist/components/SectionCard.es.js +1 -12
- package/dist/components/SectionCard.es.js.map +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/Slider.cjs.js +1 -1
- package/dist/components/Slider.es.js +1 -1
- package/dist/components/StatusIndicators.cjs.js +6 -18
- package/dist/components/StatusIndicators.cjs.js.map +1 -1
- package/dist/components/StatusIndicators.es.js +6 -18
- package/dist/components/StatusIndicators.es.js.map +1 -1
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/Table.cjs.js +3 -2
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js +3 -2
- package/dist/components/Table.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +3 -2
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +3 -2
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +2 -2
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +6 -6
- package/dist/components/Workflow.es.js +6 -6
- package/dist/components/ai/activity.cjs.js +4 -4
- package/dist/components/ai/activity.es.js +4 -4
- 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/task-list.cjs.js +2 -2
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +2 -2
- package/dist/components/ai/task-list.es.js.map +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +4 -4
- package/dist/components/ai/tool-call.es.js +4 -4
- package/dist/{composer-D7ZOLVUX.cjs → composer-DyoM0j2m.cjs} +2 -2
- package/dist/{composer-D7ZOLVUX.cjs.map → composer-DyoM0j2m.cjs.map} +1 -1
- package/dist/{composer-a6qwEQIs.js → composer-eMyX1lBH.js} +2 -2
- package/dist/{composer-a6qwEQIs.js.map → composer-eMyX1lBH.js.map} +1 -1
- package/dist/composer.css +2 -2
- package/dist/{copy-button-89AmY5FU.cjs → copy-button-C6nXDjBz.cjs} +2 -2
- package/dist/{copy-button-89AmY5FU.cjs.map → copy-button-C6nXDjBz.cjs.map} +1 -1
- package/dist/{copy-button-rs9SJnvF.js → copy-button-DbmsTUum.js} +2 -2
- package/dist/{copy-button-rs9SJnvF.js.map → copy-button-DbmsTUum.js.map} +1 -1
- package/dist/{data-code-section-D01ggJy6.js → data-code-section-Bd2Xnckz.js} +6 -6
- package/dist/data-code-section-Bd2Xnckz.js.map +1 -0
- package/dist/{data-code-section-W_dIahDO.cjs → data-code-section-D5b6_jcB.cjs} +6 -6
- package/dist/data-code-section-D5b6_jcB.cjs.map +1 -0
- package/dist/{data-list-jJGA9T9_.cjs → data-list-D8bACyyK.cjs} +4 -4
- package/dist/{data-list-jJGA9T9_.cjs.map → data-list-D8bACyyK.cjs.map} +1 -1
- package/dist/{data-list-cF2lpf-v.js → data-list-DL_oFE4j.js} +4 -4
- package/dist/{data-list-cF2lpf-v.js.map → data-list-DL_oFE4j.js.map} +1 -1
- package/dist/{data-list-skeleton-DtU1wRbx.cjs → data-list-skeleton-BXPfL0s7.cjs} +2 -2
- package/dist/{data-list-skeleton-DtU1wRbx.cjs.map → data-list-skeleton-BXPfL0s7.cjs.map} +1 -1
- package/dist/{data-list-skeleton-BiWUa3JR.js → data-list-skeleton-Bk9LI0J0.js} +2 -2
- package/dist/{data-list-skeleton-BiWUa3JR.js.map → data-list-skeleton-Bk9LI0J0.js.map} +1 -1
- package/dist/{data-list-spacer-Cukij8de.js → data-list-spacer-CE6-4ZQq.js} +5 -4
- package/dist/data-list-spacer-CE6-4ZQq.js.map +1 -0
- package/dist/{data-list-spacer-D8zpJS7Z.cjs → data-list-spacer-_bFe0e2u.cjs} +5 -4
- package/dist/data-list-spacer-_bFe0e2u.cjs.map +1 -0
- package/dist/{data-list-top-KKXNLoP6.cjs → data-list-top-C-pLBax7.cjs} +4 -3
- package/dist/data-list-top-C-pLBax7.cjs.map +1 -0
- package/dist/{data-list-top-G11bdV77.js → data-list-top-DheFgb0M.js} +4 -3
- package/dist/data-list-top-DheFgb0M.js.map +1 -0
- package/dist/{data-panel-9GDF8Wx1.js → data-panel-42fdcagQ.js} +3 -3
- package/dist/{data-panel-9GDF8Wx1.js.map → data-panel-42fdcagQ.js.map} +1 -1
- package/dist/{data-panel-C4JszAuX.cjs → data-panel-CjvoI_lx.cjs} +3 -3
- package/dist/{data-panel-C4JszAuX.cjs.map → data-panel-CjvoI_lx.cjs.map} +1 -1
- package/dist/{date-time-range-picker-CmqD5SE4.cjs → date-time-range-picker-BORAuIJM.cjs} +3 -3
- package/dist/{date-time-range-picker-CmqD5SE4.cjs.map → date-time-range-picker-BORAuIJM.cjs.map} +1 -1
- package/dist/{date-time-range-picker-DZ-jZE2-.js → date-time-range-picker-C-pSI1u1.js} +3 -3
- package/dist/{date-time-range-picker-DZ-jZE2-.js.map → date-time-range-picker-C-pSI1u1.js.map} +1 -1
- package/dist/{dialog-4KIPO71S.cjs → dialog-DYpOpj9s.cjs} +3 -3
- package/dist/{dialog-4KIPO71S.cjs.map → dialog-DYpOpj9s.cjs.map} +1 -1
- package/dist/{dialog-action-C6yPBO21.cjs → dialog-action-B3AHq7mU.cjs} +3 -3
- package/dist/{dialog-action-C6yPBO21.cjs.map → dialog-action-B3AHq7mU.cjs.map} +1 -1
- package/dist/{dialog-action-DzTAl6AJ.js → dialog-action-BGmDoI5T.js} +3 -3
- package/dist/{dialog-action-DzTAl6AJ.js.map → dialog-action-BGmDoI5T.js.map} +1 -1
- package/dist/{dialog-DjXC42Zn.js → dialog-cKzR2TXI.js} +3 -3
- package/dist/{dialog-DjXC42Zn.js.map → dialog-cKzR2TXI.js.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-list.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.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 +5 -5
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
- package/dist/domains/chat/messages/message-row.cjs.js +22 -5
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +22 -5
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
- package/dist/domains/chat/messages/renderers/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/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js +6 -0
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js +6 -0
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-activation.cjs.js +29 -0
- package/dist/domains/chat/messages/skill-activation.cjs.js.map +1 -0
- package/dist/domains/chat/messages/skill-activation.d.ts +2 -0
- package/dist/domains/chat/messages/skill-activation.es.js +25 -0
- package/dist/domains/chat/messages/skill-activation.es.js.map +1 -0
- package/dist/domains/chat/messages/skill-message.cjs.js +33 -0
- package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -0
- package/dist/domains/chat/messages/skill-message.d.ts +2 -0
- package/dist/domains/chat/messages/skill-message.es.js +29 -0
- package/dist/domains/chat/messages/skill-message.es.js.map +1 -0
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.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 +3 -3
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +3 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -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 +4 -4
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
- 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 +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.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/memory/components/observation-detail-view.cjs.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
- package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
- package/dist/domains/request-context/components/request-context-label.cjs.js +1 -5
- package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
- package/dist/domains/request-context/components/request-context-label.es.js +2 -6
- package/dist/domains/request-context/components/request-context-label.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 +4 -4
- package/dist/domains/scores/components/span-scoring.es.js +4 -4
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +3 -4
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +3 -4
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
- package/dist/domains/traces/components/feedback-thread.es.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -6
- package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
- 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 +2 -2
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-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 +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.cjs.js +3 -2
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +3 -2
- package/dist/domains/traces/components/span-timeline-row.es.js.map +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 +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +3 -2
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +3 -2
- package/dist/domains/traces/components/timeline-name-col.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 +6 -6
- package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
- package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -3
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +2 -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-messages-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-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 +5 -4
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +5 -4
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -3
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -3
- 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-entity-header.cjs.js +3 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +3 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-information.es.js +3 -3
- 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 +4 -3
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +4 -3
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +4 -4
- package/dist/domains/workflows/runs/workflow-run-list.es.js +4 -4
- 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-mode-switch.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.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 +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js.map +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 +5 -5
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -5
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +2 -2
- 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 +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +6 -2
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +6 -2
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +2 -2
- 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/workflows/workflow/workflow-trigger.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
- package/dist/{drawer-6MeSDSfP.js → drawer-DXf50w71.js} +2 -2
- package/dist/{drawer-6MeSDSfP.js.map → drawer-DXf50w71.js.map} +1 -1
- package/dist/{drawer-KHIkRUe4.cjs → drawer-d81cZiSV.cjs} +2 -2
- package/dist/{drawer-KHIkRUe4.cjs.map → drawer-d81cZiSV.cjs.map} +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +2 -2
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +2 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -3
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +16 -20
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +16 -20
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -5
- 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 +4 -5
- 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/flow-card.cjs.js +1 -1
- package/dist/ee/signals/flow-card.es.js +1 -1
- package/dist/ee/signals/lifeline-point.cjs.js +7 -2
- package/dist/ee/signals/lifeline-point.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-point.es.js +7 -2
- package/dist/ee/signals/lifeline-point.es.js.map +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/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
- package/dist/ee/signals/signal-colors.cjs.js +6 -6
- package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
- package/dist/ee/signals/signal-colors.es.js +6 -6
- package/dist/ee/signals/signal-colors.es.js.map +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 +2 -2
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +2 -2
- package/dist/ee/signals/snapshot-timeline.es.js.map +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 +2 -2
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +2 -2
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/{filter-bar-chip-u48DmCu5.js → filter-bar-chip-BNPOrSrD.js} +3 -3
- package/dist/{filter-bar-chip-u48DmCu5.js.map → filter-bar-chip-BNPOrSrD.js.map} +1 -1
- package/dist/{filter-bar-chip-CYKfWUTj.cjs → filter-bar-chip-D4CSm9KP.cjs} +3 -3
- package/dist/{filter-bar-chip-CYKfWUTj.cjs.map → filter-bar-chip-D4CSm9KP.cjs.map} +1 -1
- package/dist/{horizontal-bars-BYNeqSSF.js → horizontal-bars-BSRESJsp.js} +2 -2
- package/dist/{horizontal-bars-BYNeqSSF.js.map → horizontal-bars-BSRESJsp.js.map} +1 -1
- package/dist/{horizontal-bars-BK8snozs.cjs → horizontal-bars-DRD7JkHL.cjs} +2 -2
- package/dist/{horizontal-bars-BK8snozs.cjs.map → horizontal-bars-DRD7JkHL.cjs.map} +1 -1
- package/dist/{input-group-C0xpNsn1.js → input-group-B8bnoDrA.js} +2 -2
- package/dist/{input-group-C0xpNsn1.js.map → input-group-B8bnoDrA.js.map} +1 -1
- package/dist/{input-group-C1NamUEz.cjs → input-group-I8YVM_Ps.cjs} +2 -2
- package/dist/{input-group-C1NamUEz.cjs.map → input-group-I8YVM_Ps.cjs.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +6 -6
- package/dist/layout/tabbed-container.es.js +6 -6
- package/dist/lib/form/components/array-element-wrapper.cjs.js +3 -3
- package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +3 -3
- package/dist/lib/form/components/array-element-wrapper.es.js.map +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/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.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/object-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/object-wrapper.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-BgO_ksCX.js → list-search-9l8IEdxZ.js} +2 -2
- package/dist/{list-search-BgO_ksCX.js.map → list-search-9l8IEdxZ.js.map} +1 -1
- package/dist/{list-search-bEL_wzsG.cjs → list-search-DXb7HFX8.cjs} +2 -2
- package/dist/{list-search-bEL_wzsG.cjs.map → list-search-DXb7HFX8.cjs.map} +1 -1
- package/dist/{logs-data-list-D82JmBPJ.js → logs-data-list-C77r2FOj.js} +3 -3
- package/dist/{logs-data-list-D82JmBPJ.js.map → logs-data-list-C77r2FOj.js.map} +1 -1
- package/dist/{logs-data-list-DAh8by9h.cjs → logs-data-list-CEFyG1Xb.cjs} +3 -3
- package/dist/{logs-data-list-DAh8by9h.cjs.map → logs-data-list-CEFyG1Xb.cjs.map} +1 -1
- package/dist/{main-sidebar-link-active-DAiTpL8z.js → main-sidebar-link-active-1_ktyA8Q.js} +7 -7
- package/dist/main-sidebar-link-active-1_ktyA8Q.js.map +1 -0
- package/dist/{main-sidebar-link-active-DIMZKeHX.cjs → main-sidebar-link-active-BNko0jHZ.cjs} +7 -7
- package/dist/main-sidebar-link-active-BNko0jHZ.cjs.map +1 -0
- package/dist/{markdown-renderer-CY-jQjAm.js → markdown-renderer-Bl0V7FCo.js} +3 -3
- package/dist/{markdown-renderer-CY-jQjAm.js.map → markdown-renderer-Bl0V7FCo.js.map} +1 -1
- package/dist/{markdown-renderer-DtcId3Ul.cjs → markdown-renderer-CSwjfPaf.cjs} +3 -3
- package/dist/{markdown-renderer-DtcId3Ul.cjs.map → markdown-renderer-CSwjfPaf.cjs.map} +1 -1
- package/dist/{message-copy-button-D49yf_Fk.cjs → message-copy-button-ClJBX9qx.cjs} +2 -2
- package/dist/{message-copy-button-D49yf_Fk.cjs.map → message-copy-button-ClJBX9qx.cjs.map} +1 -1
- package/dist/{message-copy-button-iMfO-J5M.js → message-copy-button-DP3U-xA-.js} +2 -2
- package/dist/{message-copy-button-iMfO-J5M.js.map → message-copy-button-DP3U-xA-.js.map} +1 -1
- package/dist/{metrics-card-Cr6vbt9I.js → metrics-card-CloSmyRQ.js} +3 -3
- package/dist/{metrics-card-Cr6vbt9I.js.map → metrics-card-CloSmyRQ.js.map} +1 -1
- package/dist/{metrics-card-B29tubiE.cjs → metrics-card-HmQJHDNa.cjs} +3 -3
- package/dist/{metrics-card-B29tubiE.cjs.map → metrics-card-HmQJHDNa.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-CHdaoCE8.cjs → metrics-kpi-card-CW24YjZp.cjs} +2 -2
- package/dist/{metrics-kpi-card-CHdaoCE8.cjs.map → metrics-kpi-card-CW24YjZp.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-DaOkTfEn.js → metrics-kpi-card-DLDT28IB.js} +2 -2
- package/dist/{metrics-kpi-card-DaOkTfEn.js.map → metrics-kpi-card-DLDT28IB.js.map} +1 -1
- package/dist/new/sidebar.cjs.js +2 -2
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +3 -3
- package/dist/new/sidebar.es.js.map +1 -1
- package/dist/{notification-activity-HAcSSfXh.js → notification-activity-B1_2BPe_.js} +2 -2
- package/dist/{notification-activity-HAcSSfXh.js.map → notification-activity-B1_2BPe_.js.map} +1 -1
- package/dist/{notification-activity-CzWIom28.cjs → notification-activity-BAn2fhYd.cjs} +2 -2
- package/dist/{notification-activity-CzWIom28.cjs.map → notification-activity-BAn2fhYd.cjs.map} +1 -1
- package/dist/{plan-XcVpRToL.js → plan-DJfH1c_u.js} +3 -3
- package/dist/{plan-XcVpRToL.js.map → plan-DJfH1c_u.js.map} +1 -1
- package/dist/{plan-rKBR_aWJ.cjs → plan-ZKAT5frg.cjs} +3 -3
- package/dist/{plan-rKBR_aWJ.cjs.map → plan-ZKAT5frg.cjs.map} +1 -1
- package/dist/primitives/form-element.cjs.js +3 -2
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +3 -3
- package/dist/primitives/form-element.es.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 +3 -3
- package/dist/primitives/raised-surface.cjs.js.map +1 -1
- package/dist/primitives/raised-surface.es.js +3 -3
- package/dist/primitives/raised-surface.es.js.map +1 -1
- package/dist/primitives/selection-control.cjs.js +2 -2
- package/dist/primitives/selection-control.cjs.js.map +1 -1
- package/dist/primitives/selection-control.es.js +3 -3
- package/dist/primitives/selection-control.es.js.map +1 -1
- package/dist/primitives/transitions.cjs.js +6 -8
- package/dist/primitives/transitions.cjs.js.map +1 -1
- package/dist/primitives/transitions.es.js +5 -9
- package/dist/primitives/transitions.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-gYYOGNLL.cjs → property-filter-applied-D0F0BYMY.cjs} +2 -2
- package/dist/{property-filter-applied-gYYOGNLL.cjs.map → property-filter-applied-D0F0BYMY.cjs.map} +1 -1
- package/dist/{property-filter-applied-lIef4AFt.js → property-filter-applied-k0TOa9hf.js} +2 -2
- package/dist/{property-filter-applied-lIef4AFt.js.map → property-filter-applied-k0TOa9hf.js.map} +1 -1
- package/dist/{reasoning-activity-LdbnHPbR.cjs → reasoning-activity-CO0Ab1Za.cjs} +3 -3
- package/dist/{reasoning-activity-LdbnHPbR.cjs.map → reasoning-activity-CO0Ab1Za.cjs.map} +1 -1
- package/dist/{reasoning-activity-j1bIOIX8.js → reasoning-activity-D3oCzL58.js} +3 -3
- package/dist/{reasoning-activity-j1bIOIX8.js.map → reasoning-activity-D3oCzL58.js.map} +1 -1
- package/dist/{relative-timestamp-BzfR9tDU.cjs → relative-timestamp-D-IvjsVb.cjs} +2 -2
- package/dist/relative-timestamp-D-IvjsVb.cjs.map +1 -0
- package/dist/{relative-timestamp-SPgcvfH6.js → relative-timestamp-wERh5vUE.js} +2 -2
- package/dist/relative-timestamp-wERh5vUE.js.map +1 -0
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{scroll-area-BE7FJqVA.cjs → scroll-area-CEuf7Omb.cjs} +2 -2
- package/dist/scroll-area-CEuf7Omb.cjs.map +1 -0
- package/dist/{scroll-area-PxtGm4w9.js → scroll-area-Ds-fJn5M.js} +3 -3
- package/dist/scroll-area-Ds-fJn5M.js.map +1 -0
- package/dist/{search-field-block-DHrgu8J5.cjs → search-field-block-B1eqMV8x.cjs} +2 -2
- package/dist/{search-field-block-DHrgu8J5.cjs.map → search-field-block-B1eqMV8x.cjs.map} +1 -1
- package/dist/{search-field-block-D9yr3kXG.js → search-field-block-Cj9lJsYi.js} +2 -2
- package/dist/{search-field-block-D9yr3kXG.js.map → search-field-block-Cj9lJsYi.js.map} +1 -1
- package/dist/{select-Y2dIzSBN.cjs → select-C0ZGSJYa.cjs} +2 -2
- package/dist/{select-Y2dIzSBN.cjs.map → select-C0ZGSJYa.cjs.map} +1 -1
- package/dist/{select-BH7BD11Z.js → select-ch8imm15.js} +2 -2
- package/dist/{select-BH7BD11Z.js.map → select-ch8imm15.js.map} +1 -1
- package/dist/{select-field-block-DwFt2fgr.cjs → select-field-block-Dy_N3tWv.cjs} +2 -2
- package/dist/{select-field-block-DwFt2fgr.cjs.map → select-field-block-Dy_N3tWv.cjs.map} +1 -1
- package/dist/{select-field-block-CNLNE9ps.js → select-field-block-_ZUzUs7l.js} +2 -2
- package/dist/{select-field-block-CNLNE9ps.js.map → select-field-block-_ZUzUs7l.js.map} +1 -1
- package/dist/{side-dialog-DQ3SzDXH.cjs → side-dialog-7P9aEC4v.cjs} +4 -4
- package/dist/{side-dialog-DQ3SzDXH.cjs.map → side-dialog-7P9aEC4v.cjs.map} +1 -1
- package/dist/{side-dialog-BgmY4v7P.js → side-dialog-D2O3Y7GB.js} +4 -4
- package/dist/{side-dialog-BgmY4v7P.js.map → side-dialog-D2O3Y7GB.js.map} +1 -1
- package/dist/{signal-activity-B5LFDj6X.js → signal-activity-1REUU8T_.js} +2 -2
- package/dist/{signal-activity-B5LFDj6X.js.map → signal-activity-1REUU8T_.js.map} +1 -1
- package/dist/{signal-activity-DXZ9j7xV.cjs → signal-activity-4OJb4kp6.cjs} +2 -2
- package/dist/{signal-activity-DXZ9j7xV.cjs.map → signal-activity-4OJb4kp6.cjs.map} +1 -1
- package/dist/{slider-MM3K0Pyv.js → slider-D9dd_fVN.js} +3 -3
- package/dist/{slider-MM3K0Pyv.js.map → slider-D9dd_fVN.js.map} +1 -1
- package/dist/{slider-C-Fda4HC.cjs → slider-T_BIZUV0.cjs} +3 -3
- package/dist/{slider-C-Fda4HC.cjs.map → slider-T_BIZUV0.cjs.map} +1 -1
- package/dist/{span-payload-primitives-0ha5dnaq.js → span-payload-primitives-CEflnpwW.js} +4 -4
- package/dist/{span-payload-primitives-0ha5dnaq.js.map → span-payload-primitives-CEflnpwW.js.map} +1 -1
- package/dist/{span-payload-primitives-fZJeJrtj.cjs → span-payload-primitives-CbXrqcs-.cjs} +4 -4
- package/dist/{span-payload-primitives-fZJeJrtj.cjs.map → span-payload-primitives-CbXrqcs-.cjs.map} +1 -1
- package/dist/src/domains/chat/messages/skill-activation.d.ts +8 -0
- package/dist/src/domains/chat/messages/skill-message.d.ts +4 -0
- package/dist/src/domains/workflows/components/workflow-layout.d.ts +1 -1
- package/dist/src/ds/components/DataList/shared.d.ts +2 -2
- package/dist/src/ds/components/Entity/entity.stories.d.ts +0 -1
- package/dist/src/ds/primitives/form-element.d.ts +1 -0
- package/dist/src/ds/primitives/transitions.d.ts +3 -6
- package/dist/src/ds/tokens/color-foundations.stories.d.ts +5 -4
- package/dist/src/ds/tokens/colors.d.ts +62 -1
- package/dist/src/ds/tokens/foundations-layout.d.ts +0 -1
- package/dist/src/ds/tokens/shadows.d.ts +0 -1
- package/dist/style.css +255 -180
- package/dist/{switch-CE9jTpUG.js → switch-88fWFfVz.js} +4 -3
- package/dist/switch-88fWFfVz.js.map +1 -0
- package/dist/{switch-6125Oajw.cjs → switch-Swt75_Sb.cjs} +4 -3
- package/dist/switch-Swt75_Sb.cjs.map +1 -0
- package/dist/{tabs-content-CcZEEfTc.cjs → tabs-content-DQNRMjup.cjs} +3 -3
- package/dist/tabs-content-DQNRMjup.cjs.map +1 -0
- package/dist/{tabs-content-gq5tjHFE.js → tabs-content-h2qqD8t-.js} +3 -3
- package/dist/{tabs-content-gq5tjHFE.js.map → tabs-content-h2qqD8t-.js.map} +1 -1
- package/dist/{tabs-root-DnL_e3X4.js → tabs-root-4vL8SHCO.js} +2 -2
- package/dist/{tabs-root-DnL_e3X4.js.map → tabs-root-4vL8SHCO.js.map} +1 -1
- package/dist/{tabs-root-CSTdrTYo.cjs → tabs-root-BqC8X_h6.cjs} +2 -2
- package/dist/{tabs-root-CSTdrTYo.cjs.map → tabs-root-BqC8X_h6.cjs.map} +1 -1
- package/dist/{tabs-tab-Deu7thdb.js → tabs-tab-7e2as-AV.js} +3 -3
- package/dist/tabs-tab-7e2as-AV.js.map +1 -0
- package/dist/{tabs-tab-DjDhpEEE.cjs → tabs-tab-lm4xyjtD.cjs} +3 -3
- package/dist/tabs-tab-lm4xyjtD.cjs.map +1 -0
- package/dist/{thread-list-BNO_C73l.js → thread-list-DGI6M6if.js} +2 -2
- package/dist/{thread-list-BNO_C73l.js.map → thread-list-DGI6M6if.js.map} +1 -1
- package/dist/{thread-list-CSNdqkMI.cjs → thread-list-DwASH1Vl.cjs} +2 -2
- package/dist/{thread-list-CSNdqkMI.cjs.map → thread-list-DwASH1Vl.cjs.map} +1 -1
- package/dist/{time-picker-078hPxCJ.cjs → time-picker-C0DCPWpR.cjs} +2 -2
- package/dist/{time-picker-078hPxCJ.cjs.map → time-picker-C0DCPWpR.cjs.map} +1 -1
- package/dist/{time-picker-7gF4eQAt.js → time-picker-CfZbLgMm.js} +2 -2
- package/dist/{time-picker-7gF4eQAt.js.map → time-picker-CfZbLgMm.js.map} +1 -1
- package/dist/tokens.cjs.js +63 -3
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +63 -3
- package/dist/tokens.es.js.map +1 -1
- package/dist/{tool-approval-CfRaygjH.cjs → tool-approval-BAER9nxR.cjs} +2 -2
- package/dist/{tool-approval-CfRaygjH.cjs.map → tool-approval-BAER9nxR.cjs.map} +1 -1
- package/dist/{tool-approval-BViVo54e.js → tool-approval-xZvYiuBP.js} +2 -2
- package/dist/{tool-approval-BViVo54e.js.map → tool-approval-xZvYiuBP.js.map} +1 -1
- package/dist/{tool-call-arguments-9A5bjnZf.js → tool-call-arguments-D7PMJ6vj.js} +3 -3
- package/dist/{tool-call-arguments-9A5bjnZf.js.map → tool-call-arguments-D7PMJ6vj.js.map} +1 -1
- package/dist/{tool-call-arguments-pnni11q2.cjs → tool-call-arguments-ynBfg2dY.cjs} +3 -3
- package/dist/{tool-call-arguments-pnni11q2.cjs.map → tool-call-arguments-ynBfg2dY.cjs.map} +1 -1
- package/dist/{tool-call-group-DABeZh1M.cjs → tool-call-group-9Dtupqev.cjs} +3 -3
- package/dist/{tool-call-group-DABeZh1M.cjs.map → tool-call-group-9Dtupqev.cjs.map} +1 -1
- package/dist/{tool-call-group-BWKy3t21.js → tool-call-group-DJX7eUYY.js} +3 -3
- package/dist/{tool-call-group-BWKy3t21.js.map → tool-call-group-DJX7eUYY.js.map} +1 -1
- package/dist/{tool-call-mono-B1cNPKRM.cjs → tool-call-mono-DFSfVZ6E.cjs} +2 -2
- package/dist/{tool-call-mono-B1cNPKRM.cjs.map → tool-call-mono-DFSfVZ6E.cjs.map} +1 -1
- package/dist/{tool-call-mono-BKfoVlPN.js → tool-call-mono-gKG9Ek1m.js} +2 -2
- package/dist/{tool-call-mono-BKfoVlPN.js.map → tool-call-mono-gKG9Ek1m.js.map} +1 -1
- package/dist/{tool-call-output-3Ro33hUN.js → tool-call-output-DEoCE_Xn.js} +2 -2
- package/dist/{tool-call-output-3Ro33hUN.js.map → tool-call-output-DEoCE_Xn.js.map} +1 -1
- package/dist/{tool-call-output-BR0HdX36.cjs → tool-call-output-Dl4sVfCy.cjs} +2 -2
- package/dist/{tool-call-output-BR0HdX36.cjs.map → tool-call-output-Dl4sVfCy.cjs.map} +1 -1
- package/dist/{tool-card-j5PjYYXG.js → tool-card-BA1YcDoS.js} +4 -4
- package/dist/{tool-card-j5PjYYXG.js.map → tool-card-BA1YcDoS.js.map} +1 -1
- package/dist/{tool-card-CeRXZ67P.cjs → tool-card-DRqhTx-u.cjs} +4 -4
- package/dist/{tool-card-CeRXZ67P.cjs.map → tool-card-DRqhTx-u.cjs.map} +1 -1
- package/dist/{traces-data-list-Cj8_iaST.cjs → traces-data-list-CU93pUfj.cjs} +4 -4
- package/dist/{traces-data-list-Cj8_iaST.cjs.map → traces-data-list-CU93pUfj.cjs.map} +1 -1
- package/dist/{traces-data-list-DcHBQtgZ.js → traces-data-list-DaedGcID.js} +4 -4
- package/dist/{traces-data-list-DcHBQtgZ.js.map → traces-data-list-DaedGcID.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-XFvrHY2_.cjs → use-workflow-graph-runtime-D0ODPlNB.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-XFvrHY2_.cjs.map → use-workflow-graph-runtime-D0ODPlNB.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-BImilvH3.js → use-workflow-graph-runtime-XL5zreeR.js} +3 -3
- package/dist/{use-workflow-graph-runtime-BImilvH3.js.map → use-workflow-graph-runtime-XL5zreeR.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-BaUrjNPW.js → workflow-code-dialog-content-Iz2Omi1P.js} +3 -3
- package/dist/{workflow-code-dialog-content-BaUrjNPW.js.map → workflow-code-dialog-content-Iz2Omi1P.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-BZMdjs9s.cjs → workflow-code-dialog-content-vLneZlMd.cjs} +3 -3
- package/dist/{workflow-code-dialog-content-BZMdjs9s.cjs.map → workflow-code-dialog-content-vLneZlMd.cjs.map} +1 -1
- package/dist/{workflow-condition-card-BOeOKZa6.js → workflow-condition-card-B0Va5Amx.js} +9 -9
- package/dist/workflow-condition-card-B0Va5Amx.js.map +1 -0
- package/dist/{workflow-condition-card-CWzCPzQe.cjs → workflow-condition-card-CfjhZb0m.cjs} +9 -9
- package/dist/workflow-condition-card-CfjhZb0m.cjs.map +1 -0
- package/dist/{workflow-data-edge-view-DoD6VDID.cjs → workflow-data-edge-view-DXeWURnc.cjs} +2 -2
- package/dist/{workflow-data-edge-view-DoD6VDID.cjs.map → workflow-data-edge-view-DXeWURnc.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-fX21CQmu.js → workflow-data-edge-view-o7akvbpB.js} +2 -2
- package/dist/{workflow-data-edge-view-fX21CQmu.js.map → workflow-data-edge-view-o7akvbpB.js.map} +1 -1
- package/dist/{workflow-debug-controls-CIplFeXE.cjs → workflow-debug-controls-Bcb4vcek.cjs} +2 -2
- package/dist/{workflow-debug-controls-CIplFeXE.cjs.map → workflow-debug-controls-Bcb4vcek.cjs.map} +1 -1
- package/dist/{workflow-debug-controls-7EfBAsMX.js → workflow-debug-controls-DULCFa4s.js} +2 -2
- package/dist/{workflow-debug-controls-7EfBAsMX.js.map → workflow-debug-controls-DULCFa4s.js.map} +1 -1
- package/dist/{workflow-edge-data-button-Cy3liOpU.js → workflow-edge-data-button-BuZzeN2n.js} +4 -4
- package/dist/{workflow-edge-data-button-Cy3liOpU.js.map → workflow-edge-data-button-BuZzeN2n.js.map} +1 -1
- package/dist/{workflow-edge-data-button-DU3WYDe9.cjs → workflow-edge-data-button-CX-eSbSB.cjs} +4 -4
- package/dist/{workflow-edge-data-button-DU3WYDe9.cjs.map → workflow-edge-data-button-CX-eSbSB.cjs.map} +1 -1
- package/dist/{workflow-step-action-BnDqOyJd.js → workflow-step-action-Cf_XmOwj.js} +2 -2
- package/dist/{workflow-step-action-BnDqOyJd.js.map → workflow-step-action-Cf_XmOwj.js.map} +1 -1
- package/dist/{workflow-step-action-CDt3pxg-.cjs → workflow-step-action-JMkWtObA.cjs} +2 -2
- package/dist/{workflow-step-action-CDt3pxg-.cjs.map → workflow-step-action-JMkWtObA.cjs.map} +1 -1
- package/package.json +9 -9
- package/theme/colors.css +112 -0
- package/theme/data-viz.css +7 -5
- package/theme/status.css +23 -2
- package/theme/surfaces.css +1 -11
- package/theme.css +1 -1
- package/dist/Button-CHTvSq4d.js.map +0 -1
- package/dist/Button-DbJn0bJX.cjs.map +0 -1
- package/dist/Card-BbwF20OW.cjs.map +0 -1
- package/dist/Card-DmT57Pve.js.map +0 -1
- package/dist/code-editor-8l_YoqYu.cjs.map +0 -1
- package/dist/code-editor-m5ktiTwB.js.map +0 -1
- package/dist/collapsible-BFSJouuI.cjs.map +0 -1
- package/dist/collapsible-DhhP5p1j.js.map +0 -1
- package/dist/data-code-section-D01ggJy6.js.map +0 -1
- package/dist/data-code-section-W_dIahDO.cjs.map +0 -1
- package/dist/data-list-spacer-Cukij8de.js.map +0 -1
- package/dist/data-list-spacer-D8zpJS7Z.cjs.map +0 -1
- package/dist/data-list-top-G11bdV77.js.map +0 -1
- package/dist/data-list-top-KKXNLoP6.cjs.map +0 -1
- package/dist/main-sidebar-link-active-DAiTpL8z.js.map +0 -1
- package/dist/main-sidebar-link-active-DIMZKeHX.cjs.map +0 -1
- package/dist/relative-timestamp-BzfR9tDU.cjs.map +0 -1
- package/dist/relative-timestamp-SPgcvfH6.js.map +0 -1
- package/dist/scroll-area-BE7FJqVA.cjs.map +0 -1
- package/dist/scroll-area-PxtGm4w9.js.map +0 -1
- package/dist/signals-empty-state.css +0 -54
- package/dist/switch-6125Oajw.cjs.map +0 -1
- package/dist/switch-CE9jTpUG.js.map +0 -1
- package/dist/tabs-content-CcZEEfTc.cjs.map +0 -1
- package/dist/tabs-tab-Deu7thdb.js.map +0 -1
- package/dist/tabs-tab-DjDhpEEE.cjs.map +0 -1
- package/dist/workflow-condition-card-BOeOKZa6.js.map +0 -1
- package/dist/workflow-condition-card-CWzCPzQe.cjs.map +0 -1
|
@@ -10,7 +10,7 @@ const domains_chat_context_toolCallContext = require('../../chat/context/tool-ca
|
|
|
10
10
|
const domains_chat_messages_messageRow = require('../../chat/messages/message-row.cjs.js');
|
|
11
11
|
const domains_traces_components_tracesErrorContent = require('./traces-error-content.cjs.js');
|
|
12
12
|
const domains_traces_hooks_useTraceSpans = require('../hooks/use-trace-spans.cjs.js');
|
|
13
|
-
const Button = require('../../../Button-
|
|
13
|
+
const Button = require('../../../Button-BnmR2HRc.cjs');
|
|
14
14
|
const Txt = require('../../../Txt-DPmEpNbp.cjs');
|
|
15
15
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
16
16
|
|
|
@@ -6,7 +6,7 @@ import { ToolCallProvider } from '../../chat/context/tool-call-context.es.js';
|
|
|
6
6
|
import { MessageRow } from '../../chat/messages/message-row.es.js';
|
|
7
7
|
import { TracesErrorContent } from './traces-error-content.es.js';
|
|
8
8
|
import { useTraceSpans } from '../hooks/use-trace-spans.es.js';
|
|
9
|
-
import { B as Button } from '../../../Button-
|
|
9
|
+
import { B as Button } from '../../../Button-C6eUqcPI.js';
|
|
10
10
|
import { T as Txt } from '../../../Txt-BP1SRHmL.js';
|
|
11
11
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
12
12
|
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const React = require('react');
|
|
7
7
|
const domains_traces_components_threadViewByTrace = require('./thread-view-by-trace.cjs.js');
|
|
8
|
-
const dataPanel = require('../../../data-panel-
|
|
8
|
+
const dataPanel = require('../../../data-panel-CjvoI_lx.cjs');
|
|
9
9
|
|
|
10
10
|
function TraceThreadPanel({
|
|
11
11
|
threadId,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ThreadViewByTrace } from './thread-view-by-trace.es.js';
|
|
4
|
-
import { D as DataPanel } from '../../../data-panel-
|
|
4
|
+
import { D as DataPanel } from '../../../data-panel-42fdcagQ.js';
|
|
5
5
|
|
|
6
6
|
function TraceThreadPanel({
|
|
7
7
|
threadId,
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const domains_traces_traceFilters = require('../trace-filters.cjs.js');
|
|
7
|
-
const dateTimeRangePicker = require('../../../date-time-range-picker-
|
|
8
|
-
const filterBarChip = require('../../../filter-bar-chip-
|
|
7
|
+
const dateTimeRangePicker = require('../../../date-time-range-picker-BORAuIJM.cjs');
|
|
8
|
+
const filterBarChip = require('../../../filter-bar-chip-D4CSm9KP.cjs');
|
|
9
9
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
10
10
|
|
|
11
11
|
const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { traceFilterFieldColor, traceFilterFieldIcon } from '../trace-filters.es.js';
|
|
3
|
-
import { D as DateTimeRangePicker } from '../../../date-time-range-picker-
|
|
4
|
-
import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-
|
|
3
|
+
import { D as DateTimeRangePicker } from '../../../date-time-range-picker-C-pSI1u1.js';
|
|
4
|
+
import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-BNPOrSrD.js';
|
|
5
5
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
6
6
|
|
|
7
7
|
const TRACE_TIME_RANGE_FIELD_ID = "timeRange";
|
|
@@ -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-BnmR2HRc.cjs');
|
|
8
8
|
const dropdownMenu = require('../../../dropdown-menu-j2y37TL5.cjs');
|
|
9
9
|
|
|
10
10
|
const TRACES_LIST_MODE_LABELS = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { ChevronDownIcon } from 'lucide-react';
|
|
3
|
-
import { B as Button } from '../../../Button-
|
|
3
|
+
import { B as Button } from '../../../Button-C6eUqcPI.js';
|
|
4
4
|
import { D as DropdownMenu } from '../../../dropdown-menu-DpEn6HwK.js';
|
|
5
5
|
|
|
6
6
|
const TRACES_LIST_MODE_LABELS = {
|
|
@@ -8,12 +8,13 @@ const lucideReact = require('lucide-react');
|
|
|
8
8
|
const React = require('react');
|
|
9
9
|
const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
|
|
10
10
|
const domains_traces_utils_spanUtils = require('../utils/span-utils.cjs.js');
|
|
11
|
-
const dataList = require('../../../data-list-
|
|
12
|
-
const dataListSkeleton = require('../../../data-list-skeleton-
|
|
13
|
-
const tracesDataList = require('../../../traces-data-list-
|
|
11
|
+
const dataList = require('../../../data-list-D8bACyyK.cjs');
|
|
12
|
+
const dataListSkeleton = require('../../../data-list-skeleton-BXPfL0s7.cjs');
|
|
13
|
+
const tracesDataList = require('../../../traces-data-list-CU93pUfj.cjs');
|
|
14
14
|
const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
|
|
15
15
|
const dropdownMenu = require('../../../dropdown-menu-j2y37TL5.cjs');
|
|
16
16
|
const Txt = require('../../../Txt-DPmEpNbp.cjs');
|
|
17
|
+
const primitives_transitions = require('../../../primitives/transitions.cjs.js');
|
|
17
18
|
const utils_cost = require('../../../utils/cost.cjs.js');
|
|
18
19
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
19
20
|
const utils_duration = require('../../../utils/duration.cjs.js');
|
|
@@ -111,7 +112,7 @@ function TracesListView({
|
|
|
111
112
|
"button",
|
|
112
113
|
{
|
|
113
114
|
type: "button",
|
|
114
|
-
className: "
|
|
115
|
+
className: utils_cn.cn("flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground", primitives_transitions.focusRing),
|
|
115
116
|
children: [
|
|
116
117
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: label }),
|
|
117
118
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ListFilterIcon, { "aria-hidden": true, className: "size-[1.2em] shrink-0" })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.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 <DataListSkeleton 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 <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className=\"focus-visible:outline-accent flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground focus-visible:outline-2\"\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","useVirtualizer","useDataListKeyboard","useEffect","jsx","DataListSkeleton","TracesDataList","jsxs","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","ListFilterIcon","Txt","Fragment","cn","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":";;;;;;;;;;;;;;;;;;;;AA2CA,MAAM,UAAA,GAAa,EAAA;AACnB,MAAM,QAAA,GAAW,CAAA;AAEjB,MAAM,iBAAA,GAAoB,EAAA;AAE1B,SAAS,iBAAA,CAAkB,OAA4B,KAAA,EAAqD;AAC1G,EAAA,OAAO,MAAM,KAAK,CAAA;AACpB;AAEA,SAAS,0BAAA,CAA2B,QAA+B,KAAA,EAAoC;AACrG,EAAA,MAAM,MAAA,uBAAa,GAAA,EAAY;AAC/B,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,KAAA,GAAQ,MAAM,KAAK,CAAA;AACzB,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,EAAO,MAAA,CAAO,IAAI,KAAK,CAAA;AACxD,IAAA,IAAI,MAAA,CAAO,QAAQ,iBAAA,EAAmB;AAAA,EACxC;AACA,EAAA,OAAO,CAAC,GAAG,MAAM,CAAA;AACnB;AAEA,SAAS,UAAU,KAAA,EAA0D;AAC3E,EAAA,IAAI,OAAO,WAAA,KAAgB,MAAA,IAAa,KAAA,EAAO,YAAA,KAAiB,QAAW,OAAO,MAAA;AAClF,EAAA,OAAA,CAAQ,KAAA,EAAO,WAAA,IAAe,CAAA,KAAM,KAAA,EAAO,YAAA,IAAgB,CAAA,CAAA;AAC7D;AAwCO,SAAS,cAAA,CAAe;AAAA,EAC7B,MAAA;AAAA,EACA,SAAA;AAAA,EACA,kBAAA;AAAA,EACA,WAAA;AAAA,EACA,mBAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA,GAAoBA,gEAAA;AAAA,EACpB,cAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAAwB;AACtB,EAAA,MAAM,SAAA,GAAYC,aAA8B,IAAI,CAAA;AACpD,EAAA,MAAM,OAAA,GAAUC,sDAAsB,iBAAiB,CAAA;AAEvD,EAAA,MAAM,cAAcC,2BAAA,CAAe;AAAA,IACjC,OAAO,MAAA,CAAO,MAAA;AAAA,IACd,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,MAAA,CAAO,MAAA;AAAA,IACd,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,GAAgBH,aAAO,SAAS,CAAA;AACtC,EAAAI,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,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY,CAAA;AAAA,EAC7D;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,uCACGC,6BAAA,EAAA,EAAe,OAAA,EAAkB,KAAI,WAAA,EAAY,SAAA,EAAsB,WAAU,SAAA,EAChF,QAAA,EAAA;AAAA,oBAAAC,eAAA,CAACD,6BAAA,CAAe,KAAf,EACE,QAAA,EAAA;AAAA,MAAA,YAAA,mBACCF,cAAA,CAACE,6BAAA,CAAe,eAAA,EAAf,EAA+B,SAAQ,WAAA,EAAY,IAAA,EAAM,WAAA,EAAa,YAAA,EAA4B,mBAEnG,CAAA,mBAEAF,cAAA,CAACE,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,MAE9BE,8CAAA,CAAe,mBAAmB,MAAM,CAAA,mCAAMF,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,sBACpFF,cAAA,CAACE,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,gBAAA,EAAc,CAAA;AAAA,MACrCE,8CAAA,CAAe,mBAAmB,OAAO,CAAA,mCAAMF,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,sBAC5EF,cAAA,CAACE,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,MAC7BE,8CAAA,CAAe,iBAAA,EAAmB,UAAU,CAAA,oBAC3CJ,cAAA,CAACE,8BAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,UAAA,EAAQ,CAAA;AAAA,MAEpEE,8CAAA,CAAe,mBAAmB,SAAS,CAAA,mCAAMF,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,MAC3EE,8CAAA,CAAe,mBAAmB,aAAa,CAAA,mCAC7CF,6BAAA,CAAe,OAAA,EAAf,EAAuB,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,MAEpCE,8CAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,oBAC9CJ,cAAA,CAACE,8BAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,MAExEE,8CAAA,CAAe,iBAAA,EAAmB,cAAc,CAAA,oBAC/CJ,cAAA,CAACE,8BAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,eAAA,EAAa,CAAA;AAAA,MAEzEE,8CAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,oBAC9CJ,cAAA,CAACE,8BAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,MAExEE,8CAAA,CAAe,iBAAA,EAAmB,eAAe,CAAA,oBAChDJ,cAAA,CAACE,8BAAe,OAAA,EAAf,EAAuB,SAAA,EAAU,wBAAA,EAAyB,QAAA,EAAA,WAAA,EAAS,CAAA;AAAA,MAErE,iBAAA,CAAkB,aAAA,CAAc,GAAA,CAAI,CAAA,KAAA,KAAS;AAC5C,QAAA,MAAM,KAAA,GAAQG,2DAA2B,KAAK,CAAA;AAC9C,QAAA,MAAM,eAAe,eAAA,GAAkB,0BAAA,CAA2B,MAAA,EAAQ,KAAK,IAAI,EAAC;AACpF,QAAA,IAAI,CAAC,eAAA,IAAmB,YAAA,CAAa,MAAA,KAAW,CAAA,EAAG;AACjD,UAAA,uBAAOL,cAAA,CAACE,6BAAA,CAAe,OAAA,EAAf,EAAoC,mBAAR,KAAc,CAAA;AAAA,QACpD;AACA,QAAA,sCACGA,6BAAA,CAAe,OAAA,EAAf,EAAmC,SAAA,EAAU,kBAAA,EAC5C,0CAACI,yBAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAAN,cAAA;AAAA,YAACM,yBAAA,CAAa,OAAA;AAAA,YAAb;AAAA,cACC,MAAA,kBACEH,eAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,IAAA,EAAK,QAAA;AAAA,kBACL,SAAA,EAAU,uHAAA;AAAA,kBAEV,QAAA,EAAA;AAAA,oCAAAH,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,oCAC1CA,cAAA,CAACO,0BAAA,EAAA,EAAe,aAAA,EAAW,IAAA,EAAC,WAAU,uBAAA,EAAwB;AAAA;AAAA;AAAA;AAChE;AAAA,WAEJ;AAAA,0BACAJ,eAAA,CAACG,yBAAA,CAAa,OAAA,EAAb,EAAqB,OAAM,OAAA,EAC1B,QAAA,EAAA;AAAA,4BAAAN,cAAA,CAACM,yBAAA,CAAa,KAAA,EAAb,EAAmB,QAAA,EAAA,iBAAA,EAAe,CAAA;AAAA,YAClC,YAAA,CAAa,GAAA,CAAI,CAAA,KAAA,qBAChBN,cAAA,CAACM,yBAAA,CAAa,IAAA,EAAb,EAA8B,QAAA,EAAU,MAAM,eAAA,CAAgB,KAAA,EAAO,KAAK,CAAA,EACzE,yCAACE,OAAA,EAAA,EAAI,EAAA,EAAG,MAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,IAAA,EAAK,MAAA,EAAO,SAAA,EAAU,kBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA,EAAA,EAHsB,KAIxB,CACD;AAAA,WAAA,EACH;AAAA,SAAA,EACF,KAvB2B,KAwB7B,CAAA;AAAA,MAEJ,CAAC,CAAA;AAAA,MACA,iBAAA,CAAkB,YAAA,CAAa,GAAA,CAAI,CAAA,GAAA,qBAClCR,cAAA,CAACE,6BAAA,CAAe,kBAAA,EAAf,EAA4C,OAAA,EAAS,GAAA,EACnD,QAAA,EAAA,GAAA,EAAA,EADqC,GAExC,CACD;AAAA,KAAA,EACH,CAAA;AAAA,IAEC,MAAA,CAAO,WAAW,CAAA,mBACjBF,cAAA;AAAA,MAACE,6BAAA,CAAe,OAAA;AAAA,MAAf;AAAA,QACC,OAAA,EAAS,iBAAiB,qCAAA,GAAwC;AAAA;AAAA,wBAGpEC,eAAA,CAAAM,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAT,cAAA,CAACE,6BAAA,CAAe,MAAA,EAAf,EAAsB,MAAA,EAAQ,UAAA,EAAY,CAAA;AAAA,MAC1C,YAAA,CAAa,IAAI,CAAA,EAAA,KAAM;AACtB,QAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,EAAA,CAAG,KAAK,CAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,OAAO,IAAA;AAEnB,QAAA,MAAM,aACJ,KAAA,CAAM,OAAA,KAAY,oBAAoB,cAAA,IAAkB,IAAA,IAAQ,MAAM,MAAA,KAAW,cAAA,CAAA;AACnF,QAAA,MAAM,SAAS,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,CAAA,EAAI,KAAA,CAAM,UAAU,EAAE,CAAA,CAAA;AACrD,QAAA,MAAM,eAAA,GAAkB,iBAAA,EAAmB,GAAA,CAAI,MAAM,CAAA,IAAK,KAAA;AAC1D,QAAA,MAAM,WAAA,GAAc,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,SAAA;AAC7C,QAAA,MAAM,KAAA,GAAQ,cAAA,EAAgB,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA;AAE/C,QAAA,uBACEC,eAAA;AAAA,UAACD,6BAAA,CAAe,SAAA;AAAA,UAAf;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,YAAA,CAAa,KAAK,CAAA;AAAA,YACjC,QAAA,EAAU,UAAA;AAAA,YACV,SAAA,EAAWQ,WAAA,CAAG,eAAA,IAAmB,uBAAuB,CAAA;AAAA,YAExD,QAAA,EAAA;AAAA,8BAAAV,cAAA,CAACE,8BAAe,WAAA,EAAf,EAA2B,SAAA,EAAW,WAAA,EAAa,QAAO,kBAAA,EAAmB,CAAA;AAAA,cAC7EE,8CAAA,CAAe,iBAAA,EAAmB,MAAM,CAAA,oBAAKJ,cAAA,CAACE,8BAAe,QAAA,EAAf,EAAwB,UAAA,EAAY,KAAA,CAAM,UAAA,EAAY,CAAA;AAAA,8BACrGF,cAAA;AAAA,gBAACE,6BAAA,CAAe,QAAA;AAAA,gBAAf;AAAA,kBACC,IAAA,EAAM,KAAA,CAAM,UAAA,IAAc,KAAA,CAAM,IAAA;AAAA,kBAChC,cAAc,KAAA,CAAM,YAAA;AAAA,kBACpB,gBAAA,EAAkB;AAAA;AAAA,eACpB;AAAA,cACCE,8CAAA,CAAe,iBAAA,EAAmB,OAAO,CAAA,mCACvCF,6BAAA,CAAe,SAAA,EAAf,EAAyB,KAAA,EAAO,KAAA,CAAM,YAAA,IAAgBS,8CAAA,CAAgB,KAAA,CAAM,KAAK,CAAA,EAAG,CAAA;AAAA,6CAEtFT,6BAAA,CAAe,UAAA,EAAf,EAA0B,MAAA,EAAQ,MAAM,MAAA,EAAQ,CAAA;AAAA,cAChDE,+CAAe,iBAAA,EAAmB,UAAU,CAAA,oBAC3CJ,cAAA,CAACY,kBAAS,UAAA,EAAT,EAAoB,IAAA,EAAK,MAAA,EACvB,wCAAeC,gDAAA,CAAkB,KAAA,CAAM,WAAW,KAAA,CAAM,OAAO,CAAC,CAAA,EACnE,CAAA;AAAA,cAEDT,8CAAA,CAAe,iBAAA,EAAmB,SAAS,CAAA,oBAC1CJ,cAAA,CAACE,6BAAA,CAAe,WAAA,EAAf,EAA2B,SAAA,EAAW,KAAA,CAAM,OAAA,IAAW,EAAA,EAAI,QAAO,kBAAA,EAAmB,CAAA;AAAA,cAEvFE,8CAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,oBAC9CJ,cAAA,CAACY,kBAAS,QAAA,EAAT,EAAmB,QAAA,EAAA,KAAA,CAAM,WAAA,IAAe,GAAA,EAAI,CAAA;AAAA,cAE9CR,8CAAA,CAAe,iBAAA,EAAmB,aAAa,CAAA,mCAC7CQ,iBAAA,CAAS,UAAA,EAAT,EACE,QAAA,EAAA,KAAA,EAAO,gBAAgB,MAAA,GAAY,MAAA,GAAYE,8BAAA,CAAoB,KAAA,CAAM,WAAW,CAAA,EACvF,CAAA;AAAA,cAEDV,8CAAA,CAAe,iBAAA,EAAmB,cAAc,CAAA,mCAC9CQ,iBAAA,CAAS,UAAA,EAAT,EACE,QAAA,EAAA,KAAA,EAAO,iBAAiB,MAAA,GAAY,MAAA,GAAYE,8BAAA,CAAoB,KAAA,CAAM,YAAY,CAAA,EACzF,CAAA;AAAA,cAEDV,8CAAA,CAAe,mBAAmB,aAAa,CAAA,mCAC7CQ,iBAAA,CAAS,UAAA,EAAT,EACG,QAAA,EAAA,CAAA,MAAM;AACN,gBAAA,MAAM,KAAA,GAAQ,UAAU,KAAK,CAAA;AAC7B,gBAAA,OAAO,KAAA,KAAU,MAAA,GAAY,MAAA,GAAYE,8BAAA,CAAoB,KAAK,CAAA;AAAA,cACpE,IAAG,EACL,CAAA;AAAA,cAEDV,+CAAe,iBAAA,EAAmB,eAAe,CAAA,oBAChDJ,cAAA,CAACY,kBAAS,UAAA,EAAT,EACE,QAAA,EAAA,KAAA,EAAO,aAAA,KAAkB,SAAY,MAAA,GAAYG,qBAAA,CAAW,MAAM,aAAA,EAAe,KAAA,CAAM,QAAQ,CAAA,EAClG,CAAA;AAAA,cAED,kBAAkB,aAAA,CAAc,GAAA,CAAI,CAAA,KAAA,qBACnCf,cAAA,CAACY,kBAAS,QAAA,EAAT,EAAkB,IAAA,EAAK,MAAA,EACrB,4BAAkB,KAAA,EAAO,KAAK,CAAA,IAAK,MAAA,EAAA,EADF,KAEpC,CACD,CAAA;AAAA,cACA,iBAAA,CAAkB,YAAA,CAAa,GAAA,CAAI,CAAA,GAAA,KAAO;AACzC,gBAAA,MAAM,KAAA,GAAQI,wDAAA,CAAyB,KAAA,CAAM,QAAA,EAAU,GAAG,CAAA;AAC1D,gBAAA,sCACGJ,iBAAA,CAAS,QAAA,EAAT,EAAkB,IAAA,EAAK,MAAA,EACrB,mBADiC,GAEpC,CAAA;AAAA,cAEJ,CAAC;AAAA;AAAA,WAAA;AAAA,UAjEI;AAAA,SAkEP;AAAA,MAEJ,CAAC,CAAA;AAAA,sBACDZ,cAAA,CAACE,6BAAA,CAAe,MAAA,EAAf,EAAsB,QAAQ,aAAA,EAAe,CAAA;AAAA,sBAC9CF,cAAA;AAAA,QAACE,6BAAA,CAAe,eAAA;AAAA,QAAf;AAAA,UACC,SAAA,EAAW,kBAAA;AAAA,UACX,OAAA,EAAS,WAAA;AAAA,UACT;AAAA;AAAA;AACF,KAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.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 <DataListSkeleton 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 <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","useVirtualizer","useDataListKeyboard","useEffect","jsx","DataListSkeleton","TracesDataList","jsxs","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","Fragment","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
|
|
@@ -4,12 +4,13 @@ import { ListFilterIcon } from 'lucide-react';
|
|
|
4
4
|
import { useRef, useEffect } from 'react';
|
|
5
5
|
import { buildTraceListColumns, hasTraceColumn, DEFAULT_TRACE_COLUMN_PREFERENCES, TRACE_CUSTOM_COLUMN_LABELS, formatTraceMetadataValue } from '../trace-list-columns.es.js';
|
|
6
6
|
import { getInputPreview, getSpanDurationMs } from '../utils/span-utils.es.js';
|
|
7
|
-
import { D as DataList } from '../../../data-list-
|
|
8
|
-
import { D as DataListSkeleton } from '../../../data-list-skeleton-
|
|
9
|
-
import { T as TracesDataList } from '../../../traces-data-list-
|
|
7
|
+
import { D as DataList } from '../../../data-list-DL_oFE4j.js';
|
|
8
|
+
import { D as DataListSkeleton } from '../../../data-list-skeleton-Bk9LI0J0.js';
|
|
9
|
+
import { T as TracesDataList } from '../../../traces-data-list-DaedGcID.js';
|
|
10
10
|
import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
|
|
11
11
|
import { D as DropdownMenu } from '../../../dropdown-menu-DpEn6HwK.js';
|
|
12
12
|
import { T as Txt } from '../../../Txt-BP1SRHmL.js';
|
|
13
|
+
import { focusRing } from '../../../primitives/transitions.es.js';
|
|
13
14
|
import { formatCompactNumber, formatCost } from '../../../utils/cost.es.js';
|
|
14
15
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
15
16
|
import { formatDuration } from '../../../utils/duration.es.js';
|
|
@@ -107,7 +108,7 @@ function TracesListView({
|
|
|
107
108
|
"button",
|
|
108
109
|
{
|
|
109
110
|
type: "button",
|
|
110
|
-
className: "
|
|
111
|
+
className: cn("flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground", focusRing),
|
|
111
112
|
children: [
|
|
112
113
|
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: label }),
|
|
113
114
|
/* @__PURE__ */ jsx(ListFilterIcon, { "aria-hidden": true, className: "size-[1.2em] shrink-0" })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-list-view.es.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.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 <DataListSkeleton 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 <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className=\"focus-visible:outline-accent flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground focus-visible:outline-2\"\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traces-list-view.es.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.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 <DataListSkeleton 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 <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
|
|
7
|
-
const dataListSkeleton = require('../../../data-list-skeleton-
|
|
8
|
-
require('react');
|
|
9
|
-
require('../../../keyboard/keyboard-shortcuts-context.cjs.js');
|
|
7
|
+
const dataListSkeleton = require('../../../data-list-skeleton-BXPfL0s7.cjs');
|
|
10
8
|
const skeleton = require('../../../skeleton-cXUjPrq9.cjs');
|
|
11
9
|
|
|
12
10
|
function TracesPageSkeleton({ columnPreferences = domains_traces_traceListColumns.DEFAULT_TRACE_COLUMN_PREFERENCES }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-page-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","buildTraceListColumns","jsxs","jsx","Skeleton","DataListSkeleton"],"mappings":"
|
|
1
|
+
{"version":3,"file":"traces-page-skeleton.cjs.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","buildTraceListColumns","jsxs","jsx","Skeleton","DataListSkeleton"],"mappings":";;;;;;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoBA,gEAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAUC,sDAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAACC,iBAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnDD,cAAA,CAACC,iBAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACAD,cAAA,CAACE,iCAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns.es.js';
|
|
3
|
-
import { D as DataListSkeleton } from '../../../data-list-skeleton-
|
|
4
|
-
import 'react';
|
|
5
|
-
import '../../../keyboard/keyboard-shortcuts-context.es.js';
|
|
3
|
+
import { D as DataListSkeleton } from '../../../data-list-skeleton-Bk9LI0J0.js';
|
|
6
4
|
import { S as Skeleton } from '../../../skeleton-BsRAXyh5.js';
|
|
7
5
|
|
|
8
6
|
function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-page-skeleton.es.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"traces-page-skeleton.es.js","sources":["../../../../src/domains/traces/components/traces-page-skeleton.tsx"],"sourcesContent":["import { buildTraceListColumns, DEFAULT_TRACE_COLUMN_PREFERENCES } from '../trace-list-columns';\nimport type { TraceColumnPreferences } from '../trace-list-columns';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type TracesPageSkeletonProps = {\n columnPreferences?: TraceColumnPreferences;\n};\n\n/**\n * Page-level placeholder shown while filter-field discovery is pending: a toolbar-height\n * bar stands in for the FilterBar and the usual list skeleton for the trace rows.\n */\nexport function TracesPageSkeleton({ columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES }: TracesPageSkeletonProps) {\n const columns = buildTraceListColumns(columnPreferences);\n return (\n <div\n className=\"flex h-full min-h-0 flex-col gap-2\"\n role=\"status\"\n aria-label=\"Loading traces\"\n data-testid=\"traces-page-skeleton\"\n >\n <div className=\"flex items-center gap-2\">\n <Skeleton className=\"h-control-md min-w-64 flex-1\" />\n <Skeleton className=\"h-control-md w-28\" />\n </div>\n <DataListSkeleton columns={columns} fit=\"container\" />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAaO,SAAS,kBAAA,CAAmB,EAAE,iBAAA,GAAoB,gCAAA,EAAiC,EAA4B;AACpH,EAAA,MAAM,OAAA,GAAU,sBAAsB,iBAAiB,CAAA;AACvD,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,oCAAA;AAAA,MACV,IAAA,EAAK,QAAA;AAAA,MACL,YAAA,EAAW,gBAAA;AAAA,MACX,aAAA,EAAY,sBAAA;AAAA,MAEZ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,WAAU,8BAAA,EAA+B,CAAA;AAAA,0BACnD,GAAA,CAAC,QAAA,EAAA,EAAS,SAAA,EAAU,mBAAA,EAAoB;AAAA,SAAA,EAC1C,CAAA;AAAA,wBACA,GAAA,CAAC,gBAAA,EAAA,EAAiB,OAAA,EAAkB,GAAA,EAAI,WAAA,EAAY;AAAA;AAAA;AAAA,GACtD;AAEJ;;;;"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const React = require('react');
|
|
7
7
|
const domains_workflows_hooks_useWorkflows = require('../hooks/use-workflows.cjs.js');
|
|
8
|
-
const combobox = require('../../../combobox-
|
|
8
|
+
const combobox = require('../../../combobox-rKV-Lksj.cjs');
|
|
9
9
|
require('@base-ui/react/combobox');
|
|
10
10
|
const lib_framework = require('../../../lib/framework.cjs.js');
|
|
11
11
|
const toast = require('../../../toast-nm-fM7BR.cjs');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
3
|
import { useWorkflows } from '../hooks/use-workflows.es.js';
|
|
4
|
-
import { C as Combobox } from '../../../combobox-
|
|
4
|
+
import { C as Combobox } from '../../../combobox-B_C0cNid.js';
|
|
5
5
|
import '@base-ui/react/combobox';
|
|
6
6
|
import { useLinkComponent } from '../../../lib/framework.es.js';
|
|
7
7
|
import { t as toast } from '../../../toast-c5kCpyWt.js';
|
|
@@ -9,7 +9,9 @@ const Badge = require('../../../Badge-H8K5WrXg.cjs');
|
|
|
9
9
|
const entityHeader = require('../../../entity-header-DEjkHoqj.cjs');
|
|
10
10
|
const tooltip = require('../../../tooltip-DIZ5oqjV.cjs');
|
|
11
11
|
const icons_WorkflowIcon = require('../../../icons/WorkflowIcon.cjs.js');
|
|
12
|
+
const primitives_transitions = require('../../../primitives/transitions.cjs.js');
|
|
12
13
|
const hooks_useCopyToClipboard = require('../../../hooks/use-copy-to-clipboard.cjs.js');
|
|
14
|
+
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
13
15
|
|
|
14
16
|
const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
|
|
15
17
|
const { data: workflow, isLoading } = domains_workflows_hooks_useWorkflow.useWorkflow(workflowId, requestContext);
|
|
@@ -35,7 +37,7 @@ const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
|
|
|
35
37
|
role: "note",
|
|
36
38
|
tabIndex: 0,
|
|
37
39
|
"aria-label": "Dynamic workflow",
|
|
38
|
-
className: "rounded-[7px]
|
|
40
|
+
className: utils_cn.cn("rounded-[7px]", primitives_transitions.focusRing),
|
|
39
41
|
children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Database, {}), variant: "blue", children: "Dynamic" })
|
|
40
42
|
}
|
|
41
43
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-entity-header.cjs.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className
|
|
1
|
+
{"version":3,"file":"workflow-entity-header.cjs.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/utils/cn';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className={cn('rounded-[7px]', focusRing)}\n >\n <Badge icon={<Database />} variant=\"blue\">\n Dynamic\n </Badge>\n </TooltipTrigger>\n <TooltipContent>Registered via the dynamic-workflows API — lives in storage</TooltipContent>\n </Tooltip>\n )}\n </div>\n </EntityHeader>\n </TooltipProvider>\n );\n};\n"],"names":["useWorkflow","useCopyToClipboard","jsx","TooltipProvider","EntityHeader","WorkflowIcon","jsxs","Tooltip","TooltipTrigger","Badge","CopyIcon","TooltipContent","Cpu","cn","focusRing","Database"],"mappings":";;;;;;;;;;;;;;;AAeO,MAAM,oBAAA,GAAuB,CAAC,EAAE,UAAA,EAAY,gBAAe,KAAiC;AACjG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,WAAU,GAAIA,+CAAA,CAAY,YAAY,cAAc,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAW,GAAIC,4CAAmB,EAAE,IAAA,EAAM,YAAY,CAAA;AAE9D,EAAA,MAAM,YAAA,GAAe,UAAU,IAAA,IAAQ,UAAA;AACvC,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,UAAU,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACEC,cAAA,CAACC,uBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA,CAACE,yBAAA,EAAA,EAAa,sBAAMF,cAAA,CAACG,+BAAA,EAAA,EAAa,CAAA,EAAI,KAAA,EAAO,YAAA,EAAc,SAAA,EACzD,QAAA,kBAAAC,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAACC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAL,cAAA,CAACM,0BAAe,OAAA,EAAO,IAAA,EACrB,yCAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAS,UAAA,EAAY,WAAU,0BAAA,EACnD,QAAA,kBAAAN,cAAA,CAACO,eAAM,IAAA,kBAAMP,cAAA,CAACQ,wBAAS,CAAA,EAAK,QAAA,EAAA,UAAA,EAAW,GACzC,CAAA,EACF,CAAA;AAAA,sBACAR,cAAA,CAACS,0BAAe,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EAClD,CAAA;AAAA,oCAECF,WAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MAAW,OAAA;AAAA,MAAM,UAAA,KAAe,IAAI,EAAA,GAAK;AAAA,KAAA,EAC5C,CAAA;AAAA,IAEC,QAAA,EAAU,mBAAA,oBACTP,cAAA,CAACO,WAAA,EAAA,EAAM,IAAA,iCAAOG,eAAA,EAAA,EAAI,CAAA,EAAI,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,WAAA,EAEvC,CAAA;AAAA,IAGD,QAAA,EAAU,MAAA,KAAW,SAAA,oBACpBN,eAAA,CAACC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAL,cAAA;AAAA,QAACM,sBAAA;AAAA,QAAA;AAAA,UACC,MAAA,iCAAS,MAAA,EAAA,EAAK,CAAA;AAAA,UACd,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAW,kBAAA;AAAA,UACX,SAAA,EAAWK,WAAA,CAAG,eAAA,EAAiBC,gCAAS,CAAA;AAAA,UAExC,QAAA,kBAAAZ,cAAA,CAACO,eAAM,IAAA,kBAAMP,cAAA,CAACa,wBAAS,CAAA,EAAI,OAAA,EAAQ,QAAO,QAAA,EAAA,SAAA,EAE1C;AAAA;AAAA,OACF;AAAA,sBACAb,cAAA,CAACS,0BAAe,QAAA,EAAA,6DAAA,EAA2D;AAAA,KAAA,EAC7E;AAAA,GAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -5,7 +5,9 @@ import { B as Badge } from '../../../Badge-Q_pCeeGW.js';
|
|
|
5
5
|
import { E as EntityHeader } from '../../../entity-header-9qzr-3xQ.js';
|
|
6
6
|
import { b as TooltipProvider, T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../../tooltip-DsQPiynb.js';
|
|
7
7
|
import { WorkflowIcon } from '../../../icons/WorkflowIcon.es.js';
|
|
8
|
+
import { focusRing } from '../../../primitives/transitions.es.js';
|
|
8
9
|
import { useCopyToClipboard } from '../../../hooks/use-copy-to-clipboard.es.js';
|
|
10
|
+
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
9
11
|
|
|
10
12
|
const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
|
|
11
13
|
const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);
|
|
@@ -31,7 +33,7 @@ const WorkflowEntityHeader = ({ workflowId, requestContext }) => {
|
|
|
31
33
|
role: "note",
|
|
32
34
|
tabIndex: 0,
|
|
33
35
|
"aria-label": "Dynamic workflow",
|
|
34
|
-
className: "rounded-[7px]
|
|
36
|
+
className: cn("rounded-[7px]", focusRing),
|
|
35
37
|
children: /* @__PURE__ */ jsx(Badge, { icon: /* @__PURE__ */ jsx(Database, {}), variant: "blue", children: "Dynamic" })
|
|
36
38
|
}
|
|
37
39
|
),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-entity-header.es.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className
|
|
1
|
+
{"version":3,"file":"workflow-entity-header.es.js","sources":["../../../../src/domains/workflows/components/workflow-entity-header.tsx"],"sourcesContent":["import { CopyIcon, Cpu, Database } from 'lucide-react';\nimport { useWorkflow } from '@/domains/workflows/hooks/use-workflow';\nimport { Badge } from '@/ds/components/Badge';\nimport { EntityHeader } from '@/ds/components/EntityHeader';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/utils/cn';\n\nexport interface WorkflowEntityHeaderProps {\n requestContext?: Record<string, any>;\n workflowId: string;\n}\n\nexport const WorkflowEntityHeader = ({ workflowId, requestContext }: WorkflowEntityHeaderProps) => {\n const { data: workflow, isLoading } = useWorkflow(workflowId, requestContext);\n const { handleCopy } = useCopyToClipboard({ text: workflowId });\n\n const workflowName = workflow?.name || workflowId;\n const stepsCount = Object.keys(workflow?.steps ?? {}).length;\n\n return (\n <TooltipProvider>\n <EntityHeader icon={<WorkflowIcon />} title={workflowName} isLoading={isLoading}>\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-3\">\n <Tooltip>\n <TooltipTrigger asChild>\n <button type=\"button\" onClick={handleCopy} className=\"h-badge-default shrink-0\">\n <Badge icon={<CopyIcon />}>{workflowId}</Badge>\n </button>\n </TooltipTrigger>\n <TooltipContent>Copy Workflow ID for use in code</TooltipContent>\n </Tooltip>\n\n <Badge>\n {stepsCount} step{stepsCount === 1 ? '' : 's'}\n </Badge>\n\n {workflow?.isProcessorWorkflow && (\n <Badge icon={<Cpu />} variant=\"purple\">\n Processor\n </Badge>\n )}\n\n {workflow?.origin === 'dynamic' && (\n <Tooltip>\n <TooltipTrigger\n render={<span />}\n role=\"note\"\n tabIndex={0}\n aria-label=\"Dynamic workflow\"\n className={cn('rounded-[7px]', focusRing)}\n >\n <Badge icon={<Database />} variant=\"blue\">\n Dynamic\n </Badge>\n </TooltipTrigger>\n <TooltipContent>Registered via the dynamic-workflows API — lives in storage</TooltipContent>\n </Tooltip>\n )}\n </div>\n </EntityHeader>\n </TooltipProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAeO,MAAM,oBAAA,GAAuB,CAAC,EAAE,UAAA,EAAY,gBAAe,KAAiC;AACjG,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,WAAU,GAAI,WAAA,CAAY,YAAY,cAAc,CAAA;AAC5E,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,mBAAmB,EAAE,IAAA,EAAM,YAAY,CAAA;AAE9D,EAAA,MAAM,YAAA,GAAe,UAAU,IAAA,IAAQ,UAAA;AACvC,EAAA,MAAM,aAAa,MAAA,CAAO,IAAA,CAAK,UAAU,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA;AAEtD,EAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,sBAAM,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA,EAAI,KAAA,EAAO,YAAA,EAAc,SAAA,EACzD,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,OAAA,EAAO,IAAA,EACrB,8BAAC,QAAA,EAAA,EAAO,IAAA,EAAK,UAAS,OAAA,EAAS,UAAA,EAAY,WAAU,0BAAA,EACnD,QAAA,kBAAA,GAAA,CAAC,SAAM,IAAA,kBAAM,GAAA,CAAC,YAAS,CAAA,EAAK,QAAA,EAAA,UAAA,EAAW,GACzC,CAAA,EACF,CAAA;AAAA,sBACA,GAAA,CAAC,kBAAe,QAAA,EAAA,kCAAA,EAAgC;AAAA,KAAA,EAClD,CAAA;AAAA,yBAEC,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MAAW,OAAA;AAAA,MAAM,UAAA,KAAe,IAAI,EAAA,GAAK;AAAA,KAAA,EAC5C,CAAA;AAAA,IAEC,QAAA,EAAU,mBAAA,oBACT,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,sBAAO,GAAA,EAAA,EAAI,CAAA,EAAI,OAAA,EAAQ,QAAA,EAAS,QAAA,EAAA,WAAA,EAEvC,CAAA;AAAA,IAGD,QAAA,EAAU,MAAA,KAAW,SAAA,oBACpB,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,MAAA,sBAAS,MAAA,EAAA,EAAK,CAAA;AAAA,UACd,IAAA,EAAK,MAAA;AAAA,UACL,QAAA,EAAU,CAAA;AAAA,UACV,YAAA,EAAW,kBAAA;AAAA,UACX,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA;AAAA,UAExC,QAAA,kBAAA,GAAA,CAAC,SAAM,IAAA,kBAAM,GAAA,CAAC,YAAS,CAAA,EAAI,OAAA,EAAQ,QAAO,QAAA,EAAA,SAAA,EAE1C;AAAA;AAAA,OACF;AAAA,sBACA,GAAA,CAAC,kBAAe,QAAA,EAAA,6DAAA,EAA2D;AAAA,KAAA,EAC7E;AAAA,GAAA,EAEJ,GACF,CAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -13,9 +13,9 @@ const domains_workflows_workflow_workflowRunHeader = require('../workflow/workfl
|
|
|
13
13
|
const domains_workflows_workflow_workflowTrigger = require('../workflow/workflow-trigger.cjs.js');
|
|
14
14
|
const domains_workflows_components_workflowLayout = require('./workflow-layout.cjs.js');
|
|
15
15
|
const domains_workflows_hooks_useWorkflow = require('../hooks/use-workflow.cjs.js');
|
|
16
|
-
const Button = require('../../../Button-
|
|
17
|
-
const collapsible = require('../../../collapsible-
|
|
18
|
-
const scrollArea = require('../../../scroll-area-
|
|
16
|
+
const Button = require('../../../Button-BnmR2HRc.cjs');
|
|
17
|
+
const collapsible = require('../../../collapsible-jfzzU7Gp.cjs');
|
|
18
|
+
const scrollArea = require('../../../scroll-area-CEuf7Omb.cjs');
|
|
19
19
|
const lib_framework = require('../../../lib/framework.cjs.js');
|
|
20
20
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
21
21
|
const toast = require('../../../toast-nm-fM7BR.cjs');
|