@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,9 +1,9 @@
|
|
|
1
1
|
export { T as TOOL_GROUP_MIN, g as groupConsecutive } from '../../group-consecutive-EVLIMgcO.js';
|
|
2
|
-
import { T as ToolCall, a as ToolCallTrigger, d as ToolCallHeader, e as ToolCallIcon, f as ToolCallLabel, g as ToolCallDetail, h as ToolCallSpacer, b as ToolCallTrailing, i as ToolCallDisclosure, c as ToolCallContent, j as ToolCallSummary } from '../../tool-call-
|
|
3
|
-
export { k as ToolCallCommand, l as ToolCallMono, m as ToolCallPresentedHeader } from '../../tool-call-
|
|
2
|
+
import { T as ToolCall, a as ToolCallTrigger, d as ToolCallHeader, e as ToolCallIcon, f as ToolCallLabel, g as ToolCallDetail, h as ToolCallSpacer, b as ToolCallTrailing, i as ToolCallDisclosure, c as ToolCallContent, j as ToolCallSummary } from '../../tool-call-BlKbOYRH.js';
|
|
3
|
+
export { k as ToolCallCommand, l as ToolCallMono, m as ToolCallPresentedHeader } from '../../tool-call-BlKbOYRH.js';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
5
|
import { u as useHighlight, t as tokenStyle } from '../../code-D4Vw_fYq.js';
|
|
6
|
-
import { C as CodeBlock } from '../../code-block-
|
|
6
|
+
import { C as CodeBlock } from '../../code-block-BdzrmA-p.js';
|
|
7
7
|
import { l as languageForPath } from '../../highlight-BmpoELR4.js';
|
|
8
8
|
import { truncateString } from '../../utils/truncate-string.es.js';
|
|
9
9
|
import { c as cn } from '../../cn-ByEbywDh.js';
|
|
@@ -107,10 +107,20 @@ function GroupProgress({ steps }) {
|
|
|
107
107
|
steps.length
|
|
108
108
|
] });
|
|
109
109
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
const failed = steps.filter((step) => step.status === "error").length;
|
|
111
|
+
const errorIndicator = failed > 0 ? /* @__PURE__ */ jsx(X, { size: 13, role: "img", "aria-label": "Failed", className: "text-error shrink-0" }) : null;
|
|
112
|
+
if (steps.some((step) => step.hasResult === void 0)) return errorIndicator;
|
|
113
|
+
const succeeded = steps.filter((step) => step.status === "idle" && step.hasResult).length;
|
|
114
|
+
const incomplete = steps.length - succeeded - failed;
|
|
115
|
+
const summary = [
|
|
116
|
+
succeeded > 0 && `${succeeded} OK`,
|
|
117
|
+
failed > 0 && `${failed} failed`,
|
|
118
|
+
incomplete > 0 && `${incomplete} incomplete`
|
|
119
|
+
].filter(Boolean).join(" · ");
|
|
120
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
121
|
+
errorIndicator,
|
|
122
|
+
/* @__PURE__ */ jsx(Txt, { as: "span", variant: "ui-xs", className: "text-icon3 shrink-0 tabular-nums", children: summary })
|
|
123
|
+
] });
|
|
114
124
|
}
|
|
115
125
|
function GroupKinds({ steps }) {
|
|
116
126
|
const iconByLabel = new Map(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-call.es.js","sources":["../../../src/ds/components/ai/tool-call/ansi.ts","../../../src/ds/components/ai/tool-call/tool-call-edit.tsx","../../../src/ds/components/ai/tool-call/tool-call-group.tsx"],"sourcesContent":["// Sandbox commands run in a PTY, so CLIs emit color escapes even under NO_COLOR.\n// eslint-disable-next-line no-control-regex\nconst ANSI_RE =\n /[\\u001b\\u009b][[\\]()#;?]*(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d/#&.:=?%@~_]*)*)?\\u0007|(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~])/g;\n\n// The same sequences once JSON.stringify escaped the bytes; an even backslash run before the `u` is source text spelling the escape, kept.\nconst ESCAPED_ANSI_RE = /(?<!\\\\)((?:\\\\\\\\)*)\\\\u001[bB](?:\\[[0-9;?<=>]*[a-zA-Z]|\\][\\s\\S]*?(?:\\\\u0007|\\\\u001[bB]\\\\\\\\))/g;\n\nexport function stripAnsi(text: string): string {\n return text.replace(ANSI_RE, '');\n}\n\nexport function stripSerializedAnsi(text: string): string {\n return stripAnsi(text).replace(ESCAPED_ANSI_RE, '$1');\n}\n","import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-error/10', gutter: 'text-error' },\n added: { sign: '+', row: 'bg-accent1/10', gutter: 'text-accent1' },\n} as const;\n\nfunction boundedLines(text: string): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"text-icon6 flex-1 pr-2.5\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit }: { edit: ToolEdit }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText);\n const added = boundedLines(edit.newText);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className=\"border-border1 bg-neutral6/5 text-ui-sm max-w-full min-w-0 overflow-x-auto rounded-md border font-mono\"\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"text-icon3 px-2.5 py-1 select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { FoldVertical, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport {\n ToolCall,\n ToolCallContent,\n ToolCallDetail,\n ToolCallDisclosure,\n ToolCallHeader,\n ToolCallIcon,\n ToolCallLabel,\n ToolCallSpacer,\n ToolCallSummary,\n ToolCallTrailing,\n ToolCallTrigger,\n} from './tool-call';\nimport type { ToolCallStatus } from './tool-call';\nimport { presentTool } from './tool-presentation';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ToolCallGroupStep {\n toolName: string;\n args: unknown;\n status: ToolCallStatus;\n}\n\nexport interface ToolCallGroupProps {\n steps: ToolCallGroupStep[];\n /** Rendered ahead of the icon, e.g. the time the first step began. */\n leading?: ReactNode;\n children: ReactNode;\n}\n\nconst MAX_KIND_GLYPHS = 4;\n\nexport function ToolCallGroup({ steps, leading, children }: ToolCallGroupProps) {\n const running = steps.find(step => step.status === 'running');\n const liveDetail = running && presentTool(running.toolName, running.args).detail;\n\n return (\n <ToolCall status={running ? 'running' : 'idle'} aria-label={`Tool group: ${steps.length} steps`}>\n <ToolCallTrigger>\n <ToolCallHeader>\n {leading}\n <ToolCallIcon>\n <FoldVertical size={14} strokeWidth={1.75} aria-hidden className=\"text-icon2\" />\n </ToolCallIcon>\n <ToolCallLabel>{steps.length} steps</ToolCallLabel>\n {liveDetail && <ToolCallDetail>{liveDetail}</ToolCallDetail>}\n <GroupKinds steps={steps} />\n <ToolCallSpacer rule />\n <ToolCallTrailing>\n <GroupProgress steps={steps} />\n </ToolCallTrailing>\n <ToolCallDisclosure />\n </ToolCallHeader>\n </ToolCallTrigger>\n <ToolCallContent className=\"py-0.5 pr-0 pl-2.5\">\n <ScrollArea maxHeight=\"18rem\" autoScroll={Boolean(running)} revealScrollbarOnHover={false}>\n {children}\n </ScrollArea>\n </ToolCallContent>\n </ToolCall>\n );\n}\n\nfunction GroupProgress({ steps }: { steps: ToolCallGroupStep[] }) {\n const done = steps.filter(step => step.status !== 'running').length;\n if (done < steps.length) {\n return (\n <Txt as=\"span\" variant=\"ui-xs\" className=\"text-icon3 shrink-0 tabular-nums\">\n {done}/{steps.length}\n </Txt>\n );\n }\n if (steps.some(step => step.status === 'error')) {\n return <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" />;\n }\n return null;\n}\n\nfunction GroupKinds({ steps }: { steps: ToolCallGroupStep[] }) {\n const iconByLabel = new Map(\n steps.map(step => presentTool(step.toolName, step.args)).map(({ label, icon }) => [label, icon]),\n );\n const kinds = [...iconByLabel].slice(0, MAX_KIND_GLYPHS);\n\n return (\n <ToolCallSummary role=\"img\" aria-label={kinds.map(([label]) => label).join(', ')} className=\"shrink-0 gap-1.5\">\n {kinds.map(([label, Kind]) => (\n <Kind key={label} size={12} strokeWidth={1.75} className=\"text-icon2\" />\n ))}\n </ToolCallSummary>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,MAAM,OAAA,GACJ,oIAAA;AAGF,MAAM,eAAA,GAAkB,6FAAA;AAEjB,SAAS,UAAU,IAAA,EAAsB;AAC9C,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAS,EAAE,CAAA;AACjC;AAEO,SAAS,oBAAoB,IAAA,EAAsB;AACxD,EAAA,OAAO,SAAA,CAAU,IAAI,CAAA,CAAE,OAAA,CAAQ,iBAAiB,IAAI,CAAA;AACtD;;ACPA,MAAM,cAAA,GAAiB,GAAA;AACvB,MAAM,sBAAA,GAAyB,GAAA;AAE/B,MAAM,UAAA,GAAa;AAAA,EACjB,SAAS,EAAE,IAAA,EAAM,KAAK,GAAA,EAAK,aAAA,EAAe,QAAQ,YAAA,EAAa;AAAA,EAC/D,OAAO,EAAE,IAAA,EAAM,KAAK,GAAA,EAAK,eAAA,EAAiB,QAAQ,cAAA;AACpD,CAAA;AAEA,SAAS,aAAa,IAAA,EAAmD;AACvE,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAC7B,EAAA,OAAO,EAAE,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,GAAG,cAAc,CAAA,EAAG,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,KAAA,CAAM,MAAA,GAAS,cAAc,CAAA,EAAE;AACrG;AAEA,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,IAAA,EAAM,MAAK,EAAiF;AACrH,EAAA,MAAM,EAAE,IAAA,EAAM,GAAA,EAAK,MAAA,EAAO,GAAI,WAAW,IAAI,CAAA;AAC7C,EAAA,MAAM,IAAA,GAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAC5B,EAAA,MAAM,WAAA,GAAc,YAAA,CAAa,IAAA,EAAM,IAAI,CAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,WAAA,EAAa,IAAA,KAAS,IAAA,GAAO,YAAY,MAAA,GAAS,MAAA;AAEjE,EAAA,uBACE,GAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAChB,IAAA,CAAC,KAAA,EAAA,EAAgB,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,GAAG,CAAA,EACvD,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,iDAAA,EAAmD,MAAM,GAAI,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,oBACtF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,0BAAA,EACb,QAAA,EAAA,MAAA,GAAS,KAAK,CAAA,EAAG,GAAA,CAAI,CAAC,KAAA,EAAO,UAAA,qBAC5B,GAAA,CAAC,UAAsB,SAAA,EAAU,aAAA,EAAc,KAAA,EAAO,UAAA,CAAW,KAAK,CAAA,EACnE,gBAAM,OAAA,EAAA,EADE,UAEX,CACD,CAAA,IAAK,IAAA,EACR;AAAA,GAAA,EAAA,EARQ,KASV,CACD,CAAA,EACH,CAAA;AAEJ;AAEO,SAAS,YAAA,CAAa,EAAE,IAAA,EAAK,EAAuB;AACzD,EAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,IAAA,CAAK,IAAI,CAAA;AAEtC,EAAA,IAAI,aAAa,IAAA,EAAM;AACrB,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,cAAA,CAAe,IAAA,CAAK,OAAA,EAAS,sBAAsB,CAAA;AAAA,QACzD,IAAA;AAAA,QACA,QAAA,EAAU,KAAK,IAAA,IAAQ,QAAA;AAAA,QACvB,QAAA,EAAS;AAAA;AAAA,KACX;AAAA,EAEJ;AAEA,EAAA,MAAM,OAAA,GAAU,YAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AACzC,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,IAAA,CAAK,OAAO,CAAA;AACvC,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,GAAS,KAAA,CAAM,MAAA;AAEtC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,wGAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MACL,YAAA,EAAW,aAAA;AAAA,MAEX,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAS,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,IAAA,EAAK,WAAU,IAAA,EAAY,CAAA;AAAA,4BAC1D,QAAA,EAAA,EAAS,KAAA,EAAO,MAAM,KAAA,EAAO,IAAA,EAAK,SAAQ,IAAA,EAAY,CAAA;AAAA,QACtD,MAAA,GAAS,CAAA,oBAAK,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,oCAAA,EAAqC,QAAA,EAAA;AAAA,UAAA,IAAA;AAAA,UAAG,MAAA;AAAA,UAAO;AAAA,SAAA,EAAW;AAAA;AAAA;AAAA,GAC1F;AAEJ;;ACxCA,MAAM,eAAA,GAAkB,CAAA;AAEjB,SAAS,aAAA,CAAc,EAAE,KAAA,EAAO,OAAA,EAAS,UAAS,EAAuB;AAC9E,EAAA,MAAM,UAAU,KAAA,CAAM,IAAA,CAAK,CAAA,IAAA,KAAQ,IAAA,CAAK,WAAW,SAAS,CAAA;AAC5D,EAAA,MAAM,aAAa,OAAA,IAAW,WAAA,CAAY,QAAQ,QAAA,EAAU,OAAA,CAAQ,IAAI,CAAA,CAAE,MAAA;AAE1E,EAAA,uBACE,IAAA,CAAC,QAAA,EAAA,EAAS,MAAA,EAAQ,OAAA,GAAU,SAAA,GAAY,QAAQ,YAAA,EAAY,CAAA,YAAA,EAAe,KAAA,CAAM,MAAM,CAAA,MAAA,CAAA,EACrF,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,eAAA,EAAA,EACC,+BAAC,cAAA,EAAA,EACE,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,sBACD,GAAA,CAAC,YAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAM,EAAA,EAAI,WAAA,EAAa,IAAA,EAAM,aAAA,EAAW,IAAA,EAAC,SAAA,EAAU,YAAA,EAAa,CAAA,EAChF,CAAA;AAAA,2BACC,aAAA,EAAA,EAAe,QAAA,EAAA;AAAA,QAAA,KAAA,CAAM,MAAA;AAAA,QAAO;AAAA,OAAA,EAAM,CAAA;AAAA,MAClC,UAAA,oBAAc,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,UAAA,EAAW,CAAA;AAAA,sBAC3C,GAAA,CAAC,cAAW,KAAA,EAAc,CAAA;AAAA,sBAC1B,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAI,IAAA,EAAC,CAAA;AAAA,sBACrB,GAAA,CAAC,gBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,OAAc,CAAA,EAC/B,CAAA;AAAA,0BACC,kBAAA,EAAA,EAAmB;AAAA,KAAA,EACtB,CAAA,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,oBAAA,EACzB,8BAAC,UAAA,EAAA,EAAW,SAAA,EAAU,OAAA,EAAQ,UAAA,EAAY,QAAQ,OAAO,CAAA,EAAG,sBAAA,EAAwB,KAAA,EACjF,UACH,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,aAAA,CAAc,EAAE,KAAA,EAAM,EAAmC;AAChE,EAAA,MAAM,OAAO,KAAA,CAAM,MAAA,CAAO,UAAQ,IAAA,CAAK,MAAA,KAAW,SAAS,CAAA,CAAE,MAAA;AAC7D,EAAA,IAAI,IAAA,GAAO,MAAM,MAAA,EAAQ;AACvB,IAAA,4BACG,GAAA,EAAA,EAAI,EAAA,EAAG,QAAO,OAAA,EAAQ,OAAA,EAAQ,WAAU,kCAAA,EACtC,QAAA,EAAA;AAAA,MAAA,IAAA;AAAA,MAAK,GAAA;AAAA,MAAE,KAAA,CAAM;AAAA,KAAA,EAChB,CAAA;AAAA,EAEJ;AACA,EAAA,IAAI,MAAM,IAAA,CAAK,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,KAAW,OAAO,CAAA,EAAG;AAC/C,IAAA,uBAAO,GAAA,CAAC,KAAE,IAAA,EAAM,EAAA,EAAI,MAAK,KAAA,EAAM,YAAA,EAAW,QAAA,EAAS,SAAA,EAAU,qBAAA,EAAsB,CAAA;AAAA,EACrF;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,UAAA,CAAW,EAAE,KAAA,EAAM,EAAmC;AAC7D,EAAA,MAAM,cAAc,IAAI,GAAA;AAAA,IACtB,MAAM,GAAA,CAAI,CAAA,IAAA,KAAQ,YAAY,IAAA,CAAK,QAAA,EAAU,KAAK,IAAI,CAAC,EAAE,GAAA,CAAI,CAAC,EAAE,KAAA,EAAO,IAAA,OAAW,CAAC,KAAA,EAAO,IAAI,CAAC;AAAA,GACjG;AACA,EAAA,MAAM,QAAQ,CAAC,GAAG,WAAW,CAAA,CAAE,KAAA,CAAM,GAAG,eAAe,CAAA;AAEvD,EAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EAAgB,IAAA,EAAK,KAAA,EAAM,cAAY,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,KAAK,CAAA,KAAM,KAAK,CAAA,CAAE,IAAA,CAAK,IAAI,CAAA,EAAG,SAAA,EAAU,kBAAA,EACzF,QAAA,EAAA,KAAA,CAAM,IAAI,CAAC,CAAC,KAAA,EAAO,IAAI,sBACtB,GAAA,CAAC,IAAA,EAAA,EAAiB,IAAA,EAAM,EAAA,EAAI,aAAa,IAAA,EAAM,SAAA,EAAU,YAAA,EAAA,EAA9C,KAA2D,CACvE,CAAA,EACH,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"tool-call.es.js","sources":["../../../src/ds/components/ai/tool-call/ansi.ts","../../../src/ds/components/ai/tool-call/tool-call-edit.tsx","../../../src/ds/components/ai/tool-call/tool-call-group.tsx"],"sourcesContent":["// Sandbox commands run in a PTY, so CLIs emit color escapes even under NO_COLOR.\n// eslint-disable-next-line no-control-regex\nconst ANSI_RE =\n /[\\u001b\\u009b][[\\]()#;?]*(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d/#&.:=?%@~_]*)*)?\\u0007|(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~])/g;\n\n// The same sequences once JSON.stringify escaped the bytes; an even backslash run before the `u` is source text spelling the escape, kept.\nconst ESCAPED_ANSI_RE = /(?<!\\\\)((?:\\\\\\\\)*)\\\\u001[bB](?:\\[[0-9;?<=>]*[a-zA-Z]|\\][\\s\\S]*?(?:\\\\u0007|\\\\u001[bB]\\\\\\\\))/g;\n\nexport function stripAnsi(text: string): string {\n return text.replace(ANSI_RE, '');\n}\n\nexport function stripSerializedAnsi(text: string): string {\n return stripAnsi(text).replace(ESCAPED_ANSI_RE, '$1');\n}\n","import type { ToolEdit } from './tool-presentation';\nimport { tokenStyle, useHighlight } from '@/ds/components/Code';\nimport { CodeBlock } from '@/ds/components/CodeBlock';\nimport { languageForPath } from '@/ds/components/CodeEditor/highlight';\nimport { truncateString } from '@/lib/truncate-string';\nimport { cn } from '@/lib/utils';\n\nconst DIFF_MAX_LINES = 200;\nconst WRITTEN_FILE_MAX_CHARS = 2000;\n\nconst DIFF_SIDES = {\n removed: { sign: '-', row: 'bg-error/10', gutter: 'text-error' },\n added: { sign: '+', row: 'bg-accent1/10', gutter: 'text-accent1' },\n} as const;\n\nfunction boundedLines(text: string): { lines: string[]; hidden: number } {\n const lines = text.split('\\n');\n return { lines: lines.slice(0, DIFF_MAX_LINES), hidden: Math.max(0, lines.length - DIFF_MAX_LINES) };\n}\n\nfunction DiffSide({ lines, side, lang }: { lines: string[]; side: keyof typeof DIFF_SIDES; lang: string | undefined }) {\n const { sign, row, gutter } = DIFF_SIDES[side];\n const code = lines.join('\\n');\n const highlighted = useHighlight(code, lang);\n const tokens = highlighted?.code === code ? highlighted.tokens : undefined;\n\n return (\n <>\n {lines.map((line, index) => (\n <div key={index} className={cn('flex whitespace-pre', row)}>\n <span className={cn('w-5 shrink-0 text-center opacity-70 select-none', gutter)}>{sign}</span>\n <span className=\"text-icon6 flex-1 pr-2.5\">\n {tokens?.[index]?.map((token, tokenIndex) => (\n <span key={tokenIndex} className=\"shiki-token\" style={tokenStyle(token)}>\n {token.content}\n </span>\n )) ?? line}\n </span>\n </div>\n ))}\n </>\n );\n}\n\nexport function ToolCallEdit({ edit }: { edit: ToolEdit }) {\n const lang = languageForPath(edit.path);\n\n if ('content' in edit) {\n return (\n <CodeBlock\n code={truncateString(edit.content, WRITTEN_FILE_MAX_CHARS)}\n lang={lang}\n fileName={edit.path ?? 'Change'}\n overflow=\"scroll\"\n />\n );\n }\n\n const removed = boundedLines(edit.oldText);\n const added = boundedLines(edit.newText);\n const hidden = removed.hidden + added.hidden;\n\n return (\n <div\n className=\"border-border1 bg-neutral6/5 text-ui-sm max-w-full min-w-0 overflow-x-auto rounded-md border font-mono\"\n role=\"group\"\n aria-label=\"File change\"\n >\n <DiffSide lines={removed.lines} side=\"removed\" lang={lang} />\n <DiffSide lines={added.lines} side=\"added\" lang={lang} />\n {hidden > 0 && <div className=\"text-icon3 px-2.5 py-1 select-none\">… {hidden} more lines</div>}\n </div>\n );\n}\n","import { FoldVertical, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport {\n ToolCall,\n ToolCallContent,\n ToolCallDetail,\n ToolCallDisclosure,\n ToolCallHeader,\n ToolCallIcon,\n ToolCallLabel,\n ToolCallSpacer,\n ToolCallSummary,\n ToolCallTrailing,\n ToolCallTrigger,\n} from './tool-call';\nimport type { ToolCallStatus } from './tool-call';\nimport { presentTool } from './tool-presentation';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface ToolCallGroupStep {\n toolName: string;\n args: unknown;\n status: ToolCallStatus;\n /** A successful tool result was recorded. Supply for every step to enable outcome counts; omit to keep legacy summaries. */\n hasResult?: boolean;\n}\n\nexport interface ToolCallGroupProps {\n steps: ToolCallGroupStep[];\n /** Rendered ahead of the icon, e.g. the time the first step began. */\n leading?: ReactNode;\n children: ReactNode;\n}\n\nconst MAX_KIND_GLYPHS = 4;\n\nexport function ToolCallGroup({ steps, leading, children }: ToolCallGroupProps) {\n const running = steps.find(step => step.status === 'running');\n const liveDetail = running && presentTool(running.toolName, running.args).detail;\n\n return (\n <ToolCall status={running ? 'running' : 'idle'} aria-label={`Tool group: ${steps.length} steps`}>\n <ToolCallTrigger>\n <ToolCallHeader>\n {leading}\n <ToolCallIcon>\n <FoldVertical size={14} strokeWidth={1.75} aria-hidden className=\"text-icon2\" />\n </ToolCallIcon>\n <ToolCallLabel>{steps.length} steps</ToolCallLabel>\n {liveDetail && <ToolCallDetail>{liveDetail}</ToolCallDetail>}\n <GroupKinds steps={steps} />\n <ToolCallSpacer rule />\n <ToolCallTrailing>\n <GroupProgress steps={steps} />\n </ToolCallTrailing>\n <ToolCallDisclosure />\n </ToolCallHeader>\n </ToolCallTrigger>\n <ToolCallContent className=\"py-0.5 pr-0 pl-2.5\">\n <ScrollArea maxHeight=\"18rem\" autoScroll={Boolean(running)} revealScrollbarOnHover={false}>\n {children}\n </ScrollArea>\n </ToolCallContent>\n </ToolCall>\n );\n}\n\nfunction GroupProgress({ steps }: { steps: ToolCallGroupStep[] }) {\n const done = steps.filter(step => step.status !== 'running').length;\n if (done < steps.length) {\n return (\n <Txt as=\"span\" variant=\"ui-xs\" className=\"text-icon3 shrink-0 tabular-nums\">\n {done}/{steps.length}\n </Txt>\n );\n }\n const failed = steps.filter(step => step.status === 'error').length;\n const errorIndicator =\n failed > 0 ? <X size={13} role=\"img\" aria-label=\"Failed\" className=\"text-error shrink-0\" /> : null;\n // Older consumers only supply visual status, which cannot distinguish completed from interrupted calls.\n if (steps.some(step => step.hasResult === undefined)) return errorIndicator;\n\n const succeeded = steps.filter(step => step.status === 'idle' && step.hasResult).length;\n const incomplete = steps.length - succeeded - failed;\n const summary = [\n succeeded > 0 && `${succeeded} OK`,\n failed > 0 && `${failed} failed`,\n incomplete > 0 && `${incomplete} incomplete`,\n ]\n .filter(Boolean)\n .join(' · ');\n\n return (\n <>\n {errorIndicator}\n <Txt as=\"span\" variant=\"ui-xs\" className=\"text-icon3 shrink-0 tabular-nums\">\n {summary}\n </Txt>\n </>\n );\n}\n\nfunction GroupKinds({ steps }: { steps: ToolCallGroupStep[] }) {\n const iconByLabel = new Map(\n steps.map(step => presentTool(step.toolName, step.args)).map(({ label, icon }) => [label, icon]),\n );\n const kinds = [...iconByLabel].slice(0, MAX_KIND_GLYPHS);\n\n return (\n <ToolCallSummary role=\"img\" aria-label={kinds.map(([label]) => label).join(', ')} className=\"shrink-0 gap-1.5\">\n {kinds.map(([label, Kind]) => (\n <Kind key={label} size={12} strokeWidth={1.75} className=\"text-icon2\" />\n ))}\n </ToolCallSummary>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { CheckIcon, CopyIcon } from 'lucide-react';
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import { B as Button } from './Button-
|
|
4
|
+
import { B as Button } from './Button-BVGwYwHT.js';
|
|
5
5
|
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-Vj_jjcxE.js';
|
|
6
6
|
import { useCopyToClipboard } from './hooks/use-copy-to-clipboard.es.js';
|
|
7
7
|
|
|
@@ -43,4 +43,4 @@ function CopyButton({
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export { CopyButton as C };
|
|
46
|
-
//# sourceMappingURL=copy-button-
|
|
46
|
+
//# sourceMappingURL=copy-button-ChUCFd-x.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button-
|
|
1
|
+
{"version":3,"file":"copy-button-ChUCFd-x.js","sources":["../src/ds/components/CopyButton/copy-button.tsx"],"sourcesContent":["import { CopyIcon, CheckIcon } from 'lucide-react';\nimport { useState } from 'react';\n\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport type CopyButtonProps = {\n content: string;\n copyMessage?: string;\n showToast?: boolean;\n tooltip?: string;\n className?: string;\n size?: ButtonProps['size'];\n variant?: ButtonProps['variant'];\n};\n\nexport function CopyButton({\n content,\n copyMessage,\n showToast,\n tooltip = 'Copy to clipboard',\n size = 'sm',\n variant,\n className,\n}: CopyButtonProps) {\n const [copied, setCopied] = useState(false);\n const { handleCopy: originalHandleCopy } = useCopyToClipboard({\n text: content,\n copyMessage,\n showToast,\n });\n\n const handleCopy = () => {\n originalHandleCopy();\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n onClick={handleCopy}\n type=\"button\"\n size={size}\n variant={variant}\n className={className}\n aria-label={copied ? 'Copied!' : tooltip}\n >\n {copied ? <CheckIcon /> : <CopyIcon />}\n </Button>\n </TooltipTrigger>\n <TooltipContent>{copied ? 'Copied!' : tooltip}</TooltipContent>\n </Tooltip>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAkBO,SAAS,UAAA,CAAW;AAAA,EACzB,OAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA,GAAU,mBAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,EAAE,UAAA,EAAY,kBAAA,EAAmB,GAAI,kBAAA,CAAmB;AAAA,IAC5D,IAAA,EAAM,OAAA;AAAA,IACN,WAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,kBAAA,EAAmB;AACnB,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,GAAI,CAAA;AAAA,EACzC,CAAA;AAEA,EAAA,4BACG,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAO,IAAA,EACrB,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,UAAA;AAAA,QACT,IAAA,EAAK,QAAA;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA,EAAY,SAAS,SAAA,GAAY,OAAA;AAAA,QAEhC,QAAA,EAAA,MAAA,mBAAS,GAAA,CAAC,SAAA,EAAA,EAAU,CAAA,uBAAM,QAAA,EAAA,EAAS;AAAA;AAAA,KACtC,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,MAAA,GAAS,SAAA,GAAY,OAAA,EAAQ;AAAA,GAAA,EAChD,CAAA;AAEJ;;;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const lucideReact = require('lucide-react');
|
|
5
5
|
const React = require('react');
|
|
6
|
-
const Button = require('./Button-
|
|
6
|
+
const Button = require('./Button-BJOVwaxp.cjs');
|
|
7
7
|
const tooltip = require('./tooltip-BsSNtmxl.cjs');
|
|
8
8
|
const hooks_useCopyToClipboard = require('./hooks/use-copy-to-clipboard.cjs.js');
|
|
9
9
|
|
|
@@ -45,4 +45,4 @@ function CopyButton({
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
exports.CopyButton = CopyButton;
|
|
48
|
-
//# sourceMappingURL=copy-button-
|
|
48
|
+
//# sourceMappingURL=copy-button-zLZfswrj.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button-
|
|
1
|
+
{"version":3,"file":"copy-button-zLZfswrj.cjs","sources":["../src/ds/components/CopyButton/copy-button.tsx"],"sourcesContent":["import { CopyIcon, CheckIcon } from 'lucide-react';\nimport { useState } from 'react';\n\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\n\nexport type CopyButtonProps = {\n content: string;\n copyMessage?: string;\n showToast?: boolean;\n tooltip?: string;\n className?: string;\n size?: ButtonProps['size'];\n variant?: ButtonProps['variant'];\n};\n\nexport function CopyButton({\n content,\n copyMessage,\n showToast,\n tooltip = 'Copy to clipboard',\n size = 'sm',\n variant,\n className,\n}: CopyButtonProps) {\n const [copied, setCopied] = useState(false);\n const { handleCopy: originalHandleCopy } = useCopyToClipboard({\n text: content,\n copyMessage,\n showToast,\n });\n\n const handleCopy = () => {\n originalHandleCopy();\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n onClick={handleCopy}\n type=\"button\"\n size={size}\n variant={variant}\n className={className}\n aria-label={copied ? 'Copied!' : tooltip}\n >\n {copied ? <CheckIcon /> : <CopyIcon />}\n </Button>\n </TooltipTrigger>\n <TooltipContent>{copied ? 'Copied!' : tooltip}</TooltipContent>\n </Tooltip>\n );\n}\n"],"names":["tooltip","useState","useCopyToClipboard","Tooltip","jsx","TooltipTrigger","Button","CheckIcon","CopyIcon","TooltipContent"],"mappings":";;;;;;;;;AAkBO,SAAS,UAAA,CAAW;AAAA,EACzB,OAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,WACAA,SAAA,GAAU,mBAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,OAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,EAAE,UAAA,EAAY,kBAAA,EAAmB,GAAIC,2CAAA,CAAmB;AAAA,IAC5D,IAAA,EAAM,OAAA;AAAA,IACN,WAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,kBAAA,EAAmB;AACnB,IAAA,SAAA,CAAU,IAAI,CAAA;AACd,IAAA,UAAA,CAAW,MAAM,SAAA,CAAU,KAAK,CAAA,EAAG,GAAI,CAAA;AAAA,EACzC,CAAA;AAEA,EAAA,uCACGC,eAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAC,cAAA,CAACC,sBAAA,EAAA,EAAe,SAAO,IAAA,EACrB,QAAA,kBAAAD,cAAA;AAAA,MAACE,aAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,UAAA;AAAA,QACT,IAAA,EAAK,QAAA;AAAA,QACL,IAAA;AAAA,QACA,OAAA;AAAA,QACA,SAAA;AAAA,QACA,YAAA,EAAY,SAAS,SAAA,GAAYN,SAAA;AAAA,QAEhC,QAAA,EAAA,MAAA,mBAASI,cAAA,CAACG,qBAAA,EAAA,EAAU,CAAA,kCAAMC,oBAAA,EAAA,EAAS;AAAA;AAAA,KACtC,EACF,CAAA;AAAA,oBACAJ,cAAA,CAACK,sBAAA,EAAA,EAAgB,QAAA,EAAA,MAAA,GAAS,SAAA,GAAYT,SAAA,EAAQ;AAAA,GAAA,EAChD,CAAA;AAEJ;;;;"}
|
|
@@ -12,12 +12,12 @@ const codemirrorThemeDracula = require('@uiw/codemirror-theme-dracula');
|
|
|
12
12
|
const ReactCodeMirror = require('@uiw/react-codemirror');
|
|
13
13
|
const lucideReact = require('lucide-react');
|
|
14
14
|
const React = require('react');
|
|
15
|
-
const Button = require('./Button-
|
|
16
|
-
const buttonsGroup = require('./buttons-group-
|
|
17
|
-
const copyButton = require('./copy-button-
|
|
15
|
+
const Button = require('./Button-BJOVwaxp.cjs');
|
|
16
|
+
const buttonsGroup = require('./buttons-group-jq7kUVlX.cjs');
|
|
17
|
+
const copyButton = require('./copy-button-zLZfswrj.cjs');
|
|
18
18
|
const utils_cn = require('./cn-DnbTIGXa.cjs');
|
|
19
|
-
const dialog = require('./dialog-
|
|
20
|
-
const searchFieldBlock = require('./search-field-block-
|
|
19
|
+
const dialog = require('./dialog-B1DwyLJJ.cjs');
|
|
20
|
+
const searchFieldBlock = require('./search-field-block-DnJYUEGi.cjs');
|
|
21
21
|
const themeProvider = require('./theme-provider-aO5-jZVp.cjs');
|
|
22
22
|
|
|
23
23
|
function DataPanelSectionHeading({ icon, className, children }) {
|
|
@@ -361,4 +361,4 @@ function containsInnerNewline(obj) {
|
|
|
361
361
|
|
|
362
362
|
exports.DataCodeSection = DataCodeSection;
|
|
363
363
|
exports.DataPanelSectionHeading = DataPanelSectionHeading;
|
|
364
|
-
//# sourceMappingURL=data-code-section-
|
|
364
|
+
//# sourceMappingURL=data-code-section-BLvh46xK.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-code-section-BWaPQ6JT.cjs","sources":["../src/ds/components/DataPanel/data-panel-section-heading.tsx","../src/ds/components/DataCodeSection/data-code-section.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface DataPanelSectionHeadingProps {\n /** Optional leading icon. Rendered before `children` and sized via `[&>svg]:size-3.5`. */\n icon?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Section heading inside a DataPanel.Content (e.g. above a code block or a key-values list).\n * Used by `DataCodeSection` and any consumer that needs a matching small-caps label.\n */\nexport function DataPanelSectionHeading({ icon, className, children }: DataPanelSectionHeadingProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-ui-sm tracking-widest text-neutral2 uppercase [&>svg]:size-3.5',\n className,\n )}\n >\n {icon}\n {children}\n </div>\n );\n}\n","import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { Chunk } from '@codemirror/merge';\nimport { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder, Text } from '@codemirror/state';\nimport type { DecorationSet } from '@codemirror/view';\nimport { Decoration, EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon, ExpandIcon, XIcon } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataPanelSectionHeading } from '@/ds/components/DataPanel/data-panel-section-heading';\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from '@/ds/components/Dialog';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { cn } from '@/lib/utils';\n\n// -- Search highlight extension -----------------------------------------------\n\nconst setSearchQuery = StateEffect.define<string>();\n\nconst searchHighlightMark = Decoration.mark({ class: 'cm-search-match' });\n\nconst searchHighlightField = StateField.define<DecorationSet>({\n create() {\n return Decoration.none;\n },\n update(decorations, tr) {\n for (const effect of tr.effects) {\n if (effect.is(setSearchQuery)) {\n const query = effect.value;\n if (!query) return Decoration.none;\n const builder = new RangeSetBuilder<Decoration>();\n const cursor = new SearchCursor(tr.state.doc, query, 0, tr.state.doc.length, (a: string) => a.toLowerCase());\n while (!cursor.next().done) {\n builder.add(cursor.value.from, cursor.value.to, searchHighlightMark);\n }\n return builder.finish();\n }\n }\n return decorations;\n },\n provide: f => EditorView.decorations.from(f),\n});\n\nconst searchHighlightTheme = EditorView.baseTheme({\n '.cm-search-match': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 60%, transparent)',\n borderRadius: 'var(--radius-sm)',\n },\n});\n\nfunction searchHighlightExtension(): Extension {\n return [searchHighlightField, searchHighlightTheme];\n}\n\n// -- Diff highlight extension -------------------------------------------------\n\nexport interface DataCodeSectionDiff {\n /** The other document to compare against. */\n against: string;\n /** `a` = this document is the \"before\" (changes in red), `b` = \"after\" (changes in green). */\n side: 'a' | 'b';\n}\n\n// `EditorView.theme` (not baseTheme) so these win over the app theme's `.cm-activeLine { background: transparent }`.\nconst diffLineTheme = EditorView.theme({\n '.cm-line.cm-diff-removed, .cm-line.cm-diff-removed.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent2) 18%, transparent)',\n },\n '.cm-line.cm-diff-added, .cm-line.cm-diff-added.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 18%, transparent)',\n },\n});\n\nfunction diffHighlightExtension(doc: string, { against, side }: DataCodeSectionDiff): Extension {\n const [a, b] = side === 'a' ? [doc, against] : [against, doc];\n const text = Text.of(doc.split('\\n'));\n const line = Decoration.line({ class: side === 'a' ? 'cm-diff-removed' : 'cm-diff-added' });\n const builder = new RangeSetBuilder<Decoration>();\n for (const chunk of Chunk.build(Text.of(a.split('\\n')), Text.of(b.split('\\n')))) {\n const from = side === 'a' ? chunk.fromA : chunk.fromB;\n const to = side === 'a' ? chunk.endA : chunk.endB;\n if (from >= to) continue;\n for (let pos = from; pos <= Math.min(to, text.length);) {\n const l = text.lineAt(pos);\n builder.add(l.from, l.from, line);\n if (l.to >= to) break;\n pos = l.to + 1;\n }\n }\n return [EditorView.decorations.of(builder.finish()), diffLineTheme];\n}\n\n// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-ui-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\nfunction buildLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--neutral6)',\n fontSize: 'var(--text-ui-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--neutral2)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--neutral6)',\n caretColor: 'var(--neutral6)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--neutral6)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--neutral2)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\n// -- Component ----------------------------------------------------------------\n\nexport interface DataCodeSectionProps {\n title: React.ReactNode;\n dialogTitle?: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Highlight lines that differ from another document. */\n diff?: DataCodeSectionDiff;\n}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n diff,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const diffExtension = useMemo(() => (diff ? diffHighlightExtension(codeStr, diff) : []), [codeStr, diff]);\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const [searchMinimized, setSearchMinimized] = useState(true);\n const [searchQuery, setSearchQueryState] = useState('');\n const [expandedOpen, setExpandedOpen] = useState(false);\n const [expandedSearchQuery, setExpandedSearchQuery] = useState('');\n const [expandedMultiline, setExpandedMultiline] = useState(false);\n const editorRef = useRef<ReactCodeMirrorRef>(null);\n const expandedEditorRef = useRef<ReactCodeMirrorRef>(null);\n\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const dispatchSearch = useCallback((query: string) => {\n const view = editorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setSearchQueryState(val);\n dispatchSearch(val);\n },\n [dispatchSearch],\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchQueryState('');\n dispatchSearch('');\n }, [dispatchSearch]);\n\n const dispatchExpandedSearch = useCallback((query: string) => {\n const view = expandedEditorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleExpandedSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setExpandedSearchQuery(val);\n dispatchExpandedSearch(val);\n },\n [dispatchExpandedSearch],\n );\n\n const handleExpandedSearchReset = useCallback(() => {\n setExpandedSearchQuery('');\n dispatchExpandedSearch('');\n }, [dispatchExpandedSearch]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const expandedFinalCodeStr = expandedMultiline ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <DataPanelSectionHeading icon={icon}>{title}</DataPanelSectionHeading>\n <div className=\"flex items-center gap-2\">\n {!usePlainTextView && (\n <SearchFieldBlock\n name=\"code-section-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={handleSearchChange}\n onReset={handleSearchReset}\n size=\"sm\"\n isMinimized={searchMinimized}\n onMinimizedChange={setSearchMinimized}\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <Button size=\"sm\" aria-label=\"Expand\" tooltip=\"Expand\" onClick={() => setExpandedOpen(true)}>\n <ExpandIcon />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n {usePlainTextView ? (\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror\n ref={editorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n\n <Dialog open={expandedOpen} onOpenChange={setExpandedOpen}>\n <DialogContent className=\"grid h-[calc(100vh-6rem)]! max-w-[90vw]! grid-rows-[auto_1fr] [&>.absolute]:hidden\">\n <DialogHeader className=\"flex-row items-center justify-between\">\n <DialogTitle className=\"text-ui-sm flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5\">\n {dialogTitle ?? (\n <>\n {icon}\n {title}\n </>\n )}\n </DialogTitle>\n <DialogDescription>Expanded code view</DialogDescription>\n <div className=\"flex shrink-0 items-center gap-2\">\n {!expandedMultiline && (\n <SearchFieldBlock\n name=\"expanded-code-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={expandedSearchQuery}\n onChange={handleExpandedSearchChange}\n onReset={handleExpandedSearchReset}\n size=\"sm\"\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setExpandedMultiline(v => !v)}\n >\n {expandedMultiline ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <DialogClose asChild>\n <Button size=\"sm\" aria-label=\"Close\" tooltip=\"Close\">\n <XIcon />\n </Button>\n </DialogClose>\n </ButtonsGroup>\n </div>\n </DialogHeader>\n <div className=\"overflow-auto px-6 pb-6\">\n {expandedMultiline ? (\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <ReactCodeMirror\n ref={expandedEditorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n"],"names":["jsxs","cn","StateEffect","Decoration","StateField","RangeSetBuilder","SearchCursor","EditorView","Text","Chunk","draculaInit","t","HighlightStyle","syntaxHighlighting","useTheme","useMemo","useState","useRef","useCallback","jsx","SearchFieldBlock","ButtonsGroup","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","ExpandIcon","json","Dialog","DialogContent","DialogHeader","DialogTitle","Fragment","DialogDescription","DialogClose","XIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-code-section-BLvh46xK.cjs","sources":["../src/ds/components/DataPanel/data-panel-section-heading.tsx","../src/ds/components/DataCodeSection/data-code-section.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface DataPanelSectionHeadingProps {\n /** Optional leading icon. Rendered before `children` and sized via `[&>svg]:size-3.5`. */\n icon?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Section heading inside a DataPanel.Content (e.g. above a code block or a key-values list).\n * Used by `DataCodeSection` and any consumer that needs a matching small-caps label.\n */\nexport function DataPanelSectionHeading({ icon, className, children }: DataPanelSectionHeadingProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-ui-sm tracking-widest text-neutral2 uppercase [&>svg]:size-3.5',\n className,\n )}\n >\n {icon}\n {children}\n </div>\n );\n}\n","import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { Chunk } from '@codemirror/merge';\nimport { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder, Text } from '@codemirror/state';\nimport type { DecorationSet } from '@codemirror/view';\nimport { Decoration, EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon, ExpandIcon, XIcon } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataPanelSectionHeading } from '@/ds/components/DataPanel/data-panel-section-heading';\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from '@/ds/components/Dialog';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { cn } from '@/lib/utils';\n\n// -- Search highlight extension -----------------------------------------------\n\nconst setSearchQuery = StateEffect.define<string>();\n\nconst searchHighlightMark = Decoration.mark({ class: 'cm-search-match' });\n\nconst searchHighlightField = StateField.define<DecorationSet>({\n create() {\n return Decoration.none;\n },\n update(decorations, tr) {\n for (const effect of tr.effects) {\n if (effect.is(setSearchQuery)) {\n const query = effect.value;\n if (!query) return Decoration.none;\n const builder = new RangeSetBuilder<Decoration>();\n const cursor = new SearchCursor(tr.state.doc, query, 0, tr.state.doc.length, (a: string) => a.toLowerCase());\n while (!cursor.next().done) {\n builder.add(cursor.value.from, cursor.value.to, searchHighlightMark);\n }\n return builder.finish();\n }\n }\n return decorations;\n },\n provide: f => EditorView.decorations.from(f),\n});\n\nconst searchHighlightTheme = EditorView.baseTheme({\n '.cm-search-match': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 60%, transparent)',\n borderRadius: 'var(--radius-sm)',\n },\n});\n\nfunction searchHighlightExtension(): Extension {\n return [searchHighlightField, searchHighlightTheme];\n}\n\n// -- Diff highlight extension -------------------------------------------------\n\nexport interface DataCodeSectionDiff {\n /** The other document to compare against. */\n against: string;\n /** `a` = this document is the \"before\" (changes in red), `b` = \"after\" (changes in green). */\n side: 'a' | 'b';\n}\n\n// `EditorView.theme` (not baseTheme) so these win over the app theme's `.cm-activeLine { background: transparent }`.\nconst diffLineTheme = EditorView.theme({\n '.cm-line.cm-diff-removed, .cm-line.cm-diff-removed.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent2) 18%, transparent)',\n },\n '.cm-line.cm-diff-added, .cm-line.cm-diff-added.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 18%, transparent)',\n },\n});\n\nfunction diffHighlightExtension(doc: string, { against, side }: DataCodeSectionDiff): Extension {\n const [a, b] = side === 'a' ? [doc, against] : [against, doc];\n const text = Text.of(doc.split('\\n'));\n const line = Decoration.line({ class: side === 'a' ? 'cm-diff-removed' : 'cm-diff-added' });\n const builder = new RangeSetBuilder<Decoration>();\n for (const chunk of Chunk.build(Text.of(a.split('\\n')), Text.of(b.split('\\n')))) {\n const from = side === 'a' ? chunk.fromA : chunk.fromB;\n const to = side === 'a' ? chunk.endA : chunk.endB;\n if (from >= to) continue;\n for (let pos = from; pos <= Math.min(to, text.length);) {\n const l = text.lineAt(pos);\n builder.add(l.from, l.from, line);\n if (l.to >= to) break;\n pos = l.to + 1;\n }\n }\n return [EditorView.decorations.of(builder.finish()), diffLineTheme];\n}\n\n// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-ui-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\nfunction buildLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--neutral6)',\n fontSize: 'var(--text-ui-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--neutral2)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--neutral6)',\n caretColor: 'var(--neutral6)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--neutral6)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--neutral2)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\n// -- Component ----------------------------------------------------------------\n\nexport interface DataCodeSectionProps {\n title: React.ReactNode;\n dialogTitle?: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Highlight lines that differ from another document. */\n diff?: DataCodeSectionDiff;\n}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n diff,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const diffExtension = useMemo(() => (diff ? diffHighlightExtension(codeStr, diff) : []), [codeStr, diff]);\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const [searchMinimized, setSearchMinimized] = useState(true);\n const [searchQuery, setSearchQueryState] = useState('');\n const [expandedOpen, setExpandedOpen] = useState(false);\n const [expandedSearchQuery, setExpandedSearchQuery] = useState('');\n const [expandedMultiline, setExpandedMultiline] = useState(false);\n const editorRef = useRef<ReactCodeMirrorRef>(null);\n const expandedEditorRef = useRef<ReactCodeMirrorRef>(null);\n\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const dispatchSearch = useCallback((query: string) => {\n const view = editorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setSearchQueryState(val);\n dispatchSearch(val);\n },\n [dispatchSearch],\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchQueryState('');\n dispatchSearch('');\n }, [dispatchSearch]);\n\n const dispatchExpandedSearch = useCallback((query: string) => {\n const view = expandedEditorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleExpandedSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setExpandedSearchQuery(val);\n dispatchExpandedSearch(val);\n },\n [dispatchExpandedSearch],\n );\n\n const handleExpandedSearchReset = useCallback(() => {\n setExpandedSearchQuery('');\n dispatchExpandedSearch('');\n }, [dispatchExpandedSearch]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const expandedFinalCodeStr = expandedMultiline ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <DataPanelSectionHeading icon={icon}>{title}</DataPanelSectionHeading>\n <div className=\"flex items-center gap-2\">\n {!usePlainTextView && (\n <SearchFieldBlock\n name=\"code-section-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={handleSearchChange}\n onReset={handleSearchReset}\n size=\"sm\"\n isMinimized={searchMinimized}\n onMinimizedChange={setSearchMinimized}\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <Button size=\"sm\" aria-label=\"Expand\" tooltip=\"Expand\" onClick={() => setExpandedOpen(true)}>\n <ExpandIcon />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n {usePlainTextView ? (\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror\n ref={editorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n\n <Dialog open={expandedOpen} onOpenChange={setExpandedOpen}>\n <DialogContent className=\"grid h-[calc(100vh-6rem)]! max-w-[90vw]! grid-rows-[auto_1fr] [&>.absolute]:hidden\">\n <DialogHeader className=\"flex-row items-center justify-between\">\n <DialogTitle className=\"text-ui-sm flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5\">\n {dialogTitle ?? (\n <>\n {icon}\n {title}\n </>\n )}\n </DialogTitle>\n <DialogDescription>Expanded code view</DialogDescription>\n <div className=\"flex shrink-0 items-center gap-2\">\n {!expandedMultiline && (\n <SearchFieldBlock\n name=\"expanded-code-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={expandedSearchQuery}\n onChange={handleExpandedSearchChange}\n onReset={handleExpandedSearchReset}\n size=\"sm\"\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setExpandedMultiline(v => !v)}\n >\n {expandedMultiline ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <DialogClose asChild>\n <Button size=\"sm\" aria-label=\"Close\" tooltip=\"Close\">\n <XIcon />\n </Button>\n </DialogClose>\n </ButtonsGroup>\n </div>\n </DialogHeader>\n <div className=\"overflow-auto px-6 pb-6\">\n {expandedMultiline ? (\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <ReactCodeMirror\n ref={expandedEditorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n"],"names":["jsxs","cn","StateEffect","Decoration","StateField","RangeSetBuilder","SearchCursor","EditorView","Text","Chunk","draculaInit","t","HighlightStyle","syntaxHighlighting","useTheme","useMemo","useState","useRef","useCallback","jsx","SearchFieldBlock","ButtonsGroup","CopyButton","Button","AlignLeftIcon","AlignJustifyIcon","ExpandIcon","json","Dialog","DialogContent","DialogHeader","DialogTitle","Fragment","DialogDescription","DialogClose","XIcon"],"mappings":"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"}
|
|
@@ -10,12 +10,12 @@ import { draculaInit } from '@uiw/codemirror-theme-dracula';
|
|
|
10
10
|
import ReactCodeMirror from '@uiw/react-codemirror';
|
|
11
11
|
import { AlignLeftIcon, AlignJustifyIcon, ExpandIcon, XIcon } from 'lucide-react';
|
|
12
12
|
import { useMemo, useState, useRef, useCallback } from 'react';
|
|
13
|
-
import { B as Button } from './Button-
|
|
14
|
-
import { B as ButtonsGroup } from './buttons-group-
|
|
15
|
-
import { C as CopyButton } from './copy-button-
|
|
13
|
+
import { B as Button } from './Button-BVGwYwHT.js';
|
|
14
|
+
import { B as ButtonsGroup } from './buttons-group-CHyXDQBp.js';
|
|
15
|
+
import { C as CopyButton } from './copy-button-ChUCFd-x.js';
|
|
16
16
|
import { c as cn } from './cn-ByEbywDh.js';
|
|
17
|
-
import { D as Dialog, a as DialogContent, b as DialogHeader, c as DialogTitle, d as DialogDescription, j as DialogClose } from './dialog-
|
|
18
|
-
import { S as SearchFieldBlock } from './search-field-block-
|
|
17
|
+
import { D as Dialog, a as DialogContent, b as DialogHeader, c as DialogTitle, d as DialogDescription, j as DialogClose } from './dialog-Dfrt_JCJ.js';
|
|
18
|
+
import { S as SearchFieldBlock } from './search-field-block-DhgD7NhZ.js';
|
|
19
19
|
import { u as useTheme } from './theme-provider-C9ih9jSS.js';
|
|
20
20
|
|
|
21
21
|
function DataPanelSectionHeading({ icon, className, children }) {
|
|
@@ -358,4 +358,4 @@ function containsInnerNewline(obj) {
|
|
|
358
358
|
}
|
|
359
359
|
|
|
360
360
|
export { DataCodeSection as D, DataPanelSectionHeading as a };
|
|
361
|
-
//# sourceMappingURL=data-code-section-
|
|
361
|
+
//# sourceMappingURL=data-code-section-DSelBhmP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-code-section-EmqjYVh1.js","sources":["../src/ds/components/DataPanel/data-panel-section-heading.tsx","../src/ds/components/DataCodeSection/data-code-section.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface DataPanelSectionHeadingProps {\n /** Optional leading icon. Rendered before `children` and sized via `[&>svg]:size-3.5`. */\n icon?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Section heading inside a DataPanel.Content (e.g. above a code block or a key-values list).\n * Used by `DataCodeSection` and any consumer that needs a matching small-caps label.\n */\nexport function DataPanelSectionHeading({ icon, className, children }: DataPanelSectionHeadingProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-ui-sm tracking-widest text-neutral2 uppercase [&>svg]:size-3.5',\n className,\n )}\n >\n {icon}\n {children}\n </div>\n );\n}\n","import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { Chunk } from '@codemirror/merge';\nimport { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder, Text } from '@codemirror/state';\nimport type { DecorationSet } from '@codemirror/view';\nimport { Decoration, EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon, ExpandIcon, XIcon } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataPanelSectionHeading } from '@/ds/components/DataPanel/data-panel-section-heading';\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from '@/ds/components/Dialog';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { cn } from '@/lib/utils';\n\n// -- Search highlight extension -----------------------------------------------\n\nconst setSearchQuery = StateEffect.define<string>();\n\nconst searchHighlightMark = Decoration.mark({ class: 'cm-search-match' });\n\nconst searchHighlightField = StateField.define<DecorationSet>({\n create() {\n return Decoration.none;\n },\n update(decorations, tr) {\n for (const effect of tr.effects) {\n if (effect.is(setSearchQuery)) {\n const query = effect.value;\n if (!query) return Decoration.none;\n const builder = new RangeSetBuilder<Decoration>();\n const cursor = new SearchCursor(tr.state.doc, query, 0, tr.state.doc.length, (a: string) => a.toLowerCase());\n while (!cursor.next().done) {\n builder.add(cursor.value.from, cursor.value.to, searchHighlightMark);\n }\n return builder.finish();\n }\n }\n return decorations;\n },\n provide: f => EditorView.decorations.from(f),\n});\n\nconst searchHighlightTheme = EditorView.baseTheme({\n '.cm-search-match': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 60%, transparent)',\n borderRadius: 'var(--radius-sm)',\n },\n});\n\nfunction searchHighlightExtension(): Extension {\n return [searchHighlightField, searchHighlightTheme];\n}\n\n// -- Diff highlight extension -------------------------------------------------\n\nexport interface DataCodeSectionDiff {\n /** The other document to compare against. */\n against: string;\n /** `a` = this document is the \"before\" (changes in red), `b` = \"after\" (changes in green). */\n side: 'a' | 'b';\n}\n\n// `EditorView.theme` (not baseTheme) so these win over the app theme's `.cm-activeLine { background: transparent }`.\nconst diffLineTheme = EditorView.theme({\n '.cm-line.cm-diff-removed, .cm-line.cm-diff-removed.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent2) 18%, transparent)',\n },\n '.cm-line.cm-diff-added, .cm-line.cm-diff-added.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 18%, transparent)',\n },\n});\n\nfunction diffHighlightExtension(doc: string, { against, side }: DataCodeSectionDiff): Extension {\n const [a, b] = side === 'a' ? [doc, against] : [against, doc];\n const text = Text.of(doc.split('\\n'));\n const line = Decoration.line({ class: side === 'a' ? 'cm-diff-removed' : 'cm-diff-added' });\n const builder = new RangeSetBuilder<Decoration>();\n for (const chunk of Chunk.build(Text.of(a.split('\\n')), Text.of(b.split('\\n')))) {\n const from = side === 'a' ? chunk.fromA : chunk.fromB;\n const to = side === 'a' ? chunk.endA : chunk.endB;\n if (from >= to) continue;\n for (let pos = from; pos <= Math.min(to, text.length);) {\n const l = text.lineAt(pos);\n builder.add(l.from, l.from, line);\n if (l.to >= to) break;\n pos = l.to + 1;\n }\n }\n return [EditorView.decorations.of(builder.finish()), diffLineTheme];\n}\n\n// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-ui-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\nfunction buildLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--neutral6)',\n fontSize: 'var(--text-ui-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--neutral2)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--neutral6)',\n caretColor: 'var(--neutral6)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--neutral6)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--neutral2)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\n// -- Component ----------------------------------------------------------------\n\nexport interface DataCodeSectionProps {\n title: React.ReactNode;\n dialogTitle?: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Highlight lines that differ from another document. */\n diff?: DataCodeSectionDiff;\n}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n diff,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const diffExtension = useMemo(() => (diff ? diffHighlightExtension(codeStr, diff) : []), [codeStr, diff]);\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const [searchMinimized, setSearchMinimized] = useState(true);\n const [searchQuery, setSearchQueryState] = useState('');\n const [expandedOpen, setExpandedOpen] = useState(false);\n const [expandedSearchQuery, setExpandedSearchQuery] = useState('');\n const [expandedMultiline, setExpandedMultiline] = useState(false);\n const editorRef = useRef<ReactCodeMirrorRef>(null);\n const expandedEditorRef = useRef<ReactCodeMirrorRef>(null);\n\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const dispatchSearch = useCallback((query: string) => {\n const view = editorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setSearchQueryState(val);\n dispatchSearch(val);\n },\n [dispatchSearch],\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchQueryState('');\n dispatchSearch('');\n }, [dispatchSearch]);\n\n const dispatchExpandedSearch = useCallback((query: string) => {\n const view = expandedEditorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleExpandedSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setExpandedSearchQuery(val);\n dispatchExpandedSearch(val);\n },\n [dispatchExpandedSearch],\n );\n\n const handleExpandedSearchReset = useCallback(() => {\n setExpandedSearchQuery('');\n dispatchExpandedSearch('');\n }, [dispatchExpandedSearch]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const expandedFinalCodeStr = expandedMultiline ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <DataPanelSectionHeading icon={icon}>{title}</DataPanelSectionHeading>\n <div className=\"flex items-center gap-2\">\n {!usePlainTextView && (\n <SearchFieldBlock\n name=\"code-section-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={handleSearchChange}\n onReset={handleSearchReset}\n size=\"sm\"\n isMinimized={searchMinimized}\n onMinimizedChange={setSearchMinimized}\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <Button size=\"sm\" aria-label=\"Expand\" tooltip=\"Expand\" onClick={() => setExpandedOpen(true)}>\n <ExpandIcon />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n {usePlainTextView ? (\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror\n ref={editorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n\n <Dialog open={expandedOpen} onOpenChange={setExpandedOpen}>\n <DialogContent className=\"grid h-[calc(100vh-6rem)]! max-w-[90vw]! grid-rows-[auto_1fr] [&>.absolute]:hidden\">\n <DialogHeader className=\"flex-row items-center justify-between\">\n <DialogTitle className=\"text-ui-sm flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5\">\n {dialogTitle ?? (\n <>\n {icon}\n {title}\n </>\n )}\n </DialogTitle>\n <DialogDescription>Expanded code view</DialogDescription>\n <div className=\"flex shrink-0 items-center gap-2\">\n {!expandedMultiline && (\n <SearchFieldBlock\n name=\"expanded-code-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={expandedSearchQuery}\n onChange={handleExpandedSearchChange}\n onReset={handleExpandedSearchReset}\n size=\"sm\"\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setExpandedMultiline(v => !v)}\n >\n {expandedMultiline ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <DialogClose asChild>\n <Button size=\"sm\" aria-label=\"Close\" tooltip=\"Close\">\n <XIcon />\n </Button>\n </DialogClose>\n </ButtonsGroup>\n </div>\n </DialogHeader>\n <div className=\"overflow-auto px-6 pb-6\">\n {expandedMultiline ? (\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <ReactCodeMirror\n ref={expandedEditorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n"],"names":["t"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-code-section-DSelBhmP.js","sources":["../src/ds/components/DataPanel/data-panel-section-heading.tsx","../src/ds/components/DataCodeSection/data-code-section.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface DataPanelSectionHeadingProps {\n /** Optional leading icon. Rendered before `children` and sized via `[&>svg]:size-3.5`. */\n icon?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Section heading inside a DataPanel.Content (e.g. above a code block or a key-values list).\n * Used by `DataCodeSection` and any consumer that needs a matching small-caps label.\n */\nexport function DataPanelSectionHeading({ icon, className, children }: DataPanelSectionHeadingProps) {\n return (\n <div\n className={cn(\n 'flex items-center gap-1.5 text-ui-sm tracking-widest text-neutral2 uppercase [&>svg]:size-3.5',\n className,\n )}\n >\n {icon}\n {children}\n </div>\n );\n}\n","import { json } from '@codemirror/lang-json';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { Chunk } from '@codemirror/merge';\nimport { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder, Text } from '@codemirror/state';\nimport type { DecorationSet } from '@codemirror/view';\nimport { Decoration, EditorView } from '@codemirror/view';\nimport { tags as t } from '@lezer/highlight';\nimport { draculaInit } from '@uiw/codemirror-theme-dracula';\nimport type { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport ReactCodeMirror from '@uiw/react-codemirror';\nimport { AlignJustifyIcon, AlignLeftIcon, ExpandIcon, XIcon } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataPanelSectionHeading } from '@/ds/components/DataPanel/data-panel-section-heading';\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n} from '@/ds/components/Dialog';\nimport { SearchFieldBlock } from '@/ds/components/FormFieldBlocks/fields/search-field-block';\nimport { useTheme } from '@/ds/components/ThemeProvider';\nimport { cn } from '@/lib/utils';\n\n// -- Search highlight extension -----------------------------------------------\n\nconst setSearchQuery = StateEffect.define<string>();\n\nconst searchHighlightMark = Decoration.mark({ class: 'cm-search-match' });\n\nconst searchHighlightField = StateField.define<DecorationSet>({\n create() {\n return Decoration.none;\n },\n update(decorations, tr) {\n for (const effect of tr.effects) {\n if (effect.is(setSearchQuery)) {\n const query = effect.value;\n if (!query) return Decoration.none;\n const builder = new RangeSetBuilder<Decoration>();\n const cursor = new SearchCursor(tr.state.doc, query, 0, tr.state.doc.length, (a: string) => a.toLowerCase());\n while (!cursor.next().done) {\n builder.add(cursor.value.from, cursor.value.to, searchHighlightMark);\n }\n return builder.finish();\n }\n }\n return decorations;\n },\n provide: f => EditorView.decorations.from(f),\n});\n\nconst searchHighlightTheme = EditorView.baseTheme({\n '.cm-search-match': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 60%, transparent)',\n borderRadius: 'var(--radius-sm)',\n },\n});\n\nfunction searchHighlightExtension(): Extension {\n return [searchHighlightField, searchHighlightTheme];\n}\n\n// -- Diff highlight extension -------------------------------------------------\n\nexport interface DataCodeSectionDiff {\n /** The other document to compare against. */\n against: string;\n /** `a` = this document is the \"before\" (changes in red), `b` = \"after\" (changes in green). */\n side: 'a' | 'b';\n}\n\n// `EditorView.theme` (not baseTheme) so these win over the app theme's `.cm-activeLine { background: transparent }`.\nconst diffLineTheme = EditorView.theme({\n '.cm-line.cm-diff-removed, .cm-line.cm-diff-removed.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent2) 18%, transparent)',\n },\n '.cm-line.cm-diff-added, .cm-line.cm-diff-added.cm-activeLine': {\n backgroundColor: 'color-mix(in srgb, var(--accent1) 18%, transparent)',\n },\n});\n\nfunction diffHighlightExtension(doc: string, { against, side }: DataCodeSectionDiff): Extension {\n const [a, b] = side === 'a' ? [doc, against] : [against, doc];\n const text = Text.of(doc.split('\\n'));\n const line = Decoration.line({ class: side === 'a' ? 'cm-diff-removed' : 'cm-diff-added' });\n const builder = new RangeSetBuilder<Decoration>();\n for (const chunk of Chunk.build(Text.of(a.split('\\n')), Text.of(b.split('\\n')))) {\n const from = side === 'a' ? chunk.fromA : chunk.fromB;\n const to = side === 'a' ? chunk.endA : chunk.endB;\n if (from >= to) continue;\n for (let pos = from; pos <= Math.min(to, text.length);) {\n const l = text.lineAt(pos);\n builder.add(l.from, l.from, line);\n if (l.to >= to) break;\n pos = l.to + 1;\n }\n }\n return [EditorView.decorations.of(builder.finish()), diffLineTheme];\n}\n\n// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: 'var(--text-ui-sm)',\n lineHighlight: 'transparent',\n gutterBackground: 'transparent',\n gutterForeground: '#939393',\n background: 'transparent',\n },\n styles: [{ tag: [t.className, t.propertyName] }],\n });\n}\n\nfunction buildLightTheme(): Extension {\n const editorTheme = EditorView.theme({\n '&': {\n backgroundColor: 'transparent',\n color: 'var(--neutral6)',\n fontSize: 'var(--text-ui-sm)',\n },\n '&.cm-editor .cm-scroller': {\n fontFamily: 'var(--font-mono)',\n },\n '.cm-gutters': {\n backgroundColor: 'transparent',\n color: 'var(--neutral2)',\n borderRight: 'none',\n },\n '.cm-content': {\n color: 'var(--neutral6)',\n caretColor: 'var(--neutral6)',\n },\n '.cm-activeLine': {\n backgroundColor: 'transparent',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--neutral6)',\n },\n });\n\n const highlightStyle = HighlightStyle.define([\n { tag: [t.comment, t.bracket], color: 'var(--neutral2)' },\n { tag: [t.string, t.meta, t.regexp], color: 'var(--accent1)' },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'var(--accent6)' },\n { tag: [t.keyword, t.operator, t.tagName], color: 'var(--accent2)' },\n { tag: [t.function(t.propertyName), t.propertyName], color: 'var(--accent5)' },\n {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: 'var(--accent3)',\n },\n { tag: [t.variableName, t.number], color: 'var(--accent5)' },\n { tag: [t.name, t.quote], color: 'var(--accent1)' },\n ]);\n\n return [editorTheme, syntaxHighlighting(highlightStyle)];\n}\n\nconst useCodemirrorTheme = (): Extension => {\n const isDark = useTheme().resolvedTheme === 'dark';\n return useMemo(() => (isDark ? buildDarkTheme() : buildLightTheme()), [isDark]);\n};\n\n// -- Component ----------------------------------------------------------------\n\nexport interface DataCodeSectionProps {\n title: React.ReactNode;\n dialogTitle?: React.ReactNode;\n icon?: React.ReactNode;\n codeStr?: string;\n simplified?: boolean;\n className?: string;\n /** Highlight lines that differ from another document. */\n diff?: DataCodeSectionDiff;\n}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n diff,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\n const diffExtension = useMemo(() => (diff ? diffHighlightExtension(codeStr, diff) : []), [codeStr, diff]);\n const [showAsMultilineText, setShowAsMultilineText] = useState(false);\n const [searchMinimized, setSearchMinimized] = useState(true);\n const [searchQuery, setSearchQueryState] = useState('');\n const [expandedOpen, setExpandedOpen] = useState(false);\n const [expandedSearchQuery, setExpandedSearchQuery] = useState('');\n const [expandedMultiline, setExpandedMultiline] = useState(false);\n const editorRef = useRef<ReactCodeMirrorRef>(null);\n const expandedEditorRef = useRef<ReactCodeMirrorRef>(null);\n\n const hasMultilineText = useMemo(() => {\n try {\n const parsed = JSON.parse(codeStr);\n return containsInnerNewline(parsed || '');\n } catch {\n return false;\n }\n }, [codeStr]);\n\n const dispatchSearch = useCallback((query: string) => {\n const view = editorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setSearchQueryState(val);\n dispatchSearch(val);\n },\n [dispatchSearch],\n );\n\n const handleSearchReset = useCallback(() => {\n setSearchQueryState('');\n dispatchSearch('');\n }, [dispatchSearch]);\n\n const dispatchExpandedSearch = useCallback((query: string) => {\n const view = expandedEditorRef.current?.view;\n if (view) {\n view.dispatch({ effects: setSearchQuery.of(query) });\n if (query) {\n const cursor = new SearchCursor(view.state.doc, query, 0, view.state.doc.length, (a: string) =>\n a.toLowerCase(),\n );\n if (!cursor.next().done) {\n view.dispatch({\n selection: { anchor: cursor.value.from },\n scrollIntoView: true,\n });\n }\n }\n }\n }, []);\n\n const handleExpandedSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n setExpandedSearchQuery(val);\n dispatchExpandedSearch(val);\n },\n [dispatchExpandedSearch],\n );\n\n const handleExpandedSearchReset = useCallback(() => {\n setExpandedSearchQuery('');\n dispatchExpandedSearch('');\n }, [dispatchExpandedSearch]);\n\n const finalCodeStr = showAsMultilineText ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const expandedFinalCodeStr = expandedMultiline ? codeStr?.replace(/\\\\n/g, '\\n') : codeStr;\n const usePlainTextView = simplified || showAsMultilineText;\n\n if (!codeStr || codeStr === 'null') return null;\n\n return (\n <div className={cn('flex flex-col gap-2', className)}>\n <div className=\"flex items-center justify-between\">\n <DataPanelSectionHeading icon={icon}>{title}</DataPanelSectionHeading>\n <div className=\"flex items-center gap-2\">\n {!usePlainTextView && (\n <SearchFieldBlock\n name=\"code-section-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={handleSearchChange}\n onReset={handleSearchReset}\n size=\"sm\"\n isMinimized={searchMinimized}\n onMinimizedChange={setSearchMinimized}\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={showAsMultilineText ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setShowAsMultilineText(v => !v)}\n >\n {showAsMultilineText ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <Button size=\"sm\" aria-label=\"Expand\" tooltip=\"Expand\" onClick={() => setExpandedOpen(true)}>\n <ExpandIcon />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n {usePlainTextView ? (\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror\n ref={editorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n\n <Dialog open={expandedOpen} onOpenChange={setExpandedOpen}>\n <DialogContent className=\"grid h-[calc(100vh-6rem)]! max-w-[90vw]! grid-rows-[auto_1fr] [&>.absolute]:hidden\">\n <DialogHeader className=\"flex-row items-center justify-between\">\n <DialogTitle className=\"text-ui-sm flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5\">\n {dialogTitle ?? (\n <>\n {icon}\n {title}\n </>\n )}\n </DialogTitle>\n <DialogDescription>Expanded code view</DialogDescription>\n <div className=\"flex shrink-0 items-center gap-2\">\n {!expandedMultiline && (\n <SearchFieldBlock\n name=\"expanded-code-search\"\n label=\"Search code\"\n labelIsHidden\n placeholder=\"Search...\"\n value={expandedSearchQuery}\n onChange={handleExpandedSearchChange}\n onReset={handleExpandedSearchReset}\n size=\"sm\"\n />\n )}\n <ButtonsGroup>\n <CopyButton content={codeStr || 'No content'} size=\"sm\" />\n {hasMultilineText && (\n <Button\n size=\"sm\"\n aria-label={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n tooltip={expandedMultiline ? 'Show escaped newlines' : 'Show multiline text'}\n onClick={() => setExpandedMultiline(v => !v)}\n >\n {expandedMultiline ? <AlignLeftIcon /> : <AlignJustifyIcon />}\n </Button>\n )}\n <DialogClose asChild>\n <Button size=\"sm\" aria-label=\"Close\" tooltip=\"Close\">\n <XIcon />\n </Button>\n </DialogClose>\n </ButtonsGroup>\n </div>\n </DialogHeader>\n <div className=\"overflow-auto px-6 pb-6\">\n {expandedMultiline ? (\n <div className=\"border-border1 bg-surface3 text-ui-sm text-neutral4 overflow-hidden overflow-y-auto rounded-lg border p-3 break-all dark:border-white/10 dark:bg-black/20\">\n <div className=\"text-neutral4 font-mono break-all\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <ReactCodeMirror\n ref={expandedEditorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension(), diffExtension]}\n theme={theme}\n value={codeStr}\n editable={false}\n />\n )}\n </div>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction containsInnerNewline(obj: unknown): boolean {\n if (typeof obj === 'string') {\n const idx = obj.indexOf('\\n');\n return idx !== -1 && idx !== obj.length - 1;\n } else if (Array.isArray(obj)) {\n return obj.some(item => containsInnerNewline(item));\n } else if (obj && typeof obj === 'object') {\n return Object.values(obj).some(value => containsInnerNewline(value));\n }\n return false;\n}\n"],"names":["t"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const dataListTop = require('./data-list-top-
|
|
3
|
+
const dataListTop = require('./data-list-top-D9zFnKEi.cjs');
|
|
4
4
|
const jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
const lucideReact = require('lucide-react');
|
|
6
|
-
const Button = require('./Button-
|
|
6
|
+
const Button = require('./Button-BJOVwaxp.cjs');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const utils_cn = require('./cn-DnbTIGXa.cjs');
|
|
9
9
|
const primitives_transitions = require('./primitives/transitions.cjs.js');
|
|
@@ -180,4 +180,4 @@ const DataList = Object.assign(dataListTop.DataListRoot, {
|
|
|
180
180
|
exports.DataList = DataList;
|
|
181
181
|
exports.DataListSubHeading = DataListSubHeading;
|
|
182
182
|
exports.DataListSubheader = DataListSubheader;
|
|
183
|
-
//# sourceMappingURL=data-list-
|
|
183
|
+
//# sourceMappingURL=data-list-4_cVlINT.cjs.map
|