@mastra/playground-ui 55.0.0-alpha.5 → 55.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Button-BsHGVRjh.cjs → Button-BJOVwaxp.cjs} +13 -12
- package/dist/Button-BJOVwaxp.cjs.map +1 -0
- package/dist/{Button-DsTY88Xz.js → Button-BVGwYwHT.js} +14 -13
- package/dist/Button-BVGwYwHT.js.map +1 -0
- package/dist/{Notice-B5khVt-8.js → Notice-CMZ86f1g.js} +2 -2
- package/dist/{Notice-B5khVt-8.js.map → Notice-CMZ86f1g.js.map} +1 -1
- package/dist/{Notice-BUSAcuH-.cjs → Notice-D0Mvqvr0.cjs} +2 -2
- package/dist/{Notice-BUSAcuH-.cjs.map → Notice-D0Mvqvr0.cjs.map} +1 -1
- package/dist/{SessionExpired-C4w2ai5-.cjs → SessionExpired-CAOgb-6E.cjs} +2 -2
- package/dist/{SessionExpired-C4w2ai5-.cjs.map → SessionExpired-CAOgb-6E.cjs.map} +1 -1
- package/dist/{SessionExpired-oy5tS_51.js → SessionExpired-DSPFseGA.js} +2 -2
- package/dist/{SessionExpired-oy5tS_51.js.map → SessionExpired-DSPFseGA.js.map} +1 -1
- package/dist/{ask-user-DWUWXbS7.cjs → ask-user-DQGe7ZTv.cjs} +3 -3
- package/dist/{ask-user-DWUWXbS7.cjs.map → ask-user-DQGe7ZTv.cjs.map} +1 -1
- package/dist/{ask-user-D7MeXylO.js → ask-user-Dh9YowL4.js} +3 -3
- package/dist/{ask-user-D7MeXylO.js.map → ask-user-Dh9YowL4.js.map} +1 -1
- package/dist/{buttons-group-B5TBWfs6.js → buttons-group-CHyXDQBp.js} +5 -5
- package/dist/buttons-group-CHyXDQBp.js.map +1 -0
- package/dist/{buttons-group-PqYxKznc.cjs → buttons-group-jq7kUVlX.cjs} +5 -5
- package/dist/buttons-group-jq7kUVlX.cjs.map +1 -0
- package/dist/{checkbox-pvYvwDUy.js → checkbox-CC39oYEv.js} +5 -5
- package/dist/checkbox-CC39oYEv.js.map +1 -0
- package/dist/{checkbox-BNOCksit.cjs → checkbox-DWXCTy8y.cjs} +6 -6
- package/dist/checkbox-DWXCTy8y.cjs.map +1 -0
- package/dist/{code-block-CyHjdW02.js → code-block-BdzrmA-p.js} +5 -5
- package/dist/{code-block-CyHjdW02.js.map → code-block-BdzrmA-p.js.map} +1 -1
- package/dist/{code-block-I7b2Wt_Y.cjs → code-block-D1RequlX.cjs} +5 -5
- package/dist/{code-block-I7b2Wt_Y.cjs.map → code-block-D1RequlX.cjs.map} +1 -1
- package/dist/{code-editor-BeosH5J-.cjs → code-editor-CopnXVKT.cjs} +2 -2
- package/dist/{code-editor-BeosH5J-.cjs.map → code-editor-CopnXVKT.cjs.map} +1 -1
- package/dist/{code-editor-DPYAjQUV.js → code-editor-D7BftGSx.js} +2 -2
- package/dist/{code-editor-DPYAjQUV.js.map → code-editor-D7BftGSx.js.map} +1 -1
- package/dist/{combobox-Cg-7UwwL.cjs → combobox-DO__6QlF.cjs} +4 -5
- package/dist/combobox-DO__6QlF.cjs.map +1 -0
- package/dist/{combobox-8GoJaMs1.js → combobox-Ua6bvpM8.js} +3 -4
- package/dist/combobox-Ua6bvpM8.js.map +1 -0
- package/dist/{command-OXbUDxUu.js → command-CNKdcyyr.js} +4 -11
- package/dist/command-CNKdcyyr.js.map +1 -0
- package/dist/{command-C6cIgH_n.cjs → command-Cva4qgS9.cjs} +5 -12
- package/dist/command-Cva4qgS9.cjs.map +1 -0
- 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/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- 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 +3 -3
- package/dist/components/DataDetailsPanel.es.js +3 -3
- package/dist/components/DataFilter.cjs.js +2 -2
- package/dist/components/DataFilter.es.js +2 -2
- package/dist/components/DataList.cjs.js +4 -4
- 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 +3 -3
- package/dist/components/DateTimePicker.es.js +3 -3
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +3 -3
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
- package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +3 -3
- package/dist/components/FormFieldBlocks.es.js +3 -3
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/IntegrationDialog.cjs.js +2 -2
- package/dist/components/IntegrationDialog.es.js +4 -4
- package/dist/components/IntegrationDialog.es.js.map +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +4 -4
- package/dist/components/JSONSchemaForm.es.js +4 -4
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -4
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -4
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +2 -2
- package/dist/components/PrevNextNav.es.js +2 -2
- package/dist/components/PropertyFilter.cjs.js +3 -3
- package/dist/components/PropertyFilter.es.js +4 -4
- package/dist/components/RadioGroup.cjs.js +4 -4
- package/dist/components/RadioGroup.cjs.js.map +1 -1
- package/dist/components/RadioGroup.es.js +3 -3
- package/dist/components/RadioGroup.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +3 -3
- package/dist/components/RuleBuilder.es.js +3 -3
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +4 -4
- package/dist/components/SideDialog.es.js +4 -4
- package/dist/components/Slider.cjs.js +1 -1
- package/dist/components/Slider.es.js +1 -1
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/Table.cjs.js +4 -3
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js +3 -2
- package/dist/components/Table.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/Textarea.cjs.js +1 -1
- package/dist/components/Textarea.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +6 -6
- package/dist/components/Workflow.es.js +6 -6
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +2 -2
- package/dist/components/ai/plan.es.js +2 -2
- package/dist/components/ai/tool-call.cjs.js +16 -6
- package/dist/components/ai/tool-call.cjs.js.map +1 -1
- package/dist/components/ai/tool-call.es.js +17 -7
- package/dist/components/ai/tool-call.es.js.map +1 -1
- package/dist/{copy-button-BW1CfolI.js → copy-button-ChUCFd-x.js} +2 -2
- package/dist/{copy-button-BW1CfolI.js.map → copy-button-ChUCFd-x.js.map} +1 -1
- package/dist/{copy-button-CC4JTC90.cjs → copy-button-zLZfswrj.cjs} +2 -2
- package/dist/{copy-button-CC4JTC90.cjs.map → copy-button-zLZfswrj.cjs.map} +1 -1
- package/dist/{data-code-section-BWaPQ6JT.cjs → data-code-section-BLvh46xK.cjs} +6 -6
- package/dist/{data-code-section-BWaPQ6JT.cjs.map → data-code-section-BLvh46xK.cjs.map} +1 -1
- package/dist/{data-code-section-EmqjYVh1.js → data-code-section-DSelBhmP.js} +6 -6
- package/dist/{data-code-section-EmqjYVh1.js.map → data-code-section-DSelBhmP.js.map} +1 -1
- package/dist/{data-list-BSezaRoI.cjs → data-list-4_cVlINT.cjs} +3 -3
- package/dist/{data-list-BSezaRoI.cjs.map → data-list-4_cVlINT.cjs.map} +1 -1
- package/dist/{data-list-DJ7DgVuH.js → data-list-Bm70XKg_.js} +3 -3
- package/dist/{data-list-DJ7DgVuH.js.map → data-list-Bm70XKg_.js.map} +1 -1
- package/dist/{data-list-skeleton-BiletsX0.cjs → data-list-skeleton-B7flrjdA.cjs} +2 -2
- package/dist/{data-list-skeleton-BiletsX0.cjs.map → data-list-skeleton-B7flrjdA.cjs.map} +1 -1
- package/dist/{data-list-skeleton-QvifQhmC.js → data-list-skeleton-BJVs8rDE.js} +2 -2
- package/dist/{data-list-skeleton-QvifQhmC.js.map → data-list-skeleton-BJVs8rDE.js.map} +1 -1
- package/dist/{data-list-top-0BrqoQba.js → data-list-top-BeUxfGy2.js} +2 -2
- package/dist/{data-list-top-0BrqoQba.js.map → data-list-top-BeUxfGy2.js.map} +1 -1
- package/dist/{data-list-top-D8r8M8JA.cjs → data-list-top-D9zFnKEi.cjs} +2 -2
- package/dist/{data-list-top-D8r8M8JA.cjs.map → data-list-top-D9zFnKEi.cjs.map} +1 -1
- package/dist/{data-panel-C3FczohB.js → data-panel-5iuux0r_.js} +4 -4
- package/dist/{data-panel-C3FczohB.js.map → data-panel-5iuux0r_.js.map} +1 -1
- package/dist/{data-panel-KjzePv5_.cjs → data-panel-tSErqolu.cjs} +4 -4
- package/dist/{data-panel-KjzePv5_.cjs.map → data-panel-tSErqolu.cjs.map} +1 -1
- package/dist/{date-time-range-picker-DU4ynAjj.cjs → date-time-range-picker-C0J7p78l.cjs} +4 -4
- package/dist/{date-time-range-picker-DU4ynAjj.cjs.map → date-time-range-picker-C0J7p78l.cjs.map} +1 -1
- package/dist/{date-time-range-picker-CMzJwQ_s.js → date-time-range-picker-CcoU5-2_.js} +4 -4
- package/dist/{date-time-range-picker-CMzJwQ_s.js.map → date-time-range-picker-CcoU5-2_.js.map} +1 -1
- package/dist/{dialog-CUeeMxRo.cjs → dialog-B1DwyLJJ.cjs} +10 -26
- package/dist/dialog-B1DwyLJJ.cjs.map +1 -0
- package/dist/{dialog-KvPRmHPW.js → dialog-Dfrt_JCJ.js} +10 -26
- package/dist/dialog-Dfrt_JCJ.js.map +1 -0
- 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/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
- package/dist/domains/chat/context/chat-context.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/renderers/assistant-text-part-renderer.cjs.js +9 -1
- package/dist/domains/chat/messages/renderers/assistant-text-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/assistant-text-part-renderer.es.js +9 -1
- package/dist/domains/chat/messages/renderers/assistant-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +12 -4
- package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +12 -4
- package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.es.js +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.es.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +1 -1
- package/dist/domains/chat/tools/badges/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/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/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-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +3 -3
- package/dist/domains/logs/components/log-details-view.es.js +3 -3
- package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.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/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +3 -3
- package/dist/domains/metrics/components/latency-card-view.es.js +3 -3
- package/dist/domains/metrics/components/memory-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/memory-card-view.es.js +4 -4
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/scores-card-view.es.js +4 -4
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +3 -3
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +3 -3
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +3 -3
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +3 -3
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +3 -3
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -6
- package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans-tab.es.js +2 -2
- 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 +9 -9
- package/dist/domains/traces/components/trace-data-panel-view.es.js +9 -9
- 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/traces-error-content.cjs.js +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- package/dist/domains/traces/components/traces-toolbar.cjs.js +1 -1
- package/dist/domains/traces/components/traces-toolbar.es.js +1 -1
- package/dist/{drawer-BXOkhFYI.cjs → drawer-Bq7j_MiM.cjs} +2 -2
- package/dist/{drawer-BXOkhFYI.cjs.map → drawer-Bq7j_MiM.cjs.map} +1 -1
- package/dist/{drawer-DUhKiF6i.js → drawer-D1m2faHU.js} +2 -2
- package/dist/{drawer-DUhKiF6i.js.map → drawer-D1m2faHU.js.map} +1 -1
- package/dist/{dropdown-menu-Bj9vR0Md.cjs → dropdown-menu-Bfh5ROWe.cjs} +6 -5
- package/dist/dropdown-menu-Bfh5ROWe.cjs.map +1 -0
- package/dist/{dropdown-menu-GAD50kMK.js → dropdown-menu-C853KwJJ.js} +5 -4
- package/dist/dropdown-menu-C853KwJJ.js.map +1 -0
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -3
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +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 +6 -7
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +6 -7
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +4 -4
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -4
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
- package/dist/ee/signals/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/hooks/use-local-storage-state.cjs.js +35 -0
- package/dist/hooks/use-local-storage-state.cjs.js.map +1 -0
- package/dist/hooks/use-local-storage-state.d.ts +2 -0
- package/dist/hooks/use-local-storage-state.es.js +31 -0
- package/dist/hooks/use-local-storage-state.es.js.map +1 -0
- package/dist/{input-BXl_-87K.cjs → input-D3SUXvgI.cjs} +9 -10
- package/dist/input-D3SUXvgI.cjs.map +1 -0
- package/dist/{input-KNga7Y7g.js → input-DinpgQXj.js} +8 -9
- package/dist/input-DinpgQXj.js.map +1 -0
- package/dist/{input-group-BW3PBfmX.cjs → input-group-CBuqhxnJ.cjs} +30 -11
- package/dist/input-group-CBuqhxnJ.cjs.map +1 -0
- package/dist/{input-group-CC3FsOEL.js → input-group-Dv1YsFDZ.js} +30 -11
- package/dist/input-group-Dv1YsFDZ.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +6 -6
- package/dist/layout/tabbed-container.es.js +6 -6
- package/dist/{list-search-D_Q34jSU.cjs → list-search-BwcO9d9M.cjs} +2 -2
- package/dist/{list-search-D_Q34jSU.cjs.map → list-search-BwcO9d9M.cjs.map} +1 -1
- package/dist/{list-search-C9wdyGVJ.js → list-search-C8FBcDpo.js} +2 -2
- package/dist/{list-search-C9wdyGVJ.js.map → list-search-C8FBcDpo.js.map} +1 -1
- package/dist/{logs-data-list-CBCCnmWl.cjs → logs-data-list-B0hzHq0b.cjs} +2 -2
- package/dist/{logs-data-list-CBCCnmWl.cjs.map → logs-data-list-B0hzHq0b.cjs.map} +1 -1
- package/dist/{logs-data-list-BEC39Y_v.js → logs-data-list-CWu83qI7.js} +2 -2
- package/dist/{logs-data-list-BEC39Y_v.js.map → logs-data-list-CWu83qI7.js.map} +1 -1
- package/dist/{markdown-renderer-Wmdi_oR8.js → markdown-renderer-Dp1fJwUB.js} +175 -8
- package/dist/markdown-renderer-Dp1fJwUB.js.map +1 -0
- package/dist/{markdown-renderer-Ds3PaLdR.cjs → markdown-renderer-hBiN_N_-.cjs} +174 -7
- package/dist/markdown-renderer-hBiN_N_-.cjs.map +1 -0
- package/dist/new/layout/app-shell.cjs.js +53 -0
- package/dist/new/layout/app-shell.cjs.js.map +1 -0
- package/dist/new/layout/app-shell.d.ts +2 -0
- package/dist/new/layout/app-shell.es.js +49 -0
- package/dist/new/layout/app-shell.es.js.map +1 -0
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/{page-header-ComQfwIQ.js → page-header-CGRV1f_f.js} +11 -7
- package/dist/page-header-CGRV1f_f.js.map +1 -0
- package/dist/{page-header-hRxyKAlN.cjs → page-header-CTdBcOWK.cjs} +11 -7
- package/dist/page-header-CTdBcOWK.cjs.map +1 -0
- package/dist/primitives/control-size.cjs.js +1 -1
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +1 -1
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/form-element.cjs.js +8 -21
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +8 -20
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +7 -10
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +7 -10
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-CTcWC5Hv.js → property-filter-applied-CF-InSu-.js} +5 -5
- package/dist/{property-filter-applied-CTcWC5Hv.js.map → property-filter-applied-CF-InSu-.js.map} +1 -1
- package/dist/{property-filter-applied-DCffRXYU.cjs → property-filter-applied-D35zWa7S.cjs} +5 -5
- package/dist/{property-filter-applied-DCffRXYU.cjs.map → property-filter-applied-D35zWa7S.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-field-block-BH_zDJIt.js → search-field-block-DhgD7NhZ.js} +3 -3
- package/dist/{search-field-block-BH_zDJIt.js.map → search-field-block-DhgD7NhZ.js.map} +1 -1
- package/dist/{search-field-block-WP6PODTo.cjs → search-field-block-DnJYUEGi.cjs} +3 -3
- package/dist/{search-field-block-WP6PODTo.cjs.map → search-field-block-DnJYUEGi.cjs.map} +1 -1
- package/dist/{select-VqANzntV.js → select-3GcRJGtd.js} +5 -3
- package/dist/select-3GcRJGtd.js.map +1 -0
- package/dist/{select-Dhox-EJ2.cjs → select-4dVGVp0V.cjs} +6 -4
- package/dist/select-4dVGVp0V.cjs.map +1 -0
- package/dist/{select-field-block-C3OTHj2n.js → select-field-block-BEyjBDiB.js} +2 -2
- package/dist/{select-field-block-C3OTHj2n.js.map → select-field-block-BEyjBDiB.js.map} +1 -1
- package/dist/{select-field-block-DBv-cFoz.cjs → select-field-block-By8NfJoe.cjs} +2 -2
- package/dist/{select-field-block-DBv-cFoz.cjs.map → select-field-block-By8NfJoe.cjs.map} +1 -1
- package/dist/{slider-Cx_ZwlQU.js → slider-AfRJ3a4W.js} +2 -7
- package/dist/slider-AfRJ3a4W.js.map +1 -0
- package/dist/{slider-DyNnS3a7.cjs → slider-BXYQmaQy.cjs} +3 -8
- package/dist/slider-BXYQmaQy.cjs.map +1 -0
- package/dist/src/domains/chat/context/chat-context.d.ts +2 -0
- package/dist/src/domains/chat/messages/renderers/message-text.d.ts +2 -1
- package/dist/src/domains/chat/stories/messages.stories.d.ts +1 -1
- package/dist/src/ds/components/Button/Button.d.ts +1 -1
- package/dist/src/ds/components/Checkbox/checkbox.d.ts +10 -1
- package/dist/src/ds/components/Combobox/combobox.d.ts +3 -2
- package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +9 -1
- package/dist/src/ds/components/DropdownMenu/dropdown-menu.stories.d.ts +1 -0
- package/dist/src/ds/components/MarkdownRenderer/markdown-renderer.d.ts +3 -1
- package/dist/src/ds/components/MarkdownRenderer/markdown-table.d.ts +3 -0
- package/dist/src/ds/components/MarkdownRenderer/table-csv.d.ts +2 -0
- package/dist/src/ds/components/MarkdownRenderer/table-markdown.d.ts +5 -0
- package/dist/src/ds/components/Select/select.d.ts +24 -2
- package/dist/src/ds/components/Slider/slider.d.ts +1 -1
- package/dist/src/ds/components/Table/Table.d.ts +1 -1
- package/dist/src/ds/components/ai/tool-call/tool-call-group.d.ts +2 -0
- package/dist/src/ds/new/layout/app-shell/app-shell.d.ts +13 -0
- package/dist/src/ds/new/layout/app-shell/app-shell.stories.d.ts +22 -0
- package/dist/src/ds/new/layout/app-shell/index.d.ts +1 -0
- package/dist/src/ds/primitives/form-element.d.ts +5 -6
- package/dist/src/ds/primitives/menu-item.d.ts +1 -0
- package/dist/src/hooks/use-local-storage-state.d.ts +10 -0
- package/dist/style.css +144 -35
- package/dist/{switch-CRgSw0D1.js → switch-A-j7GDcX.js} +3 -4
- package/dist/switch-A-j7GDcX.js.map +1 -0
- package/dist/{switch-CsnP5CNn.cjs → switch-BROLIeGF.cjs} +3 -4
- package/dist/switch-BROLIeGF.cjs.map +1 -0
- package/dist/{tabs-content-Bf28p8Au.cjs → tabs-content-CV7YrtD1.cjs} +4 -4
- package/dist/tabs-content-CV7YrtD1.cjs.map +1 -0
- package/dist/{tabs-content-vrO_NM42.js → tabs-content-CW6RtAEV.js} +3 -3
- package/dist/tabs-content-CW6RtAEV.js.map +1 -0
- package/dist/{tabs-root-B4G-ywup.js → tabs-root-BAy8m6GO.js} +2 -2
- package/dist/{tabs-root-B4G-ywup.js.map → tabs-root-BAy8m6GO.js.map} +1 -1
- package/dist/{tabs-root-BAJYWOrk.cjs → tabs-root-Dw7gHsnZ.cjs} +2 -2
- package/dist/{tabs-root-BAJYWOrk.cjs.map → tabs-root-Dw7gHsnZ.cjs.map} +1 -1
- package/dist/{tabs-tab-Br-jck-B.cjs → tabs-tab-CP-kzlvB.cjs} +5 -6
- package/dist/tabs-tab-CP-kzlvB.cjs.map +1 -0
- package/dist/{tabs-tab-CvlCl9kD.js → tabs-tab-K5mQhs7r.js} +6 -7
- package/dist/tabs-tab-K5mQhs7r.js.map +1 -0
- package/dist/{text-field-block-BVhQGWYw.js → text-field-block-CUN9gL4j.js} +2 -2
- package/dist/{text-field-block-BVhQGWYw.js.map → text-field-block-CUN9gL4j.js.map} +1 -1
- package/dist/{text-field-block-DBEXulUE.cjs → text-field-block-WuwrSNEX.cjs} +2 -2
- package/dist/{text-field-block-DBEXulUE.cjs.map → text-field-block-WuwrSNEX.cjs.map} +1 -1
- package/dist/{textarea-BcaFNmji.js → textarea-BCVPeJzr.js} +7 -3
- package/dist/textarea-BCVPeJzr.js.map +1 -0
- package/dist/{textarea-C_saJE6T.cjs → textarea-D9XsLoN5.cjs} +8 -4
- package/dist/textarea-D9XsLoN5.cjs.map +1 -0
- package/dist/{time-picker-CMUki2R2.cjs → time-picker-BKpmCbXS.cjs} +2 -2
- package/dist/{time-picker-CMUki2R2.cjs.map → time-picker-BKpmCbXS.cjs.map} +1 -1
- package/dist/{time-picker-CfdcBPyS.js → time-picker-SgrQvt0V.js} +2 -2
- package/dist/{time-picker-CfdcBPyS.js.map → time-picker-SgrQvt0V.js.map} +1 -1
- package/dist/{tool-call-DfLe6Hu5.js → tool-call-BlKbOYRH.js} +2 -2
- package/dist/{tool-call-DfLe6Hu5.js.map → tool-call-BlKbOYRH.js.map} +1 -1
- package/dist/{tool-call-Pi3V0LP3.cjs → tool-call-DVh_yWov.cjs} +2 -2
- package/dist/{tool-call-Pi3V0LP3.cjs.map → tool-call-DVh_yWov.cjs.map} +1 -1
- package/dist/{traces-data-list-BPrExzSX.cjs → traces-data-list-0WfYCKdc.cjs} +3 -3
- package/dist/{traces-data-list-BPrExzSX.cjs.map → traces-data-list-0WfYCKdc.cjs.map} +1 -1
- package/dist/{traces-data-list-CfW_M5yW.js → traces-data-list-BOiAOwYM.js} +3 -3
- package/dist/{traces-data-list-CfW_M5yW.js.map → traces-data-list-BOiAOwYM.js.map} +1 -1
- package/package.json +18 -8
- package/theme.css +12 -0
- package/dist/Button-BsHGVRjh.cjs.map +0 -1
- package/dist/Button-DsTY88Xz.js.map +0 -1
- package/dist/buttons-group-B5TBWfs6.js.map +0 -1
- package/dist/buttons-group-PqYxKznc.cjs.map +0 -1
- package/dist/checkbox-BNOCksit.cjs.map +0 -1
- package/dist/checkbox-pvYvwDUy.js.map +0 -1
- package/dist/combobox-8GoJaMs1.js.map +0 -1
- package/dist/combobox-Cg-7UwwL.cjs.map +0 -1
- package/dist/command-C6cIgH_n.cjs.map +0 -1
- package/dist/command-OXbUDxUu.js.map +0 -1
- package/dist/dialog-CUeeMxRo.cjs.map +0 -1
- package/dist/dialog-KvPRmHPW.js.map +0 -1
- package/dist/dropdown-menu-Bj9vR0Md.cjs.map +0 -1
- package/dist/dropdown-menu-GAD50kMK.js.map +0 -1
- package/dist/focus.css +0 -176
- package/dist/input-BXl_-87K.cjs.map +0 -1
- package/dist/input-KNga7Y7g.js.map +0 -1
- package/dist/input-group-BW3PBfmX.cjs.map +0 -1
- package/dist/input-group-CC3FsOEL.js.map +0 -1
- package/dist/markdown-renderer-Ds3PaLdR.cjs.map +0 -1
- package/dist/markdown-renderer-Wmdi_oR8.js.map +0 -1
- package/dist/page-header-ComQfwIQ.js.map +0 -1
- package/dist/page-header-hRxyKAlN.cjs.map +0 -1
- package/dist/select-Dhox-EJ2.cjs.map +0 -1
- package/dist/select-VqANzntV.js.map +0 -1
- package/dist/slider-Cx_ZwlQU.js.map +0 -1
- package/dist/slider-DyNnS3a7.cjs.map +0 -1
- package/dist/switch-CRgSw0D1.js.map +0 -1
- package/dist/switch-CsnP5CNn.cjs.map +0 -1
- package/dist/tabs-content-Bf28p8Au.cjs.map +0 -1
- package/dist/tabs-content-vrO_NM42.js.map +0 -1
- package/dist/tabs-tab-Br-jck-B.cjs.map +0 -1
- package/dist/tabs-tab-CvlCl9kD.js.map +0 -1
- package/dist/textarea-BcaFNmji.js.map +0 -1
- package/dist/textarea-C_saJE6T.cjs.map +0 -1
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { c as cva } from './index-CZvpHqka.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import './focus.css';/* empty css */
|
|
5
4
|
import { unstyledFormElementStyle, sharedFormElementDisabledStyle, inputOutlineAndFocusStyle, inputSurfaceAndFocusStyle } from './primitives/form-element.es.js';
|
|
6
5
|
import { c as cn } from './cn-ByEbywDh.js';
|
|
7
6
|
|
|
8
7
|
const textareaVariants = cva(
|
|
9
8
|
cn(
|
|
9
|
+
// Base styles with enhanced transitions
|
|
10
10
|
"flex w-full border bg-transparent text-neutral6",
|
|
11
11
|
"transition-all duration-normal ease-out-custom",
|
|
12
|
+
// Better placeholder styling
|
|
12
13
|
"placeholder:text-neutral2 placeholder:transition-opacity placeholder:duration-normal",
|
|
13
14
|
"focus:placeholder:opacity-70",
|
|
15
|
+
// Textarea specific
|
|
14
16
|
"min-h-20 resize-y"
|
|
15
17
|
),
|
|
16
18
|
{
|
|
@@ -21,6 +23,8 @@ const textareaVariants = cva(
|
|
|
21
23
|
outline: cn(inputOutlineAndFocusStyle, "rounded-xl", sharedFormElementDisabledStyle),
|
|
22
24
|
unstyled: unstyledFormElementStyle
|
|
23
25
|
},
|
|
26
|
+
// Text tokens mirror the Input size scale (xs→ui-xs, sm→ui-sm, md→ui-smd, lg→ui-md)
|
|
27
|
+
// so a Textarea reads at the same size as a sibling Input.
|
|
24
28
|
size: {
|
|
25
29
|
xs: "px-1.5 py-1 text-ui-xs",
|
|
26
30
|
sm: "px-2 py-1.5 text-ui-sm",
|
|
@@ -41,7 +45,7 @@ const Textarea = React.forwardRef(
|
|
|
41
45
|
{
|
|
42
46
|
className: cn(
|
|
43
47
|
textareaVariants({ variant, size }),
|
|
44
|
-
error && "border-error
|
|
48
|
+
error && "border-error focus-visible:border-error",
|
|
45
49
|
className
|
|
46
50
|
),
|
|
47
51
|
"data-testid": testId,
|
|
@@ -55,4 +59,4 @@ const Textarea = React.forwardRef(
|
|
|
55
59
|
Textarea.displayName = "Textarea";
|
|
56
60
|
|
|
57
61
|
export { Textarea as T };
|
|
58
|
-
//# sourceMappingURL=textarea-
|
|
62
|
+
//# sourceMappingURL=textarea-BCVPeJzr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea-BCVPeJzr.js","sources":["../src/ds/components/Textarea/textarea.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n inputOutlineAndFocusStyle,\n inputSurfaceAndFocusStyle,\n sharedFormElementDisabledStyle,\n unstyledFormElementStyle,\n} from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\nconst textareaVariants = cva(\n cn(\n // Base styles with enhanced transitions\n 'flex w-full border bg-transparent text-neutral6',\n 'transition-all duration-normal ease-out-custom',\n // Better placeholder styling\n 'placeholder:text-neutral2 placeholder:transition-opacity placeholder:duration-normal',\n 'focus:placeholder:opacity-70',\n // Textarea specific\n 'min-h-20 resize-y',\n ),\n {\n variants: {\n variant: {\n default: cn(inputSurfaceAndFocusStyle, 'rounded-xl', sharedFormElementDisabledStyle),\n filled: cn(inputSurfaceAndFocusStyle, 'rounded-xl', sharedFormElementDisabledStyle),\n outline: cn(inputOutlineAndFocusStyle, 'rounded-xl', sharedFormElementDisabledStyle),\n unstyled: unstyledFormElementStyle,\n },\n // Text tokens mirror the Input size scale (xs→ui-xs, sm→ui-sm, md→ui-smd, lg→ui-md)\n // so a Textarea reads at the same size as a sibling Input.\n size: {\n xs: 'px-1.5 py-1 text-ui-xs',\n sm: 'px-2 py-1.5 text-ui-sm',\n md: 'px-2.5 py-1.5 text-ui-smd',\n lg: 'px-3 py-2 text-ui-md',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\nexport type TextareaProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> &\n VariantProps<typeof textareaVariants> & {\n testId?: string;\n error?: boolean;\n };\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, size, testId, variant, error, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n textareaVariants({ variant, size }),\n error && 'border-error focus-visible:border-error',\n className,\n )}\n data-testid={testId}\n ref={ref}\n aria-invalid={error}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,gBAAA,GAAmB,GAAA;AAAA,EACvB,EAAA;AAAA;AAAA,IAEE,iDAAA;AAAA,IACA,gDAAA;AAAA;AAAA,IAEA,sFAAA;AAAA,IACA,8BAAA;AAAA;AAAA,IAEA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,EAAA,CAAG,yBAAA,EAA2B,YAAA,EAAc,8BAA8B,CAAA;AAAA,QACnF,MAAA,EAAQ,EAAA,CAAG,yBAAA,EAA2B,YAAA,EAAc,8BAA8B,CAAA;AAAA,QAClF,OAAA,EAAS,EAAA,CAAG,yBAAA,EAA2B,YAAA,EAAc,8BAA8B,CAAA;AAAA,QACnF,QAAA,EAAU;AAAA,OACZ;AAAA;AAAA;AAAA,MAGA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI,2BAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAQA,MAAM,WAAW,KAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,SAAS,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC9D,IAAA,uBACE,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,gBAAA,CAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,UAClC,KAAA,IAAS,yCAAA;AAAA,UACT;AAAA,SACF;AAAA,QACA,aAAA,EAAa,MAAA;AAAA,QACb,GAAA;AAAA,QACA,cAAA,EAAc,KAAA;AAAA,QACb,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;;;;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const index = require('./index-BxcigDwC.cjs');
|
|
5
5
|
const React = require('react');
|
|
6
|
-
;/* empty css */
|
|
7
6
|
const primitives_formElement = require('./primitives/form-element.cjs.js');
|
|
8
7
|
const utils_cn = require('./cn-DnbTIGXa.cjs');
|
|
9
8
|
|
|
@@ -28,10 +27,13 @@ const React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
28
27
|
|
|
29
28
|
const textareaVariants = index.cva(
|
|
30
29
|
utils_cn.cn(
|
|
30
|
+
// Base styles with enhanced transitions
|
|
31
31
|
"flex w-full border bg-transparent text-neutral6",
|
|
32
32
|
"transition-all duration-normal ease-out-custom",
|
|
33
|
+
// Better placeholder styling
|
|
33
34
|
"placeholder:text-neutral2 placeholder:transition-opacity placeholder:duration-normal",
|
|
34
35
|
"focus:placeholder:opacity-70",
|
|
36
|
+
// Textarea specific
|
|
35
37
|
"min-h-20 resize-y"
|
|
36
38
|
),
|
|
37
39
|
{
|
|
@@ -42,6 +44,8 @@ const textareaVariants = index.cva(
|
|
|
42
44
|
outline: utils_cn.cn(primitives_formElement.inputOutlineAndFocusStyle, "rounded-xl", primitives_formElement.sharedFormElementDisabledStyle),
|
|
43
45
|
unstyled: primitives_formElement.unstyledFormElementStyle
|
|
44
46
|
},
|
|
47
|
+
// Text tokens mirror the Input size scale (xs→ui-xs, sm→ui-sm, md→ui-smd, lg→ui-md)
|
|
48
|
+
// so a Textarea reads at the same size as a sibling Input.
|
|
45
49
|
size: {
|
|
46
50
|
xs: "px-1.5 py-1 text-ui-xs",
|
|
47
51
|
sm: "px-2 py-1.5 text-ui-sm",
|
|
@@ -62,7 +66,7 @@ const Textarea = React__namespace.forwardRef(
|
|
|
62
66
|
{
|
|
63
67
|
className: utils_cn.cn(
|
|
64
68
|
textareaVariants({ variant, size }),
|
|
65
|
-
error && "border-error
|
|
69
|
+
error && "border-error focus-visible:border-error",
|
|
66
70
|
className
|
|
67
71
|
),
|
|
68
72
|
"data-testid": testId,
|
|
@@ -76,4 +80,4 @@ const Textarea = React__namespace.forwardRef(
|
|
|
76
80
|
Textarea.displayName = "Textarea";
|
|
77
81
|
|
|
78
82
|
exports.Textarea = Textarea;
|
|
79
|
-
//# sourceMappingURL=textarea-
|
|
83
|
+
//# sourceMappingURL=textarea-D9XsLoN5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea-D9XsLoN5.cjs","sources":["../src/ds/components/Textarea/textarea.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n inputOutlineAndFocusStyle,\n inputSurfaceAndFocusStyle,\n sharedFormElementDisabledStyle,\n unstyledFormElementStyle,\n} from '@/ds/primitives/form-element';\nimport { cn } from '@/lib/utils';\n\nconst textareaVariants = cva(\n cn(\n // Base styles with enhanced transitions\n 'flex w-full border bg-transparent text-neutral6',\n 'transition-all duration-normal ease-out-custom',\n // Better placeholder styling\n 'placeholder:text-neutral2 placeholder:transition-opacity placeholder:duration-normal',\n 'focus:placeholder:opacity-70',\n // Textarea specific\n 'min-h-20 resize-y',\n ),\n {\n variants: {\n variant: {\n default: cn(inputSurfaceAndFocusStyle, 'rounded-xl', sharedFormElementDisabledStyle),\n filled: cn(inputSurfaceAndFocusStyle, 'rounded-xl', sharedFormElementDisabledStyle),\n outline: cn(inputOutlineAndFocusStyle, 'rounded-xl', sharedFormElementDisabledStyle),\n unstyled: unstyledFormElementStyle,\n },\n // Text tokens mirror the Input size scale (xs→ui-xs, sm→ui-sm, md→ui-smd, lg→ui-md)\n // so a Textarea reads at the same size as a sibling Input.\n size: {\n xs: 'px-1.5 py-1 text-ui-xs',\n sm: 'px-2 py-1.5 text-ui-sm',\n md: 'px-2.5 py-1.5 text-ui-smd',\n lg: 'px-3 py-2 text-ui-md',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n },\n);\n\nexport type TextareaProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size'> &\n VariantProps<typeof textareaVariants> & {\n testId?: string;\n error?: boolean;\n };\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, size, testId, variant, error, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n textareaVariants({ variant, size }),\n error && 'border-error focus-visible:border-error',\n className,\n )}\n data-testid={testId}\n ref={ref}\n aria-invalid={error}\n {...props}\n />\n );\n },\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n"],"names":["cva","cn","inputSurfaceAndFocusStyle","sharedFormElementDisabledStyle","inputOutlineAndFocusStyle","unstyledFormElementStyle","React","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,gBAAA,GAAmBA,SAAA;AAAA,EACvBC,WAAA;AAAA;AAAA,IAEE,iDAAA;AAAA,IACA,gDAAA;AAAA;AAAA,IAEA,sFAAA;AAAA,IACA,8BAAA;AAAA;AAAA,IAEA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAASA,WAAA,CAAGC,gDAAA,EAA2B,YAAA,EAAcC,qDAA8B,CAAA;AAAA,QACnF,MAAA,EAAQF,WAAA,CAAGC,gDAAA,EAA2B,YAAA,EAAcC,qDAA8B,CAAA;AAAA,QAClF,OAAA,EAASF,WAAA,CAAGG,gDAAA,EAA2B,YAAA,EAAcD,qDAA8B,CAAA;AAAA,QACnF,QAAA,EAAUE;AAAA,OACZ;AAAA;AAAA;AAAA,MAGA,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI,wBAAA;AAAA,QACJ,EAAA,EAAI,2BAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAQA,MAAM,WAAWC,gBAAA,CAAM,UAAA;AAAA,EACrB,CAAC,EAAE,SAAA,EAAW,IAAA,EAAM,MAAA,EAAQ,SAAS,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC9D,IAAA,uBACEC,cAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWN,WAAA;AAAA,UACT,gBAAA,CAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA;AAAA,UAClC,KAAA,IAAS,yCAAA;AAAA,UACT;AAAA,SACF;AAAA,QACA,aAAA,EAAa,MAAA;AAAA,QACb,GAAA;AAAA,QACA,cAAA,EAAc,KAAA;AAAA,QACb,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,QAAA,CAAS,WAAA,GAAc,UAAA;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const React = require('react');
|
|
5
|
-
const select = require('./select-
|
|
5
|
+
const select = require('./select-4dVGVp0V.cjs');
|
|
6
6
|
const utils_cn = require('./cn-DnbTIGXa.cjs');
|
|
7
7
|
|
|
8
8
|
const hourOptions = ["12", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"];
|
|
@@ -75,4 +75,4 @@ function TimePicker({ defaultValue, onValueChange, className }) {
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
exports.TimePicker = TimePicker;
|
|
78
|
-
//# sourceMappingURL=time-picker-
|
|
78
|
+
//# sourceMappingURL=time-picker-BKpmCbXS.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker-
|
|
1
|
+
{"version":3,"file":"time-picker-BKpmCbXS.cjs","sources":["../src/ds/components/DateTimePicker/time-picker.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { cn } from '@/lib/utils';\n\nexport type TimePickerProps = {\n defaultValue?: string;\n onValueChange: (value: string) => void;\n className?: string;\n};\n\nconst hourOptions = ['12', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'];\nconst minuteOptions = ['00', '15', '30', '45', '59'];\nconst timePeriodOptions = ['AM', 'PM'];\n\nexport function TimePicker({ defaultValue, onValueChange, className }: TimePickerProps) {\n const [hour, setHour] = useState<string>('12');\n const [minute, setMinute] = useState<string>('00');\n const [timePeriod, setTimePeriod] = useState('AM');\n\n useEffect(() => {\n if (defaultValue) {\n const timeRegex = /^(\\d{1,2}):(\\d{2})(?::\\d{2})?\\s*(AM|PM|am|pm)?$/;\n const match = defaultValue.match(timeRegex);\n\n if (match) {\n const rawHour = match[1];\n const rawMinute = match[2];\n if (rawHour === undefined || rawMinute === undefined) return;\n\n let parsedHour = parseInt(rawHour, 10);\n const parsedMinute = parseInt(rawMinute, 10);\n const period = match[3]?.toUpperCase();\n\n if (parsedHour >= 1 && parsedHour <= 12 && parsedMinute >= 0 && parsedMinute <= 59) {\n setHour(parsedHour.toString());\n setMinute(parsedMinute === 0 ? '00' : parsedMinute.toString());\n setTimePeriod(period || 'AM');\n }\n }\n }\n }, [defaultValue]);\n\n const handleHourChange = (val: string) => {\n const nextHour = hourOptions[+val];\n if (nextHour === undefined) return;\n setHour(nextHour);\n onValueChange(`${nextHour}:${minute} ${timePeriod}`.trim());\n };\n\n const handleMinuteChange = (val: string) => {\n const nextMinute = minuteOptions[+val];\n if (nextMinute === undefined) return;\n setMinute(nextMinute);\n onValueChange(`${hour}:${nextMinute} ${timePeriod}`.trim());\n };\n\n const handleTimePeriodChange = (val: string) => {\n const nextPeriod = timePeriodOptions[+val];\n if (nextPeriod === undefined) return;\n setTimePeriod(nextPeriod);\n onValueChange(`${hour}:${minute} ${nextPeriod}`.trim());\n };\n\n return (\n <div className={cn('flex items-center gap-2', className)}>\n <Select name=\"hour\" value={hourOptions.indexOf(hour).toString()} onValueChange={handleHourChange}>\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Select...\" />\n </SelectTrigger>\n <SelectContent>\n {hourOptions.map((option, idx) => (\n <SelectItem key={option} value={`${idx}`}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n :\n <Select name=\"minute\" value={minuteOptions.indexOf(minute).toString()} onValueChange={handleMinuteChange}>\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Select...\" />\n </SelectTrigger>\n <SelectContent>\n {minuteOptions.map((option, idx) => (\n <SelectItem key={option} value={`${idx}`}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n name=\"period\"\n value={timePeriodOptions.indexOf(timePeriod).toString()}\n onValueChange={handleTimePeriodChange}\n >\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Select...\" />\n </SelectTrigger>\n <SelectContent>\n {timePeriodOptions.map((option, idx) => (\n <SelectItem key={option} value={`${idx}`}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"],"names":["useState","useEffect","cn","jsxs","Select","jsx","SelectTrigger","SelectValue","SelectContent","SelectItem"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
|
-
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-
|
|
3
|
+
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-3GcRJGtd.js';
|
|
4
4
|
import { c as cn } from './cn-ByEbywDh.js';
|
|
5
5
|
|
|
6
6
|
const hourOptions = ["12", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"];
|
|
@@ -73,4 +73,4 @@ function TimePicker({ defaultValue, onValueChange, className }) {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export { TimePicker as T };
|
|
76
|
-
//# sourceMappingURL=time-picker-
|
|
76
|
+
//# sourceMappingURL=time-picker-SgrQvt0V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-picker-
|
|
1
|
+
{"version":3,"file":"time-picker-SgrQvt0V.js","sources":["../src/ds/components/DateTimePicker/time-picker.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { cn } from '@/lib/utils';\n\nexport type TimePickerProps = {\n defaultValue?: string;\n onValueChange: (value: string) => void;\n className?: string;\n};\n\nconst hourOptions = ['12', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11'];\nconst minuteOptions = ['00', '15', '30', '45', '59'];\nconst timePeriodOptions = ['AM', 'PM'];\n\nexport function TimePicker({ defaultValue, onValueChange, className }: TimePickerProps) {\n const [hour, setHour] = useState<string>('12');\n const [minute, setMinute] = useState<string>('00');\n const [timePeriod, setTimePeriod] = useState('AM');\n\n useEffect(() => {\n if (defaultValue) {\n const timeRegex = /^(\\d{1,2}):(\\d{2})(?::\\d{2})?\\s*(AM|PM|am|pm)?$/;\n const match = defaultValue.match(timeRegex);\n\n if (match) {\n const rawHour = match[1];\n const rawMinute = match[2];\n if (rawHour === undefined || rawMinute === undefined) return;\n\n let parsedHour = parseInt(rawHour, 10);\n const parsedMinute = parseInt(rawMinute, 10);\n const period = match[3]?.toUpperCase();\n\n if (parsedHour >= 1 && parsedHour <= 12 && parsedMinute >= 0 && parsedMinute <= 59) {\n setHour(parsedHour.toString());\n setMinute(parsedMinute === 0 ? '00' : parsedMinute.toString());\n setTimePeriod(period || 'AM');\n }\n }\n }\n }, [defaultValue]);\n\n const handleHourChange = (val: string) => {\n const nextHour = hourOptions[+val];\n if (nextHour === undefined) return;\n setHour(nextHour);\n onValueChange(`${nextHour}:${minute} ${timePeriod}`.trim());\n };\n\n const handleMinuteChange = (val: string) => {\n const nextMinute = minuteOptions[+val];\n if (nextMinute === undefined) return;\n setMinute(nextMinute);\n onValueChange(`${hour}:${nextMinute} ${timePeriod}`.trim());\n };\n\n const handleTimePeriodChange = (val: string) => {\n const nextPeriod = timePeriodOptions[+val];\n if (nextPeriod === undefined) return;\n setTimePeriod(nextPeriod);\n onValueChange(`${hour}:${minute} ${nextPeriod}`.trim());\n };\n\n return (\n <div className={cn('flex items-center gap-2', className)}>\n <Select name=\"hour\" value={hourOptions.indexOf(hour).toString()} onValueChange={handleHourChange}>\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Select...\" />\n </SelectTrigger>\n <SelectContent>\n {hourOptions.map((option, idx) => (\n <SelectItem key={option} value={`${idx}`}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n :\n <Select name=\"minute\" value={minuteOptions.indexOf(minute).toString()} onValueChange={handleMinuteChange}>\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Select...\" />\n </SelectTrigger>\n <SelectContent>\n {minuteOptions.map((option, idx) => (\n <SelectItem key={option} value={`${idx}`}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Select\n name=\"period\"\n value={timePeriodOptions.indexOf(timePeriod).toString()}\n onValueChange={handleTimePeriodChange}\n >\n <SelectTrigger size=\"sm\">\n <SelectValue placeholder=\"Select...\" />\n </SelectTrigger>\n <SelectContent>\n {timePeriodOptions.map((option, idx) => (\n <SelectItem key={option} value={`${idx}`}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { ChevronRight, X } from 'lucide-react';
|
|
|
3
3
|
import { useState, useId, createContext, useContext } from 'react';
|
|
4
4
|
import { u as useArriving } from './use-watched-CG9KoWl3.js';
|
|
5
5
|
import { C as Collapsible, a as CollapsibleContent, b as CollapsibleTrigger } from './collapsible-4eeo2ZU2.js';
|
|
6
|
-
import { C as CopyButton } from './copy-button-
|
|
6
|
+
import { C as CopyButton } from './copy-button-ChUCFd-x.js';
|
|
7
7
|
import { S as Shimmer } from './shimmer-Bt9INFuE.js';
|
|
8
8
|
import { T as Txt } from './Txt-CfPhlZOu.js';
|
|
9
9
|
import { c as cn } from './cn-ByEbywDh.js';
|
|
@@ -178,4 +178,4 @@ const ToolCallCommand = ({ command }) => /* @__PURE__ */ jsxs(ToolCallMono, { co
|
|
|
178
178
|
] });
|
|
179
179
|
|
|
180
180
|
export { ToolCall as T, ToolCallTrigger as a, ToolCallTrailing as b, ToolCallContent as c, ToolCallHeader as d, ToolCallIcon as e, ToolCallLabel as f, ToolCallDetail as g, ToolCallSpacer as h, ToolCallDisclosure as i, ToolCallSummary as j, ToolCallCommand as k, ToolCallMono as l, ToolCallPresentedHeader as m };
|
|
181
|
-
//# sourceMappingURL=tool-call-
|
|
181
|
+
//# sourceMappingURL=tool-call-BlKbOYRH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-DfLe6Hu5.js","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-ui-sm break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-icon5\">\n <span className=\"text-icon3 select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-call-BlKbOYRH.js","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-ui-sm break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-icon5\">\n <span className=\"text-icon3 select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const lucideReact = require('lucide-react');
|
|
|
5
5
|
const React = require('react');
|
|
6
6
|
const useWatched = require('./use-watched-BixmYWp0.cjs');
|
|
7
7
|
const collapsible = require('./collapsible-JOs0f0e1.cjs');
|
|
8
|
-
const copyButton = require('./copy-button-
|
|
8
|
+
const copyButton = require('./copy-button-zLZfswrj.cjs');
|
|
9
9
|
const shimmer = require('./shimmer-GOCqjnzu.cjs');
|
|
10
10
|
const Txt = require('./Txt-i-sXSs2m.cjs');
|
|
11
11
|
const utils_cn = require('./cn-DnbTIGXa.cjs');
|
|
@@ -193,4 +193,4 @@ exports.ToolCallSpacer = ToolCallSpacer;
|
|
|
193
193
|
exports.ToolCallSummary = ToolCallSummary;
|
|
194
194
|
exports.ToolCallTrailing = ToolCallTrailing;
|
|
195
195
|
exports.ToolCallTrigger = ToolCallTrigger;
|
|
196
|
-
//# sourceMappingURL=tool-call-
|
|
196
|
+
//# sourceMappingURL=tool-call-DVh_yWov.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call-Pi3V0LP3.cjs","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-ui-sm break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-icon5\">\n <span className=\"text-icon3 select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":["createContext","useContext","useState","useId","jsx","jsxs","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","ChevronRight","X","CollapsibleContent","CopyButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-call-DVh_yWov.cjs","sources":["../src/ds/components/ai/tool-call/tool-call.tsx"],"sourcesContent":["import { ChevronRight, X } from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ToolCallStatus = 'idle' | 'running' | 'error';\n\ninterface ToolCallContextValue {\n open: boolean;\n status: ToolCallStatus;\n}\n\nconst ToolCallContext = createContext<ToolCallContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useToolCall() {\n const context = useContext(ToolCallContext);\n if (!context) throw new Error('ToolCall compounds must be rendered within ToolCall');\n return context;\n}\n\nexport interface ToolCallProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n status?: ToolCallStatus;\n}\n\nexport function ToolCall({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n status = 'idle',\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? uncontrolledOpen;\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ToolCallContext.Provider value={{ open, status }}>\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n {status !== 'idle' && (\n <span id={statusId} className=\"sr-only\">\n {status === 'running' ? 'Tool call running' : 'Tool call failed'}\n </span>\n )}\n </Collapsible>\n </ToolCallContext.Provider>\n );\n}\n\nexport const ToolCallTrigger = ({ className, ...props }: ComponentProps<typeof CollapsibleTrigger>) => (\n <CollapsibleTrigger\n className={cn(\n 'group/row w-full cursor-pointer rounded-md text-left transition-colors hover:bg-neutral6/5 focus-visible:ring-1 focus-visible:ring-accent1 focus-visible:outline-hidden motion-reduce:transition-none',\n className,\n )}\n {...props}\n />\n);\n\nexport const ToolCallHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status } = useToolCall();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn('flex w-full min-w-0 items-center gap-2 px-1.5 py-1', className)}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ToolCallIcon = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props} />\n);\n\nexport const ToolCallLabel = ({ className, ...props }: ComponentProps<typeof Txt>) => (\n <Txt as=\"span\" variant=\"ui-sm\" className={cn('text-icon3 max-w-[55%] shrink-0 truncate', className)} {...props} />\n);\n\nexport const ToolCallDetail = ({ className, ...props }: ComponentProps<typeof Txt>) => {\n const arriving = useArriving();\n\n return (\n <Txt\n as=\"span\"\n variant=\"ui-xs\"\n font=\"mono\"\n className={cn('text-icon3 min-w-0 truncate', arriving, className)}\n {...props}\n />\n );\n};\n\nexport const ToolCallSummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ToolCallSpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ToolCallSpacer = ({ rule, className, ...props }: ToolCallSpacerProps) => (\n <span\n aria-hidden\n className={cn('min-w-2 flex-1', rule && 'h-px bg-border1 mask-r-from-[calc(100%-min(100%,160px))]', className)}\n {...props}\n />\n);\n\nexport const ToolCallTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ToolCallDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open } = useToolCall();\n\n return (\n <span className={cn('flex size-4 shrink-0 items-center justify-center', className)} {...props}>\n <span\n aria-hidden\n className={cn(\n 'text-icon3 flex shrink-0 items-center opacity-0 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:opacity-100 group-focus-visible/row:opacity-100',\n open && 'rotate-90 opacity-100',\n )}\n >\n {children ?? <ChevronRight size={13} />}\n </span>\n </span>\n );\n};\n\nexport interface ToolCallPresentedHeaderProps extends Omit<ComponentProps<typeof ToolCallHeader>, 'children'> {\n /** Rendered ahead of the icon, e.g. a timestamp. */\n leading?: ReactNode;\n icon: LucideIcon;\n label: string;\n detail?: string;\n disclosure?: boolean;\n}\n\n/** The canonical header of a presented tool call: icon, label, detail, failure mark, chevron. */\nexport const ToolCallPresentedHeader = ({\n leading,\n icon: Icon,\n label,\n detail,\n disclosure = true,\n ...props\n}: ToolCallPresentedHeaderProps) => {\n const { status } = useToolCall();\n\n return (\n <ToolCallHeader {...props}>\n {leading}\n <ToolCallIcon>\n <Icon\n size={14}\n strokeWidth={1.75}\n aria-hidden\n className={status === 'error' ? 'text-error/80' : 'text-icon2'}\n />\n </ToolCallIcon>\n <ToolCallLabel>{label}</ToolCallLabel>\n {detail && <ToolCallDetail>{detail}</ToolCallDetail>}\n <ToolCallSpacer />\n {status === 'error' && (\n <ToolCallTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />\n </ToolCallTrailing>\n )}\n {disclosure && <ToolCallDisclosure />}\n </ToolCallHeader>\n );\n};\n\nexport const ToolCallContent = ({ className, children, ...props }: ComponentProps<typeof CollapsibleContent>) => (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n \"relative ml-[14px] flex max-w-full min-w-0 flex-col gap-1.5 py-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border1 before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n className,\n )}\n >\n {children}\n </div>\n </CollapsibleContent>\n);\n\nexport interface ToolCallMonoProps extends ComponentProps<'pre'> {\n copyText: string;\n}\n\n/** Monospace body block of an expanded call — arguments, command, output — with a hover copy. */\nexport const ToolCallMono = ({ copyText, className, children, ...props }: ToolCallMonoProps) => (\n <div className=\"group/block relative max-w-full min-w-0\">\n <pre\n className={cn(\n 'm-0 max-h-60 max-w-full overflow-auto rounded-md bg-neutral6/5 px-3 py-2 font-mono text-ui-sm break-words whitespace-pre-wrap',\n className,\n )}\n {...props}\n >\n {children}\n </pre>\n <CopyButton\n content={copyText}\n size=\"sm\"\n variant=\"ghost\"\n className=\"absolute top-1 right-1 opacity-0 transition-opacity group-hover/block:opacity-100 focus-visible:opacity-100\"\n />\n </div>\n);\n\n/** A shell command as the body shows it: `$` in the margin, the copy takes the command alone. */\nexport const ToolCallCommand = ({ command }: { command: string }) => (\n <ToolCallMono copyText={command} className=\"text-icon5\">\n <span className=\"text-icon3 select-none\">$ </span>\n {command}\n </ToolCallMono>\n);\n\nexport type { ToolCallStatus };\n"],"names":["createContext","useContext","useState","useId","jsx","jsxs","Collapsible","cn","CollapsibleTrigger","Shimmer","Txt","useArriving","ChevronRight","X","CollapsibleContent","CopyButton"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
const dataListTop = require('./data-list-top-
|
|
5
|
-
const dataList = require('./data-list-
|
|
4
|
+
const dataListTop = require('./data-list-top-D9zFnKEi.cjs');
|
|
5
|
+
const dataList = require('./data-list-4_cVlINT.cjs');
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const Badge = require('./Badge-B-LKnrNk.cjs');
|
|
8
8
|
const tooltip = require('./tooltip-BsSNtmxl.cjs');
|
|
@@ -83,4 +83,4 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
|
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
exports.TracesDataList = TracesDataList;
|
|
86
|
-
//# sourceMappingURL=traces-data-list-
|
|
86
|
+
//# sourceMappingURL=traces-data-list-0WfYCKdc.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-data-list-BPrExzSX.cjs","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, ListTreeIcon } from 'lucide-react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-neutral3' : 'text-neutral2')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"text-ui-smd text-neutral4 flex min-w-0 items-center gap-2\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-neutral2', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface TracesDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function TracesDataListEntityCell({ entityType, entityName }: TracesDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"text-ui-smd min-w-0 truncate\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListEntityCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n EntityCell: TracesDataListEntityCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["ListTreeIcon","CornerDownRightIcon","jsx","cn","jsxs","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","Badge","DataListRoot","DataListTop","DataListTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traces-data-list-0WfYCKdc.cjs","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, ListTreeIcon } from 'lucide-react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-neutral3' : 'text-neutral2')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"text-ui-smd text-neutral4 flex min-w-0 items-center gap-2\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-neutral2', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface TracesDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function TracesDataListEntityCell({ entityType, entityName }: TracesDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"text-ui-smd min-w-0 truncate\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListEntityCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n EntityCell: TracesDataListEntityCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["ListTreeIcon","CornerDownRightIcon","jsx","cn","jsxs","DataListCell","Tooltip","TooltipTrigger","TooltipContent","DataListTextCell","AgentIcon","WorkflowIcon","Badge","DataListRoot","DataListTop","DataListTopCell","DataListTopCellWithTooltip","DataListRowButton","DataListNoMatch","DataListSubheader","DataListSubHeading","DataListSpacer","DataListIdCell","DataListCreatedCell","DataListNextPageLoading"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { c as DataListCell, e as DataListTextCell, f as DataListNextPageLoading, p as DataListCreatedCell, q as DataListIdCell, j as DataListSpacer, i as DataListNoMatch, l as DataListRowButton, o as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-top-
|
|
3
|
-
import { a as DataListSubHeading, b as DataListSubheader } from './data-list-
|
|
2
|
+
import { c as DataListCell, e as DataListTextCell, f as DataListNextPageLoading, p as DataListCreatedCell, q as DataListIdCell, j as DataListSpacer, i as DataListNoMatch, l as DataListRowButton, o as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop, D as DataListRoot } from './data-list-top-BeUxfGy2.js';
|
|
3
|
+
import { a as DataListSubHeading, b as DataListSubheader } from './data-list-Bm70XKg_.js';
|
|
4
4
|
import { ListTreeIcon, CornerDownRightIcon } from 'lucide-react';
|
|
5
5
|
import { B as Badge } from './Badge-BqVBVHGc.js';
|
|
6
6
|
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-Vj_jjcxE.js';
|
|
@@ -81,4 +81,4 @@ const TracesDataList = Object.assign(TracesDataListRoot, {
|
|
|
81
81
|
});
|
|
82
82
|
|
|
83
83
|
export { TracesDataList as T };
|
|
84
|
-
//# sourceMappingURL=traces-data-list-
|
|
84
|
+
//# sourceMappingURL=traces-data-list-BOiAOwYM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-data-list-
|
|
1
|
+
{"version":3,"file":"traces-data-list-BOiAOwYM.js","sources":["../src/ds/components/DataList/TracesDataList/traces-data-list-cells.tsx","../src/ds/components/DataList/TracesDataList/traces-data-list.tsx"],"sourcesContent":["import { CornerDownRightIcon, ListTreeIcon } from 'lucide-react';\nimport { DataListCell, DataListTextCell } from '../data-list-cells';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// NameCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListNameCellProps {\n name?: string | null;\n /** `null`/missing → root span (Trace). Set → nested span (Subtrace). Drives the leading level icon. */\n parentSpanId?: string | null;\n /** When true, the leading level icon is wrapped in a Trace/Subtrace tooltip. Off by default —\n * only meaningful in branches mode, where rows mix root traces and subtraces. */\n showLevelTooltip?: boolean;\n}\n\nexport function TracesDataListNameCell({ name, parentSpanId, showLevelTooltip }: TracesDataListNameCellProps) {\n const isRoot = parentSpanId == null;\n const Icon = isRoot ? ListTreeIcon : CornerDownRightIcon;\n const label = isRoot ? 'Trace' : 'Subtrace';\n const icon = (\n <span aria-label={label} className=\"inline-flex shrink-0\">\n <Icon className={cn('size-4 shrink-0', isRoot ? 'text-neutral3' : 'text-neutral2')} aria-hidden />\n </span>\n );\n return (\n <DataListCell className=\"text-ui-smd text-neutral4 flex min-w-0 items-center gap-2\">\n {showLevelTooltip ? (\n <Tooltip>\n <TooltipTrigger asChild>{icon}</TooltipTrigger>\n <TooltipContent>{label}</TooltipContent>\n </Tooltip>\n ) : (\n icon\n )}\n <span className=\"min-w-0 truncate\">{name || '-'}</span>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// InputCell\n// ---------------------------------------------------------------------------\n\nexport interface TracesDataListInputCellProps {\n input?: string | null;\n}\n\nexport function TracesDataListInputCell({ input }: TracesDataListInputCellProps) {\n return <DataListTextCell font=\"mono\">{input || '-'}</DataListTextCell>;\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-neutral2', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface TracesDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function TracesDataListEntityCell({ entityType, entityName }: TracesDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"text-ui-smd min-w-0 truncate\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// StatusCell\n// ---------------------------------------------------------------------------\n\nconst UNSET_STATUS_CONFIG: { label: string; variant: BadgeVariant } = { label: '-', variant: 'neutral' };\n\nconst STATUS_CONFIG: Record<string, { label: string; variant: BadgeVariant }> = {\n completed: { label: 'OK', variant: 'green' },\n ok: { label: 'OK', variant: 'green' },\n success: { label: 'OK', variant: 'green' },\n error: { label: 'ERR', variant: 'red' },\n running: { label: 'RUN', variant: 'neutral' },\n unset: UNSET_STATUS_CONFIG,\n};\n\nexport interface TracesDataListStatusCellProps {\n status?: string | null;\n}\n\nexport function TracesDataListStatusCell({ status }: TracesDataListStatusCellProps) {\n const key = (status ?? 'unset').toLowerCase();\n const config = STATUS_CONFIG[key] ?? UNSET_STATUS_CONFIG;\n\n return (\n <DataListCell>\n <Badge size=\"xs\" variant={config.variant}>\n {config.label}\n </Badge>\n </DataListCell>\n );\n}\n","import type { ComponentProps } from 'react';\nimport { DataListCreatedCell, DataListIdCell } from '../data-list-cells';\nimport { DataListNextPageLoading } from '../data-list-next-page-loading';\nimport { DataListNoMatch } from '../data-list-no-match';\nimport { DataListRoot } from '../data-list-root';\nimport { DataListRowButton } from '../data-list-row-button';\nimport { DataListSpacer } from '../data-list-spacer';\nimport { DataListSubheader } from '../data-list-subheader';\nimport { DataListSubHeading } from '../data-list-subheading';\nimport { DataListTop } from '../data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip } from '../data-list-top-cell';\nimport {\n TracesDataListNameCell,\n TracesDataListInputCell,\n TracesDataListEntityCell,\n TracesDataListStatusCell,\n} from './traces-data-list-cells';\n\n// oxlint-disable-next-line react/only-export-components -- compound component root, same pattern as ScoresDataList\n// eslint-disable-next-line react-refresh/only-export-components -- compound component root, same pattern as ScoresDataList\nfunction TracesDataListRoot(props: ComponentProps<typeof DataListRoot>) {\n return <DataListRoot {...props} />;\n}\n\nexport const TracesDataList = Object.assign(TracesDataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n RowButton: DataListRowButton,\n NoMatch: DataListNoMatch,\n Subheader: DataListSubheader,\n SubHeading: DataListSubHeading,\n Spacer: DataListSpacer,\n IdCell: DataListIdCell,\n CreatedCell: DataListCreatedCell,\n NameCell: TracesDataListNameCell,\n InputCell: TracesDataListInputCell,\n EntityCell: TracesDataListEntityCell,\n StatusCell: TracesDataListStatusCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
|