@mastra/playground-ui 61.0.0-alpha.2 → 61.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -2
- package/dist/{EmptyState-DGzBN0Ix.js → EmptyState-BI6cIolY.js} +6 -5
- package/dist/EmptyState-BI6cIolY.js.map +1 -0
- package/dist/{EmptyState-DvSib3QC.cjs → EmptyState-O089K_US.cjs} +6 -5
- package/dist/EmptyState-O089K_US.cjs.map +1 -0
- package/dist/EmptyState.css +25 -0
- package/dist/{Header-BXl3AZgO.js → Header-BHqUw0qH.js} +3 -2
- package/dist/Header-BHqUw0qH.js.map +1 -0
- package/dist/{Header-W3PBmXia.cjs → Header-DwcRfQuP.cjs} +3 -2
- package/dist/Header-DwcRfQuP.cjs.map +1 -0
- package/dist/{ask-user-CqCUiZRR.js → ask-user-BF4oruLl.js} +2 -2
- package/dist/{ask-user-CqCUiZRR.js.map → ask-user-BF4oruLl.js.map} +1 -1
- package/dist/{ask-user-DBb0lUh2.cjs → ask-user-BkfO8oNm.cjs} +2 -2
- package/dist/{ask-user-DBb0lUh2.cjs.map → ask-user-BkfO8oNm.cjs.map} +1 -1
- package/dist/attachment-card-BcK3XoCH.cjs +70 -0
- package/dist/attachment-card-BcK3XoCH.cjs.map +1 -0
- package/dist/attachment-card-CbsWWaV5.js +68 -0
- package/dist/attachment-card-CbsWWaV5.js.map +1 -0
- package/dist/{checkbox-Bkobte27.cjs → checkbox-BafbfFcE.cjs} +3 -3
- package/dist/{checkbox-Bkobte27.cjs.map → checkbox-BafbfFcE.cjs.map} +1 -1
- package/dist/{checkbox-DcNIsz5L.js → checkbox-DyZhbQo9.js} +3 -3
- package/dist/{checkbox-DcNIsz5L.js.map → checkbox-DyZhbQo9.js.map} +1 -1
- package/dist/{code-block-CXZNO_qi.js → code-block-BMmilLti.js} +5 -5
- package/dist/code-block-BMmilLti.js.map +1 -0
- package/dist/{code-block-z2hVcNq7.cjs → code-block-Ipm4Kqvc.cjs} +5 -5
- package/dist/code-block-Ipm4Kqvc.cjs.map +1 -0
- package/dist/components/AttachmentCard.cjs.js +10 -0
- package/dist/components/AttachmentCard.cjs.js.map +1 -0
- package/dist/components/AttachmentCard.d.ts +2 -0
- package/dist/components/AttachmentCard.es.js +2 -0
- package/dist/components/AttachmentCard.es.js.map +1 -0
- package/dist/components/ChatShell.cjs.js +1 -1
- package/dist/components/ChatShell.es.js +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/Composer.cjs.js +3 -3
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +3 -3
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContextMenu.cjs.js +2 -222
- package/dist/components/ContextMenu.cjs.js.map +1 -1
- package/dist/components/ContextMenu.es.js +1 -206
- package/dist/components/ContextMenu.es.js.map +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- 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/EmptyState.cjs.js +1575 -1
- package/dist/components/EmptyState.cjs.js.map +1 -1
- package/dist/components/EmptyState.es.js +1578 -1
- package/dist/components/EmptyState.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/FileDropBackdrop.cjs.js +1 -1
- package/dist/components/FileDropBackdrop.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +1 -1
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +1 -1
- package/dist/components/JSONSchemaForm.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +125 -11
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +120 -1
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +2 -2
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.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/PageLayout.cjs.js +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +1 -1
- package/dist/components/RelativeTimestamp.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +496 -0
- package/dist/components/SavedViews.cjs.js.map +1 -0
- package/dist/components/SavedViews.d.ts +2 -0
- package/dist/components/SavedViews.es.js +490 -0
- package/dist/components/SavedViews.es.js.map +1 -0
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Workflow.cjs.js +2 -2
- package/dist/components/Workflow.es.js +2 -2
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js.map +1 -1
- package/dist/components/fluid-hover-highlight.es.js +1 -1
- package/dist/components/fluid-hover-highlight.es.js.map +1 -1
- package/dist/{composer-eMyX1lBH.js → composer-B_yUWdcW.js} +2 -2
- package/dist/composer-B_yUWdcW.js.map +1 -0
- package/dist/{composer-DyoM0j2m.cjs → composer-Bf2poiID.cjs} +2 -2
- package/dist/composer-Bf2poiID.cjs.map +1 -0
- package/dist/context-menu-YjTzgOUh.js +207 -0
- package/dist/context-menu-YjTzgOUh.js.map +1 -0
- package/dist/context-menu-rZEMPP12.cjs +228 -0
- package/dist/context-menu-rZEMPP12.cjs.map +1 -0
- package/dist/{data-code-section-yMYmVciV.js → data-code-section-BD4VWvPd.js} +2 -2
- package/dist/{data-code-section-yMYmVciV.js.map → data-code-section-BD4VWvPd.js.map} +1 -1
- package/dist/{data-code-section-BK0bftM-.cjs → data-code-section-t4FroAMJ.cjs} +2 -2
- package/dist/{data-code-section-BK0bftM-.cjs.map → data-code-section-t4FroAMJ.cjs.map} +1 -1
- package/dist/{data-list-DdsyfT8B.js → data-list-DYW9FuYo.js} +3 -3
- package/dist/{data-list-DdsyfT8B.js.map → data-list-DYW9FuYo.js.map} +1 -1
- package/dist/{data-list-DoKc-wSe.cjs → data-list-acjJVSpL.cjs} +3 -3
- package/dist/{data-list-DoKc-wSe.cjs.map → data-list-acjJVSpL.cjs.map} +1 -1
- package/dist/{data-list-skeleton-DuqQkzwC.cjs → data-list-skeleton-BxcJ34hQ.cjs} +2 -2
- package/dist/{data-list-skeleton-DuqQkzwC.cjs.map → data-list-skeleton-BxcJ34hQ.cjs.map} +1 -1
- package/dist/{data-list-skeleton-CeyLefM5.js → data-list-skeleton-CXvrEdMG.js} +2 -2
- package/dist/{data-list-skeleton-CeyLefM5.js.map → data-list-skeleton-CXvrEdMG.js.map} +1 -1
- package/dist/{data-list-spacer-CD4hD-As.cjs → data-list-spacer-CXzddj-5.cjs} +2 -2
- package/dist/{data-list-spacer-CD4hD-As.cjs.map → data-list-spacer-CXzddj-5.cjs.map} +1 -1
- package/dist/{data-list-spacer-7QVTcgIS.js → data-list-spacer-CZa36ohy.js} +2 -2
- package/dist/{data-list-spacer-7QVTcgIS.js.map → data-list-spacer-CZa36ohy.js.map} +1 -1
- package/dist/{data-list-top-CxUWL8gh.js → data-list-top-D7UxgRNq.js} +2 -2
- package/dist/{data-list-top-CxUWL8gh.js.map → data-list-top-D7UxgRNq.js.map} +1 -1
- package/dist/{data-list-top-CvD3KI8R.cjs → data-list-top-DJzwLjZj.cjs} +2 -2
- package/dist/{data-list-top-CvD3KI8R.cjs.map → data-list-top-DJzwLjZj.cjs.map} +1 -1
- package/dist/{data-panel-GT4fMXR0.js → data-panel-C638OC-m.js} +2 -2
- package/dist/{data-panel-GT4fMXR0.js.map → data-panel-C638OC-m.js.map} +1 -1
- package/dist/{data-panel-mzQKwVkT.cjs → data-panel-HSJNrZhx.cjs} +2 -2
- package/dist/{data-panel-mzQKwVkT.cjs.map → data-panel-HSJNrZhx.cjs.map} +1 -1
- package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
- package/dist/domains/auth/components/permission-denied.es.js +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +3 -3
- package/dist/domains/auth/components/session-expired.cjs.js.map +1 -1
- package/dist/domains/auth/components/session-expired.es.js +2 -2
- package/dist/domains/auth/components/session-expired.es.js.map +1 -1
- package/dist/domains/auth/services/sso-login.cjs.js +7 -22
- package/dist/domains/auth/services/sso-login.cjs.js.map +1 -1
- package/dist/domains/auth/services/sso-login.es.js +1 -23
- package/dist/domains/auth/services/sso-login.es.js.map +1 -1
- package/dist/domains/capabilities.cjs.js +13 -6
- package/dist/domains/capabilities.cjs.js.map +1 -1
- package/dist/domains/capabilities.es.js +1 -3
- package/dist/domains/capabilities.es.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +28 -8
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +29 -9
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
- 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/message-attachment-info.cjs.js +44 -0
- package/dist/domains/chat/attachments/message-attachment-info.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachment-info.d.ts +2 -0
- package/dist/domains/chat/attachments/message-attachment-info.es.js +38 -0
- package/dist/domains/chat/attachments/message-attachment-info.es.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachment.cjs.js +62 -0
- package/dist/domains/chat/attachments/message-attachment.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachment.d.ts +2 -0
- package/dist/domains/chat/attachments/message-attachment.es.js +58 -0
- package/dist/domains/chat/attachments/message-attachment.es.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachments.cjs.js +18 -0
- package/dist/domains/chat/attachments/message-attachments.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachments.d.ts +2 -0
- package/dist/domains/chat/attachments/message-attachments.es.js +14 -0
- package/dist/domains/chat/attachments/message-attachments.es.js.map +1 -0
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js +42 -0
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-image-attachment.d.ts +2 -0
- package/dist/domains/chat/attachments/message-image-attachment.es.js +38 -0
- package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -0
- package/dist/domains/chat/attachments/split-message-attachments.cjs.js +19 -0
- package/dist/domains/chat/attachments/split-message-attachments.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/split-message-attachments.d.ts +2 -0
- package/dist/domains/chat/attachments/split-message-attachments.es.js +14 -0
- package/dist/domains/chat/attachments/split-message-attachments.es.js.map +1 -0
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +8 -9
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +1 -2
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +11 -6
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +10 -5
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.cjs.js +3 -4
- package/dist/domains/chat/messages/renderers/in-message-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.es.js +1 -6
- package/dist/domains/chat/messages/renderers/in-message-attachment.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js +4 -4
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +4 -4
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js +4 -3
- 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 +4 -3
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +2 -2
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/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 +6 -6
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +6 -7
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +6 -7
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +3 -3
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-call-effects.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-call-effects.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +2 -2
- package/dist/domains/chat/tools/tool-card.es.js +2 -2
- package/dist/domains/chat/tools/tool-result-media.cjs.js +2 -2
- package/dist/domains/chat/tools/tool-result-media.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-result-media.es.js +2 -2
- package/dist/domains/chat/tools/tool-result-media.es.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -8
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +1 -2
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/datasets.cjs.js +25 -6
- package/dist/domains/datasets.cjs.js.map +1 -1
- package/dist/domains/datasets.es.js +1 -2
- package/dist/domains/datasets.es.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +6 -6
- package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +2 -2
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/logs/hooks.cjs.js +5 -2
- package/dist/domains/logs/hooks.cjs.js.map +1 -1
- package/dist/domains/logs/hooks.es.js +1 -1
- package/dist/domains/logs/types.d.ts +1 -0
- package/dist/domains/logs.cjs.js +5 -2
- package/dist/domains/logs.cjs.js.map +1 -1
- package/dist/domains/logs.es.js +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +10 -10
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +10 -10
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +2 -2
- package/dist/domains/memory/components/observation-detail-view.es.js +2 -2
- package/dist/domains/memory.cjs.js +25 -9
- package/dist/domains/memory.cjs.js.map +1 -1
- package/dist/domains/memory.es.js +1 -3
- package/dist/domains/memory.es.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +17 -3
- package/dist/domains/metrics/components/kpi-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +17 -3
- package/dist/domains/metrics/components/kpi-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.utils.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.utils.es.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +2 -2
- package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js +2 -35
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js +2 -35
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics.cjs.js +12 -0
- package/dist/domains/metrics/hooks/use-metrics.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics.es.js +12 -0
- package/dist/domains/metrics/hooks/use-metrics.es.js.map +1 -1
- package/dist/domains/metrics/hooks.cjs.js +61 -29
- package/dist/domains/metrics/hooks.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks.es.js +1 -14
- package/dist/domains/metrics/hooks.es.js.map +1 -1
- package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -1
- package/dist/domains/metrics/metrics-filters.es.js.map +1 -1
- package/dist/domains/metrics.cjs.js +61 -29
- package/dist/domains/metrics.cjs.js.map +1 -1
- package/dist/domains/metrics.es.js +1 -14
- package/dist/domains/metrics.es.js.map +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +14 -9
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +10 -5
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +9 -6
- package/dist/domains/observability/components/trace-as-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.es.js +9 -6
- package/dist/domains/observability/components/trace-as-item-dialog.es.js.map +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -3
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js.map +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -3
- package/dist/domains/scores/components/score-as-item-dialog.es.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- package/dist/domains/scores/components/span-scoring.es.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +13 -8
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +10 -5
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/scores/hooks.cjs.js +29 -10
- package/dist/domains/scores/hooks.cjs.js.map +1 -1
- package/dist/domains/scores/hooks.es.js +1 -3
- package/dist/domains/scores/hooks.es.js.map +1 -1
- package/dist/domains/scores.cjs.js +29 -10
- package/dist/domains/scores.cjs.js.map +1 -1
- package/dist/domains/scores.es.js +1 -3
- package/dist/domains/scores.es.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/span-feedback-tab.cjs.js +11 -8
- package/dist/domains/traces/components/span-feedback-tab.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-feedback-tab.es.js +8 -5
- package/dist/domains/traces/components/span-feedback-tab.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +7 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +7 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +6 -3
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +5 -2
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -4
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +3 -3
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-feedback-tab.cjs.js +6 -8
- package/dist/domains/traces/components/trace-feedback-tab.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-feedback-tab.es.js +3 -5
- package/dist/domains/traces/components/trace-feedback-tab.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +10 -4
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +10 -4
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +6 -2
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +6 -2
- package/dist/domains/traces/components/trace-thread-item-view.es.js.map +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 +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
- package/dist/domains/traces/components/traces-error-content.cjs.js +6 -6
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +3 -3
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +3 -6
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +3 -6
- package/dist/domains/traces/hooks/use-download-trace-json.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-column-preferences.cjs.js +2 -5
- package/dist/domains/traces/hooks/use-trace-column-preferences.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-column-preferences.es.js +2 -5
- package/dist/domains/traces/hooks/use-trace-column-preferences.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +6 -4
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.es.js +5 -3
- package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
- package/dist/domains/traces/hooks.cjs.js +49 -24
- package/dist/domains/traces/hooks.cjs.js.map +1 -1
- package/dist/domains/traces/hooks.es.js +1 -12
- package/dist/domains/traces/hooks.es.js.map +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +9 -11
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +3 -7
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/traces/types.cjs.js.map +1 -1
- package/dist/domains/traces/types.es.js.map +1 -1
- package/dist/domains/traces.cjs.js +53 -25
- package/dist/domains/traces.cjs.js.map +1 -1
- package/dist/domains/traces.es.js +2 -13
- package/dist/domains/traces.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -4
- package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -2
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -2
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +11 -3
- package/dist/domains/workflows/components/workflow-information.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.es.js +11 -3
- package/dist/domains/workflows/components/workflow-information.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
- 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 +9 -9
- 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 +3 -3
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
- package/dist/domains/workflows/context/use-persisted-workflow-run.cjs.js +9 -2
- package/dist/domains/workflows/context/use-persisted-workflow-run.cjs.js.map +1 -1
- package/dist/domains/workflows/context/use-persisted-workflow-run.es.js +10 -3
- package/dist/domains/workflows/context/use-persisted-workflow-run.es.js.map +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +2 -2
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js.map +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js.map +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js +13 -7
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js.map +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.es.js +10 -4
- package/dist/domains/workflows/context/workflow-run-provider.es.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +11 -4
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +11 -4
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +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-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-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-graph.cjs.js +0 -1
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js +0 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js.map +1 -1
- package/dist/domains/workflows.cjs.js +53 -17
- package/dist/domains/workflows.cjs.js.map +1 -1
- package/dist/domains/workflows.es.js +1 -4
- package/dist/domains/workflows.es.js.map +1 -1
- package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
- package/dist/domains/workspace/components/mount-icon.cjs.js.map +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +12 -9
- package/dist/domains/workspace/components/workspace-active-file.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +7 -4
- package/dist/domains/workspace/components/workspace-active-file.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +16 -13
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +14 -11
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-error.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-error.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-parts.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-parts.es.js +4 -4
- package/dist/domains/workspace/components/workspace-parts.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.cjs.js +7 -4
- package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +7 -4
- package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +9 -5
- package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +9 -5
- package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
- package/dist/domains/workspace.cjs.js +13 -6
- package/dist/domains/workspace.cjs.js.map +1 -1
- package/dist/domains/workspace.es.js +1 -3
- package/dist/domains/workspace.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -6
- 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 -4
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +7 -4
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +7 -4
- package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
- package/dist/errors-BiY55qIh.cjs +22 -0
- package/dist/errors-BiY55qIh.cjs.map +1 -0
- package/dist/errors-CDTokuME.js +20 -0
- package/dist/errors-CDTokuME.js.map +1 -0
- package/dist/{filter-bar-chip-CRejLco-.js → filter-bar-chip-0OLqovME.js} +19 -7
- package/dist/filter-bar-chip-0OLqovME.js.map +1 -0
- package/dist/{filter-bar-chip-Cr7kUN9G.cjs → filter-bar-chip-CbX_iAzm.cjs} +19 -6
- package/dist/filter-bar-chip-CbX_iAzm.cjs.map +1 -0
- package/dist/hooks/use-drop-zone.cjs.js +33 -0
- package/dist/hooks/use-drop-zone.cjs.js.map +1 -0
- package/dist/hooks/use-drop-zone.d.ts +2 -0
- package/dist/hooks/use-drop-zone.es.js +29 -0
- package/dist/hooks/use-drop-zone.es.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +2 -2
- package/dist/layout/tabbed-container.es.js +2 -2
- package/dist/lib/form/components/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/{list-search-DcACBmNB.js → list-search-B9t_AAN5.js} +2 -2
- package/dist/{list-search-DcACBmNB.js.map → list-search-B9t_AAN5.js.map} +1 -1
- package/dist/{list-search-CCHN2OMB.cjs → list-search-BiATHpQj.cjs} +2 -2
- package/dist/{list-search-CCHN2OMB.cjs.map → list-search-BiATHpQj.cjs.map} +1 -1
- package/dist/{logs-data-list-PlH4_hgq.js → logs-data-list-CWJxi9Qf.js} +3 -3
- package/dist/{logs-data-list-PlH4_hgq.js.map → logs-data-list-CWJxi9Qf.js.map} +1 -1
- package/dist/{logs-data-list-BITdSK12.cjs → logs-data-list-D0cymqxR.cjs} +3 -3
- package/dist/{logs-data-list-BITdSK12.cjs.map → logs-data-list-D0cymqxR.cjs.map} +1 -1
- package/dist/{main-sidebar-B0ivY7lW.js → main-sidebar-link-active-BW025pfN.js} +20 -128
- package/dist/main-sidebar-link-active-BW025pfN.js.map +1 -0
- package/dist/{main-sidebar-BWKVSRoQ.cjs → main-sidebar-link-active-MpwV6dGL.cjs} +18 -127
- package/dist/main-sidebar-link-active-MpwV6dGL.cjs.map +1 -0
- package/dist/{markdown-renderer-4iyMU2Cm.cjs → markdown-renderer-BCeiKCA4.cjs} +2 -2
- package/dist/{markdown-renderer-4iyMU2Cm.cjs.map → markdown-renderer-BCeiKCA4.cjs.map} +1 -1
- package/dist/{markdown-renderer-B3Pf1uW9.js → markdown-renderer-CKSEkKch.js} +2 -2
- package/dist/{markdown-renderer-B3Pf1uW9.js.map → markdown-renderer-CKSEkKch.js.map} +1 -1
- package/dist/{message-DGDmsmOT.cjs → message-BSjrZWVU.cjs} +7 -5
- package/dist/message-BSjrZWVU.cjs.map +1 -0
- package/dist/{message-DoxVrgBX.js → message-DGYBEr0X.js} +7 -5
- package/dist/message-DGYBEr0X.js.map +1 -0
- package/dist/{message-scroller-D-_KN9Fv.cjs → message-scroller-DcZBA9Sl.cjs} +7 -4
- package/dist/{message-scroller-D-_KN9Fv.cjs.map → message-scroller-DcZBA9Sl.cjs.map} +1 -1
- package/dist/{message-scroller-WWaQ-XU_.js → message-scroller-d8meQ5AR.js} +7 -4
- package/dist/{message-scroller-WWaQ-XU_.js.map → message-scroller-d8meQ5AR.js.map} +1 -1
- package/dist/{metrics-card-xX9SHUpB.cjs → metrics-card-B9m1jHwk.cjs} +2 -2
- package/dist/{metrics-card-xX9SHUpB.cjs.map → metrics-card-B9m1jHwk.cjs.map} +1 -1
- package/dist/{metrics-card-DFEWxFkJ.js → metrics-card-BcKVznFk.js} +2 -2
- package/dist/{metrics-card-DFEWxFkJ.js.map → metrics-card-BcKVznFk.js.map} +1 -1
- package/dist/{metrics-kpi-card-DxcLqbDU.js → metrics-kpi-card-CDeJ3I1-.js} +27 -21
- package/dist/metrics-kpi-card-CDeJ3I1-.js.map +1 -0
- package/dist/{metrics-kpi-card-9L0j_oGY.cjs → metrics-kpi-card-CLlu5you.cjs} +27 -21
- package/dist/metrics-kpi-card-CLlu5you.cjs.map +1 -0
- package/dist/new/layout/app-shell.cjs.js +1 -1
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +1 -1
- package/dist/new/layout/app-shell.es.js.map +1 -1
- package/dist/new/sidebar.cjs.js +34 -34
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +2 -2
- package/dist/{plan-D49plJdQ.cjs → plan-4Udllcyn.cjs} +2 -2
- package/dist/{plan-D49plJdQ.cjs.map → plan-4Udllcyn.cjs.map} +1 -1
- package/dist/{plan-DvkySMRk.js → plan-CZxw-Q5D.js} +2 -2
- package/dist/{plan-DvkySMRk.js.map → plan-CZxw-Q5D.js.map} +1 -1
- package/dist/primitives/message-surface.cjs.js +8 -0
- package/dist/primitives/message-surface.cjs.js.map +1 -0
- package/dist/primitives/message-surface.d.ts +2 -0
- package/dist/primitives/message-surface.es.js +4 -0
- package/dist/primitives/message-surface.es.js.map +1 -0
- package/dist/primitives/raised-surface.cjs.js.map +1 -1
- package/dist/primitives/raised-surface.es.js.map +1 -1
- package/dist/{reasoning-activity-COiiln9U.cjs → reasoning-activity-Bux9ZUhr.cjs} +2 -2
- package/dist/{reasoning-activity-COiiln9U.cjs.map → reasoning-activity-Bux9ZUhr.cjs.map} +1 -1
- package/dist/{reasoning-activity-r7B4_j4d.js → reasoning-activity-Du19QVGl.js} +2 -2
- package/dist/{reasoning-activity-r7B4_j4d.js.map → reasoning-activity-Du19QVGl.js.map} +1 -1
- package/dist/{relative-timestamp-Nnwtw7Rp.cjs → relative-timestamp-DLOmWi7o.cjs} +6 -3
- package/dist/relative-timestamp-DLOmWi7o.cjs.map +1 -0
- package/dist/{relative-timestamp-Rn8mAobA.js → relative-timestamp-XodF8W6h.js} +6 -3
- package/dist/relative-timestamp-XodF8W6h.js.map +1 -0
- package/dist/{search-input-63Y1_wgA.js → search-input-BV-rRDdJ.js} +3 -3
- package/dist/search-input-BV-rRDdJ.js.map +1 -0
- package/dist/{search-input-CBhT3N4z.cjs → search-input-DeeH0VrX.cjs} +3 -3
- package/dist/search-input-DeeH0VrX.cjs.map +1 -0
- package/dist/{span-payload-primitives-DqeZJkw3.cjs → span-payload-primitives-0b_ow5Rt.cjs} +2 -2
- package/dist/{span-payload-primitives-DqeZJkw3.cjs.map → span-payload-primitives-0b_ow5Rt.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DceLKTQK.js → span-payload-primitives-XWZOfAi-.js} +2 -2
- package/dist/{span-payload-primitives-DceLKTQK.js.map → span-payload-primitives-XWZOfAi-.js.map} +1 -1
- package/dist/src/domains/auth/services/sso-login.d.ts +2 -7
- package/dist/src/domains/capabilities/index.d.ts +1 -1
- package/dist/src/domains/chat/attachments/attachment-preview-dialog.d.ts +8 -3
- package/dist/src/domains/chat/attachments/message-attachment-info.d.ts +9 -0
- package/dist/src/domains/chat/attachments/message-attachment.d.ts +8 -0
- package/dist/src/domains/chat/attachments/message-attachments.d.ts +4 -0
- package/dist/src/domains/chat/attachments/message-image-attachment.d.ts +5 -0
- package/dist/src/domains/chat/attachments/split-message-attachments.d.ts +11 -0
- package/dist/src/domains/chat/messages/renderers/in-message-attachment.d.ts +2 -8
- package/dist/src/domains/chat/stories/attachment-focus.stories.d.ts +26 -0
- package/dist/src/domains/chat/stories/sent-attachments.stories.d.ts +30 -0
- package/dist/src/domains/datasets/index.d.ts +2 -1
- package/dist/src/domains/logs/hooks/index.d.ts +1 -1
- package/dist/src/domains/logs/types.d.ts +1 -35
- package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +1 -1
- package/dist/src/domains/memory/components/flame-graph-data.d.ts +1 -1
- package/dist/src/domains/memory/index.d.ts +1 -1
- package/dist/src/domains/metrics/components/latency-card-view.d.ts +1 -2
- package/dist/src/domains/metrics/components/latency-card-view.utils.d.ts +1 -1
- package/dist/src/domains/metrics/components/memory-card-view.d.ts +1 -2
- package/dist/src/domains/metrics/components/model-usage-cost-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/scores-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/token-usage-by-agent-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/token-usage-timeline-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/traces-volume-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/hooks/index.d.ts +14 -14
- package/dist/src/domains/metrics/hooks/use-metrics-filters.d.ts +3 -46
- package/dist/src/domains/metrics/hooks/use-metrics.d.ts +1 -0
- package/dist/src/domains/metrics/metrics-filters.d.ts +2 -18
- package/dist/src/domains/scores/hooks/index.d.ts +1 -3
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +2 -2
- package/dist/src/domains/traces/hooks/index.d.ts +12 -12
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -1
- package/dist/src/domains/traces/trace-filters.d.ts +3 -8
- package/dist/src/domains/traces/trace-list-columns.d.ts +2 -6
- package/dist/src/domains/traces/types.d.ts +2 -6
- package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +3 -3
- package/dist/src/domains/workflows/context/use-stream-for-run.d.ts +1 -1
- package/dist/src/domains/workflows/index.d.ts +1 -1
- package/dist/src/domains/workflows/utils.d.ts +2 -2
- package/dist/src/domains/workspace/index.d.ts +3 -3
- package/dist/src/ds/components/AttachmentCard/attachment-card.d.ts +12 -0
- package/dist/src/ds/components/AttachmentCard/attachment-preview.d.ts +5 -0
- package/dist/src/ds/components/AttachmentCard/index.d.ts +2 -0
- package/dist/src/ds/components/EmptyState/EmptyState.d.ts +2 -2
- package/dist/src/ds/components/EmptyState/empty-state-illustration.d.ts +4 -0
- package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +4 -0
- package/dist/src/ds/components/EmptyState/illustrations/api-keys-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/databases-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/deploys-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/disconnected-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/environments-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/locked-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/logs-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/not-a-member-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/rate-limited-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/requests-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/server-error-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/threads-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/traces-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/index.d.ts +2 -0
- package/dist/src/ds/components/Header/header.stories.d.ts +1 -0
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-link.d.ts +2 -0
- package/dist/src/ds/components/Message/message.d.ts +3 -1
- package/dist/src/ds/components/MessageScroller/message-scroller.stories.d.ts +1 -0
- package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +1 -0
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-change.d.ts +2 -1
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-header.d.ts +5 -0
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card.d.ts +2 -0
- package/dist/src/ds/components/RelativeTimestamp/relative-timestamp.stories.d.ts +1 -0
- package/dist/src/ds/components/SavedViews/index.d.ts +7 -0
- package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +8 -0
- package/dist/src/ds/components/SavedViews/saved-view-name-input.d.ts +4 -0
- package/dist/src/ds/components/SavedViews/saved-view-schema.d.ts +20 -0
- package/dist/src/ds/components/SavedViews/saved-view-summary.d.ts +10 -0
- package/dist/src/ds/components/SavedViews/saved-view-tabs.d.ts +14 -0
- package/dist/src/ds/components/SavedViews/saved-views-storage.d.ts +5 -0
- package/dist/src/ds/components/SavedViews/saved-views.stories.d.ts +5 -0
- package/dist/src/ds/components/SavedViews/use-saved-views.d.ts +35 -0
- package/dist/src/ds/components/ai/activity/activity.stories.d.ts +1 -1
- package/dist/src/ds/primitives/message-surface.d.ts +2 -0
- package/dist/src/ds/tokens/colors.d.ts +1 -0
- package/dist/src/hooks/stories/browser/use-drop-zone.stories.d.ts +17 -0
- package/dist/src/hooks/use-drop-zone.d.ts +15 -0
- package/dist/src/utils/errors.d.ts +1 -1
- package/dist/src/utils/query-utils.d.ts +1 -1
- package/dist/style.css +302 -63
- package/dist/{switch-BlE5ReVZ.cjs → switch-Dwvg61n9.cjs} +2 -2
- package/dist/{switch-BlE5ReVZ.cjs.map → switch-Dwvg61n9.cjs.map} +1 -1
- package/dist/{switch-MZ1oHrmp.js → switch-plHXs9HV.js} +2 -2
- package/dist/{switch-MZ1oHrmp.js.map → switch-plHXs9HV.js.map} +1 -1
- package/dist/tokens.cjs.js +1 -0
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +1 -0
- package/dist/tokens.es.js.map +1 -1
- package/dist/{tool-call-arguments-DQv3oaEC.js → tool-call-arguments-CufA6H_n.js} +2 -2
- package/dist/{tool-call-arguments-DQv3oaEC.js.map → tool-call-arguments-CufA6H_n.js.map} +1 -1
- package/dist/{tool-call-arguments-DdO3E60i.cjs → tool-call-arguments-DEXKbR8d.cjs} +2 -2
- package/dist/{tool-call-arguments-DdO3E60i.cjs.map → tool-call-arguments-DEXKbR8d.cjs.map} +1 -1
- package/dist/{tool-card-D9nDQgpg.cjs → tool-card-CQAEtUhC.cjs} +5 -5
- package/dist/tool-card-CQAEtUhC.cjs.map +1 -0
- package/dist/{tool-card-tK9zedNb.js → tool-card-DKNWgEoo.js} +3 -3
- package/dist/tool-card-DKNWgEoo.js.map +1 -0
- package/dist/{traces-data-list-D-wz-Je3.cjs → traces-data-list-CA7ZJ42U.cjs} +4 -4
- package/dist/{traces-data-list-D-wz-Je3.cjs.map → traces-data-list-CA7ZJ42U.cjs.map} +1 -1
- package/dist/{traces-data-list-DmCgejAx.js → traces-data-list-CMhd7o-G.js} +4 -4
- package/dist/{traces-data-list-DmCgejAx.js.map → traces-data-list-CMhd7o-G.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-BF_NZEkj.js → use-workflow-graph-runtime-BDQG0x6S.js} +2 -2
- package/dist/{use-workflow-graph-runtime-BF_NZEkj.js.map → use-workflow-graph-runtime-BDQG0x6S.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-r_OOpvSo.cjs → use-workflow-graph-runtime-C94sK_3_.cjs} +2 -2
- package/dist/{use-workflow-graph-runtime-r_OOpvSo.cjs.map → use-workflow-graph-runtime-C94sK_3_.cjs.map} +1 -1
- package/dist/utils/errors.cjs.js +36 -27
- package/dist/utils/errors.cjs.js.map +1 -1
- package/dist/utils/errors.es.js +2 -21
- package/dist/utils/errors.es.js.map +1 -1
- package/dist/utils/query-utils.cjs.js +35 -103
- package/dist/utils/query-utils.cjs.js.map +1 -1
- package/dist/utils/query-utils.es.js +1 -97
- package/dist/utils/query-utils.es.js.map +1 -1
- package/dist/{workflow-condition-card-Dlo2PaKV.cjs → workflow-condition-card-BTgxBimk.cjs} +2 -2
- package/dist/workflow-condition-card-BTgxBimk.cjs.map +1 -0
- package/dist/{workflow-condition-card-BCSYogql.js → workflow-condition-card-BrKjwx6R.js} +2 -2
- package/dist/workflow-condition-card-BrKjwx6R.js.map +1 -0
- package/dist/{workflow-debug-controls-CQc8ljAI.js → workflow-debug-controls-BVaX_0Dq.js} +2 -2
- package/dist/workflow-debug-controls-BVaX_0Dq.js.map +1 -0
- package/dist/{workflow-debug-controls-WXT05idC.cjs → workflow-debug-controls-DUNR0Ws0.cjs} +2 -2
- package/dist/workflow-debug-controls-DUNR0Ws0.cjs.map +1 -0
- package/package.json +10 -10
- package/theme/surfaces.css +11 -12
- package/dist/EmptyState-DGzBN0Ix.js.map +0 -1
- package/dist/EmptyState-DvSib3QC.cjs.map +0 -1
- package/dist/Header-BXl3AZgO.js.map +0 -1
- package/dist/Header-W3PBmXia.cjs.map +0 -1
- package/dist/code-block-CXZNO_qi.js.map +0 -1
- package/dist/code-block-z2hVcNq7.cjs.map +0 -1
- package/dist/composer-DyoM0j2m.cjs.map +0 -1
- package/dist/composer-eMyX1lBH.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-messages.cjs.js +0 -49
- package/dist/domains/agents/hooks/use-agent-messages.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-messages.d.ts +0 -2
- package/dist/domains/agents/hooks/use-agent-messages.es.js +0 -45
- package/dist/domains/agents/hooks/use-agent-messages.es.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-plan.cjs.js +0 -21
- package/dist/domains/agents/hooks/use-agent-plan.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-plan.d.ts +0 -2
- package/dist/domains/agents/hooks/use-agent-plan.es.js +0 -17
- package/dist/domains/agents/hooks/use-agent-plan.es.js.map +0 -1
- package/dist/domains/agents/hooks/use-background-tasks.cjs.js +0 -137
- package/dist/domains/agents/hooks/use-background-tasks.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-background-tasks.d.ts +0 -2
- package/dist/domains/agents/hooks/use-background-tasks.es.js +0 -132
- package/dist/domains/agents/hooks/use-background-tasks.es.js.map +0 -1
- package/dist/domains/agents/hooks/use-browser-session-probe.cjs.js +0 -46
- package/dist/domains/agents/hooks/use-browser-session-probe.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-browser-session-probe.d.ts +0 -2
- package/dist/domains/agents/hooks/use-browser-session-probe.es.js +0 -41
- package/dist/domains/agents/hooks/use-browser-session-probe.es.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js +0 -16
- package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-feedback-available.d.ts +0 -2
- package/dist/domains/capabilities/hooks/use-feedback-available.es.js +0 -12
- package/dist/domains/capabilities/hooks/use-feedback-available.es.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js +0 -20
- package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-observability-capabilities.d.ts +0 -2
- package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js +0 -16
- package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js +0 -16
- package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-trace-query-available.d.ts +0 -2
- package/dist/domains/capabilities/hooks/use-trace-query-available.es.js +0 -12
- package/dist/domains/capabilities/hooks/use-trace-query-available.es.js.map +0 -1
- package/dist/domains/capabilities/hooks.cjs.js +0 -14
- package/dist/domains/capabilities/hooks.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks.d.ts +0 -2
- package/dist/domains/capabilities/hooks.es.js +0 -4
- package/dist/domains/capabilities/hooks.es.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-items.cjs.js +0 -63
- package/dist/domains/datasets/hooks/use-dataset-items.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-items.d.ts +0 -2
- package/dist/domains/datasets/hooks/use-dataset-items.es.js +0 -58
- package/dist/domains/datasets/hooks/use-dataset-items.es.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-mutations.cjs.js +0 -157
- package/dist/domains/datasets/hooks/use-dataset-mutations.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-mutations.d.ts +0 -2
- package/dist/domains/datasets/hooks/use-dataset-mutations.es.js +0 -153
- package/dist/domains/datasets/hooks/use-dataset-mutations.es.js.map +0 -1
- package/dist/domains/datasets/hooks/use-datasets.cjs.js +0 -55
- package/dist/domains/datasets/hooks/use-datasets.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks/use-datasets.d.ts +0 -2
- package/dist/domains/datasets/hooks/use-datasets.es.js +0 -49
- package/dist/domains/datasets/hooks/use-datasets.es.js.map +0 -1
- package/dist/domains/datasets/hooks.cjs.js +0 -14
- package/dist/domains/datasets/hooks.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks.d.ts +0 -2
- package/dist/domains/datasets/hooks.es.js +0 -3
- package/dist/domains/datasets/hooks.es.js.map +0 -1
- package/dist/domains/feedback/hooks/use-feedback.cjs.js +0 -21
- package/dist/domains/feedback/hooks/use-feedback.cjs.js.map +0 -1
- package/dist/domains/feedback/hooks/use-feedback.d.ts +0 -2
- package/dist/domains/feedback/hooks/use-feedback.es.js +0 -17
- package/dist/domains/feedback/hooks/use-feedback.es.js.map +0 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js +0 -16
- package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js.map +0 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.d.ts +0 -2
- package/dist/domains/feedback/utils/feedback-refetch-interval.es.js +0 -12
- package/dist/domains/feedback/utils/feedback-refetch-interval.es.js.map +0 -1
- package/dist/domains/logs/hooks/use-logs.cjs.js +0 -69
- package/dist/domains/logs/hooks/use-logs.cjs.js.map +0 -1
- package/dist/domains/logs/hooks/use-logs.d.ts +0 -2
- package/dist/domains/logs/hooks/use-logs.es.js +0 -64
- package/dist/domains/logs/hooks/use-logs.es.js.map +0 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tools.cjs.js +0 -47
- package/dist/domains/mcps/hooks/use-mcp-app-tools.cjs.js.map +0 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tools.d.ts +0 -2
- package/dist/domains/mcps/hooks/use-mcp-app-tools.es.js +0 -43
- package/dist/domains/mcps/hooks/use-mcp-app-tools.es.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-status.cjs.js +0 -21
- package/dist/domains/memory/hooks/use-memory-status.cjs.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-status.d.ts +0 -2
- package/dist/domains/memory/hooks/use-memory-status.es.js +0 -16
- package/dist/domains/memory/hooks/use-memory-status.es.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js +0 -21
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-thread-messages.d.ts +0 -2
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js +0 -16
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js.map +0 -1
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js +0 -28
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js.map +0 -1
- package/dist/domains/memory/hooks/use-observational-memory.d.ts +0 -2
- package/dist/domains/memory/hooks/use-observational-memory.es.js +0 -23
- package/dist/domains/memory/hooks/use-observational-memory.es.js.map +0 -1
- package/dist/domains/memory/hooks.cjs.js +0 -17
- package/dist/domains/memory/hooks.cjs.js.map +0 -1
- package/dist/domains/memory/hooks.d.ts +0 -2
- package/dist/domains/memory/hooks.es.js +0 -4
- package/dist/domains/memory/hooks.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js +0 -25
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js +0 -21
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js +0 -25
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js +0 -21
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js +0 -24
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js +0 -20
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js +0 -50
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-latency-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js +0 -46
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js +0 -32
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js +0 -28
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +0 -85
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +0 -81
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js +0 -96
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-scores-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js +0 -92
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js +0 -59
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js +0 -55
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js +0 -80
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js +0 -76
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js +0 -80
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js +0 -76
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js +0 -80
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js +0 -76
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js +0 -44
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js +0 -40
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js +0 -48
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js +0 -44
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js.map +0 -1
- package/dist/domains/metrics/metrics-interval.cjs.js +0 -20
- package/dist/domains/metrics/metrics-interval.cjs.js.map +0 -1
- package/dist/domains/metrics/metrics-interval.d.ts +0 -2
- package/dist/domains/metrics/metrics-interval.es.js +0 -15
- package/dist/domains/metrics/metrics-interval.es.js.map +0 -1
- package/dist/domains/scores/hooks/use-scorers.cjs.js +0 -96
- package/dist/domains/scores/hooks/use-scorers.cjs.js.map +0 -1
- package/dist/domains/scores/hooks/use-scorers.d.ts +0 -2
- package/dist/domains/scores/hooks/use-scorers.es.js +0 -89
- package/dist/domains/scores/hooks/use-scorers.es.js.map +0 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js +0 -30
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js.map +0 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.d.ts +0 -2
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js +0 -25
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js.map +0 -1
- package/dist/domains/scores/hooks/use-trigger-scorer.cjs.js +0 -22
- package/dist/domains/scores/hooks/use-trigger-scorer.cjs.js.map +0 -1
- package/dist/domains/scores/hooks/use-trigger-scorer.d.ts +0 -2
- package/dist/domains/scores/hooks/use-trigger-scorer.es.js +0 -18
- package/dist/domains/scores/hooks/use-trigger-scorer.es.js.map +0 -1
- package/dist/domains/traces/hooks/discovery-cache.cjs.js +0 -8
- package/dist/domains/traces/hooks/discovery-cache.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/discovery-cache.d.ts +0 -2
- package/dist/domains/traces/hooks/discovery-cache.es.js +0 -4
- package/dist/domains/traces/hooks/discovery-cache.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-branch.cjs.js +0 -29
- package/dist/domains/traces/hooks/use-branch.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-branch.d.ts +0 -2
- package/dist/domains/traces/hooks/use-branch.es.js +0 -25
- package/dist/domains/traces/hooks/use-branch.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-create-feedback.cjs.js +0 -28
- package/dist/domains/traces/hooks/use-create-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-create-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-create-feedback.es.js +0 -24
- package/dist/domains/traces/hooks/use-create-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-delete-feedback.cjs.js +0 -20
- package/dist/domains/traces/hooks/use-delete-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-delete-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-delete-feedback.es.js +0 -16
- package/dist/domains/traces/hooks/use-delete-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-entity-names.cjs.js +0 -50
- package/dist/domains/traces/hooks/use-entity-names.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-entity-names.d.ts +0 -2
- package/dist/domains/traces/hooks/use-entity-names.es.js +0 -46
- package/dist/domains/traces/hooks/use-entity-names.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-environments.cjs.js +0 -27
- package/dist/domains/traces/hooks/use-environments.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-environments.d.ts +0 -2
- package/dist/domains/traces/hooks/use-environments.es.js +0 -23
- package/dist/domains/traces/hooks/use-environments.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-service-names.cjs.js +0 -27
- package/dist/domains/traces/hooks/use-service-names.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-service-names.d.ts +0 -2
- package/dist/domains/traces/hooks/use-service-names.es.js +0 -23
- package/dist/domains/traces/hooks/use-service-names.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-detail.cjs.js +0 -31
- package/dist/domains/traces/hooks/use-span-detail.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-detail.d.ts +0 -2
- package/dist/domains/traces/hooks/use-span-detail.es.js +0 -27
- package/dist/domains/traces/hooks/use-span-detail.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-feedback.cjs.js +0 -28
- package/dist/domains/traces/hooks/use-span-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-span-feedback.es.js +0 -24
- package/dist/domains/traces/hooks/use-span-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-tags.cjs.js +0 -27
- package/dist/domains/traces/hooks/use-tags.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-tags.d.ts +0 -2
- package/dist/domains/traces/hooks/use-tags.es.js +0 -23
- package/dist/domains/traces/hooks/use-tags.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-thread-has-other-traces.cjs.js +0 -25
- package/dist/domains/traces/hooks/use-thread-has-other-traces.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-thread-has-other-traces.d.ts +0 -2
- package/dist/domains/traces/hooks/use-thread-has-other-traces.es.js +0 -21
- package/dist/domains/traces/hooks/use-thread-has-other-traces.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-feedback.cjs.js +0 -33
- package/dist/domains/traces/hooks/use-trace-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-feedback.es.js +0 -29
- package/dist/domains/traces/hooks/use-trace-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -33
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-light-spans.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -29
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.cjs.js +0 -68
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.es.js +0 -62
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js +0 -40
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js +0 -36
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-query.cjs.js +0 -152
- package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-query.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-query.es.js +0 -142
- package/dist/domains/traces/hooks/use-trace-query.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js +0 -50
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-spans.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-spans.es.js +0 -44
- package/dist/domains/traces/hooks/use-trace-spans.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-usage.cjs.js +0 -99
- package/dist/domains/traces/hooks/use-trace-usage.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-usage.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-usage.es.js +0 -95
- package/dist/domains/traces/hooks/use-trace-usage.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-traces.cjs.js +0 -354
- package/dist/domains/traces/hooks/use-traces.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-traces.d.ts +0 -2
- package/dist/domains/traces/hooks/use-traces.es.js +0 -343
- package/dist/domains/traces/hooks/use-traces.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow-runs.cjs.js +0 -81
- package/dist/domains/workflows/hooks/use-workflow-runs.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow-runs.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflow-runs.es.js +0 -71
- package/dist/domains/workflows/hooks/use-workflow-runs.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow.cjs.js +0 -21
- package/dist/domains/workflows/hooks/use-workflow.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflow.es.js +0 -17
- package/dist/domains/workflows/hooks/use-workflow.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows-run-counts.cjs.js +0 -33
- package/dist/domains/workflows/hooks/use-workflows-run-counts.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows-run-counts.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflows-run-counts.es.js +0 -26
- package/dist/domains/workflows/hooks/use-workflows-run-counts.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows.cjs.js +0 -22
- package/dist/domains/workflows/hooks/use-workflows.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflows.es.js +0 -18
- package/dist/domains/workflows/hooks/use-workflows.es.js.map +0 -1
- package/dist/domains/workflows/hooks.cjs.js +0 -25
- package/dist/domains/workflows/hooks.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks.d.ts +0 -2
- package/dist/domains/workflows/hooks.es.js +0 -5
- package/dist/domains/workflows/hooks.es.js.map +0 -1
- package/dist/domains/workspace/file-type.cjs.js +0 -25
- package/dist/domains/workspace/file-type.cjs.js.map +0 -1
- package/dist/domains/workspace/file-type.d.ts +0 -2
- package/dist/domains/workspace/file-type.es.js +0 -17
- package/dist/domains/workspace/file-type.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-skills-sh.cjs.js +0 -72
- package/dist/domains/workspace/hooks/use-skills-sh.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-skills-sh.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-skills-sh.es.js +0 -65
- package/dist/domains/workspace/hooks/use-skills-sh.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js +0 -21
- package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-directory.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-workspace-directory.es.js +0 -16
- package/dist/domains/workspace/hooks/use-workspace-directory.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js +0 -22
- package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-file-content.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-workspace-file-content.es.js +0 -18
- package/dist/domains/workspace/hooks/use-workspace-file-content.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-search.cjs.js +0 -53
- package/dist/domains/workspace/hooks/use-workspace-search.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-search.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-workspace-search.es.js +0 -49
- package/dist/domains/workspace/hooks/use-workspace-search.es.js.map +0 -1
- package/dist/filter-bar-chip-CRejLco-.js.map +0 -1
- package/dist/filter-bar-chip-Cr7kUN9G.cjs.map +0 -1
- package/dist/main-sidebar-B0ivY7lW.js.map +0 -1
- package/dist/main-sidebar-BWKVSRoQ.cjs.map +0 -1
- package/dist/map-CGEv7zQW.cjs +0 -12
- package/dist/map-CGEv7zQW.cjs.map +0 -1
- package/dist/map-DBJibfZS.js +0 -10
- package/dist/map-DBJibfZS.js.map +0 -1
- package/dist/message-DGDmsmOT.cjs.map +0 -1
- package/dist/message-DoxVrgBX.js.map +0 -1
- package/dist/metrics-kpi-card-9L0j_oGY.cjs.map +0 -1
- package/dist/metrics-kpi-card-DxcLqbDU.js.map +0 -1
- package/dist/relative-timestamp-Nnwtw7Rp.cjs.map +0 -1
- package/dist/relative-timestamp-Rn8mAobA.js.map +0 -1
- package/dist/search-input-63Y1_wgA.js.map +0 -1
- package/dist/search-input-CBhT3N4z.cjs.map +0 -1
- package/dist/src/domains/agents/hooks/use-agent-messages.d.ts +0 -19
- package/dist/src/domains/agents/hooks/use-agent-plan.d.ts +0 -11
- package/dist/src/domains/agents/hooks/use-background-tasks.d.ts +0 -67
- package/dist/src/domains/agents/hooks/use-browser-session-probe.d.ts +0 -32
- package/dist/src/domains/capabilities/hooks/index.d.ts +0 -3
- package/dist/src/domains/capabilities/hooks/use-feedback-available.d.ts +0 -8
- package/dist/src/domains/capabilities/hooks/use-observability-capabilities.d.ts +0 -23
- package/dist/src/domains/capabilities/hooks/use-trace-query-available.d.ts +0 -8
- package/dist/src/domains/datasets/hooks/index.d.ts +0 -2
- package/dist/src/domains/datasets/hooks/use-dataset-items.d.ts +0 -1355
- package/dist/src/domains/datasets/hooks/use-dataset-mutations.d.ts +0 -337
- package/dist/src/domains/datasets/hooks/use-datasets.d.ts +0 -889
- package/dist/src/domains/feedback/hooks/use-feedback.d.ts +0 -48
- package/dist/src/domains/feedback/utils/feedback-refetch-interval.d.ts +0 -6
- package/dist/src/domains/logs/hooks/use-logs.d.ts +0 -25
- package/dist/src/domains/mcps/hooks/use-mcp-app-tools.d.ts +0 -16
- package/dist/src/domains/memory/hooks/index.d.ts +0 -3
- package/dist/src/domains/memory/hooks/use-memory-status.d.ts +0 -15
- package/dist/src/domains/memory/hooks/use-memory-thread-messages.d.ts +0 -5
- package/dist/src/domains/memory/hooks/use-observational-memory.d.ts +0 -93
- package/dist/src/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +0 -13
- package/dist/src/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +0 -13
- package/dist/src/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +0 -10
- package/dist/src/domains/metrics/hooks/use-latency-metrics.d.ts +0 -16
- package/dist/src/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +0 -7
- package/dist/src/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +0 -10
- package/dist/src/domains/metrics/hooks/use-scores-metrics.d.ts +0 -22
- package/dist/src/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +0 -9
- package/dist/src/domains/metrics/hooks/use-token-usage-timeseries.d.ts +0 -16
- package/dist/src/domains/metrics/hooks/use-top-active-threads-metrics.d.ts +0 -15
- package/dist/src/domains/metrics/hooks/use-top-resources-by-threads-metrics.d.ts +0 -14
- package/dist/src/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +0 -6
- package/dist/src/domains/metrics/hooks/use-trace-volume-metrics.d.ts +0 -10
- package/dist/src/domains/metrics/metrics-interval.d.ts +0 -7
- package/dist/src/domains/scores/hooks/use-scorers.d.ts +0 -256
- package/dist/src/domains/scores/hooks/use-trace-span-scores.d.ts +0 -73
- package/dist/src/domains/scores/hooks/use-trigger-scorer.d.ts +0 -11
- package/dist/src/domains/traces/hooks/discovery-cache.d.ts +0 -11
- package/dist/src/domains/traces/hooks/use-branch.d.ts +0 -11
- package/dist/src/domains/traces/hooks/use-create-feedback.d.ts +0 -14
- package/dist/src/domains/traces/hooks/use-delete-feedback.d.ts +0 -14
- package/dist/src/domains/traces/hooks/use-entity-names.d.ts +0 -8
- package/dist/src/domains/traces/hooks/use-environments.d.ts +0 -1
- package/dist/src/domains/traces/hooks/use-service-names.d.ts +0 -1
- package/dist/src/domains/traces/hooks/use-span-detail.d.ts +0 -5
- package/dist/src/domains/traces/hooks/use-span-feedback.d.ts +0 -74
- package/dist/src/domains/traces/hooks/use-tags.d.ts +0 -1
- package/dist/src/domains/traces/hooks/use-thread-has-other-traces.d.ts +0 -6
- package/dist/src/domains/traces/hooks/use-trace-feedback.d.ts +0 -70
- package/dist/src/domains/traces/hooks/use-trace-light-spans.d.ts +0 -6
- package/dist/src/domains/traces/hooks/use-trace-metadata-filter-fields.d.ts +0 -28
- package/dist/src/domains/traces/hooks/use-trace-or-branch-spans.d.ts +0 -28
- package/dist/src/domains/traces/hooks/use-trace-query.d.ts +0 -51
- package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +0 -253
- package/dist/src/domains/traces/hooks/use-trace-usage.d.ts +0 -6
- package/dist/src/domains/traces/hooks/use-traces.d.ts +0 -106
- package/dist/src/domains/workflows/hooks/index.d.ts +0 -4
- package/dist/src/domains/workflows/hooks/use-workflow-runs.d.ts +0 -546
- package/dist/src/domains/workflows/hooks/use-workflow.d.ts +0 -1
- package/dist/src/domains/workflows/hooks/use-workflows-run-counts.d.ts +0 -22
- package/dist/src/domains/workflows/hooks/use-workflows.d.ts +0 -6
- package/dist/src/domains/workspace/file-type.d.ts +0 -6
- package/dist/src/domains/workspace/hooks/use-skills-sh.d.ts +0 -51
- package/dist/src/domains/workspace/hooks/use-workspace-directory.d.ts +0 -17
- package/dist/src/domains/workspace/hooks/use-workspace-file-content.d.ts +0 -8
- package/dist/src/domains/workspace/hooks/use-workspace-search.d.ts +0 -11
- package/dist/src/lib/query-utils.d.ts +0 -47
- package/dist/tool-card-D9nDQgpg.cjs.map +0 -1
- package/dist/tool-card-tK9zedNb.js.map +0 -1
- package/dist/workflow-condition-card-BCSYogql.js.map +0 -1
- package/dist/workflow-condition-card-Dlo2PaKV.cjs.map +0 -1
- package/dist/workflow-debug-controls-CQc8ljAI.js.map +0 -1
- package/dist/workflow-debug-controls-WXT05idC.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-workspace-search.cjs.js","sources":["../../../../src/domains/workspace/hooks/use-workspace-search.ts"],"sourcesContent":["import type { SkillSearchResult } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\n\nexport interface WorkspaceSearchHit {\n kind: 'file' | 'skill';\n path: string;\n label: string;\n score: number;\n}\n\n// Chunked files are indexed as `<path>#chunk-<n>`.\nconst filePathFromId = (id: string) => id.replace(/#chunk-\\d+$/, '');\n\nconst basename = (path: string) => path.split('/').filter(Boolean).pop() ?? path;\n\n// The server returns `skillPath`, which the client type does not declare yet.\nconst skillFilePath = (result: SkillSearchResult & { skillPath?: string }) =>\n result.skillPath ? `${result.skillPath.replace(/\\/$/, '')}/SKILL.md` : result.source;\n\n/** Searches files and skills in parallel; one failing source (e.g. 501 not configured) keeps the other's hits. */\nexport function useWorkspaceSearch(\n workspaceId: string,\n query: string,\n { files: searchFiles = true, skills: searchSkills = true }: { files?: boolean; skills?: boolean } = {},\n) {\n const client = useMastraClient();\n const trimmed = query.trim();\n\n return useQuery({\n queryKey: ['workspace', workspaceId, 'search', trimmed, searchFiles, searchSkills],\n queryFn: async () => {\n const workspace = client.getWorkspace(workspaceId);\n const [files, skills] = await Promise.allSettled([\n searchFiles ? workspace.search({ query: trimmed }) : Promise.reject(new Error('File search disabled')),\n searchSkills ? workspace.searchSkills({ query: trimmed }) : Promise.reject(new Error('Skill search disabled')),\n ]);\n\n if (files.status === 'rejected' && skills.status === 'rejected') {\n throw (searchFiles ? files : skills).reason;\n }\n\n const hits = new Map<string, WorkspaceSearchHit>();\n const add = (hit: WorkspaceSearchHit) => {\n const existing = hits.get(hit.path);\n if (!existing || existing.score < hit.score) hits.set(hit.path, hit);\n };\n\n if (files.status === 'fulfilled') {\n for (const result of files.value.results) {\n const path = filePathFromId(result.id);\n add({ kind: 'file', path, label: basename(path), score: result.score });\n }\n }\n if (skills.status === 'fulfilled') {\n for (const result of skills.value.results) {\n add({\n kind: 'skill',\n path: skillFilePath(result),\n label: result.skillName,\n score: result.score,\n });\n }\n }\n\n return [...hits.values()].sort((a, b) => b.score - a.score);\n },\n enabled: trimmed.length > 0 && (searchFiles || searchSkills),\n });\n}\n"],"names":["useMastraClient","useQuery"],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { useMastraClient } from '@mastra/react';
|
|
2
|
-
import { useQuery } from '@tanstack/react-query';
|
|
3
|
-
|
|
4
|
-
const filePathFromId = (id) => id.replace(/#chunk-\d+$/, "");
|
|
5
|
-
const basename = (path) => path.split("/").filter(Boolean).pop() ?? path;
|
|
6
|
-
const skillFilePath = (result) => result.skillPath ? `${result.skillPath.replace(/\/$/, "")}/SKILL.md` : result.source;
|
|
7
|
-
function useWorkspaceSearch(workspaceId, query, { files: searchFiles = true, skills: searchSkills = true } = {}) {
|
|
8
|
-
const client = useMastraClient();
|
|
9
|
-
const trimmed = query.trim();
|
|
10
|
-
return useQuery({
|
|
11
|
-
queryKey: ["workspace", workspaceId, "search", trimmed, searchFiles, searchSkills],
|
|
12
|
-
queryFn: async () => {
|
|
13
|
-
const workspace = client.getWorkspace(workspaceId);
|
|
14
|
-
const [files, skills] = await Promise.allSettled([
|
|
15
|
-
searchFiles ? workspace.search({ query: trimmed }) : Promise.reject(new Error("File search disabled")),
|
|
16
|
-
searchSkills ? workspace.searchSkills({ query: trimmed }) : Promise.reject(new Error("Skill search disabled"))
|
|
17
|
-
]);
|
|
18
|
-
if (files.status === "rejected" && skills.status === "rejected") {
|
|
19
|
-
throw (searchFiles ? files : skills).reason;
|
|
20
|
-
}
|
|
21
|
-
const hits = /* @__PURE__ */ new Map();
|
|
22
|
-
const add = (hit) => {
|
|
23
|
-
const existing = hits.get(hit.path);
|
|
24
|
-
if (!existing || existing.score < hit.score) hits.set(hit.path, hit);
|
|
25
|
-
};
|
|
26
|
-
if (files.status === "fulfilled") {
|
|
27
|
-
for (const result of files.value.results) {
|
|
28
|
-
const path = filePathFromId(result.id);
|
|
29
|
-
add({ kind: "file", path, label: basename(path), score: result.score });
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (skills.status === "fulfilled") {
|
|
33
|
-
for (const result of skills.value.results) {
|
|
34
|
-
add({
|
|
35
|
-
kind: "skill",
|
|
36
|
-
path: skillFilePath(result),
|
|
37
|
-
label: result.skillName,
|
|
38
|
-
score: result.score
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return [...hits.values()].sort((a, b) => b.score - a.score);
|
|
43
|
-
},
|
|
44
|
-
enabled: trimmed.length > 0 && (searchFiles || searchSkills)
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export { useWorkspaceSearch };
|
|
49
|
-
//# sourceMappingURL=use-workspace-search.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-workspace-search.es.js","sources":["../../../../src/domains/workspace/hooks/use-workspace-search.ts"],"sourcesContent":["import type { SkillSearchResult } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\n\nexport interface WorkspaceSearchHit {\n kind: 'file' | 'skill';\n path: string;\n label: string;\n score: number;\n}\n\n// Chunked files are indexed as `<path>#chunk-<n>`.\nconst filePathFromId = (id: string) => id.replace(/#chunk-\\d+$/, '');\n\nconst basename = (path: string) => path.split('/').filter(Boolean).pop() ?? path;\n\n// The server returns `skillPath`, which the client type does not declare yet.\nconst skillFilePath = (result: SkillSearchResult & { skillPath?: string }) =>\n result.skillPath ? `${result.skillPath.replace(/\\/$/, '')}/SKILL.md` : result.source;\n\n/** Searches files and skills in parallel; one failing source (e.g. 501 not configured) keeps the other's hits. */\nexport function useWorkspaceSearch(\n workspaceId: string,\n query: string,\n { files: searchFiles = true, skills: searchSkills = true }: { files?: boolean; skills?: boolean } = {},\n) {\n const client = useMastraClient();\n const trimmed = query.trim();\n\n return useQuery({\n queryKey: ['workspace', workspaceId, 'search', trimmed, searchFiles, searchSkills],\n queryFn: async () => {\n const workspace = client.getWorkspace(workspaceId);\n const [files, skills] = await Promise.allSettled([\n searchFiles ? workspace.search({ query: trimmed }) : Promise.reject(new Error('File search disabled')),\n searchSkills ? workspace.searchSkills({ query: trimmed }) : Promise.reject(new Error('Skill search disabled')),\n ]);\n\n if (files.status === 'rejected' && skills.status === 'rejected') {\n throw (searchFiles ? files : skills).reason;\n }\n\n const hits = new Map<string, WorkspaceSearchHit>();\n const add = (hit: WorkspaceSearchHit) => {\n const existing = hits.get(hit.path);\n if (!existing || existing.score < hit.score) hits.set(hit.path, hit);\n };\n\n if (files.status === 'fulfilled') {\n for (const result of files.value.results) {\n const path = filePathFromId(result.id);\n add({ kind: 'file', path, label: basename(path), score: result.score });\n }\n }\n if (skills.status === 'fulfilled') {\n for (const result of skills.value.results) {\n add({\n kind: 'skill',\n path: skillFilePath(result),\n label: result.skillName,\n score: result.score,\n });\n }\n }\n\n return [...hits.values()].sort((a, b) => b.score - a.score);\n },\n enabled: trimmed.length > 0 && (searchFiles || searchSkills),\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-bar-chip-CRejLco-.js","sources":["../src/ds/components/FilterBar/filter-bar-tree.ts","../src/ds/components/FilterBar/filter-bar-context.tsx","../src/ds/components/FilterBar/filter-bar-option-list.tsx","../src/ds/components/FilterBar/match-query.ts","../src/ds/components/FilterBar/use-value-suggestions.ts","../src/ds/components/FilterBar/use-value-step.ts","../src/ds/components/FilterBar/filter-bar-chip.tsx"],"sourcesContent":["import type { FilterBarExpression, FilterBarGroup, FilterBarItem, FilterBarLogic, FilterBarNode } from './types';\nimport { isFilterBarGroup } from './types';\n\nexport type FilterBarValueInput = FilterBarItem[] | FilterBarExpression;\n\nexport const ROOT_GROUP_ID = 'root';\n\nexport const normalize = (value: FilterBarValueInput): FilterBarExpression =>\n Array.isArray(value) ? { logic: 'and', nodes: value } : value;\n\n/** Hands back the shape the consumer gave us: flat arrays only ever contain items. */\nexport const denormalize = (expr: FilterBarExpression, flat: boolean): FilterBarValueInput =>\n flat ? expr.nodes.filter((node): node is FilterBarItem => !isFilterBarGroup(node)) : expr;\n\nexport type FlatEntry = { item: FilterBarItem; groupId?: string };\n\n/**\n * Items in document order (pre-order, depth-first), each tagged with the group it lives\n * in. A group's leaves sit where its advanced chip sits in the bar, so arrow navigation\n * walks the bar left to right.\n */\nexport const flattenItems = (expr: FilterBarExpression): FlatEntry[] => {\n const out: FlatEntry[] = [];\n const walk = (nodes: FilterBarNode[], groupId: string | undefined) => {\n for (const node of nodes) {\n if (isFilterBarGroup(node)) walk(node.nodes, node.id);\n else out.push(groupId ? { item: node, groupId } : { item: node });\n }\n };\n walk(expr.nodes, undefined);\n return out;\n};\n\nconst findGroupIn = (nodes: FilterBarNode[], groupId: string): FilterBarGroup | undefined => {\n for (const node of nodes) {\n if (!isFilterBarGroup(node)) continue;\n if (node.id === groupId) return node;\n const nested = findGroupIn(node.nodes, groupId);\n if (nested) return nested;\n }\n return undefined;\n};\n\nexport const findGroup = (expr: FilterBarExpression, groupId: string): FilterBarGroup | undefined =>\n findGroupIn(expr.nodes, groupId);\n\nexport const findItem = (expr: FilterBarExpression, itemId: string): FlatEntry | undefined =>\n flattenItems(expr).find(entry => entry.item.id === itemId);\n\n/** Nesting level of a group: root-level groups are at depth 1; `0` when not found. */\nexport const groupDepth = (expr: FilterBarExpression, groupId: string): number => {\n const walk = (nodes: FilterBarNode[], depth: number): number => {\n for (const node of nodes) {\n if (!isFilterBarGroup(node)) continue;\n if (node.id === groupId) return depth;\n const nested = walk(node.nodes, depth + 1);\n if (nested) return nested;\n }\n return 0;\n };\n return walk(expr.nodes, 1);\n};\n\n/** Number of leaf conditions under a group, at any depth. */\nexport const countLeaves = (group: FilterBarGroup): number =>\n group.nodes.reduce((sum, node) => sum + (isFilterBarGroup(node) ? countLeaves(node) : 1), 0);\n\n/** Ids of a group and every node below it. */\nexport const collectIds = (group: FilterBarGroup): string[] => [\n group.id,\n ...group.nodes.flatMap(node => (isFilterBarGroup(node) ? collectIds(node) : [node.id])),\n];\n\nconst mapGroup = (\n nodes: FilterBarNode[],\n groupId: string,\n fn: (group: FilterBarGroup) => FilterBarGroup,\n): FilterBarNode[] =>\n nodes.map(node => {\n if (!isFilterBarGroup(node)) return node;\n return node.id === groupId ? fn(node) : { ...node, nodes: mapGroup(node.nodes, groupId, fn) };\n });\n\nconst mapItems = (nodes: FilterBarNode[], fn: (item: FilterBarItem) => FilterBarItem): FilterBarNode[] =>\n nodes.map(node => (isFilterBarGroup(node) ? { ...node, nodes: mapItems(node.nodes, fn) } : fn(node)));\n\nconst filterNodes = (nodes: FilterBarNode[], keep: (node: FilterBarNode) => boolean): FilterBarNode[] =>\n nodes.filter(keep).map(node => (isFilterBarGroup(node) ? { ...node, nodes: filterNodes(node.nodes, keep) } : node));\n\nexport const updateItem = (\n expr: FilterBarExpression,\n itemId: string,\n patch: Partial<Omit<FilterBarItem, 'id'>>,\n): FilterBarExpression => ({\n ...expr,\n nodes: mapItems(expr.nodes, item => (item.id === itemId ? { ...item, ...patch } : item)),\n});\n\n/** Removes an item or a group by id at any depth. Groups left empty are kept (see `pruneEmptyGroups`). */\nexport const removeNode = (expr: FilterBarExpression, id: string): FilterBarExpression => ({\n ...expr,\n nodes: filterNodes(expr.nodes, node => node.id !== id),\n});\n\nexport const removeNodes = (expr: FilterBarExpression, ids: Iterable<string>): FilterBarExpression => {\n const drop = new Set(ids);\n return { ...expr, nodes: filterNodes(expr.nodes, node => !drop.has(node.id)) };\n};\n\nconst pruneNodes = (nodes: FilterBarNode[]): FilterBarNode[] =>\n nodes.flatMap((node): FilterBarNode[] => {\n if (!isFilterBarGroup(node)) return [node];\n const pruned = pruneNodes(node.nodes);\n return pruned.length === 0 ? [] : [{ ...node, nodes: pruned }];\n });\n\n/** Drops every group with no leaf left, bottom-up. */\nexport const pruneEmptyGroups = (expr: FilterBarExpression): FilterBarExpression => ({\n ...expr,\n nodes: pruneNodes(expr.nodes),\n});\n\nexport const insertItem = (\n expr: FilterBarExpression,\n groupId: string | undefined,\n item: FilterBarItem,\n): FilterBarExpression => {\n if (!groupId || groupId === ROOT_GROUP_ID) return { ...expr, nodes: [...expr.nodes, item] };\n return { ...expr, nodes: mapGroup(expr.nodes, groupId, group => ({ ...group, nodes: [...group.nodes, item] })) };\n};\n\nexport const setGroupLogic = (\n expr: FilterBarExpression,\n groupId: string,\n logic: FilterBarLogic,\n): FilterBarExpression => {\n if (groupId === ROOT_GROUP_ID) return { ...expr, logic };\n return { ...expr, nodes: mapGroup(expr.nodes, groupId, group => ({ ...group, logic })) };\n};\n\n/** Appends a group to the root, or inside `parentId`. */\nexport const createGroup = (\n expr: FilterBarExpression,\n parentId: string | undefined,\n group: FilterBarGroup,\n): FilterBarExpression => {\n if (!parentId || parentId === ROOT_GROUP_ID) return { ...expr, nodes: [...expr.nodes, group] };\n return { ...expr, nodes: mapGroup(expr.nodes, parentId, parent => ({ ...parent, nodes: [...parent.nodes, group] })) };\n};\n\n/** Drops removable items at any depth and every group that ends up empty; pinned items stay. */\nexport const clearRemovable = (expr: FilterBarExpression, pinned: ReadonlySet<string>): FilterBarExpression =>\n pruneEmptyGroups({\n ...expr,\n nodes: filterNodes(expr.nodes, node => isFilterBarGroup(node) || pinned.has(node.id)),\n });\n","/* eslint-disable react-refresh/only-export-components */\nimport { createContext, useCallback, useContext, useMemo, useRef, useState } from 'react';\nimport type { ReactNode } from 'react';\nimport {\n clearRemovable,\n collectIds,\n createGroup,\n denormalize,\n findGroup,\n flattenItems,\n groupDepth,\n insertItem,\n normalize,\n pruneEmptyGroups,\n removeNode,\n setGroupLogic,\n updateItem as updateTreeItem,\n} from './filter-bar-tree';\nimport type { FilterBarValueInput } from './filter-bar-tree';\nimport { isFilterBarGroup } from './types';\nimport type {\n DraftStage,\n FilterBarCommit,\n FilterBarDraft,\n FilterBarExpression,\n FilterBarField,\n FilterBarGroup,\n FilterBarItem,\n FilterBarLogic,\n FilterBarNode,\n FilterBarOperator,\n FilterBarSegment,\n FilterBarValue,\n} from './types';\n\ntype SegmentKey = `${string}:${FilterBarSegment}`;\n\nconst SEGMENTS_LEFT_TO_RIGHT: FilterBarSegment[] = ['field', 'operator', 'value', 'remove'];\nconst SEGMENTS_RIGHT_TO_LEFT: FilterBarSegment[] = [...SEGMENTS_LEFT_TO_RIGHT].reverse();\n\n/** Default nesting bound for advanced-filter groups (root-level group = depth 1). */\nexport const DEFAULT_MAX_GROUP_DEPTH = 3;\n\n/**\n * Marks a focus scope: the bar and each open advanced-filter popover. Arrow navigation\n * never crosses scopes, so ←/→ inside a popover cannot land back in the bar.\n */\nexport const FILTER_BAR_SCOPE_ATTR = 'data-filter-bar-scope';\n\nconst scopeOf = (el: Element | null | undefined) => el?.closest(`[${FILTER_BAR_SCOPE_ATTR}]`) ?? null;\n\nconst stageOf = (draft: FilterBarDraft | null): DraftStage => {\n if (!draft) return 'none';\n return draft.operatorId ? 'operator' : 'field';\n};\n\nexport type FilterBarContextValue = {\n fields: FilterBarField[];\n operators: FilterBarOperator[];\n /** Every rendered item in visual order (groups flattened), including leaving ones. */\n items: FilterBarItem[];\n /** The rendered tree, including the pending commit and leaving nodes. */\n expression: FilterBarExpression;\n /** False when the consumer passed a flat `FilterBarItem[]`: no groups are offered. */\n groupsEnabled: boolean;\n /** Deepest allowed group nesting (root-level group = 1). */\n maxDepth: number;\n /** Filter under construction in the input, once a field is picked; `null` otherwise. */\n draft: FilterBarDraft | null;\n /** Progress or reset the draft. Its id is assigned on first field pick and kept afterwards. */\n setDraft: (next: Omit<FilterBarDraft, 'id' | 'from' | 'groupId'> | null) => void;\n /** Append an item for the draft, reusing its id so the draft chip becomes the item's chip. */\n commitDraft: (next: Required<Omit<FilterBarDraft, 'id' | 'from' | 'groupId'>>, value: FilterBarValue) => void;\n /** The draft that just became an item, until its chip has glinted or the bar moves on. */\n lastCommit: FilterBarCommit | null;\n settleCommit: () => void;\n updateItem: (id: string, patch: Partial<Omit<FilterBarItem, 'id'>>) => void;\n /** Removes a leaf. Its group stays, even empty, until the popover closes (see `setOpenGroup`). */\n removeItem: (id: string) => void;\n /** Ids of removed items and groups still rendered while their chip plays its exit animation. */\n leaving: ReadonlySet<string>;\n /** Called by a leaving chip once its exit animation has finished (or when nothing animates). */\n settleRemove: (id: string) => void;\n /** Removes every removable item (chips rendered with `removable={false}` stay) and every group left empty. */\n clear: () => void;\n /** Whether at least one item can be removed, i.e. whether Clear has anything to do. */\n hasRemovableItems: boolean;\n /** Called by chips so `clear` and the Clear button know which items are pinned. */\n registerNonRemovable: (itemId: string, nonRemovable: boolean) => void;\n /** Appends an empty group to the root (`undefined`) or inside `parentId`, and points the input at it. */\n addGroup: (parentId: string | undefined, logic: FilterBarLogic) => string;\n /** Removes a group and everything below it. */\n removeGroup: (groupId: string) => void;\n setLogic: (groupId: string, logic: FilterBarLogic) => void;\n /** Nesting level of a group (root-level = 1); 0 when unknown. */\n getGroupDepth: (groupId: string) => number;\n /** Root group whose advanced-filter popover is open. */\n openGroupId: string | null;\n /** Open a root group's popover, or close it with `null` (empty groups are pruned on close). */\n setOpenGroup: (groupId: string | null) => void;\n /** Group the input commits into; `undefined` = root. */\n inputTarget: string | undefined;\n /** Point the input at a group (or back at the root with `undefined`) and focus it. */\n openGroupInput: (groupId: string | undefined) => void;\n getField: (fieldId: string) => FilterBarField | undefined;\n getOperator: (operatorId: string) => FilterBarOperator | undefined;\n /** Operators allowed for a field (`field.operators` or every root operator). */\n getFieldOperators: (field: FilterBarField) => FilterBarOperator[];\n registerSegment: (itemId: string, segment: FilterBarSegment, el: HTMLElement | null) => void;\n registerInput: (el: HTMLInputElement | null) => void;\n /**\n * Focus a segment of the nearest editable chip starting at `fromIndex` and\n * walking in `direction` (read-only chips register no segments and are skipped).\n * Never leaves the focus scope of the currently focused element. Returns false if\n * nothing was focused.\n */\n focusChip: (fromIndex: number, direction: -1 | 1, segment: FilterBarSegment) => boolean;\n focusInput: () => void;\n /** Called by chips to move focus after a removal. */\n focusAfterRemove: (removedIndex: number) => void;\n announce: (message: string) => void;\n announcement: string;\n ariaLabel: string;\n};\n\nconst FilterBarContext = createContext<FilterBarContextValue | null>(null);\n\nexport function useFilterBarContext(): FilterBarContextValue {\n const ctx = useContext(FilterBarContext);\n if (!ctx) throw new Error('FilterBar compound components must be rendered inside <FilterBar>.');\n return ctx;\n}\n\nlet idCounter = 0;\nexport function createFilterId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') return crypto.randomUUID();\n idCounter += 1;\n return `filter-${idCounter}`;\n}\n\nexport function emptyValueFor(operator: FilterBarOperator | undefined): string | string[] {\n return operator?.arity === 'many' ? [] : '';\n}\n\nexport type FilterBarProviderProps = {\n fields: FilterBarField[];\n operators: FilterBarOperator[];\n value: FilterBarValueInput;\n /** Receives the same shape as `value` (method syntax so flat-only handlers stay assignable). */\n onValueChange(value: FilterBarValueInput): void;\n /** Derives ids for root-level items only; items inside groups always get a random id\n * because a group may hold several conditions on the same field. */\n createItemId?: (fieldId: string) => string;\n /** Deepest allowed group nesting (root-level group = 1). Defaults to 3. */\n maxDepth?: number;\n ariaLabel: string;\n children: ReactNode;\n};\n\nconst idsOf = (nodes: FilterBarNode[], out = new Set<string>()): Set<string> => {\n for (const node of nodes) {\n out.add(node.id);\n if (isFilterBarGroup(node)) idsOf(node.nodes, out);\n }\n return out;\n};\n\n/**\n * The previously rendered tree with the consumer's new `value` folded in: nodes still\n * present take their new version (in their old position), leaving nodes stay where they\n * were, and nodes the consumer added are appended. Once nothing is leaving the result is\n * exactly `next`, so consumer reorders are only deferred, never lost.\n */\nconst mergeNodes = (prev: FilterBarNode[], next: FilterBarNode[], leaving: ReadonlySet<string>): FilterBarNode[] => {\n const nextById = new Map(next.map(node => [node.id, node]));\n const seen = new Set<string>();\n const out: FilterBarNode[] = [];\n for (const old of prev) {\n const fresh = nextById.get(old.id);\n if (fresh) {\n seen.add(old.id);\n out.push(\n isFilterBarGroup(fresh) && isFilterBarGroup(old)\n ? { ...fresh, nodes: mergeNodes(old.nodes, fresh.nodes, leaving) }\n : fresh,\n );\n } else if (leaving.has(old.id)) {\n out.push(old);\n }\n }\n for (const node of next) if (!seen.has(node.id)) out.push(node);\n return out;\n};\n\nexport function FilterBarProvider({\n fields,\n operators,\n value,\n onValueChange,\n createItemId,\n maxDepth = DEFAULT_MAX_GROUP_DEPTH,\n ariaLabel,\n children,\n}: FilterBarProviderProps) {\n const segments = useRef(new Map<SegmentKey, HTMLElement>());\n const inputRef = useRef<HTMLInputElement | null>(null);\n const flat = Array.isArray(value);\n const expression = useMemo(() => normalize(value), [value]);\n const exprRef = useRef(expression);\n exprRef.current = expression;\n const [announcement, setAnnouncement] = useState('');\n const [nonRemovableIds, setNonRemovableIds] = useState<ReadonlySet<string>>(() => new Set());\n const [inputTarget, setInputTarget] = useState<string | undefined>(undefined);\n const [openGroupId, setOpenGroupId] = useState<string | null>(null);\n\n const emit = useCallback(\n (next: FilterBarExpression) => onValueChange(denormalize(next, flat)),\n [onValueChange, flat],\n );\n\n const getField = useCallback((fieldId: string) => fields.find(f => f.id === fieldId), [fields]);\n const getOperator = useCallback((operatorId: string) => operators.find(o => o.id === operatorId), [operators]);\n const getFieldOperators = useCallback(\n (field: FilterBarField) => {\n if (!field.operators) return operators;\n const allowed = new Set(field.operators);\n return operators.filter(o => allowed.has(o.id));\n },\n [operators],\n );\n\n const announce = useCallback((message: string) => setAnnouncement(message), []);\n\n const [draft, setDraftState] = useState<FilterBarDraft | null>(null);\n const draftRef = useRef(draft);\n draftRef.current = draft;\n const [lastCommit, setLastCommit] = useState<FilterBarCommit | null>(null);\n const settleCommit = useCallback(() => setLastCommit(prev => (prev ? { ...prev, glint: false } : null)), []);\n // Removed nodes stay rendered at their old position until their chip has animated out.\n const [leavingIds, setLeavingIds] = useState<ReadonlySet<string>>(() => new Set());\n const settleRemove = useCallback((id: string) => {\n setLeavingIds(prev => {\n if (!prev.has(id)) return prev;\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n }, []);\n const markLeaving = useCallback((ids: Iterable<string>) => {\n const list = [...ids];\n if (list.length === 0) return;\n setLeavingIds(prev => new Set([...prev, ...list]));\n }, []);\n\n // Until the consumer reflects the commit in `value`, the committed item is ours to show;\n // nodes on their way out keep their place in the previously rendered tree.\n const renderedTreeRef = useRef<FilterBarNode[]>(expression.nodes);\n const { rendered, items, leaving, rootGroupOf } = useMemo(() => {\n const present = idsOf(expression.nodes);\n let rendered: FilterBarExpression =\n leavingIds.size === 0\n ? expression\n : { ...expression, nodes: mergeNodes(renderedTreeRef.current, expression.nodes, leavingIds) };\n if (lastCommit && !present.has(lastCommit.item.id)) {\n rendered = insertItem(rendered, lastCommit.groupId, lastCommit.item);\n }\n renderedTreeRef.current = rendered.nodes;\n const shown = idsOf(rendered.nodes);\n const leaving = new Set([...leavingIds].filter(id => shown.has(id) && !present.has(id)));\n // Each leaf's root-level group: arrow navigation lands on that group's advanced chip\n // when the leaf itself is unmounted (closed popover).\n const rootGroupOf = new Map<string, string>();\n for (const node of rendered.nodes) {\n if (isFilterBarGroup(node))\n for (const { item } of flattenItems({ logic: 'and', nodes: [node] })) rootGroupOf.set(item.id, node.id);\n }\n return { rendered, items: flattenItems(rendered).map(e => e.item), leaving, rootGroupOf };\n }, [expression, lastCommit, leavingIds]);\n\n // The draft chip is keyed by the id the committed item will carry, so React keeps the same\n // element through the commit. Consumers who derive ids themselves supply `createItemId` so\n // the id we hand back in `onValueChange` is the one they'll hand back in `value`.\n const newItemId = useCallback(\n (fieldId: string) => (createItemId && inputTarget === undefined ? createItemId(fieldId) : createFilterId()),\n [createItemId, inputTarget],\n );\n\n const setDraft = useCallback(\n (next: Omit<FilterBarDraft, 'id' | 'from' | 'groupId'> | null) => {\n setLastCommit(null);\n setDraftState(prev =>\n next\n ? {\n ...next,\n id: prev?.fieldId === next.fieldId ? prev.id : newItemId(next.fieldId),\n from: stageOf(prev),\n groupId: inputTarget,\n }\n : null,\n );\n },\n [newItemId, inputTarget],\n );\n\n const commitDraft = useCallback(\n ({ fieldId, operatorId }: Required<Omit<FilterBarDraft, 'id' | 'from' | 'groupId'>>, value: FilterBarValue) => {\n // Operators without a value commit straight from the operator step, before a draft exists.\n const id = draftRef.current?.id ?? newItemId(fieldId);\n const groupId = draftRef.current?.groupId ?? inputTarget;\n const item = { id, fieldId, operatorId, value };\n emit(insertItem(exprRef.current, groupId, item));\n setLastCommit({ item, from: stageOf(draftRef.current), glint: true, groupId });\n setDraftState(null);\n announce('Filter added');\n },\n [emit, announce, newItemId, inputTarget],\n );\n\n const updateItem = useCallback(\n (id: string, patch: Partial<Omit<FilterBarItem, 'id'>>) => {\n emit(updateTreeItem(exprRef.current, id, patch));\n },\n [emit],\n );\n\n const removeItem = useCallback(\n (id: string) => {\n markLeaving([id]);\n emit(removeNode(exprRef.current, id));\n setLastCommit(null);\n announce('Filter removed');\n },\n [emit, announce, markLeaving],\n );\n\n const releaseInputTarget = useCallback((gone: ReadonlySet<string>) => {\n setInputTarget(prev => (prev && gone.has(prev) ? undefined : prev));\n }, []);\n\n const removeGroup = useCallback(\n (groupId: string) => {\n const expr = exprRef.current;\n const group = findGroup(expr, groupId);\n const gone = new Set(group ? collectIds(group) : [groupId]);\n markLeaving(gone);\n emit(removeNode(expr, groupId));\n setLastCommit(null);\n setDraftState(null);\n releaseInputTarget(gone);\n setOpenGroupId(prev => (prev === groupId ? null : prev));\n announce('Advanced filter removed');\n },\n [emit, announce, markLeaving, releaseInputTarget],\n );\n\n const addGroup = useCallback(\n (parentId: string | undefined, logic: FilterBarLogic) => {\n const group: FilterBarGroup = { id: createFilterId(), kind: 'group', logic, nodes: [] };\n emit(createGroup(exprRef.current, parentId, group));\n setLastCommit(null);\n setDraftState(null);\n setInputTarget(group.id);\n announce(parentId ? 'Nested group added' : 'Advanced filter added');\n return group.id;\n },\n [emit, announce],\n );\n\n const setLogic = useCallback(\n (groupId: string, logic: FilterBarLogic) => {\n emit(setGroupLogic(exprRef.current, groupId, logic));\n announce(`Conditions joined with ${logic}`);\n },\n [emit, announce],\n );\n\n const getGroupDepth = useCallback((groupId: string) => groupDepth(exprRef.current, groupId), []);\n\n const setOpenGroup = useCallback(\n (groupId: string | null) => {\n setOpenGroupId(groupId);\n if (groupId !== null) return;\n // Closing the editor: whatever was left empty goes away, and the input returns to the bar.\n const expr = exprRef.current;\n const pruned = pruneEmptyGroups(expr);\n const kept = idsOf(pruned.nodes);\n const gone = new Set([...idsOf(expr.nodes)].filter(id => !kept.has(id)));\n if (gone.size > 0) {\n markLeaving(gone);\n emit(pruned);\n }\n setDraftState(null);\n setInputTarget(undefined);\n },\n [emit, markLeaving],\n );\n\n const focusInput = useCallback(() => {\n inputRef.current?.focus();\n }, []);\n\n const openGroupInput = useCallback(\n (groupId: string | undefined) => {\n setInputTarget(groupId);\n setDraftState(null);\n // The input for a group mounts with the next render and focuses itself.\n if (groupId === undefined) focusInput();\n },\n [focusInput],\n );\n\n const clear = useCallback(() => {\n const expr = exprRef.current;\n const next = clearRemovable(expr, nonRemovableIds);\n const kept = idsOf(next.nodes);\n const gone = new Set([...idsOf(expr.nodes)].filter(id => !kept.has(id)));\n markLeaving(gone);\n emit(next);\n setLastCommit(null);\n setDraftState(null);\n setInputTarget(undefined);\n setOpenGroupId(null);\n announce('All filters removed');\n }, [emit, announce, nonRemovableIds, markLeaving]);\n\n const hasRemovableItems = flattenItems(expression).some(({ item }) => !nonRemovableIds.has(item.id));\n\n const registerNonRemovable = useCallback((itemId: string, nonRemovable: boolean) => {\n setNonRemovableIds(prev => {\n if (prev.has(itemId) === nonRemovable) return prev;\n const next = new Set(prev);\n if (nonRemovable) next.add(itemId);\n else next.delete(itemId);\n return next;\n });\n }, []);\n\n const registerSegment = useCallback((itemId: string, segment: FilterBarSegment, el: HTMLElement | null) => {\n const key: SegmentKey = `${itemId}:${segment}`;\n if (el) segments.current.set(key, el);\n else segments.current.delete(key);\n }, []);\n\n const registerInput = useCallback((el: HTMLInputElement | null) => {\n // An unmounting input must not clear the ref if another input already took over.\n if (el) inputRef.current = el;\n else if (!inputRef.current?.isConnected) inputRef.current = null;\n }, []);\n\n // Chip indices refer to the rendered list (which may still hold leaving chips), not `value`.\n const renderedRef = useRef(items);\n renderedRef.current = items;\n\n const rootGroupRef = useRef(rootGroupOf);\n rootGroupRef.current = rootGroupOf;\n\n const focusChip = useCallback((fromIndex: number, direction: -1 | 1, segment: FilterBarSegment) => {\n const items = renderedRef.current;\n const rootGroupOf = rootGroupRef.current;\n // Stay within the scope of the focused element, or (after a mouse click, which does not\n // move focus) of the chip we navigate away from. Unknown scope: any chip qualifies.\n const origin = items[fromIndex - direction];\n const originEl = origin\n ? [...SEGMENTS_LEFT_TO_RIGHT].map(s => segments.current.get(`${origin.id}:${s}`)).find(Boolean)\n : null;\n const scope =\n scopeOf(typeof document === 'undefined' ? null : document.activeElement) ?? scopeOf(originEl) ?? undefined;\n // Custom chips may register only some segments (e.g. just `value`): when the\n // requested one is missing, land on the chip's outermost segment on the side\n // we arrive from.\n const fallbacks: FilterBarSegment[] = direction === -1 ? SEGMENTS_RIGHT_TO_LEFT : SEGMENTS_LEFT_TO_RIGHT;\n for (let i = fromIndex; i >= 0 && i < items.length; i += direction) {\n const item = items[i];\n if (!item) break;\n // A leaf inside a closed popover has no segments: land on its advanced chip instead.\n const ownerIds = [item.id, rootGroupOf.get(item.id)].filter((id): id is string => id !== undefined);\n for (const ownerId of ownerIds) {\n for (const candidate of [segment, ...fallbacks]) {\n const el = segments.current.get(`${ownerId}:${candidate}`);\n if (el && (scope === undefined || scopeOf(el) === scope)) {\n el.focus();\n return true;\n }\n }\n }\n }\n return false;\n }, []);\n\n const focusAfterRemove = useCallback(\n (removedIndex: number) => {\n // Called synchronously after `removeItem`, before React re-renders: the rendered list\n // still holds the removed chip and every neighbour's DOM node is still mounted.\n // Leaving neighbours register no segments, so they are skipped over.\n if (focusChip(removedIndex + 1, 1, 'value') || focusChip(removedIndex - 1, -1, 'value')) return;\n focusInput();\n },\n [focusChip, focusInput],\n );\n\n const ctx = useMemo<FilterBarContextValue>(\n () => ({\n fields,\n operators,\n items,\n expression: rendered,\n groupsEnabled: !flat,\n maxDepth,\n draft,\n setDraft,\n commitDraft,\n lastCommit,\n settleCommit,\n updateItem,\n removeItem,\n leaving,\n settleRemove,\n clear,\n hasRemovableItems,\n registerNonRemovable,\n addGroup,\n removeGroup,\n setLogic,\n getGroupDepth,\n openGroupId,\n setOpenGroup,\n inputTarget,\n openGroupInput,\n getField,\n getOperator,\n getFieldOperators,\n registerSegment,\n registerInput,\n focusChip,\n focusInput,\n focusAfterRemove,\n announce,\n announcement,\n ariaLabel,\n }),\n [\n fields,\n operators,\n items,\n rendered,\n flat,\n maxDepth,\n draft,\n setDraft,\n commitDraft,\n lastCommit,\n settleCommit,\n updateItem,\n removeItem,\n leaving,\n settleRemove,\n clear,\n hasRemovableItems,\n registerNonRemovable,\n addGroup,\n removeGroup,\n setLogic,\n getGroupDepth,\n openGroupId,\n setOpenGroup,\n inputTarget,\n openGroupInput,\n getField,\n getOperator,\n getFieldOperators,\n registerSegment,\n registerInput,\n focusChip,\n focusInput,\n focusAfterRemove,\n announce,\n announcement,\n ariaLabel,\n ],\n );\n\n return <FilterBarContext.Provider value={ctx}>{children}</FilterBarContext.Provider>;\n}\n","import { CheckIcon } from 'lucide-react';\nimport { forwardRef } from 'react';\nimport type { ReactNode } from 'react';\nimport type { FilterBarOption } from './types';\nimport { ComboboxPrimitive, comboboxStyles } from '@/ds/components/Combobox';\nimport { Spinner } from '@/ds/components/Spinner/spinner';\nimport { FluidMenuItems, useFluidMenu, useFluidMenuItemRef } from '@/ds/primitives/fluid-menu';\nimport { cn } from '@/lib/utils';\n\nexport type FilterBarOptionListProps<T> = {\n getKey: (option: T) => string;\n renderOption: (option: T) => ReactNode;\n /** Explicit check mark, used where Base UI's selection state is not the source of truth (multi-value step). */\n isSelected?: (option: T) => boolean;\n isLoading?: boolean;\n error?: unknown;\n emptyText?: string;\n 'aria-label': string;\n 'aria-multiselectable'?: boolean;\n};\n\n/** Default value row: the option's leading node (avatar, swatch…) followed by its label. */\nexport function FilterBarOptionLabel({ option }: { option: FilterBarOption }) {\n return (\n <>\n {option.start}\n <span className=\"min-w-0 truncate\">{option.label ?? option.value}</span>\n </>\n );\n}\n\nconst FluidItem = forwardRef<HTMLDivElement, ComboboxPrimitive.Item.Props>((props, ref) => (\n <ComboboxPrimitive.Item ref={useFluidMenuItemRef(ref)} {...props} />\n));\nFluidItem.displayName = 'FilterBarOptionItem';\n\n/**\n * List/status/empty rows for a `ComboboxPrimitive.Root`, laid out like the DS\n * `Combobox` popup (fluid hover highlight, scroller around the list). Items come\n * from the root's `items`; highlight and keyboard navigation are owned by Base UI.\n */\nexport function FilterBarOptionList<T>({\n getKey,\n renderOption,\n isSelected,\n isLoading,\n error,\n emptyText = 'No results.',\n 'aria-label': ariaLabel,\n 'aria-multiselectable': multiselectable,\n}: FilterBarOptionListProps<T>) {\n const idle = !isLoading && error === undefined;\n const menu = useFluidMenu<HTMLDivElement>();\n return (\n <>\n {isLoading && (\n <ComboboxPrimitive.Status className={comboboxStyles.empty}>\n <Spinner size=\"sm\" />\n <span>Loading…</span>\n </ComboboxPrimitive.Status>\n )}\n {!isLoading && error !== undefined && (\n <ComboboxPrimitive.Status className={comboboxStyles.empty}>Couldn't load values.</ComboboxPrimitive.Status>\n )}\n <ComboboxPrimitive.Empty className={comboboxStyles.empty}>{idle ? emptyText : null}</ComboboxPrimitive.Empty>\n <div\n className={cn(\n comboboxStyles.listScroller,\n 'max-h-[min(var(--spacing-dropdown),60dvh)]',\n menu.containerClassName,\n )}\n {...menu.getContainerProps({})}\n >\n <FluidMenuItems menu={menu}>\n <ComboboxPrimitive.List\n aria-label={ariaLabel}\n aria-multiselectable={multiselectable}\n className={comboboxStyles.list}\n >\n {(option: T) => {\n const selected = isSelected?.(option) ?? false;\n return (\n <FluidItem\n key={getKey(option)}\n value={option}\n data-selected={selected || undefined}\n className={cn(comboboxStyles.item, 'min-w-0')}\n >\n <span className=\"flex min-w-0 flex-1 items-center gap-1.5 truncate\">{renderOption(option)}</span>\n <span className={comboboxStyles.itemRightSlot}>\n <span className={comboboxStyles.checkContainer}>\n {isSelected ? (\n selected && <CheckIcon className={comboboxStyles.checkIcon} />\n ) : (\n <ComboboxPrimitive.ItemIndicator>\n <CheckIcon className={comboboxStyles.checkIcon} />\n </ComboboxPrimitive.ItemIndicator>\n )}\n </span>\n </span>\n </FluidItem>\n );\n }}\n </ComboboxPrimitive.List>\n </FluidMenuItems>\n </div>\n </>\n );\n}\n","/** Every whitespace-separated term of `query` must appear in `text` (case-insensitive). */\nexport function matchesQuery(text: string, query: string): boolean {\n const terms = query.toLowerCase().split(/\\s+/).filter(Boolean);\n if (terms.length === 0) return true;\n const haystack = text.toLowerCase();\n return terms.every(term => haystack.includes(term));\n}\n\n/** Base UI `filter` for `ComboboxPrimitive.Root`, matching on the item label. */\nexport function matchesQueryFilter<T>(item: T, query: string, itemToString?: (item: T) => string): boolean {\n return matchesQuery(itemToString ? itemToString(item) : String(item), query);\n}\n","import { useEffect, useMemo, useRef, useState } from 'react';\nimport { matchesQuery } from './match-query';\nimport type { FilterBarField, FilterBarOption } from './types';\n\nconst DEBOUNCE_MS = 150;\n\nconst BOOLEAN_OPTIONS: FilterBarOption[] = [\n { value: 'true', label: 'True' },\n { value: 'false', label: 'False' },\n];\n\n/** The field's suggestions, defaulting to True/False for boolean fields. */\nexport const getFieldSuggestions = (field: FilterBarField | undefined) =>\n field?.suggestions ?? (field?.type === 'boolean' ? BOOLEAN_OPTIONS : undefined);\n\nexport type UseValueSuggestionsOptions = {\n field: FilterBarField | undefined;\n operatorId: string;\n query: string;\n /** Resolver only runs while true (the value editor is open). */\n enabled: boolean;\n};\n\nexport type UseValueSuggestionsResult = {\n options: FilterBarOption[];\n isLoading: boolean;\n error: unknown;\n /** True when the field has any suggestions (static or lazy). */\n hasSuggestions: boolean;\n};\n\n/**\n * Value suggestions for a field. Static lists are filtered locally. Lazy\n * resolvers run only while `enabled`, are debounced on `query`, receive an\n * AbortSignal, and only the latest response is applied.\n */\nexport function useValueSuggestions({\n field,\n operatorId,\n query,\n enabled,\n}: UseValueSuggestionsOptions): UseValueSuggestionsResult {\n const suggestions = getFieldSuggestions(field);\n const resolver = typeof suggestions === 'function' ? suggestions : undefined;\n const staticOptions = Array.isArray(suggestions) ? suggestions : undefined;\n\n const [remote, setRemote] = useState<FilterBarOption[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<unknown>(undefined);\n const requestId = useRef(0);\n // Consumers typically define the resolver inline; a new identity must not refire (and abort) the request.\n const resolverRef = useRef(resolver);\n resolverRef.current = resolver;\n const hasResolver = Boolean(resolver);\n\n useEffect(() => {\n if (!hasResolver || !enabled) {\n setRemote([]);\n setIsLoading(false);\n setError(undefined);\n return;\n }\n\n const id = ++requestId.current;\n const controller = new AbortController();\n setIsLoading(true);\n\n const timer = setTimeout(() => {\n Promise.resolve()\n .then(() => resolverRef.current?.({ query, operatorId, signal: controller.signal }) ?? [])\n .then(result => {\n if (id !== requestId.current) return;\n setRemote(result);\n setError(undefined);\n setIsLoading(false);\n })\n .catch(err => {\n if (id !== requestId.current || controller.signal.aborted) return;\n setError(err);\n setIsLoading(false);\n });\n }, DEBOUNCE_MS);\n\n return () => {\n clearTimeout(timer);\n controller.abort();\n };\n }, [hasResolver, enabled, query, operatorId]);\n\n const options = useMemo(() => {\n if (staticOptions) return staticOptions.filter(o => matchesQuery(o.label ?? o.value, query));\n return remote;\n }, [staticOptions, remote, query]);\n\n return {\n options,\n isLoading: Boolean(resolver) && isLoading,\n error,\n hasSuggestions: Boolean(suggestions),\n };\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\nimport type { FilterBarField, FilterBarOperator, FilterBarOption, FilterBarValue } from './types';\nimport { parseFieldValue } from './types';\nimport { useValueSuggestions } from './use-value-suggestions';\n\nexport type UseValueStepOptions = {\n field: FilterBarField | undefined;\n operator: FilterBarOperator | undefined;\n query: string;\n enabled: boolean;\n initialValue?: FilterBarValue;\n onCommit: (value: FilterBarValue) => void;\n};\n\nconst toStrings = (value: FilterBarValue | undefined): string[] => (Array.isArray(value) ? value.map(String) : []);\n\n/**\n * Shared value-editing logic for the typeahead value step and the chip value\n * editor. Single arity: picking an option (or Enter on free text) commits.\n * Many arity: Enter/click toggles the highlighted option; Ctrl/Meta+Enter (or\n * `commitSelection`) commits the selection. List navigation itself is owned by\n * the surrounding `ComboboxPrimitive.Root`.\n */\nexport function useValueStep({ field, operator, query, enabled, initialValue, onCommit }: UseValueStepOptions) {\n const isMany = operator?.arity === 'many';\n // Selection is tracked as option strings; values are parsed to the field type on commit.\n const [selected, setSelected] = useState<string[]>(() => toStrings(initialValue));\n const initialValueRef = useRef(initialValue);\n initialValueRef.current = initialValue;\n\n // The editor stays mounted across opens: re-seed from the current value each time it opens.\n useEffect(() => {\n setSelected(enabled ? toStrings(initialValueRef.current) : []);\n }, [enabled]);\n\n const suggestions = useValueSuggestions({ field, operatorId: operator?.id ?? '', query, enabled });\n const type = field?.type;\n const allowFreeText = !field?.strict && type !== 'boolean';\n\n const toggle = useCallback((value: string) => {\n setSelected(current => (current.includes(value) ? current.filter(v => v !== value) : [...current, value]));\n }, []);\n\n const commit = useCallback(\n (values: string | string[]) =>\n onCommit(Array.isArray(values) ? values.map(v => parseFieldValue(type, v)) : parseFieldValue(type, values)),\n [onCommit, type],\n );\n\n const handleSelect = useCallback(\n (option: FilterBarOption) => {\n if (isMany) toggle(option.value);\n else commit(option.value);\n },\n [isMany, toggle, commit],\n );\n\n const commitSelection = useCallback(() => {\n if (selected.length === 0) return false;\n commit(selected);\n return true;\n }, [selected, commit]);\n\n const canCommitFreeText = useCallback(\n (text: string) => allowFreeText && text.length > 0 && (type !== 'number' || Number.isFinite(Number(text))),\n [allowFreeText, type],\n );\n\n const commitFreeText = useCallback(() => {\n const text = query.trim();\n if (!canCommitFreeText(text)) return false;\n commit(isMany ? (selected.includes(text) ? selected : [...selected, text]) : text);\n return true;\n }, [canCommitFreeText, query, isMany, selected, commit]);\n\n /**\n * Enter handling that Base UI does not cover: Ctrl/Meta+Enter commits a\n * multi-selection; plain Enter with nothing highlighted commits free text.\n * Returns `true` when the event was consumed.\n */\n const handleKeyDown = useCallback(\n (event: KeyboardEvent, highlighted: FilterBarOption | null): boolean => {\n if (event.key !== 'Enter') return false;\n if (isMany && (event.ctrlKey || event.metaKey)) {\n event.preventDefault();\n return commitSelection() || commitFreeText();\n }\n if (highlighted === null) {\n event.preventDefault();\n return commitFreeText();\n }\n return false;\n },\n [isMany, commitSelection, commitFreeText],\n );\n\n return {\n isMany,\n selected,\n toggle,\n options: suggestions.options,\n isLoading: suggestions.isLoading,\n error: suggestions.error,\n hasSuggestions: suggestions.hasSuggestions,\n allowFreeText,\n /** True when the current query can be committed as free text (non-empty, numeric when the field is a number). */\n canCommitQuery: canCommitFreeText(query.trim()),\n handleSelect,\n handleKeyDown,\n commitSelection,\n commitFreeText,\n };\n}\n","/* eslint-disable react-refresh/only-export-components */\nimport type { BaseUIEvent } from '@base-ui/react/types';\nimport { LockIcon, PencilIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport type { AnimationEvent, CSSProperties, ComponentProps, KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport { emptyValueFor, useFilterBarContext } from './filter-bar-context';\nimport { FilterBarOptionLabel, FilterBarOptionList } from './filter-bar-option-list';\nimport { matchesQueryFilter } from './match-query';\nimport type {\n DraftStage,\n FilterBarField,\n FilterBarFieldType,\n FilterBarItem,\n FilterBarOperator,\n FilterBarOption,\n FilterBarScalar,\n FilterBarSegment,\n FilterBarValue,\n} from './types';\nimport { useValueStep } from './use-value-step';\nimport { getFieldSuggestions } from './use-value-suggestions';\nimport { Button } from '@/ds/components/Button/Button';\nimport { ComboboxPrimitive, comboboxStyles } from '@/ds/components/Combobox';\nimport { Kbd } from '@/ds/components/Kbd/kbd';\nimport { controlHeight } from '@/ds/primitives/control-size';\nimport type { ControlSize } from '@/ds/primitives/control-size';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { inputSurfaceAndFocusWithinStyle } from '@/ds/primitives/form-element';\nimport './filter-bar-chip.css';\nimport { MENU_SIDE_OFFSET } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { useIsApplePlatform } from '@/hooks/use-keyboard-shortcut-label';\nimport { cn } from '@/lib/utils';\n\n// `filter-bar-segment` carries the left-to-right entrance (see filter-bar-chip.css).\n// No `first:`/`last:` rounding here: a segment is not reliably the first or last child.\n// Base UI interleaves a hidden input after every combobox and wraps an open trigger in\n// focus guards, so the rounded end would silently drop the moment a popup opened and the\n// segment's own state fill — the one state a chip has — would paint square corners\n// straight through the chip's pill edge. The chip clips instead (see `chipClass`).\nexport const segmentClass = cn(\n 'filter-bar-segment flex max-w-48 min-w-0 items-center gap-1 overflow-hidden px-2 text-label whitespace-nowrap outline-none',\n);\n\n// A filter bar is a dense row: it sits above a list, carries many chips at once, and never\n// competes with the page's own controls. Chip and typeahead pill read this one rung so they\n// stay the same height by construction rather than by two call sites agreeing.\nexport const FILTER_BAR_CONTROL_SIZE: ControlSize = 'sm';\n\n// Typed out of ComboboxRoot but honoured at runtime; keepHighlight stops Base UI re-lighting row 0 when the pointer reaches a row's text.\nexport const alwaysHighlightProps = { autoHighlight: 'always', keepHighlight: true } as unknown as {\n autoHighlight: boolean;\n};\n\n// A chip is a field whose value is edited in place, so it wears the field material rather than a\n// fill rung: on a light canvas a `bg-fill` chip read as a grey slab beside the white typeahead\n// pill it belongs to. The segments layer their own state over that card, which is why the chip\n// keeps `divide-border` for the internal seams and takes its outer edge from the material's rim.\n// `overflow-hidden` is what gives every segment its end cap: the chip is the only node that\n// knows where the pill ends, and it keeps knowing it while a framework injects children.\nexport const chipClass = cn(\n 'filter-bar-chip relative flex max-w-full items-stretch divide-x divide-border overflow-hidden rounded-full',\n inputSurfaceAndFocusWithinStyle,\n controlHeight[FILTER_BAR_CONTROL_SIZE],\n);\n\nexport const editableSegmentClass = cn(\n segmentClass,\n 'cursor-pointer hover:bg-fill-subtle hover:text-foreground',\n 'focus-visible:bg-fill-hover focus-visible:text-foreground data-[popup-open]:bg-fill-hover data-[popup-open]:text-foreground',\n);\n\n/** Field label with its optional leading icon — used by chips, the draft chip and field option lists. */\nexport function FilterBarFieldLabel({ field, label }: { field: FilterBarField | undefined; label?: string }) {\n const Icon = field?.icon;\n return (\n <>\n {Icon && <Icon className=\"size-[1.1em] shrink-0\" aria-hidden />}\n <span className=\"truncate\">{label ?? field?.label}</span>\n </>\n );\n}\n\n/** Inline style carrying a field's accent onto its field segment (text + icon). */\nexport const fieldSegmentAccentStyle = (field: FilterBarField | undefined) =>\n field?.color ? { color: field.color } : undefined;\n\n/** Segments a chip already showed before its latest step, given how far its draft had got. */\nconst settledSegments = (from: DraftStage, operatorImplied: boolean): number => {\n if (from === 'none') return 0;\n if (from === 'field' || operatorImplied) return 1;\n return 2;\n};\n\nexport const formatValue = (value: FilterBarValue, field: FilterBarField | undefined): string => {\n const suggestions = getFieldSuggestions(field);\n const options = Array.isArray(suggestions) ? suggestions : undefined;\n const label = (v: FilterBarScalar) => options?.find(o => o.value === String(v))?.label ?? String(v);\n return Array.isArray(value) ? value.map(label).join(', ') : label(value);\n};\n\ntype ChipContext = {\n item: FilterBarItem;\n index: number;\n field: FilterBarField | undefined;\n operator: FilterBarOperator | undefined;\n openSegment: FilterBarSegment | null;\n setOpenSegment: (segment: FilterBarSegment | null) => void;\n readOnly: boolean;\n /** Filter still being built in the input: segments are inert labels. */\n draft: boolean;\n /** Filter already removed from the value, playing its exit: segments are inert labels. */\n leaving: boolean;\n /** The field allows a single operator, so the operator segment is not shown. */\n operatorImplied: boolean;\n};\n\nconst ChipContext = createContext<ChipContext | null>(null);\nconst useChip = () => {\n const chip = useContext(ChipContext);\n if (!chip) throw new Error('FilterBarChip segments must be rendered inside <FilterBarChip>.');\n return chip;\n};\n\nexport type FilterBarChipProps = {\n item: FilterBarItem;\n /** Locked chip: plain labels, no editors, no remove button. */\n readOnly?: boolean;\n /** `false` keeps the chip editable but drops the remove button and ignores Backspace/Delete. */\n removable?: boolean;\n /**\n * Render the filter being built in the input (see `FilterBarContextValue.draft`): only\n * the picked segments show, as inert labels. Keyed by the draft id, the same element\n * carries on as the editable chip once the value is committed.\n */\n draft?: boolean;\n className?: string;\n /** Custom segment composition; defaults to Field · Operator · Value · Remove. */\n children?: ReactNode;\n};\n\nfunction isInsidePopup(target: EventTarget | null) {\n return target instanceof Element && Boolean(target.closest('[data-slot=\"filter-bar-editor\"]'));\n}\n\nexport function FilterBarChip({\n item,\n readOnly = false,\n removable = true,\n draft = false,\n className,\n children,\n}: FilterBarChipProps) {\n const ctx = useFilterBarContext();\n const [openSegment, setOpenSegment] = useState<FilterBarSegment | null>(null);\n const field = ctx.getField(item.fieldId);\n const operator = ctx.getOperator(item.operatorId);\n const index = ctx.items.findIndex(i => i.id === item.id);\n const rootRef = useRef<HTMLDivElement>(null);\n const leaving = ctx.leaving.has(item.id);\n\n const pinned = !draft && (readOnly || !removable);\n const { registerNonRemovable, settleRemove } = ctx;\n useEffect(() => {\n registerNonRemovable(item.id, pinned);\n return () => registerNonRemovable(item.id, false);\n }, [registerNonRemovable, item.id, pinned]);\n\n // A leaving chip is released once its exit animation has finished. With nothing to\n // animate (no `interpolate-size`, reduced motion, jsdom) it is released straight away.\n useEffect(() => {\n const root = rootRef.current;\n if (!leaving || !root) return;\n const animations = typeof root.getAnimations === 'function' ? root.getAnimations({ subtree: true }) : [];\n if (animations.length === 0) {\n settleRemove(item.id);\n return;\n }\n let cancelled = false;\n Promise.all(animations.map(animation => animation.finished))\n .then(() => {\n if (!cancelled) settleRemove(item.id);\n })\n // Animations cancelled by an unmount reject `finished`; nothing left to settle.\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, [leaving, item.id, settleRemove]);\n\n const operatorImplied = field ? ctx.getFieldOperators(field).length === 1 : false;\n const label = [\n field?.label ?? item.fieldId,\n operatorImplied ? '' : (operator?.label ?? item.operatorId),\n draft ? '' : formatValue(item.value, field),\n ]\n .filter(Boolean)\n .join(' ');\n\n // The provider records where each draft step (and the final commit) started from, so\n // the entrance stagger resumes after the segments already on screen and the chip\n // glints once when it lands as a filter (see filter-bar-chip.css).\n const commit = !draft && ctx.lastCommit?.item.id === item.id ? ctx.lastCommit : null;\n const from = draft ? (ctx.draft?.from ?? 'none') : (commit?.from ?? 'none');\n const settled = settledSegments(from, operatorImplied);\n const shine = commit?.glint ?? false;\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (readOnly || draft || leaving || isInsidePopup(event.target)) return;\n const segments = Array.from(rootRef.current?.querySelectorAll<HTMLElement>('[data-filter-bar-segment]') ?? []);\n const current = segments.findIndex(el => el === event.target);\n\n switch (event.key) {\n case 'ArrowRight': {\n event.preventDefault();\n const next = segments[current + 1];\n if (next) next.focus();\n else if (!ctx.focusChip(index + 1, 1, 'field')) ctx.focusInput();\n return;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const prev = segments[current - 1];\n if (prev) prev.focus();\n else ctx.focusChip(index - 1, -1, 'remove');\n return;\n }\n case 'Delete':\n case 'Backspace':\n if (!removable) return;\n event.preventDefault();\n ctx.removeItem(item.id);\n ctx.focusAfterRemove(index);\n return;\n default:\n }\n },\n [readOnly, draft, leaving, removable, ctx, index, item.id],\n );\n\n const chipValue = useMemo<ChipContext>(\n () => ({ item, index, field, operator, openSegment, setOpenSegment, readOnly, draft, leaving, operatorImplied }),\n [item, index, field, operator, openSegment, readOnly, draft, leaving, operatorImplied],\n );\n const content = children ?? (\n <>\n <FilterBarChipField />\n <FilterBarChipOperator />\n <FilterBarChipValue />\n {removable && <FilterBarChipRemove />}\n </>\n );\n return (\n <ChipContext.Provider value={chipValue}>\n <div\n ref={rootRef}\n role=\"group\"\n aria-label={label}\n // The input already announces the draft's progress through its placeholder.\n aria-hidden={draft || leaving || undefined}\n data-slot=\"filter-bar-chip\"\n data-draft={draft || undefined}\n data-readonly={readOnly || undefined}\n data-leaving={leaving || undefined}\n data-shine={(shine && !leaving) || undefined}\n className={cn(chipClass, leaving && 'pointer-events-none', className)}\n style={\n {\n '--filter-bar-segments-settled': settled,\n '--filter-bar-chip-shine': field?.color ?? 'currentColor',\n } as CSSProperties\n }\n onKeyDown={handleKeyDown}\n onClick={(event: MouseEvent) => event.stopPropagation()}\n onAnimationEnd={(event: AnimationEvent) => {\n if (event.animationName === 'filter-bar-chip-shine') ctx.settleCommit();\n }}\n >\n {readOnly && (\n <span\n className={cn(segmentClass, 'pr-0 text-muted-foreground [--filter-bar-segment-padding:0.5rem_0]')}\n title=\"This filter is locked\"\n >\n <LockIcon className=\"size-[1.1em]\" />\n </span>\n )}\n {content}\n </div>\n </ChipContext.Provider>\n );\n}\n\ntype SegmentComboboxProps<T> = {\n segment: Exclude<FilterBarSegment, 'remove'>;\n label: string;\n ariaLabel: string;\n items: readonly T[];\n itemToString: (item: T) => string;\n /** `null` when `items` are already filtered. */\n filter: null | ((item: T, query: string, itemToString?: (item: T) => string) => boolean);\n /** Current selection, surfaced through Base UI's `ItemIndicator`. */\n value?: T | null;\n query: string;\n onQueryChange: (query: string) => void;\n onSelect: (item: T) => void;\n onOpen?: () => void;\n /** Popup content: typically a `SegmentSearchInput` followed by a `FilterBarOptionList`. */\n children: ReactNode;\n};\n\n// Highlighted item of the enclosing SegmentCombobox, for popup inputs that route Enter.\nconst SegmentPopupContext = createContext<{ highlighted: unknown }>({ highlighted: null });\n\ntype SegmentSearchInputProps<T> = {\n placeholder: string;\n /** Leading icon. Defaults to a search glass; free-text editing uses a pencil. */\n icon?: LucideIcon;\n inputMode?: ComponentProps<'input'>['inputMode'];\n onKeyDown?: (event: BaseUIEvent<KeyboardEvent<HTMLInputElement>>, highlighted: T | null) => void;\n};\n\n/** The search/free-text input at the top of a segment popup. */\nfunction SegmentSearchInput<T>({\n placeholder,\n icon: Icon = SearchIcon,\n inputMode,\n onKeyDown,\n}: SegmentSearchInputProps<T>) {\n const { highlighted } = useContext(SegmentPopupContext);\n return (\n <div className={comboboxStyles.searchContainer}>\n <Icon className={comboboxStyles.searchIcon} />\n <ComboboxPrimitive.Input\n className={comboboxStyles.searchInput}\n placeholder={placeholder}\n inputMode={inputMode}\n onKeyDown={event => onKeyDown?.(event, highlighted as T | null)}\n />\n </div>\n );\n}\n\n/**\n * A chip segment: a button trigger that opens an option popup. The editor\n * owning the segment supplies items, filtering, selection routing and the\n * popup content.\n */\nfunction SegmentCombobox<T>({\n segment,\n label,\n ariaLabel,\n items,\n itemToString,\n filter,\n value = null,\n query,\n onQueryChange,\n onSelect,\n onOpen,\n children,\n}: SegmentComboboxProps<T>) {\n const ctx = useFilterBarContext();\n const chip = useChip();\n const container = usePortalContainer();\n const open = chip.openSegment === segment;\n const [highlighted, setHighlighted] = useState<T | null>(null);\n\n const isField = segment === 'field';\n const content = isField ? (\n <FilterBarFieldLabel field={chip.field} label={label} />\n ) : (\n <span className=\"truncate\">{label}</span>\n );\n\n if (chip.readOnly || chip.draft || chip.leaving) {\n return (\n <span\n className={cn(segmentClass, isField && 'text-foreground')}\n style={isField ? fieldSegmentAccentStyle(chip.field) : undefined}\n title={label}\n >\n {content}\n </span>\n );\n }\n\n return (\n <ComboboxPrimitive.Root<T>\n items={items}\n itemToStringLabel={itemToString}\n filter={filter}\n value={value}\n onValueChange={(item, details) => {\n // The editor decides what a pick means (and when to close); Base UI must not keep it.\n details.cancel();\n if (item !== null) onSelect(item);\n }}\n inputValue={query}\n onInputValueChange={(next, details) => {\n if (details.reason === 'input-change') onQueryChange(next);\n }}\n onItemHighlighted={item => setHighlighted(item ?? null)}\n open={open}\n onOpenChange={next => {\n if (next) onOpen?.();\n else onQueryChange('');\n chip.setOpenSegment(next ? segment : null);\n }}\n {...alwaysHighlightProps}\n modal={false}\n >\n <ComboboxPrimitive.Trigger\n ref={el => ctx.registerSegment(chip.item.id, segment, el)}\n render={\n <button\n type=\"button\"\n data-filter-bar-segment=\"\"\n tabIndex={segment === 'value' ? 0 : -1}\n aria-label={`${ariaLabel}: ${label}`}\n title={label}\n className={cn(editableSegmentClass, isField && 'text-foreground')}\n style={isField ? fieldSegmentAccentStyle(chip.field) : undefined}\n />\n }\n >\n {content}\n </ComboboxPrimitive.Trigger>\n <ComboboxPrimitive.Portal container={container}>\n <ComboboxPrimitive.Positioner\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n positionMethod={FLOATING_POSITION_METHOD}\n className={comboboxStyles.positioner}\n >\n <ComboboxPrimitive.Popup className={cn(comboboxStyles.popup, 'min-w-44')} data-slot=\"filter-bar-editor\">\n <SegmentPopupContext.Provider value={{ highlighted }}>{children}</SegmentPopupContext.Provider>\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n </ComboboxPrimitive.Root>\n );\n}\n\nconst fieldLabel = (field: FilterBarField) => field.label;\nconst operatorLabel = (operator: FilterBarOperator) => operator.label;\nconst optionLabel = (option: FilterBarOption) => option.label ?? option.value;\n\nfunction FieldEditor() {\n const ctx = useFilterBarContext();\n const chip = useChip();\n const [query, setQuery] = useState('');\n\n const onSelect = useCallback(\n (field: FilterBarField) => {\n const allowed = ctx.getFieldOperators(field);\n const nextOperator = allowed.find(o => o.id === chip.item.operatorId) ?? allowed[0];\n const arityChanged = nextOperator?.arity !== chip.operator?.arity;\n ctx.updateItem(chip.item.id, {\n fieldId: field.id,\n operatorId: nextOperator?.id ?? chip.item.operatorId,\n value: arityChanged || field.id !== chip.item.fieldId ? emptyValueFor(nextOperator) : chip.item.value,\n });\n chip.setOpenSegment(null);\n },\n [ctx, chip],\n );\n\n return (\n <SegmentCombobox<FilterBarField>\n segment=\"field\"\n ariaLabel=\"Field\"\n label={chip.field?.label ?? chip.item.fieldId}\n items={ctx.fields}\n itemToString={fieldLabel}\n filter={matchesQueryFilter}\n value={chip.field}\n query={query}\n onQueryChange={setQuery}\n onSelect={onSelect}\n >\n <SegmentSearchInput placeholder=\"Change field…\" />\n <FilterBarOptionList<FilterBarField>\n aria-label=\"Fields\"\n getKey={f => f.id}\n renderOption={f => <FilterBarFieldLabel field={f} />}\n emptyText=\"No matching field.\"\n />\n </SegmentCombobox>\n );\n}\n\nfunction OperatorEditor() {\n const ctx = useFilterBarContext();\n const chip = useChip();\n const [query, setQuery] = useState('');\n const options = useMemo(() => (chip.field ? ctx.getFieldOperators(chip.field) : ctx.operators), [ctx, chip.field]);\n\n const onSelect = useCallback(\n (operator: FilterBarOperator) => {\n const arityChanged = (operator.arity ?? 'one') !== (chip.operator?.arity ?? 'one');\n ctx.updateItem(chip.item.id, {\n operatorId: operator.id,\n value: arityChanged ? emptyValueFor(operator) : chip.item.value,\n });\n chip.setOpenSegment(null);\n },\n [ctx, chip],\n );\n\n return (\n <SegmentCombobox<FilterBarOperator>\n segment=\"operator\"\n ariaLabel=\"Operator\"\n label={chip.operator?.label ?? chip.item.operatorId}\n items={options}\n itemToString={operatorLabel}\n filter={matchesQueryFilter}\n value={chip.operator}\n query={query}\n onQueryChange={setQuery}\n onSelect={onSelect}\n >\n <SegmentSearchInput placeholder=\"Change operator…\" />\n <FilterBarOptionList<FilterBarOperator>\n aria-label=\"Operators\"\n getKey={o => o.id}\n renderOption={o => o.label}\n emptyText=\"No matching operator.\"\n />\n </SegmentCombobox>\n );\n}\n\nfunction ValueEditor() {\n const ctx = useFilterBarContext();\n const chip = useChip();\n const open = chip.openSegment === 'value';\n const [query, setQuery] = useState('');\n\n const close = useCallback(() => chip.setOpenSegment(null), [chip]);\n const onCommit = useCallback(\n (value: FilterBarValue) => {\n ctx.updateItem(chip.item.id, { value });\n close();\n },\n [ctx, chip.item.id, close],\n );\n\n const step = useValueStep({\n field: chip.field,\n operator: chip.operator,\n query,\n enabled: open,\n initialValue: chip.item.value,\n onCommit,\n });\n\n const ValueInput = VALUE_INPUTS[chip.field?.type ?? 'text'];\n\n return (\n <SegmentCombobox<FilterBarOption>\n segment=\"value\"\n ariaLabel=\"Value\"\n label={formatValue(chip.item.value, chip.field) || '…'}\n items={step.options}\n itemToString={optionLabel}\n filter={null}\n query={query}\n onQueryChange={setQuery}\n onSelect={step.handleSelect}\n // Prefill free-text values only; with suggestions, the current value is shown as checked instead.\n onOpen={() =>\n setQuery(!Array.isArray(chip.item.value) && !chip.field?.suggestions ? String(chip.item.value) : '')\n }\n >\n <ValueInput step={step} onCancel={close} />\n </SegmentCombobox>\n );\n}\n\ntype ValueInputProps = {\n step: ReturnType<typeof useValueStep>;\n onCancel: () => void;\n};\n\n/** Suggestion list + multi-select footer, shared by every value input. */\nfunction ValueOptions({ step, onCancel }: ValueInputProps) {\n const chip = useChip();\n const modEnterLabel = useIsApplePlatform() ? '⌘↵' : 'Ctrl ↵';\n return (\n <>\n {step.hasSuggestions && (\n <FilterBarOptionList<FilterBarOption>\n aria-label=\"Values\"\n aria-multiselectable={step.isMany || undefined}\n getKey={o => o.value}\n renderOption={option => <FilterBarOptionLabel option={option} />}\n isSelected={o => (step.isMany ? step.selected.includes(o.value) : String(chip.item.value) === o.value)}\n isLoading={step.isLoading}\n error={step.error}\n emptyText={step.allowFreeText ? 'No suggestions — press Enter to use your text.' : 'No matching value.'}\n />\n )}\n {step.isMany && (\n <div className=\"flex items-center justify-end gap-1 border-t border-border p-1\">\n <Button size=\"sm\" variant=\"ghost\" onClick={onCancel}>\n Cancel\n </Button>\n <Button size=\"sm\" variant=\"default\" onClick={() => step.commitSelection() || step.commitFreeText()}>\n Done\n <Kbd size=\"xs\">{modEnterLabel}</Kbd>\n </Button>\n </div>\n )}\n </>\n );\n}\n\n/** Free-text (optionally suggestion-backed) value input; text and number share it. */\nfunction FreeTextValueInput({\n step,\n onCancel,\n inputMode,\n noun,\n}: ValueInputProps & { inputMode?: ComponentProps<'input'>['inputMode']; noun: string }) {\n return (\n <>\n <SegmentSearchInput<FilterBarOption>\n icon={step.hasSuggestions ? SearchIcon : PencilIcon}\n inputMode={inputMode}\n placeholder={\n step.hasSuggestions\n ? step.allowFreeText\n ? `Search or type a ${noun}…`\n : `Search ${noun}s…`\n : `Type a ${noun}…`\n }\n onKeyDown={(event, highlighted) => {\n const highlightedOption = step.hasSuggestions ? highlighted : null;\n const handled = step.handleKeyDown(event, highlightedOption);\n // Base UI closes on Enter when nothing is highlighted; a rejected free-text value must keep the editor open.\n if (handled || (event.key === 'Enter' && highlightedOption === null)) event.preventBaseUIHandler();\n }}\n />\n <ValueOptions step={step} onCancel={onCancel} />\n </>\n );\n}\n\nfunction TextValueInput(props: ValueInputProps) {\n return <FreeTextValueInput {...props} noun=\"value\" />;\n}\n\nfunction NumberValueInput(props: ValueInputProps) {\n return <FreeTextValueInput {...props} inputMode=\"decimal\" noun=\"number\" />;\n}\n\n/** Select-like: no search input, just the True/False (or custom) options. */\nfunction BooleanValueInput(props: ValueInputProps) {\n return <ValueOptions {...props} />;\n}\n\nconst VALUE_INPUTS: Record<FilterBarFieldType, (props: ValueInputProps) => ReactNode> = {\n text: TextValueInput,\n number: NumberValueInput,\n boolean: BooleanValueInput,\n};\n\nexport function FilterBarChipField() {\n return <FieldEditor />;\n}\n\nexport function FilterBarChipOperator() {\n const chip = useChip();\n if (chip.operatorImplied) return null;\n if (chip.draft && !chip.operator) return null;\n return <OperatorEditor />;\n}\n\nexport function FilterBarChipValue() {\n const chip = useChip();\n if (chip.draft || (chip.operator?.arity ?? 'one') === 'none') return null;\n return <ValueEditor />;\n}\n\nexport function FilterBarChipRemove() {\n const ctx = useFilterBarContext();\n const chip = useChip();\n if (chip.readOnly || chip.draft) return null;\n const removeClass = cn(editableSegmentClass, 'px-1.5 text-muted-foreground [--filter-bar-segment-padding:0.375rem]');\n if (chip.leaving) {\n // Keep the × on screen so it folds away with the other segments.\n return (\n <span className={removeClass}>\n <XIcon className=\"size-[1.1em]\" />\n </span>\n );\n }\n const label = `Remove ${chip.field?.label ?? chip.item.fieldId} filter`;\n return (\n <button\n type=\"button\"\n data-filter-bar-segment=\"\"\n tabIndex={-1}\n aria-label={label}\n title={label}\n ref={el => ctx.registerSegment(chip.item.id, 'remove', el)}\n className={removeClass}\n onClick={() => {\n ctx.removeItem(chip.item.id);\n ctx.focusAfterRemove(chip.index);\n }}\n >\n <XIcon className=\"size-[1.1em]\" />\n </button>\n );\n}\n\nFilterBarChip.Field = FilterBarChipField;\nFilterBarChip.Operator = FilterBarChipOperator;\nFilterBarChip.Value = FilterBarChipValue;\nFilterBarChip.Remove = FilterBarChipRemove;\n"],"names":["rendered","leaving","rootGroupOf","value","updateItem","updateTreeItem","items","ComboboxPrimitive"],"mappings":"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"}
|