@mastra/playground-ui 62.0.0-alpha.0 → 62.0.0-alpha.2
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 +2 -2
- package/dist/{Button-BTuu6_hv.cjs → Button-BpSkkuzG.cjs} +3 -2
- package/dist/Button-BpSkkuzG.cjs.map +1 -0
- package/dist/{Button-D76HGlPP.js → Button-MHlMpc97.js} +3 -2
- package/dist/Button-MHlMpc97.js.map +1 -0
- package/dist/{ErrorBoundary-C83aOlVF.cjs → ErrorBoundary-B3MbPdHS.cjs} +2 -2
- package/dist/{ErrorBoundary-C83aOlVF.cjs.map → ErrorBoundary-B3MbPdHS.cjs.map} +1 -1
- package/dist/{ErrorBoundary-DzbqNJsa.js → ErrorBoundary-DECw8zU9.js} +2 -2
- package/dist/{ErrorBoundary-DzbqNJsa.js.map → ErrorBoundary-DECw8zU9.js.map} +1 -1
- package/dist/Notice.css +1 -1
- package/dist/{alert-dialog-BMRR6-5l.cjs → alert-dialog-B0lV1i6F.cjs} +3 -3
- package/dist/{alert-dialog-BMRR6-5l.cjs.map → alert-dialog-B0lV1i6F.cjs.map} +1 -1
- package/dist/{alert-dialog-D7rfyRBL.js → alert-dialog-CTVE09r5.js} +3 -3
- package/dist/{alert-dialog-D7rfyRBL.js.map → alert-dialog-CTVE09r5.js.map} +1 -1
- package/dist/{ask-user-card-Dt8r5Zaj.js → ask-user-card-C01JQ7bo.js} +2 -2
- package/dist/{ask-user-card-Dt8r5Zaj.js.map → ask-user-card-C01JQ7bo.js.map} +1 -1
- package/dist/{ask-user-card-DBnVT9H_.cjs → ask-user-card-C14RGsoO.cjs} +2 -2
- package/dist/{ask-user-card-DBnVT9H_.cjs.map → ask-user-card-C14RGsoO.cjs.map} +1 -1
- package/dist/buttons-group.css +15 -5
- package/dist/{code-block-zZDgdkEU.js → code-block-CVPoRNhl.js} +4 -4
- package/dist/{code-block-zZDgdkEU.js.map → code-block-CVPoRNhl.js.map} +1 -1
- package/dist/{code-block-CEwp58Id.cjs → code-block-Cgjl4ne8.cjs} +4 -4
- package/dist/{code-block-CEwp58Id.cjs.map → code-block-Cgjl4ne8.cjs.map} +1 -1
- package/dist/{code-editor-CIiMtHPN.js → code-editor-5psksCEZ.js} +2 -2
- package/dist/{code-editor-CIiMtHPN.js.map → code-editor-5psksCEZ.js.map} +1 -1
- package/dist/{code-editor-Bw_rGwp9.cjs → code-editor-B9oLjXB-.cjs} +2 -2
- package/dist/{code-editor-Bw_rGwp9.cjs.map → code-editor-B9oLjXB-.cjs.map} +1 -1
- package/dist/{collapsible-box-DV-uekuM.js → collapsible-box-BccWteHB.js} +2 -2
- package/dist/{collapsible-box-DV-uekuM.js.map → collapsible-box-BccWteHB.js.map} +1 -1
- package/dist/{collapsible-box-BiKTbrqx.cjs → collapsible-box-CW66gtXC.cjs} +2 -2
- package/dist/{collapsible-box-BiKTbrqx.cjs.map → collapsible-box-CW66gtXC.cjs.map} +1 -1
- package/dist/{combobox-Cm87oqoh.js → combobox-8_JEWMYs.js} +3 -3
- package/dist/{combobox-Cm87oqoh.js.map → combobox-8_JEWMYs.js.map} +1 -1
- package/dist/{combobox-C94lovBP.cjs → combobox-Csiduxme.cjs} +3 -3
- package/dist/{combobox-C94lovBP.cjs.map → combobox-Csiduxme.cjs.map} +1 -1
- package/dist/{combobox-styles-DeCDIVg-.js → combobox-styles-B7F9wakX.js} +2 -2
- package/dist/{combobox-styles-DeCDIVg-.js.map → combobox-styles-B7F9wakX.js.map} +1 -1
- package/dist/{combobox-styles-Beu-UEji.cjs → combobox-styles-CvSgj0g8.cjs} +2 -2
- package/dist/{combobox-styles-Beu-UEji.cjs.map → combobox-styles-CvSgj0g8.cjs.map} +1 -1
- package/dist/{command-BFo5_Ilw.js → command-C-i5cx8D.js} +2 -2
- package/dist/{command-BFo5_Ilw.js.map → command-C-i5cx8D.js.map} +1 -1
- package/dist/{command-Dd66rlOH.cjs → command-Cq-K24jI.cjs} +2 -2
- package/dist/{command-Dd66rlOH.cjs.map → command-Cq-K24jI.cjs.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/CollapsibleBox.cjs.js +1 -1
- package/dist/components/CollapsibleBox.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +2 -2
- package/dist/components/Comment.es.js +2 -2
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +2 -2
- package/dist/components/DataDetailsPanel.es.js +2 -2
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +4 -4
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +2 -2
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
- package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +7 -6
- package/dist/components/FilterBar.cjs.js.map +1 -1
- package/dist/components/FilterBar.es.js +8 -7
- package/dist/components/FilterBar.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +2 -2
- package/dist/components/FormFieldBlocks.es.js +2 -2
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +2 -2
- package/dist/components/InputNumber.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +3 -3
- package/dist/components/LogsDataList.es.js +3 -3
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +3 -3
- package/dist/components/PropertyFilter.es.js +4 -4
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/SavedViews.cjs.js +2 -2
- package/dist/components/SavedViews.es.js +2 -2
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Sidebar.cjs.js +3 -3
- package/dist/components/Sidebar.es.js +3 -3
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThinkingLevel.cjs.js +36 -24
- package/dist/components/ThinkingLevel.cjs.js.map +1 -1
- package/dist/components/ThinkingLevel.es.js +36 -25
- package/dist/components/ThinkingLevel.es.js.map +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +6 -6
- package/dist/components/Workflow.es.js +6 -6
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +3 -3
- package/dist/components/ai/tool-call.es.js +3 -3
- package/dist/{copy-button-CRWQE6VF.js → copy-button-Ddbg9IZn.js} +2 -2
- package/dist/{copy-button-CRWQE6VF.js.map → copy-button-Ddbg9IZn.js.map} +1 -1
- package/dist/{copy-button-Q9i32p1G.cjs → copy-button-c9mSgKKR.cjs} +2 -2
- package/dist/{copy-button-Q9i32p1G.cjs.map → copy-button-c9mSgKKR.cjs.map} +1 -1
- package/dist/{data-code-section-c2n-IXav.js → data-code-section-CvLs4lM8.js} +5 -5
- package/dist/{data-code-section-c2n-IXav.js.map → data-code-section-CvLs4lM8.js.map} +1 -1
- package/dist/{data-code-section-CDH9qfwl.cjs → data-code-section-D0NR1REP.cjs} +5 -5
- package/dist/{data-code-section-CDH9qfwl.cjs.map → data-code-section-D0NR1REP.cjs.map} +1 -1
- package/dist/{data-list-D5XeKpNR.js → data-list-BfepBJLG.js} +2 -2
- package/dist/{data-list-D5XeKpNR.js.map → data-list-BfepBJLG.js.map} +1 -1
- package/dist/{data-list-DLFiFrph.cjs → data-list-oQsJVUa6.cjs} +2 -2
- package/dist/{data-list-DLFiFrph.cjs.map → data-list-oQsJVUa6.cjs.map} +1 -1
- package/dist/{data-list-skeleton-B4G2Rtpm.cjs → data-list-skeleton-BE7yRNks.cjs} +2 -2
- package/dist/{data-list-skeleton-B4G2Rtpm.cjs.map → data-list-skeleton-BE7yRNks.cjs.map} +1 -1
- package/dist/{data-list-skeleton-CRQBCdB2.js → data-list-skeleton-DnVnqTGL.js} +2 -2
- package/dist/{data-list-skeleton-CRQBCdB2.js.map → data-list-skeleton-DnVnqTGL.js.map} +1 -1
- package/dist/{data-panel-CQb99UIM.js → data-panel-BLk0mZe6.js} +3 -3
- package/dist/{data-panel-CQb99UIM.js.map → data-panel-BLk0mZe6.js.map} +1 -1
- package/dist/{data-panel-C3ympXVb.cjs → data-panel-BaqnMzRn.cjs} +3 -3
- package/dist/{data-panel-C3ympXVb.cjs.map → data-panel-BaqnMzRn.cjs.map} +1 -1
- package/dist/{date-time-range-picker-CRvT0pWo.js → date-time-range-picker-BA3e2LFA.js} +3 -3
- package/dist/{date-time-range-picker-CRvT0pWo.js.map → date-time-range-picker-BA3e2LFA.js.map} +1 -1
- package/dist/{date-time-range-picker-BwgosA0R.cjs → date-time-range-picker-BNepacnP.cjs} +3 -3
- package/dist/{date-time-range-picker-BwgosA0R.cjs.map → date-time-range-picker-BNepacnP.cjs.map} +1 -1
- package/dist/{dialog-Bl_yLOAi.cjs → dialog-Cn-8vN46.cjs} +2 -2
- package/dist/{dialog-Bl_yLOAi.cjs.map → dialog-Cn-8vN46.cjs.map} +1 -1
- package/dist/{dialog-BXtm6e9u.js → dialog-CxFcqD_P.js} +2 -2
- package/dist/{dialog-BXtm6e9u.js.map → dialog-CxFcqD_P.js.map} +1 -1
- package/dist/{dialog-action-C-p24Zfp.cjs → dialog-action-Cn1hO7s4.cjs} +3 -3
- package/dist/{dialog-action-C-p24Zfp.cjs.map → dialog-action-Cn1hO7s4.cjs.map} +1 -1
- package/dist/{dialog-action-BmcloPa9.js → dialog-action-DznfKiIm.js} +3 -3
- package/dist/{dialog-action-BmcloPa9.js.map → dialog-action-DznfKiIm.js.map} +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +1 -1
- package/dist/domains/auth/components/session-expired.es.js +1 -1
- package/dist/domains/capabilities.cjs.js +4 -0
- package/dist/domains/capabilities.cjs.js.map +1 -1
- package/dist/domains/capabilities.es.js +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
- package/dist/domains/chat/messages/message-row.cjs.js +3 -3
- package/dist/domains/chat/messages/message-row.es.js +3 -3
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/tool-badge.es.js +3 -3
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +5 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +5 -4
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
- package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
- package/dist/domains/logs/components/log-data-panel.es.js +3 -3
- package/dist/domains/logs/components/logs-list-view.cjs.js +3 -3
- package/dist/domains/logs/components/logs-list-view.es.js +3 -3
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.es.js +1 -1
- package/dist/domains/metrics/components/usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/usage-card.es.js +1 -1
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
- package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
- package/dist/domains/scores/components/score-data-panel.es.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
- package/dist/domains/scores/components/span-scoring.es.js +3 -3
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -2
- package/dist/domains/scores/components/trace-scores-tab.es.js +2 -2
- package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
- package/dist/domains/traces/components/feedback-thread.es.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.es.js +3 -3
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +2 -1
- 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 +2 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +8 -6
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +8 -6
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -3
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +4 -3
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +4 -4
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +4 -4
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +16 -6
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +16 -6
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +1 -2
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +1 -2
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +1 -1
- package/dist/domains/traces.cjs.js +1 -1
- package/dist/domains/traces.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-information.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +5 -5
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-tree.es.js +2 -2
- package/dist/{drawer-BXfqQ-yo.cjs → drawer-WMbPLzk5.cjs} +2 -2
- package/dist/{drawer-BXfqQ-yo.cjs.map → drawer-WMbPLzk5.cjs.map} +1 -1
- package/dist/{drawer-DrorcKlE.js → drawer-YqdQEgNH.js} +2 -2
- package/dist/{drawer-DrorcKlE.js.map → drawer-YqdQEgNH.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/signals-empty-state.cjs.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +5 -5
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -5
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/{filter-bar-chip-CYuMQS_q.cjs → filter-bar-chip-BBPHw-rX.cjs} +59 -25
- package/dist/filter-bar-chip-BBPHw-rX.cjs.map +1 -0
- package/dist/{filter-bar-chip-fXsAVwGZ.js → filter-bar-chip-SX3vDA7h.js} +59 -25
- package/dist/filter-bar-chip-SX3vDA7h.js.map +1 -0
- package/dist/grain-fill.css +3 -3
- package/dist/{input-group-3jsDUOOK.js → input-group-C7WC6xGL.js} +2 -2
- package/dist/{input-group-3jsDUOOK.js.map → input-group-C7WC6xGL.js.map} +1 -1
- package/dist/{input-group-B_60bxtW.cjs → input-group-CGbhXsmd.cjs} +2 -2
- package/dist/{input-group-B_60bxtW.cjs.map → input-group-CGbhXsmd.cjs.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +4 -4
- package/dist/layout/tabbed-container.es.js +4 -4
- package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
- package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-wrapper.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +1 -1
- package/dist/lib/form/components/date-field.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
- package/dist/lib/form/components/form-submit-row.es.js +1 -1
- package/dist/lib/form/components/record-field.cjs.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/{list-search-CtuCqehq.js → list-search-CTZVTRUd.js} +2 -2
- package/dist/{list-search-CtuCqehq.js.map → list-search-CTZVTRUd.js.map} +1 -1
- package/dist/{list-search-BlgDm306.cjs → list-search-DTVH9Fbj.cjs} +2 -2
- package/dist/{list-search-BlgDm306.cjs.map → list-search-DTVH9Fbj.cjs.map} +1 -1
- package/dist/{logs-data-list-Bz3LB9tJ.cjs → logs-data-list-BgFT_0qi.cjs} +2 -2
- package/dist/{logs-data-list-Bz3LB9tJ.cjs.map → logs-data-list-BgFT_0qi.cjs.map} +1 -1
- package/dist/{logs-data-list-CmGZY-tj.js → logs-data-list-C-F2jh04.js} +2 -2
- package/dist/{logs-data-list-CmGZY-tj.js.map → logs-data-list-C-F2jh04.js.map} +1 -1
- package/dist/{markdown-renderer-hN46cpXk.js → markdown-renderer-9YP7IIQd.js} +3 -3
- package/dist/{markdown-renderer-hN46cpXk.js.map → markdown-renderer-9YP7IIQd.js.map} +1 -1
- package/dist/{markdown-renderer-C9pb3n-P.cjs → markdown-renderer-B2RV53gr.cjs} +3 -3
- package/dist/{markdown-renderer-C9pb3n-P.cjs.map → markdown-renderer-B2RV53gr.cjs.map} +1 -1
- package/dist/{message-copy-button-DR5YO8Ms.js → message-copy-button-BSwxcs4F.js} +2 -2
- package/dist/{message-copy-button-DR5YO8Ms.js.map → message-copy-button-BSwxcs4F.js.map} +1 -1
- package/dist/{message-copy-button-UJ-4xx1Z.cjs → message-copy-button-mKHZUK1g.cjs} +2 -2
- package/dist/{message-copy-button-UJ-4xx1Z.cjs.map → message-copy-button-mKHZUK1g.cjs.map} +1 -1
- package/dist/{metrics-card-DoO7LGMR.js → metrics-card-BGQys8PU.js} +2 -2
- package/dist/{metrics-card-DoO7LGMR.js.map → metrics-card-BGQys8PU.js.map} +1 -1
- package/dist/{metrics-card-DwMMmvo-.cjs → metrics-card-QVSVExtn.cjs} +2 -2
- package/dist/{metrics-card-DwMMmvo-.cjs.map → metrics-card-QVSVExtn.cjs.map} +1 -1
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/{page-header-BELC4V_d.js → page-header-Bf0zLkyY.js} +26 -13
- package/dist/page-header-Bf0zLkyY.js.map +1 -0
- package/dist/{page-header-B7iNJsvN.cjs → page-header-CLxPq7T5.cjs} +26 -13
- package/dist/page-header-CLxPq7T5.cjs.map +1 -0
- package/dist/page-header.css +7 -0
- package/dist/{plan-CneICd0O.cjs → plan-D6dxWNaj.cjs} +4 -4
- package/dist/{plan-CneICd0O.cjs.map → plan-D6dxWNaj.cjs.map} +1 -1
- package/dist/{plan-HG66GE5J.js → plan-mzZj_aS2.js} +4 -4
- package/dist/{plan-HG66GE5J.js.map → plan-mzZj_aS2.js.map} +1 -1
- package/dist/primitives/menu-item.cjs.js +1 -1
- package/dist/primitives/menu-item.es.js +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-D8ksUq0V.cjs → property-filter-applied-7dHzckeW.cjs} +2 -2
- package/dist/{property-filter-applied-D8ksUq0V.cjs.map → property-filter-applied-7dHzckeW.cjs.map} +1 -1
- package/dist/{property-filter-applied-BI8sBH9b.js → property-filter-applied-CdbOixsW.js} +2 -2
- package/dist/{property-filter-applied-BI8sBH9b.js.map → property-filter-applied-CdbOixsW.js.map} +1 -1
- package/dist/{reasoning-activity-Cuk7KOLH.js → reasoning-activity-Cpp4iYTw.js} +2 -2
- package/dist/{reasoning-activity-Cuk7KOLH.js.map → reasoning-activity-Cpp4iYTw.js.map} +1 -1
- package/dist/{reasoning-activity-dSUBYE37.cjs → reasoning-activity-D2sXBAxE.cjs} +2 -2
- package/dist/{reasoning-activity-dSUBYE37.cjs.map → reasoning-activity-D2sXBAxE.cjs.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{search-input-C_PutmWo.cjs → search-input-CUGl4cVg.cjs} +2 -2
- package/dist/{search-input-C_PutmWo.cjs.map → search-input-CUGl4cVg.cjs.map} +1 -1
- package/dist/{search-input-DRbe8Fm2.js → search-input-iS3IW0Qo.js} +2 -2
- package/dist/{search-input-DRbe8Fm2.js.map → search-input-iS3IW0Qo.js.map} +1 -1
- package/dist/{select-BFHGp0Gs.cjs → select-Cnf7ilWA.cjs} +2 -2
- package/dist/{select-BFHGp0Gs.cjs.map → select-Cnf7ilWA.cjs.map} +1 -1
- package/dist/{select-CzDDdAMs.js → select-DN0-Usy1.js} +2 -2
- package/dist/{select-CzDDdAMs.js.map → select-DN0-Usy1.js.map} +1 -1
- package/dist/{side-dialog-CUmxpQRz.js → side-dialog-Qyfm7rKU.js} +4 -4
- package/dist/{side-dialog-CUmxpQRz.js.map → side-dialog-Qyfm7rKU.js.map} +1 -1
- package/dist/{side-dialog-CJC2Tj0i.cjs → side-dialog-tOsly_KZ.cjs} +4 -4
- package/dist/{side-dialog-CJC2Tj0i.cjs.map → side-dialog-tOsly_KZ.cjs.map} +1 -1
- package/dist/{span-payload-primitives-BlmorE-u.cjs → span-payload-primitives-DqZn_Q29.cjs} +2 -2
- package/dist/{span-payload-primitives-BlmorE-u.cjs.map → span-payload-primitives-DqZn_Q29.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DCho2ZIs.js → span-payload-primitives-wxQ0IDhF.js} +2 -2
- package/dist/{span-payload-primitives-DCho2ZIs.js.map → span-payload-primitives-wxQ0IDhF.js.map} +1 -1
- package/dist/src/domains/capabilities/index.d.ts +1 -1
- package/dist/src/domains/traces/hooks/use-trace-filter-persistence.d.ts +5 -1
- package/dist/src/domains/traces/trace-filters.d.ts +6 -3
- package/dist/src/domains/traces/trace-query-filters.d.ts +3 -1
- package/dist/src/ds/components/Button/Button.d.ts +2 -0
- package/dist/src/ds/components/FilterBar/use-value-step.d.ts +10 -6
- package/dist/src/ds/components/ThinkingLevel/thinking-level-picker.d.ts +9 -1
- package/dist/src/ds/new/layout/page-header/page-header-root.d.ts +4 -2
- package/dist/style.css +12 -0
- package/dist/{tabs-tab-rYy3Vtvm.cjs → tabs-tab-D5ilwDSA.cjs} +2 -2
- package/dist/{tabs-tab-rYy3Vtvm.cjs.map → tabs-tab-D5ilwDSA.cjs.map} +1 -1
- package/dist/{tabs-tab-BvPKLjyo.js → tabs-tab-sxXpEPLh.js} +2 -2
- package/dist/{tabs-tab-BvPKLjyo.js.map → tabs-tab-sxXpEPLh.js.map} +1 -1
- package/dist/{thread-list-Dj-L1-NP.cjs → thread-list-8dSs2FNI.cjs} +2 -2
- package/dist/{thread-list-Dj-L1-NP.cjs.map → thread-list-8dSs2FNI.cjs.map} +1 -1
- package/dist/{thread-list-DwGHKNEn.js → thread-list-Belzl58i.js} +2 -2
- package/dist/{thread-list-DwGHKNEn.js.map → thread-list-Belzl58i.js.map} +1 -1
- package/dist/{time-picker-CmXQ_gAe.cjs → time-picker-876yLgUN.cjs} +2 -2
- package/dist/{time-picker-CmXQ_gAe.cjs.map → time-picker-876yLgUN.cjs.map} +1 -1
- package/dist/{time-picker-BovSnZzV.js → time-picker-BWarCKzE.js} +2 -2
- package/dist/{time-picker-BovSnZzV.js.map → time-picker-BWarCKzE.js.map} +1 -1
- package/dist/{tool-approval-5-OydkZ3.js → tool-approval-BabMPJSL.js} +3 -3
- package/dist/{tool-approval-5-OydkZ3.js.map → tool-approval-BabMPJSL.js.map} +1 -1
- package/dist/{tool-approval-oCaL8VoJ.cjs → tool-approval-CWOuZz47.cjs} +3 -3
- package/dist/{tool-approval-oCaL8VoJ.cjs.map → tool-approval-CWOuZz47.cjs.map} +1 -1
- package/dist/{tool-call-arguments-C76bEiB4.cjs → tool-call-arguments-D_59g8vR.cjs} +3 -3
- package/dist/{tool-call-arguments-C76bEiB4.cjs.map → tool-call-arguments-D_59g8vR.cjs.map} +1 -1
- package/dist/{tool-call-arguments-BWD0lShJ.js → tool-call-arguments-fd023vLB.js} +3 -3
- package/dist/{tool-call-arguments-BWD0lShJ.js.map → tool-call-arguments-fd023vLB.js.map} +1 -1
- package/dist/{tool-call-mono-DKg1LlPc.cjs → tool-call-mono-BrQxLrvE.cjs} +2 -2
- package/dist/{tool-call-mono-DKg1LlPc.cjs.map → tool-call-mono-BrQxLrvE.cjs.map} +1 -1
- package/dist/{tool-call-mono-D_2EN3gC.js → tool-call-mono-D0V_wI07.js} +2 -2
- package/dist/{tool-call-mono-D_2EN3gC.js.map → tool-call-mono-D0V_wI07.js.map} +1 -1
- package/dist/{tool-call-output-CWMj5m4d.js → tool-call-output-BAel_ixd.js} +2 -2
- package/dist/{tool-call-output-CWMj5m4d.js.map → tool-call-output-BAel_ixd.js.map} +1 -1
- package/dist/{tool-call-output-BOvcdKkE.cjs → tool-call-output-C5PqIAC1.cjs} +2 -2
- package/dist/{tool-call-output-BOvcdKkE.cjs.map → tool-call-output-C5PqIAC1.cjs.map} +1 -1
- package/dist/{tool-card-BMbGwgpE.js → tool-card-D-w1SgXq.js} +4 -4
- package/dist/{tool-card-BMbGwgpE.js.map → tool-card-D-w1SgXq.js.map} +1 -1
- package/dist/{tool-card-DC0HF9cD.cjs → tool-card-LNK49o-E.cjs} +4 -4
- package/dist/{tool-card-DC0HF9cD.cjs.map → tool-card-LNK49o-E.cjs.map} +1 -1
- package/dist/{trace-filters-Cvo41yor.cjs → trace-filters-B9myZP-l.cjs} +64 -52
- package/dist/trace-filters-B9myZP-l.cjs.map +1 -0
- package/dist/{trace-filters-dZ3rnTH3.js → trace-filters-Cvra0Aum.js} +64 -52
- package/dist/trace-filters-Cvra0Aum.js.map +1 -0
- package/dist/{traces-data-list-BckeY4Ro.js → traces-data-list-C89IFLf8.js} +2 -2
- package/dist/{traces-data-list-BckeY4Ro.js.map → traces-data-list-C89IFLf8.js.map} +1 -1
- package/dist/{traces-data-list-CneTHNqI.cjs → traces-data-list-DRSy_7KT.cjs} +2 -2
- package/dist/{traces-data-list-CneTHNqI.cjs.map → traces-data-list-DRSy_7KT.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-bj7VLhz_.cjs → use-workflow-graph-runtime-FHoQYtWa.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-bj7VLhz_.cjs.map → use-workflow-graph-runtime-FHoQYtWa.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-CR0rDgyB.js → use-workflow-graph-runtime-XT_aoo-Z.js} +3 -3
- package/dist/{use-workflow-graph-runtime-CR0rDgyB.js.map → use-workflow-graph-runtime-XT_aoo-Z.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-PM6SdYjA.cjs → workflow-code-dialog-content-BP55qUnT.cjs} +3 -3
- package/dist/{workflow-code-dialog-content-PM6SdYjA.cjs.map → workflow-code-dialog-content-BP55qUnT.cjs.map} +1 -1
- package/dist/{workflow-code-dialog-content-DulChA9c.js → workflow-code-dialog-content-CmnuHQzF.js} +3 -3
- package/dist/{workflow-code-dialog-content-DulChA9c.js.map → workflow-code-dialog-content-CmnuHQzF.js.map} +1 -1
- package/dist/{workflow-condition-card-Jz9a_WTL.js → workflow-condition-card-D30tufXt.js} +3 -3
- package/dist/{workflow-condition-card-Jz9a_WTL.js.map → workflow-condition-card-D30tufXt.js.map} +1 -1
- package/dist/{workflow-condition-card-Cva9h6Za.cjs → workflow-condition-card-Dy-0c_PT.cjs} +3 -3
- package/dist/{workflow-condition-card-Cva9h6Za.cjs.map → workflow-condition-card-Dy-0c_PT.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-DGgf7oiq.cjs → workflow-data-edge-view-AMALwkid.cjs} +2 -2
- package/dist/{workflow-data-edge-view-DGgf7oiq.cjs.map → workflow-data-edge-view-AMALwkid.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-Bm9lzG6l.js → workflow-data-edge-view-vb3nHPsI.js} +2 -2
- package/dist/{workflow-data-edge-view-Bm9lzG6l.js.map → workflow-data-edge-view-vb3nHPsI.js.map} +1 -1
- package/dist/{workflow-debug-controls-CTONMgJw.cjs → workflow-debug-controls-BHsYftQx.cjs} +2 -2
- package/dist/{workflow-debug-controls-CTONMgJw.cjs.map → workflow-debug-controls-BHsYftQx.cjs.map} +1 -1
- package/dist/{workflow-debug-controls-RqL-k3Mm.js → workflow-debug-controls-VGOzv5eL.js} +2 -2
- package/dist/{workflow-debug-controls-RqL-k3Mm.js.map → workflow-debug-controls-VGOzv5eL.js.map} +1 -1
- package/dist/{workflow-edge-data-button-BOX0QYw3.js → workflow-edge-data-button-D-XKNKj_.js} +4 -4
- package/dist/{workflow-edge-data-button-BOX0QYw3.js.map → workflow-edge-data-button-D-XKNKj_.js.map} +1 -1
- package/dist/{workflow-edge-data-button-0J0U0_IH.cjs → workflow-edge-data-button-ETNa_T9p.cjs} +4 -4
- package/dist/{workflow-edge-data-button-0J0U0_IH.cjs.map → workflow-edge-data-button-ETNa_T9p.cjs.map} +1 -1
- package/dist/{workflow-step-action-Bh8ie_d0.cjs → workflow-step-action-CDBpEltB.cjs} +2 -2
- package/dist/{workflow-step-action-Bh8ie_d0.cjs.map → workflow-step-action-CDBpEltB.cjs.map} +1 -1
- package/dist/{workflow-step-action-CDCo6X1b.js → workflow-step-action-Dnf3HqLP.js} +2 -2
- package/dist/{workflow-step-action-CDCo6X1b.js.map → workflow-step-action-Dnf3HqLP.js.map} +1 -1
- package/package.json +10 -10
- package/dist/Button-BTuu6_hv.cjs.map +0 -1
- package/dist/Button-D76HGlPP.js.map +0 -1
- package/dist/filter-bar-chip-CYuMQS_q.cjs.map +0 -1
- package/dist/filter-bar-chip-fXsAVwGZ.js.map +0 -1
- package/dist/page-header-B7iNJsvN.cjs.map +0 -1
- package/dist/page-header-BELC4V_d.js.map +0 -1
- package/dist/trace-filters-Cvo41yor.cjs.map +0 -1
- package/dist/trace-filters-dZ3rnTH3.js.map +0 -1
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
|
-
const propertyFilterApplied = require('../property-filter-applied-
|
|
5
|
+
const propertyFilterApplied = require('../property-filter-applied-7dHzckeW.cjs');
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
const lucideReact = require('lucide-react');
|
|
8
8
|
const React = require('react');
|
|
9
|
-
const Button = require('../Button-
|
|
10
|
-
const combobox = require('../combobox-
|
|
9
|
+
const Button = require('../Button-BpSkkuzG.cjs');
|
|
10
|
+
const combobox = require('../combobox-Csiduxme.cjs');
|
|
11
11
|
const field = require('../field-D1SVMPMz.cjs');
|
|
12
12
|
require('../field-control-aria-WzMGs0A4.cjs');
|
|
13
13
|
const popover = require('../popover-CWHYNPp8.cjs');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { b as PickMultiPanel } from '../property-filter-applied-
|
|
2
|
-
export { a as PropertyFilterActions, P as PropertyFilterApplied } from '../property-filter-applied-
|
|
1
|
+
import { b as PickMultiPanel } from '../property-filter-applied-CdbOixsW.js';
|
|
2
|
+
export { a as PropertyFilterActions, P as PropertyFilterApplied } from '../property-filter-applied-CdbOixsW.js';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { ListFilterPlusIcon, ArrowLeftIcon, FilterIcon, PlusIcon, X, ListFilterPlus, ChevronRightIcon } from 'lucide-react';
|
|
5
5
|
import { useMemo, useState, useRef, useCallback, useEffect, forwardRef } from 'react';
|
|
6
|
-
import { B as Button } from '../Button-
|
|
7
|
-
import { C as Combobox } from '../combobox-
|
|
6
|
+
import { B as Button } from '../Button-MHlMpc97.js';
|
|
7
|
+
import { C as Combobox } from '../combobox-8_JEWMYs.js';
|
|
8
8
|
import { F as Field, c as FieldError } from '../field-B89BEZg4.js';
|
|
9
9
|
import '../field-control-aria-DB6y41tQ.js';
|
|
10
10
|
import { P as Popover, b as PopoverTrigger, a as PopoverContent } from '../popover-Jf2UUdQ1.js';
|
|
@@ -6,12 +6,12 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const utils_ruleEngine = require('../utils/rule-engine.cjs.js');
|
|
9
|
-
const select = require('../select-
|
|
9
|
+
const select = require('../select-Cnf7ilWA.cjs');
|
|
10
10
|
const Txt = require('../Txt-DXjXpX9r.cjs');
|
|
11
11
|
const icons_Icon = require('../icons/Icon.cjs.js');
|
|
12
12
|
const utils_cn = require('../cn-TqD01zH-.cjs');
|
|
13
13
|
const input = require('../input-HPE241gI.cjs');
|
|
14
|
-
const Button = require('../Button-
|
|
14
|
+
const Button = require('../Button-BpSkkuzG.cjs');
|
|
15
15
|
const primitives_transitions = require('../primitives/transitions.cjs.js');
|
|
16
16
|
const primitives_typography = require('../primitives/typography.cjs.js');
|
|
17
17
|
|
|
@@ -2,12 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Type, ToggleLeft, Hash, List, Braces, Ban, Check, ListX, ChevronsLeft, ChevronsRight, ChevronLeft, ChevronRight, Text, TextSearch, EqualNot, Equal, X, Plus, Component } from 'lucide-react';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { createDefaultRule, isRule, createDefaultRuleGroup } from '../utils/rule-engine.es.js';
|
|
5
|
-
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-
|
|
5
|
+
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-DN0-Usy1.js';
|
|
6
6
|
import { T as Txt } from '../Txt-BuzYj7Vy.js';
|
|
7
7
|
import { Icon } from '../icons/Icon.es.js';
|
|
8
8
|
import { c as cn } from '../cn-coERSHz5.js';
|
|
9
9
|
import { I as Input } from '../input-vi0ICZHe.js';
|
|
10
|
-
import { B as Button } from '../Button-
|
|
10
|
+
import { B as Button } from '../Button-MHlMpc97.js';
|
|
11
11
|
import { controlStateColorTransition } from '../primitives/transitions.es.js';
|
|
12
12
|
import { quietTextHover } from '../primitives/typography.es.js';
|
|
13
13
|
|
|
@@ -6,9 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const v4 = require('zod/v4');
|
|
9
|
-
const filterBarChip = require('../filter-bar-chip-
|
|
9
|
+
const filterBarChip = require('../filter-bar-chip-BBPHw-rX.cjs');
|
|
10
10
|
const Txt = require('../Txt-DXjXpX9r.cjs');
|
|
11
|
-
const Button = require('../Button-
|
|
11
|
+
const Button = require('../Button-BpSkkuzG.cjs');
|
|
12
12
|
const contextMenu = require('../context-menu-Dpm8dBLw.cjs');
|
|
13
13
|
const dropdownMenu = require('../dropdown-menu-Bg96BCnK.cjs');
|
|
14
14
|
const hoverCard = require('../hover-card-DQaLn-VR.cjs');
|
|
@@ -2,9 +2,9 @@ import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
|
2
2
|
import { LayersPlusIcon, ChevronDownIcon, LayersIcon, PencilIcon, TextCursorInputIcon, CopyIcon, Trash2Icon } from 'lucide-react';
|
|
3
3
|
import { useState, Fragment, useSyncExternalStore } from 'react';
|
|
4
4
|
import { z } from 'zod/v4';
|
|
5
|
-
import { a as FilterBarFieldLabel, t as formatValue } from '../filter-bar-chip-
|
|
5
|
+
import { a as FilterBarFieldLabel, t as formatValue } from '../filter-bar-chip-SX3vDA7h.js';
|
|
6
6
|
import { T as Txt } from '../Txt-BuzYj7Vy.js';
|
|
7
|
-
import { B as Button, b as buttonVariants } from '../Button-
|
|
7
|
+
import { B as Button, b as buttonVariants } from '../Button-MHlMpc97.js';
|
|
8
8
|
import { C as ContextMenu } from '../context-menu-BVth1SD9.js';
|
|
9
9
|
import { D as DropdownMenu } from '../dropdown-menu-D8GR_NhL.js';
|
|
10
10
|
import { H as HoverCard, b as HoverCardTrigger, a as HoverCardContent } from '../hover-card-DBunOtRV.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SearchInput } from '../search-input-
|
|
1
|
+
export { S as SearchInput } from '../search-input-iS3IW0Qo.js';
|
|
2
2
|
//# sourceMappingURL=SearchInput.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as Select, a as SelectContent, b as SelectGroup, c as SelectItem, d as SelectTrigger, e as SelectValue } from '../select-
|
|
1
|
+
export { S as Select, a as SelectContent, b as SelectGroup, c as SelectItem, d as SelectTrigger, e as SelectValue } from '../select-DN0-Usy1.js';
|
|
2
2
|
//# sourceMappingURL=Select.es.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as SideDialog } from '../side-dialog-
|
|
1
|
+
export { S as SideDialog } from '../side-dialog-Qyfm7rKU.js';
|
|
2
2
|
//# sourceMappingURL=SideDialog.es.js.map
|
|
@@ -16,11 +16,11 @@ const primitives_typography = require('../primitives/typography.cjs.js');
|
|
|
16
16
|
const scrollArea = require('../scroll-area-CVgjRzTS.cjs');
|
|
17
17
|
const index = require('../index-DlPxfJz9.cjs');
|
|
18
18
|
const primitives_controlSize = require('../primitives/control-size.cjs.js');
|
|
19
|
-
const drawer = require('../drawer-
|
|
19
|
+
const drawer = require('../drawer-WMbPLzk5.cjs');
|
|
20
20
|
const primitives_resizeHandleIndicator = require('../primitives/resize-handle-indicator.cjs.js');
|
|
21
21
|
const v4 = require('zod/v4');
|
|
22
|
-
const dialog = require('../dialog-
|
|
23
|
-
const select = require('../select-
|
|
22
|
+
const dialog = require('../dialog-Cn-8vN46.cjs');
|
|
23
|
+
const select = require('../select-Cnf7ilWA.cjs');
|
|
24
24
|
const contextMenu = require('../context-menu-Dpm8dBLw.cjs');
|
|
25
25
|
const dropdownMenu = require('../dropdown-menu-Bg96BCnK.cjs');
|
|
26
26
|
const hooks_useLocalStorageState = require('../hooks/use-local-storage-state.cjs.js');
|
|
@@ -12,11 +12,11 @@ import { quietTextHoverInGroup, quietTextHover } from '../primitives/typography.
|
|
|
12
12
|
import { S as ScrollArea, a as ScrollAreaViewport } from '../scroll-area-BywIlj3F.js';
|
|
13
13
|
import { c as cva } from '../index-D_f78K7e.js';
|
|
14
14
|
import { controlHeight } from '../primitives/control-size.es.js';
|
|
15
|
-
import { D as Drawer, d as DrawerContent, c as DrawerClose, o as DrawerTitle, e as DrawerDescription } from '../drawer-
|
|
15
|
+
import { D as Drawer, d as DrawerContent, c as DrawerClose, o as DrawerTitle, e as DrawerDescription } from '../drawer-YqdQEgNH.js';
|
|
16
16
|
import { ResizeHandleIndicator } from '../primitives/resize-handle-indicator.es.js';
|
|
17
17
|
import { z } from 'zod/v4';
|
|
18
|
-
import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody } from '../dialog-
|
|
19
|
-
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-
|
|
18
|
+
import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody } from '../dialog-CxFcqD_P.js';
|
|
19
|
+
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../select-DN0-Usy1.js';
|
|
20
20
|
import { C as ContextMenu } from '../context-menu-BVth1SD9.js';
|
|
21
21
|
import { D as DropdownMenu } from '../dropdown-menu-D8GR_NhL.js';
|
|
22
22
|
import { useLocalStorageState } from '../hooks/use-local-storage-state.es.js';
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const tabsRoot = require('../tabs-root-Phsi-P1b.cjs');
|
|
6
6
|
const tabsList = require('../tabs-list-xikY_dug.cjs');
|
|
7
|
-
const tabsTab = require('../tabs-tab-
|
|
7
|
+
const tabsTab = require('../tabs-tab-D5ilwDSA.cjs');
|
|
8
8
|
const tabsContent = require('../tabs-content-C3VQRDXH.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { T as Tabs } from '../tabs-root-CvGhdNKc.js';
|
|
2
2
|
export { T as TabList } from '../tabs-list-DY_hziv7.js';
|
|
3
|
-
export { T as Tab } from '../tabs-tab-
|
|
3
|
+
export { T as Tab } from '../tabs-tab-sxXpEPLh.js';
|
|
4
4
|
export { T as TabContent } from '../tabs-content-6EaLEj8a.js';
|
|
5
5
|
//# sourceMappingURL=Tabs.es.js.map
|
|
@@ -181,44 +181,55 @@ function ThinkingLevelBars({ options, value }) {
|
|
|
181
181
|
index
|
|
182
182
|
)) });
|
|
183
183
|
}
|
|
184
|
+
function ThinkingLevelUnavailable({
|
|
185
|
+
options,
|
|
186
|
+
label,
|
|
187
|
+
reason
|
|
188
|
+
}) {
|
|
189
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
190
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
191
|
+
tooltip.TooltipTrigger,
|
|
192
|
+
{
|
|
193
|
+
render: /* @__PURE__ */ jsxRuntime.jsx(
|
|
194
|
+
"span",
|
|
195
|
+
{
|
|
196
|
+
role: "button",
|
|
197
|
+
tabIndex: 0,
|
|
198
|
+
"aria-disabled": "true",
|
|
199
|
+
"aria-label": `${label}: unavailable. ${reason}`,
|
|
200
|
+
className: utils_cn.cn(
|
|
201
|
+
"inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
|
|
202
|
+
primitives_transitions.focusRing
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
),
|
|
206
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelBars, { options, value: void 0 })
|
|
207
|
+
}
|
|
208
|
+
),
|
|
209
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { side: "top", className: "max-w-64", children: reason })
|
|
210
|
+
] });
|
|
211
|
+
}
|
|
184
212
|
function ThinkingLevelPicker({
|
|
185
213
|
options,
|
|
186
214
|
value,
|
|
187
215
|
label,
|
|
188
216
|
unavailableReason,
|
|
189
217
|
description,
|
|
218
|
+
origin,
|
|
219
|
+
footer,
|
|
190
220
|
onChange
|
|
191
221
|
}) {
|
|
192
222
|
if (unavailableReason) {
|
|
193
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
194
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
195
|
-
tooltip.TooltipTrigger,
|
|
196
|
-
{
|
|
197
|
-
render: /* @__PURE__ */ jsxRuntime.jsx(
|
|
198
|
-
"span",
|
|
199
|
-
{
|
|
200
|
-
role: "button",
|
|
201
|
-
tabIndex: 0,
|
|
202
|
-
"aria-disabled": "true",
|
|
203
|
-
"aria-label": `${label}: unavailable. ${unavailableReason}`,
|
|
204
|
-
className: utils_cn.cn(
|
|
205
|
-
"inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
|
|
206
|
-
primitives_transitions.focusRing
|
|
207
|
-
)
|
|
208
|
-
}
|
|
209
|
-
),
|
|
210
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelBars, { options, value: void 0 })
|
|
211
|
-
}
|
|
212
|
-
),
|
|
213
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { side: "top", className: "max-w-64", children: unavailableReason })
|
|
214
|
-
] });
|
|
223
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelUnavailable, { options, label, reason: unavailableReason });
|
|
215
224
|
}
|
|
216
|
-
const
|
|
225
|
+
const levelLabel = options.find((option) => option.value === value)?.label ?? value;
|
|
226
|
+
const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;
|
|
217
227
|
return /* @__PURE__ */ jsxRuntime.jsxs(popover.Popover, { children: [
|
|
218
228
|
/* @__PURE__ */ jsxRuntime.jsx(popover.PopoverTrigger, { variant: "ghost", size: "sm", "aria-label": triggerLabel, tooltip: triggerLabel, className: "shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelBars, { options, value }) }),
|
|
219
229
|
/* @__PURE__ */ jsxRuntime.jsxs(popover.PopoverContent, { align: "end", className: "flex flex-col gap-3", children: [
|
|
220
230
|
/* @__PURE__ */ jsxRuntime.jsx(ThinkingLevelRamp, { options, value, label, onChange }),
|
|
221
|
-
description ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null
|
|
231
|
+
description ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null,
|
|
232
|
+
footer
|
|
222
233
|
] })
|
|
223
234
|
] });
|
|
224
235
|
}
|
|
@@ -227,4 +238,5 @@ exports.ThinkingLevelBars = ThinkingLevelBars;
|
|
|
227
238
|
exports.ThinkingLevelPicker = ThinkingLevelPicker;
|
|
228
239
|
exports.ThinkingLevelRamp = ThinkingLevelRamp;
|
|
229
240
|
exports.ThinkingLevelSlider = ThinkingLevelSlider;
|
|
241
|
+
exports.ThinkingLevelUnavailable = ThinkingLevelUnavailable;
|
|
230
242
|
//# sourceMappingURL=ThinkingLevel.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThinkingLevel.cjs.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${unavailableReason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {unavailableReason}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n const triggerLabel = `${label}: ${options.find(option => option.value === value)?.label ?? value}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["cn","focusRing","useState","jsxs","jsx","Txt","Tooltip","TooltipTrigger","TooltipContent","Popover","PopoverTrigger","PopoverContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThinkingLevel.cjs.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelUnavailableProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n label: string;\n reason: string;\n}\n\nexport function ThinkingLevelUnavailable<T extends string>({\n options,\n label,\n reason,\n}: ThinkingLevelUnavailableProps<T>) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${reason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {reason}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n origin?: string;\n footer?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n origin,\n footer,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return <ThinkingLevelUnavailable options={options} label={label} reason={unavailableReason} />;\n }\n\n const levelLabel = options.find(option => option.value === value)?.label ?? value;\n const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n {footer}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":["cn","focusRing","useState","jsxs","jsx","Txt","Tooltip","TooltipTrigger","TooltipContent","Popover","PopoverTrigger","PopoverContent"],"mappings":"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"}
|
|
@@ -177,47 +177,58 @@ function ThinkingLevelBars({ options, value }) {
|
|
|
177
177
|
index
|
|
178
178
|
)) });
|
|
179
179
|
}
|
|
180
|
+
function ThinkingLevelUnavailable({
|
|
181
|
+
options,
|
|
182
|
+
label,
|
|
183
|
+
reason
|
|
184
|
+
}) {
|
|
185
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
186
|
+
/* @__PURE__ */ jsx(
|
|
187
|
+
TooltipTrigger,
|
|
188
|
+
{
|
|
189
|
+
render: /* @__PURE__ */ jsx(
|
|
190
|
+
"span",
|
|
191
|
+
{
|
|
192
|
+
role: "button",
|
|
193
|
+
tabIndex: 0,
|
|
194
|
+
"aria-disabled": "true",
|
|
195
|
+
"aria-label": `${label}: unavailable. ${reason}`,
|
|
196
|
+
className: cn(
|
|
197
|
+
"inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
|
|
198
|
+
focusRing
|
|
199
|
+
)
|
|
200
|
+
}
|
|
201
|
+
),
|
|
202
|
+
children: /* @__PURE__ */ jsx(ThinkingLevelBars, { options, value: void 0 })
|
|
203
|
+
}
|
|
204
|
+
),
|
|
205
|
+
/* @__PURE__ */ jsx(TooltipContent, { side: "top", className: "max-w-64", children: reason })
|
|
206
|
+
] });
|
|
207
|
+
}
|
|
180
208
|
function ThinkingLevelPicker({
|
|
181
209
|
options,
|
|
182
210
|
value,
|
|
183
211
|
label,
|
|
184
212
|
unavailableReason,
|
|
185
213
|
description,
|
|
214
|
+
origin,
|
|
215
|
+
footer,
|
|
186
216
|
onChange
|
|
187
217
|
}) {
|
|
188
218
|
if (unavailableReason) {
|
|
189
|
-
return /* @__PURE__ */
|
|
190
|
-
/* @__PURE__ */ jsx(
|
|
191
|
-
TooltipTrigger,
|
|
192
|
-
{
|
|
193
|
-
render: /* @__PURE__ */ jsx(
|
|
194
|
-
"span",
|
|
195
|
-
{
|
|
196
|
-
role: "button",
|
|
197
|
-
tabIndex: 0,
|
|
198
|
-
"aria-disabled": "true",
|
|
199
|
-
"aria-label": `${label}: unavailable. ${unavailableReason}`,
|
|
200
|
-
className: cn(
|
|
201
|
-
"inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder",
|
|
202
|
-
focusRing
|
|
203
|
-
)
|
|
204
|
-
}
|
|
205
|
-
),
|
|
206
|
-
children: /* @__PURE__ */ jsx(ThinkingLevelBars, { options, value: void 0 })
|
|
207
|
-
}
|
|
208
|
-
),
|
|
209
|
-
/* @__PURE__ */ jsx(TooltipContent, { side: "top", className: "max-w-64", children: unavailableReason })
|
|
210
|
-
] });
|
|
219
|
+
return /* @__PURE__ */ jsx(ThinkingLevelUnavailable, { options, label, reason: unavailableReason });
|
|
211
220
|
}
|
|
212
|
-
const
|
|
221
|
+
const levelLabel = options.find((option) => option.value === value)?.label ?? value;
|
|
222
|
+
const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;
|
|
213
223
|
return /* @__PURE__ */ jsxs(Popover, { children: [
|
|
214
224
|
/* @__PURE__ */ jsx(PopoverTrigger, { variant: "ghost", size: "sm", "aria-label": triggerLabel, tooltip: triggerLabel, className: "shrink-0", children: /* @__PURE__ */ jsx(ThinkingLevelBars, { options, value }) }),
|
|
215
225
|
/* @__PURE__ */ jsxs(PopoverContent, { align: "end", className: "flex flex-col gap-3", children: [
|
|
216
226
|
/* @__PURE__ */ jsx(ThinkingLevelRamp, { options, value, label, onChange }),
|
|
217
|
-
description ? /* @__PURE__ */ jsx(Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null
|
|
227
|
+
description ? /* @__PURE__ */ jsx(Txt, { as: "p", variant: "caption", tone: "muted", children: description }) : null,
|
|
228
|
+
footer
|
|
218
229
|
] })
|
|
219
230
|
] });
|
|
220
231
|
}
|
|
221
232
|
|
|
222
|
-
export { ThinkingLevelBars, ThinkingLevelPicker, ThinkingLevelRamp, ThinkingLevelSlider };
|
|
233
|
+
export { ThinkingLevelBars, ThinkingLevelPicker, ThinkingLevelRamp, ThinkingLevelSlider, ThinkingLevelUnavailable };
|
|
223
234
|
//# sourceMappingURL=ThinkingLevel.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThinkingLevel.es.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${unavailableReason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {unavailableReason}\n </TooltipContent>\n </Tooltip>\n );\n }\n\n const triggerLabel = `${label}: ${options.find(option => option.value === value)?.label ?? value}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ThinkingLevel.es.js","sources":["../../src/ds/components/ThinkingLevel/use-thinking-level-stop.ts","../../src/ds/components/ThinkingLevel/thinking-level-slider.tsx","../../src/ds/components/ThinkingLevel/thinking-level-ramp.tsx","../../src/ds/components/ThinkingLevel/thinking-level-picker.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { ChangeEvent } from 'react';\n\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelOption<T extends string = string> {\n value: T;\n label: string;\n /** `muted` means no thinking at all; `warning` marks a level whose cost climbs. */\n emphasis?: 'muted' | 'warning';\n}\n\nexport const invisibleRangeInputClassName = cn(\n 'cursor-pointer appearance-none bg-transparent',\n focusRing,\n '[&::-webkit-slider-runnable-track]:h-full [&::-webkit-slider-runnable-track]:bg-transparent',\n '[&::-webkit-slider-thumb]:h-full [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none',\n '[&::-webkit-slider-thumb]:bg-transparent',\n '[&::-moz-range-thumb]:h-full [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:border-0',\n '[&::-moz-range-thumb]:bg-transparent',\n);\n\nexport function useThinkingLevelStop<T extends string>({\n options,\n value,\n onChange,\n}: {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n onChange: (value: T) => void | Promise<unknown>;\n}) {\n const [draggedStop, setDraggedStop] = useState<number>();\n const [heldRelease, setHeldRelease] = useState<{ stop: number }>();\n\n const settledStop = Math.max(\n options.findIndex(option => option.value === value),\n 0,\n );\n const pendingStop = draggedStop ?? heldRelease?.stop;\n const shownStop = pendingStop ?? settledStop;\n\n // Holding the drop until the write settles: clearing it first shows the old\n // stop for a frame, then the new one — two jumps for one change.\n const commit = async () => {\n const stop = draggedStop;\n setDraggedStop(undefined);\n if (stop === undefined || stop === settledStop) return;\n const option = options[stop];\n if (!option) return;\n const release = { stop };\n setHeldRelease(release);\n try {\n await onChange(option.value);\n } finally {\n setHeldRelease(current => (current === release ? undefined : current));\n }\n };\n\n const commitOnRelease = () => void commit();\n\n return {\n shownStop,\n shownOption: options[shownStop],\n isPending: pendingStop !== undefined,\n rangeInputProps: {\n type: 'range',\n min: 0,\n max: Math.max(options.length - 1, 0),\n step: 1,\n value: shownStop,\n onChange: (event: ChangeEvent<HTMLInputElement>) => setDraggedStop(Number(event.target.value)),\n onPointerUp: commitOnRelease,\n onPointerCancel: commitOnRelease,\n onKeyUp: commitOnRelease,\n onBlur: commitOnRelease,\n },\n };\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelSliderProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n ariaLabel: string;\n disabled?: boolean;\n /** Appended to the announced value, e.g. ` · follows base` when the level is inherited. */\n valueTextSuffix?: string;\n /** Returning the write lets the thumb hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n className?: string;\n}\n\nconst EMPHASIS_TONE = {\n muted: 'text-placeholder',\n warning: 'text-warning-foreground',\n} as const;\n\nexport function ThinkingLevelSlider<T extends string>({\n options,\n value,\n ariaLabel,\n disabled,\n valueTextSuffix,\n onChange,\n className,\n}: ThinkingLevelSliderProps<T>) {\n const { shownStop, shownOption, isPending, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n const tone = shownOption?.emphasis ? EMPHASIS_TONE[shownOption.emphasis] : 'text-foreground';\n const valueText = `${shownOption?.label ?? ''}${isPending ? '' : (valueTextSuffix ?? '')}`;\n const travelled = `calc(0.5rem + (100% - 1rem) * ${shownStop / lastStop})`;\n\n return (\n <div className={cn('flex items-center gap-2', tone, disabled && 'pointer-events-none opacity-50', className)}>\n <Txt as=\"span\" variant=\"caption\" className=\"w-20 shrink-0 text-right\">\n {shownOption?.label}\n </Txt>\n\n <span className=\"relative flex h-7 w-36 items-center rounded-lg bg-fill\">\n <span\n aria-hidden\n className=\"absolute inset-y-0 left-0 rounded-lg bg-fill-strong\"\n style={{ width: `calc(${travelled} + 6px)` }}\n />\n <span aria-hidden className=\"pointer-events-none absolute inset-x-[6.5px] flex justify-between\">\n {options.map(option => (\n <span key={option.value} className=\"size-[3px] rounded-full bg-current/40\" />\n ))}\n </span>\n <span\n aria-hidden\n className=\"absolute h-4 w-[3px] -translate-x-1/2 rounded-full bg-current\"\n style={{ left: travelled }}\n />\n <input\n {...rangeInputProps}\n aria-label={ariaLabel}\n aria-valuetext={valueText}\n disabled={disabled}\n className={cn('relative h-7 w-full rounded-lg', invisibleRangeInputClassName)}\n />\n </span>\n </div>\n );\n}\n","import { useThinkingLevelStop, invisibleRangeInputClassName } from './use-thinking-level-stop';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelRampProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Returning the write lets the ramp hold the dropped stop until it lands. */\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nfunction filledBarColor(option: ThinkingLevelOption) {\n return option.emphasis === 'warning' ? 'bg-warning-foreground' : 'bg-foreground';\n}\n\nexport function ThinkingLevelRamp<T extends string>({ options, value, label, onChange }: ThinkingLevelRampProps<T>) {\n const { shownStop, shownOption, rangeInputProps } = useThinkingLevelStop({ options, value, onChange });\n const lastStop = Math.max(options.length - 1, 1);\n\n return (\n <div className=\"flex flex-col gap-3\">\n <div className=\"flex items-baseline justify-between gap-2\">\n <Txt as=\"p\" variant=\"label\" tone=\"ink\">\n {label}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n {shownOption?.label}\n </Txt>\n </div>\n <div className=\"flex flex-col gap-2\">\n <div className=\"relative flex h-10 items-end gap-1\">\n {options.map((option, stop) => (\n <span\n key={option.value}\n aria-hidden\n className={cn(\n 'flex-1 rounded-sm transition-colors',\n stop <= shownStop ? filledBarColor(option) : 'bg-fill',\n )}\n style={{ height: `${20 + (80 * stop) / lastStop}%` }}\n />\n ))}\n <input\n {...rangeInputProps}\n aria-label={label}\n aria-valuetext={shownOption?.label}\n className={cn('absolute inset-0 size-full rounded-sm', invisibleRangeInputClassName)}\n />\n </div>\n <div className=\"flex justify-between\">\n {options.map((option, stop) => (\n <Txt\n key={option.value}\n as=\"span\"\n variant=\"meta\"\n tone={stop === shownStop ? 'ink' : 'faint'}\n className=\"flex-1 text-center\"\n >\n {option.label}\n </Txt>\n ))}\n </div>\n </div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { ThinkingLevelRamp } from './thinking-level-ramp';\nimport type { ThinkingLevelOption } from './use-thinking-level-stop';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface ThinkingLevelBarsProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T | undefined;\n}\n\nexport function ThinkingLevelBars<T extends string>({ options, value }: ThinkingLevelBarsProps<T>) {\n const thinkingOptions = options.filter(option => option.emphasis !== 'muted');\n const filled = thinkingOptions.findIndex(option => option.value === value) + 1;\n const barCount = Math.max(thinkingOptions.length, 1);\n return (\n <span aria-hidden className=\"flex h-3 items-end gap-0.5\">\n {Array.from({ length: barCount }, (_, index) => (\n <span\n key={index}\n className={cn('w-[3px] rounded-xs', index < filled ? 'bg-current' : 'bg-current/25')}\n style={{ height: `${40 + (60 * index) / Math.max(barCount - 1, 1)}%` }}\n />\n ))}\n </span>\n );\n}\n\nexport interface ThinkingLevelUnavailableProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n label: string;\n reason: string;\n}\n\nexport function ThinkingLevelUnavailable<T extends string>({\n options,\n label,\n reason,\n}: ThinkingLevelUnavailableProps<T>) {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled=\"true\"\n aria-label={`${label}: unavailable. ${reason}`}\n className={cn(\n 'inline-flex h-control-sm shrink-0 cursor-not-allowed items-center rounded-full border border-transparent px-2.5 text-placeholder',\n focusRing,\n )}\n />\n }\n >\n <ThinkingLevelBars options={options} value={undefined} />\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-64\">\n {reason}\n </TooltipContent>\n </Tooltip>\n );\n}\n\nexport interface ThinkingLevelPickerProps<T extends string> {\n options: readonly ThinkingLevelOption<T>[];\n value: T;\n label: string;\n /** Disables the trigger and explains why in its tooltip, e.g. when the model cannot think. */\n unavailableReason?: string;\n description?: ReactNode;\n origin?: string;\n footer?: ReactNode;\n onChange: (value: T) => void | Promise<unknown>;\n}\n\nexport function ThinkingLevelPicker<T extends string>({\n options,\n value,\n label,\n unavailableReason,\n description,\n origin,\n footer,\n onChange,\n}: ThinkingLevelPickerProps<T>) {\n if (unavailableReason) {\n return <ThinkingLevelUnavailable options={options} label={label} reason={unavailableReason} />;\n }\n\n const levelLabel = options.find(option => option.value === value)?.label ?? value;\n const triggerLabel = origin ? `${label}: ${levelLabel} · ${origin}` : `${label}: ${levelLabel}`;\n\n return (\n <Popover>\n <PopoverTrigger variant=\"ghost\" size=\"sm\" aria-label={triggerLabel} tooltip={triggerLabel} className=\"shrink-0\">\n <ThinkingLevelBars options={options} value={value} />\n </PopoverTrigger>\n <PopoverContent align=\"end\" className=\"flex flex-col gap-3\">\n <ThinkingLevelRamp options={options} value={value} label={label} onChange={onChange} />\n {description ? (\n <Txt as=\"p\" variant=\"caption\" tone=\"muted\">\n {description}\n </Txt>\n ) : null}\n {footer}\n </PopoverContent>\n </Popover>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as ThreadList, a as ThreadListEmpty, b as ThreadListItem, c as ThreadListItems, d as ThreadListNewItem, e as ThreadListSeparator } from '../thread-list-
|
|
1
|
+
export { T as ThreadList, a as ThreadListEmpty, b as ThreadListItem, c as ThreadListItems, d as ThreadListNewItem, e as ThreadListSeparator } from '../thread-list-Belzl58i.js';
|
|
2
2
|
//# sourceMappingURL=ThreadList.es.js.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const copyButton = require('../copy-button-
|
|
6
|
+
const copyButton = require('../copy-button-c9mSgKKR.cjs');
|
|
7
7
|
const tooltip = require('../tooltip-C4txPRSa.cjs');
|
|
8
8
|
const Txt = require('../Txt-DXjXpX9r.cjs');
|
|
9
9
|
const utils_cn = require('../cn-TqD01zH-.cjs');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { C as CopyButton } from '../copy-button-
|
|
2
|
+
import { C as CopyButton } from '../copy-button-Ddbg9IZn.js';
|
|
3
3
|
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../tooltip-CCZcMbgy.js';
|
|
4
4
|
import { T as Txt } from '../Txt-BuzYj7Vy.js';
|
|
5
5
|
import { c as cn } from '../cn-coERSHz5.js';
|