@mastra/playground-ui 43.0.0-alpha.1 → 43.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/{Button-B5RnKrGb.cjs → Button-Bm94fEF2.cjs} +2 -2
- package/dist/{Button-B5RnKrGb.cjs.map → Button-Bm94fEF2.cjs.map} +1 -1
- package/dist/{Button-Dh5CZ6Ir.js → Button-Bx2lFdqb.js} +2 -2
- package/dist/{Button-Dh5CZ6Ir.js.map → Button-Bx2lFdqb.js.map} +1 -1
- package/dist/{EmptyState-C0TShKF9.js → EmptyState-BLd-LJOA.js} +3 -3
- package/dist/{EmptyState-C0TShKF9.js.map → EmptyState-BLd-LJOA.js.map} +1 -1
- package/dist/{EmptyState-CDPLdgbs.cjs → EmptyState-sff7IGrD.cjs} +3 -3
- package/dist/{EmptyState-CDPLdgbs.cjs.map → EmptyState-sff7IGrD.cjs.map} +1 -1
- package/dist/{ErrorState-4TTbwyNs.cjs → ErrorState-DvsG3RMz.cjs} +3 -3
- package/dist/{ErrorState-4TTbwyNs.cjs.map → ErrorState-DvsG3RMz.cjs.map} +1 -1
- package/dist/{ErrorState-D1uTstEy.js → ErrorState-t59EAa55.js} +3 -3
- package/dist/{ErrorState-D1uTstEy.js.map → ErrorState-t59EAa55.js.map} +1 -1
- package/dist/{Notice-WhHdy89l.cjs → Notice-D7mbkdZW.cjs} +2 -2
- package/dist/{Notice-WhHdy89l.cjs.map → Notice-D7mbkdZW.cjs.map} +1 -1
- package/dist/{Notice-jmHNt3gS.js → Notice-zWRcxcM3.js} +2 -2
- package/dist/{Notice-jmHNt3gS.js.map → Notice-zWRcxcM3.js.map} +1 -1
- package/dist/{PermissionDenied-C7lur6xI.js → PermissionDenied-8otNeK_X.js} +2 -2
- package/dist/{PermissionDenied-C7lur6xI.js.map → PermissionDenied-8otNeK_X.js.map} +1 -1
- package/dist/{PermissionDenied-Cao8jHEU.cjs → PermissionDenied-Dtre6Wn1.cjs} +2 -2
- package/dist/{PermissionDenied-Cao8jHEU.cjs.map → PermissionDenied-Dtre6Wn1.cjs.map} +1 -1
- package/dist/{SessionExpired-DEJgiQcL.cjs → SessionExpired-C5ADs4NL.cjs} +3 -3
- package/dist/{SessionExpired-DEJgiQcL.cjs.map → SessionExpired-C5ADs4NL.cjs.map} +1 -1
- package/dist/{SessionExpired-C0PdcdCr.js → SessionExpired-CHF__hq9.js} +3 -3
- package/dist/{SessionExpired-C0PdcdCr.js.map → SessionExpired-CHF__hq9.js.map} +1 -1
- package/dist/{code-diff-BpD8McFU.js → code-diff-BB4sqHpq.js} +3 -3
- package/dist/{code-diff-BpD8McFU.js.map → code-diff-BB4sqHpq.js.map} +1 -1
- package/dist/{code-diff-B1JxR3PF.cjs → code-diff-C-EHXZyK.cjs} +3 -3
- package/dist/{code-diff-B1JxR3PF.cjs.map → code-diff-C-EHXZyK.cjs.map} +1 -1
- package/dist/{combobox-54Hywnf9.cjs → combobox-DXwbHjvQ.cjs} +2 -2
- package/dist/{combobox-54Hywnf9.cjs.map → combobox-DXwbHjvQ.cjs.map} +1 -1
- package/dist/{combobox-CBvs2ZPx.js → combobox-sa_Pxyl4.js} +2 -2
- package/dist/{combobox-CBvs2ZPx.js.map → combobox-sa_Pxyl4.js.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +8 -8
- package/dist/components/CodeBlock.cjs.js.map +1 -1
- package/dist/components/CodeBlock.es.js +8 -8
- package/dist/components/CodeBlock.es.js.map +1 -1
- package/dist/components/CodeDiff.cjs.js +1 -1
- package/dist/components/CodeDiff.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 +4 -4
- package/dist/components/Command.cjs.js.map +1 -1
- package/dist/components/Command.es.js +4 -4
- package/dist/components/Command.es.js.map +1 -1
- package/dist/components/Composer.cjs.js +5 -5
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +5 -5
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContentBlocks.cjs.js.map +1 -1
- package/dist/components/ContentBlocks.es.js.map +1 -1
- package/dist/components/ContextMenu.cjs.js +1 -1
- package/dist/components/ContextMenu.cjs.js.map +1 -1
- package/dist/components/ContextMenu.es.js +1 -1
- package/dist/components/ContextMenu.es.js.map +1 -1
- 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 +5 -5
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +5 -5
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataFilter.cjs.js +2 -2
- package/dist/components/DataFilter.es.js +2 -2
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +7 -7
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +7 -7
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +11 -11
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +11 -11
- package/dist/components/DateRangeTimeline.es.js.map +1 -1
- package/dist/components/DateTimePicker.cjs.js +4 -4
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +4 -4
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- 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/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.cjs.js.map +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/EntityHeader.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +9 -9
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +9 -9
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/ErrorBoundary.cjs.js +3 -3
- package/dist/components/ErrorBoundary.cjs.js.map +1 -1
- package/dist/components/ErrorBoundary.es.js +3 -3
- package/dist/components/ErrorBoundary.es.js.map +1 -1
- package/dist/components/ErrorState.cjs.js +1 -1
- package/dist/components/ErrorState.es.js +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +4 -4
- package/dist/components/FormFieldBlocks.es.js +4 -4
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.cjs.js.map +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/Header.es.js.map +1 -1
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/ItemList.cjs.js +5 -5
- package/dist/components/ItemList.cjs.js.map +1 -1
- package/dist/components/ItemList.es.js +5 -5
- package/dist/components/ItemList.es.js.map +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +3 -3
- package/dist/components/JSONSchemaForm.es.js +3 -3
- package/dist/components/ListSearch.cjs.js +2 -2
- package/dist/components/ListSearch.cjs.js.map +1 -1
- package/dist/components/ListSearch.es.js +2 -2
- package/dist/components/ListSearch.es.js.map +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +4 -4
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +4 -4
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PendingIndicator.cjs.js +1 -1
- package/dist/components/PendingIndicator.cjs.js.map +1 -1
- package/dist/components/PendingIndicator.es.js +1 -1
- package/dist/components/PendingIndicator.es.js.map +1 -1
- package/dist/components/PermissionDenied.cjs.js +1 -1
- package/dist/components/PermissionDenied.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +9 -9
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +10 -10
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +13 -13
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +13 -13
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SankeyChart.cjs.js +4 -4
- package/dist/components/SankeyChart.cjs.js.map +1 -1
- package/dist/components/SankeyChart.es.js +4 -4
- package/dist/components/SankeyChart.es.js.map +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +1 -1
- package/dist/components/ScatterPlotChart.cjs.js.map +1 -1
- package/dist/components/ScatterPlotChart.es.js +1 -1
- package/dist/components/ScatterPlotChart.es.js.map +1 -1
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- 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/SettingsRow.cjs.js +1 -1
- package/dist/components/SettingsRow.cjs.js.map +1 -1
- package/dist/components/SettingsRow.es.js +1 -1
- package/dist/components/SettingsRow.es.js.map +1 -1
- package/dist/components/SideDialog.cjs.js +5 -5
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +5 -5
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/Steps.cjs.js +1 -1
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +1 -1
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Table.cjs.js +2 -2
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js +2 -2
- package/dist/components/Table.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +1 -1
- package/dist/components/Tabs.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +3 -3
- package/dist/components/ThreadList.cjs.js.map +1 -1
- package/dist/components/ThreadList.es.js +3 -3
- package/dist/components/ThreadList.es.js.map +1 -1
- package/dist/components/ThreadRail.cjs.js +6 -6
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +6 -6
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Tooltip.cjs.js +1 -1
- package/dist/components/Tooltip.es.js +1 -1
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +2 -2
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/components/Truncate.cjs.js +2 -2
- package/dist/components/Truncate.es.js +2 -2
- package/dist/components/ai/ask-user.cjs.js +3 -3
- package/dist/components/ai/ask-user.cjs.js.map +1 -1
- package/dist/components/ai/ask-user.es.js +3 -3
- package/dist/components/ai/ask-user.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +4 -4
- package/dist/components/ai/plan.cjs.js.map +1 -1
- package/dist/components/ai/plan.es.js +4 -4
- package/dist/components/ai/plan.es.js.map +1 -1
- package/dist/components/ai/task-list.cjs.js +6 -6
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +6 -6
- package/dist/components/ai/task-list.es.js.map +1 -1
- package/dist/{copy-button-DNR760m7.cjs → copy-button-BKFcsNE1.cjs} +3 -3
- package/dist/{copy-button-DNR760m7.cjs.map → copy-button-BKFcsNE1.cjs.map} +1 -1
- package/dist/{copy-button-BuIpvUI7.js → copy-button-H2iaKMng.js} +3 -3
- package/dist/{copy-button-BuIpvUI7.js.map → copy-button-H2iaKMng.js.map} +1 -1
- package/dist/{data-code-section-D0BwpqvV.cjs → data-code-section-D2zjah_b.cjs} +8 -8
- package/dist/{data-code-section-D0BwpqvV.cjs.map → data-code-section-D2zjah_b.cjs.map} +1 -1
- package/dist/{data-code-section-BjqDCzy3.js → data-code-section-MHMkC6q9.js} +8 -8
- package/dist/{data-code-section-BjqDCzy3.js.map → data-code-section-MHMkC6q9.js.map} +1 -1
- package/dist/{data-keys-and-values-BMnGKbXm.js → data-keys-and-values-BJynhd6V.js} +3 -3
- package/dist/{data-keys-and-values-BMnGKbXm.js.map → data-keys-and-values-BJynhd6V.js.map} +1 -1
- package/dist/{data-keys-and-values--e2u0YXB.cjs → data-keys-and-values-sjag88jf.cjs} +3 -3
- package/dist/{data-keys-and-values--e2u0YXB.cjs.map → data-keys-and-values-sjag88jf.cjs.map} +1 -1
- package/dist/{data-list-CQWBPREX.cjs → data-list-CEGVpKNo.cjs} +5 -5
- package/dist/{data-list-CQWBPREX.cjs.map → data-list-CEGVpKNo.cjs.map} +1 -1
- package/dist/{data-list-Ca8j8X2e.js → data-list-SGIqDkMi.js} +5 -5
- package/dist/{data-list-Ca8j8X2e.js.map → data-list-SGIqDkMi.js.map} +1 -1
- package/dist/{data-list-row-wrapper-D-ieH7I9.cjs → data-list-row-wrapper-C-77LgWH.cjs} +2 -2
- package/dist/{data-list-row-wrapper-D-ieH7I9.cjs.map → data-list-row-wrapper-C-77LgWH.cjs.map} +1 -1
- package/dist/{data-list-row-wrapper-dMY1gERX.js → data-list-row-wrapper-DbGQIaO1.js} +2 -2
- package/dist/{data-list-row-wrapper-dMY1gERX.js.map → data-list-row-wrapper-DbGQIaO1.js.map} +1 -1
- package/dist/{data-list-skeleton-CIxMXF73.js → data-list-skeleton-CQvX7jIh.js} +4 -4
- package/dist/{data-list-skeleton-CIxMXF73.js.map → data-list-skeleton-CQvX7jIh.js.map} +1 -1
- package/dist/{data-list-skeleton-C-DkvqbS.cjs → data-list-skeleton-CmCTE-HQ.cjs} +4 -4
- package/dist/{data-list-skeleton-C-DkvqbS.cjs.map → data-list-skeleton-CmCTE-HQ.cjs.map} +1 -1
- package/dist/{data-list-top-cell-QZpCLDIZ.js → data-list-top-cell-D9EsRa0k.js} +5 -5
- package/dist/{data-list-top-cell-QZpCLDIZ.js.map → data-list-top-cell-D9EsRa0k.js.map} +1 -1
- package/dist/{data-list-top-cell-CL-FVkPX.cjs → data-list-top-cell-DoeqMbd1.cjs} +5 -5
- package/dist/{data-list-top-cell-CL-FVkPX.cjs.map → data-list-top-cell-DoeqMbd1.cjs.map} +1 -1
- package/dist/{data-panel-BGpCzY5K.js → data-panel-BEvHk4wg.js} +5 -5
- package/dist/{data-panel-BGpCzY5K.js.map → data-panel-BEvHk4wg.js.map} +1 -1
- package/dist/{data-panel-CsonAnlK.cjs → data-panel-BumsjXVz.cjs} +5 -5
- package/dist/{data-panel-CsonAnlK.cjs.map → data-panel-BumsjXVz.cjs.map} +1 -1
- package/dist/{date-time-range-picker-CF4a39P7.cjs → date-time-range-picker-ue0m5G27.cjs} +4 -4
- package/dist/{date-time-range-picker-CF4a39P7.cjs.map → date-time-range-picker-ue0m5G27.cjs.map} +1 -1
- package/dist/{date-time-range-picker-DDNeOyj9.js → date-time-range-picker-yJBIm34J.js} +4 -4
- package/dist/{date-time-range-picker-DDNeOyj9.js.map → date-time-range-picker-yJBIm34J.js.map} +1 -1
- package/dist/{dialog-XVpF4nQ5.cjs → dialog-ClItuCFY.cjs} +2 -2
- package/dist/{dialog-XVpF4nQ5.cjs.map → dialog-ClItuCFY.cjs.map} +1 -1
- package/dist/{dialog-DhjOHEDT.js → dialog-bnt6epW2.js} +2 -2
- package/dist/{dialog-DhjOHEDT.js.map → dialog-bnt6epW2.js.map} +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +5 -5
- package/dist/domains/logs/components/log-details-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-details-view.es.js +5 -5
- package/dist/domains/logs/components/log-details-view.es.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +4 -4
- package/dist/domains/logs/components/logs-error-content.es.js +4 -4
- 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 +2 -2
- package/dist/domains/logs/components/no-logs-info.es.js +2 -2
- package/dist/domains/memory/components/flame-graph.cjs.js +18 -18
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +18 -18
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.cjs.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +9 -9
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +9 -9
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.cjs.js +2 -2
- package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +2 -2
- package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
- package/dist/domains/metrics/components/bar-list.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/kpi-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +3 -3
- package/dist/domains/metrics/components/latency-card-view.es.js +3 -3
- package/dist/domains/metrics/components/memory-card-view.cjs.js +3 -3
- package/dist/domains/metrics/components/memory-card-view.es.js +3 -3
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js +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/no-traces-info.cjs.js +2 -2
- package/dist/domains/traces/components/no-traces-info.es.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +5 -5
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +5 -5
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.cjs.js +7 -7
- package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.es.js +7 -7
- package/dist/domains/traces/components/span-token-usage.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-expand-col.cjs.js +1 -1
- package/dist/domains/traces/components/timeline-expand-col.es.js +1 -1
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +1 -1
- package/dist/domains/traces/components/timeline-timing-col.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +3 -3
- package/dist/domains/traces/components/trace-data-panel-view.es.js +3 -3
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +1 -1
- package/dist/domains/traces/components/trace-keys-and-values.es.js +1 -1
- package/dist/domains/traces/components/trace-timeline.cjs.js +1 -1
- package/dist/domains/traces/components/trace-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-timeline.es.js +1 -1
- package/dist/domains/traces/components/trace-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/traces-error-content.cjs.js +3 -3
- package/dist/domains/traces/components/traces-error-content.es.js +3 -3
- 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 +2 -2
- package/dist/domains/traces/components/traces-list-view.es.js +2 -2
- 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-DvuUmhic.cjs → drawer-CdsTitFp.cjs} +3 -3
- package/dist/{drawer-DvuUmhic.cjs.map → drawer-CdsTitFp.cjs.map} +1 -1
- package/dist/{drawer-Dyx25o_o.js → drawer-DZ9amYo_.js} +3 -3
- package/dist/{drawer-Dyx25o_o.js.map → drawer-DZ9amYo_.js.map} +1 -1
- package/dist/{dropdown-menu-UWIbg6mM.js → dropdown-menu-DEFygDZI.js} +2 -2
- package/dist/{dropdown-menu-UWIbg6mM.js.map → dropdown-menu-DEFygDZI.js.map} +1 -1
- package/dist/{dropdown-menu-BE2WHHln.cjs → dropdown-menu-ppWztidX.cjs} +2 -2
- package/dist/{dropdown-menu-BE2WHHln.cjs.map → dropdown-menu-ppWztidX.cjs.map} +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +32 -32
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +32 -32
- package/dist/ee/signals/components/signals-empty-state.es.js.map +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/ee/topics/components/topics-layout.cjs.js +2 -2
- package/dist/ee/topics/components/topics-layout.cjs.js.map +1 -1
- package/dist/ee/topics/components/topics-layout.es.js +2 -2
- package/dist/ee/topics/components/topics-layout.es.js.map +1 -1
- package/dist/{field-block-CBdMcT-i.js → field-block-B63CpA4d.js} +2 -2
- package/dist/{field-block-CBdMcT-i.js.map → field-block-B63CpA4d.js.map} +1 -1
- package/dist/{field-block-CEbnWKc0.cjs → field-block-BcTR08I7.cjs} +2 -2
- package/dist/{field-block-CEbnWKc0.cjs.map → field-block-BcTR08I7.cjs.map} +1 -1
- package/dist/{horizontal-bars-CHoNhl-X.js → horizontal-bars-DHeyxqDT.js} +8 -8
- package/dist/{horizontal-bars-CHoNhl-X.js.map → horizontal-bars-DHeyxqDT.js.map} +1 -1
- package/dist/{horizontal-bars-aRhVh7mi.cjs → horizontal-bars-qf60G0xH.cjs} +8 -8
- package/dist/{horizontal-bars-aRhVh7mi.cjs.map → horizontal-bars-qf60G0xH.cjs.map} +1 -1
- package/dist/{input-group-QaBen5tC.cjs → input-group-CH72YUVL.cjs} +2 -2
- package/dist/{input-group-QaBen5tC.cjs.map → input-group-CH72YUVL.cjs.map} +1 -1
- package/dist/{input-group-DZnJcY3U.js → input-group-Dzs-ai0n.js} +2 -2
- package/dist/{input-group-DZnJcY3U.js.map → input-group-Dzs-ai0n.js.map} +1 -1
- package/dist/{logs-data-list-4R9mXlZ5.cjs → logs-data-list-B6XQnRed.cjs} +5 -5
- package/dist/{logs-data-list-4R9mXlZ5.cjs.map → logs-data-list-B6XQnRed.cjs.map} +1 -1
- package/dist/{logs-data-list-BXLk5vqv.js → logs-data-list-BkmYnYuf.js} +5 -5
- package/dist/{logs-data-list-BXLk5vqv.js.map → logs-data-list-BkmYnYuf.js.map} +1 -1
- package/dist/{markdown-renderer-ZzJcwfS3.js → markdown-renderer-BzKf1Gel.js} +7 -7
- package/dist/{markdown-renderer-ZzJcwfS3.js.map → markdown-renderer-BzKf1Gel.js.map} +1 -1
- package/dist/{markdown-renderer-DRnUrMmF.cjs → markdown-renderer-CD2YXUdF.cjs} +7 -7
- package/dist/{markdown-renderer-DRnUrMmF.cjs.map → markdown-renderer-CD2YXUdF.cjs.map} +1 -1
- package/dist/{metrics-card-C3gkudSv.js → metrics-card-C0lGcxb9.js} +4 -4
- package/dist/{metrics-card-C3gkudSv.js.map → metrics-card-C0lGcxb9.js.map} +1 -1
- package/dist/{metrics-card-BSXWk6GD.cjs → metrics-card-DmbKNY3U.cjs} +4 -4
- package/dist/{metrics-card-BSXWk6GD.cjs.map → metrics-card-DmbKNY3U.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-C4R43XbL.js → metrics-kpi-card-AhIw9eyu.js} +2 -2
- package/dist/{metrics-kpi-card-C4R43XbL.js.map → metrics-kpi-card-AhIw9eyu.js.map} +1 -1
- package/dist/{metrics-kpi-card-_xThjpJl.cjs → metrics-kpi-card-tAReOFYk.cjs} +2 -2
- package/dist/{metrics-kpi-card-_xThjpJl.cjs.map → metrics-kpi-card-tAReOFYk.cjs.map} +1 -1
- package/dist/{metrics-line-chart-kZ1Ed_ga.cjs → metrics-line-chart-B_0w522y.cjs} +4 -4
- package/dist/metrics-line-chart-B_0w522y.cjs.map +1 -0
- package/dist/{metrics-line-chart-COIxay_u.js → metrics-line-chart-DudirJsu.js} +4 -4
- package/dist/metrics-line-chart-DudirJsu.js.map +1 -0
- package/dist/primitives/portal-container.cjs.js.map +1 -1
- package/dist/primitives/portal-container.es.js.map +1 -1
- package/dist/{property-filter-applied-DgmkZVbl.cjs → property-filter-applied-BhxbHAN8.cjs} +10 -10
- package/dist/{property-filter-applied-DgmkZVbl.cjs.map → property-filter-applied-BhxbHAN8.cjs.map} +1 -1
- package/dist/{property-filter-applied-Bs1Ck691.js → property-filter-applied-DI4w1ACS.js} +10 -10
- package/dist/{property-filter-applied-Bs1Ck691.js.map → property-filter-applied-DI4w1ACS.js.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{scroll-area-h3DvBR0U.js → scroll-area-DZrEuKjC.js} +2 -2
- package/dist/{scroll-area-h3DvBR0U.js.map → scroll-area-DZrEuKjC.js.map} +1 -1
- package/dist/{scroll-area-BIaiA4t3.cjs → scroll-area-Dv6QagXt.cjs} +2 -2
- package/dist/{scroll-area-BIaiA4t3.cjs.map → scroll-area-Dv6QagXt.cjs.map} +1 -1
- package/dist/{search-field-block-DmqZsrrI.cjs → search-field-block-D6TdrHZX.cjs} +4 -4
- package/dist/{search-field-block-DmqZsrrI.cjs.map → search-field-block-D6TdrHZX.cjs.map} +1 -1
- package/dist/{search-field-block-CMoQ9fjl.js → search-field-block-DCnFZzRK.js} +4 -4
- package/dist/{search-field-block-CMoQ9fjl.js.map → search-field-block-DCnFZzRK.js.map} +1 -1
- package/dist/{select-CUMnhTBS.cjs → select-B6ce20XX.cjs} +3 -3
- package/dist/{select-CUMnhTBS.cjs.map → select-B6ce20XX.cjs.map} +1 -1
- package/dist/{select-LyQqK1ph.js → select-Beo8qQ0e.js} +3 -3
- package/dist/{select-LyQqK1ph.js.map → select-Beo8qQ0e.js.map} +1 -1
- package/dist/{select-field-block-BSlngEHK.js → select-field-block-DXw3tD0y.js} +3 -3
- package/dist/{select-field-block-BSlngEHK.js.map → select-field-block-DXw3tD0y.js.map} +1 -1
- package/dist/{select-field-block-BI_NZs2R.cjs → select-field-block-svlHplxW.cjs} +3 -3
- package/dist/{select-field-block-BI_NZs2R.cjs.map → select-field-block-svlHplxW.cjs.map} +1 -1
- package/dist/{tabs-tab-Ch7-lVxf.cjs → tabs-tab-BkUCE-4E.cjs} +2 -2
- package/dist/{tabs-tab-Ch7-lVxf.cjs.map → tabs-tab-BkUCE-4E.cjs.map} +1 -1
- package/dist/{tabs-tab-CQhe76fQ.js → tabs-tab-DDGltcUc.js} +2 -2
- package/dist/{tabs-tab-CQhe76fQ.js.map → tabs-tab-DDGltcUc.js.map} +1 -1
- package/dist/{text-field-block-BUvxjW9m.cjs → text-field-block-BGlwSFYC.cjs} +2 -2
- package/dist/{text-field-block-BUvxjW9m.cjs.map → text-field-block-BGlwSFYC.cjs.map} +1 -1
- package/dist/{text-field-block-DxtR1Ft4.js → text-field-block-DOiM0dpY.js} +2 -2
- package/dist/{text-field-block-DxtR1Ft4.js.map → text-field-block-DOiM0dpY.js.map} +1 -1
- package/dist/{time-picker-Box0pdQU.cjs → time-picker-BOQtPoyD.cjs} +2 -2
- package/dist/{time-picker-Box0pdQU.cjs.map → time-picker-BOQtPoyD.cjs.map} +1 -1
- package/dist/{time-picker-ew9aXG86.js → time-picker-mLzcoQMO.js} +2 -2
- package/dist/{time-picker-ew9aXG86.js.map → time-picker-mLzcoQMO.js.map} +1 -1
- package/dist/{tooltip-Ch06EF_U.js → tooltip-BFbYhBj1.js} +2 -2
- package/dist/{tooltip-Ch06EF_U.js.map → tooltip-BFbYhBj1.js.map} +1 -1
- package/dist/{tooltip-VGyJcEoE.cjs → tooltip-CLz5PtEE.cjs} +2 -2
- package/dist/{tooltip-VGyJcEoE.cjs.map → tooltip-CLz5PtEE.cjs.map} +1 -1
- package/dist/{traces-data-list-DLmFHLQ6.js → traces-data-list-Bmx7jLZc.js} +5 -5
- package/dist/{traces-data-list-DLmFHLQ6.js.map → traces-data-list-Bmx7jLZc.js.map} +1 -1
- package/dist/{traces-data-list-G69pEglx.cjs → traces-data-list-Dx9tpivx.cjs} +5 -5
- package/dist/{traces-data-list-G69pEglx.cjs.map → traces-data-list-Dx9tpivx.cjs.map} +1 -1
- package/package.json +5 -5
- package/dist/metrics-line-chart-COIxay_u.js.map +0 -1
- package/dist/metrics-line-chart-kZ1Ed_ga.cjs.map +0 -1
|
@@ -3,8 +3,8 @@
|
|
|
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-
|
|
7
|
-
const tooltip = require('./tooltip-
|
|
6
|
+
const Button = require('./Button-Bm94fEF2.cjs');
|
|
7
|
+
const tooltip = require('./tooltip-CLz5PtEE.cjs');
|
|
8
8
|
const hooks_useCopyToClipboard = require('./hooks/use-copy-to-clipboard.cjs.js');
|
|
9
9
|
|
|
10
10
|
function CopyButton({
|
|
@@ -43,4 +43,4 @@ function CopyButton({
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
exports.CopyButton = CopyButton;
|
|
46
|
-
//# sourceMappingURL=copy-button-
|
|
46
|
+
//# sourceMappingURL=copy-button-BKFcsNE1.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button-
|
|
1
|
+
{"version":3,"file":"copy-button-BKFcsNE1.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 tooltip?: string;\n className?: string;\n size?: ButtonProps['size'];\n variant?: ButtonProps['variant'];\n};\n\nexport function CopyButton({\n content,\n copyMessage,\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 });\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":";;;;;;;;;AAiBO,SAAS,UAAA,CAAW;AAAA,EACzB,OAAA;AAAA,EACA,WAAA;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;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;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
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-
|
|
5
|
-
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-
|
|
4
|
+
import { B as Button } from './Button-Bx2lFdqb.js';
|
|
5
|
+
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-BFbYhBj1.js';
|
|
6
6
|
import { useCopyToClipboard } from './hooks/use-copy-to-clipboard.es.js';
|
|
7
7
|
|
|
8
8
|
function CopyButton({
|
|
@@ -41,4 +41,4 @@ function CopyButton({
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
export { CopyButton as C };
|
|
44
|
-
//# sourceMappingURL=copy-button-
|
|
44
|
+
//# sourceMappingURL=copy-button-H2iaKMng.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-button-
|
|
1
|
+
{"version":3,"file":"copy-button-H2iaKMng.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 tooltip?: string;\n className?: string;\n size?: ButtonProps['size'];\n variant?: ButtonProps['variant'];\n};\n\nexport function CopyButton({\n content,\n copyMessage,\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 });\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":";;;;;;;AAiBO,SAAS,UAAA,CAAW;AAAA,EACzB,OAAA;AAAA,EACA,WAAA;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;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;;;;"}
|
|
@@ -11,12 +11,12 @@ const codemirrorThemeDracula = require('@uiw/codemirror-theme-dracula');
|
|
|
11
11
|
const ReactCodeMirror = require('@uiw/react-codemirror');
|
|
12
12
|
const lucideReact = require('lucide-react');
|
|
13
13
|
const React = require('react');
|
|
14
|
-
const Button = require('./Button-
|
|
14
|
+
const Button = require('./Button-Bm94fEF2.cjs');
|
|
15
15
|
const buttonsGroup = require('./buttons-group-Dw8Wu4sj.cjs');
|
|
16
|
-
const copyButton = require('./copy-button-
|
|
16
|
+
const copyButton = require('./copy-button-BKFcsNE1.cjs');
|
|
17
17
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
18
|
-
const dialog = require('./dialog-
|
|
19
|
-
const searchFieldBlock = require('./search-field-block-
|
|
18
|
+
const dialog = require('./dialog-ClItuCFY.cjs');
|
|
19
|
+
const searchFieldBlock = require('./search-field-block-D6TdrHZX.cjs');
|
|
20
20
|
const themeProvider = require('./theme-provider-aO5-jZVp.cjs');
|
|
21
21
|
|
|
22
22
|
function DataPanelSectionHeading({ icon, className, children }) {
|
|
@@ -258,7 +258,7 @@ function DataCodeSection({
|
|
|
258
258
|
] })
|
|
259
259
|
] })
|
|
260
260
|
] }),
|
|
261
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border
|
|
261
|
+
/* @__PURE__ */ jsxRuntime.jsx("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", children: usePlainTextView ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral4 font-mono break-all", children: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-wrap", children: finalCodeStr }) }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
262
262
|
ReactCodeMirror,
|
|
263
263
|
{
|
|
264
264
|
ref: editorRef,
|
|
@@ -270,7 +270,7 @@ function DataCodeSection({
|
|
|
270
270
|
) }),
|
|
271
271
|
/* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog, { open: expandedOpen, onOpenChange: setExpandedOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(dialog.DialogContent, { className: "grid h-[calc(100vh-6rem)]! max-w-[90vw]! grid-rows-[auto_1fr] [&>.absolute]:hidden", children: [
|
|
272
272
|
/* @__PURE__ */ jsxRuntime.jsxs(dialog.DialogHeader, { className: "flex-row items-center justify-between", children: [
|
|
273
|
-
/* @__PURE__ */ jsxRuntime.jsx(dialog.DialogTitle, { className: "flex min-w-0 items-center gap-1.5 truncate
|
|
273
|
+
/* @__PURE__ */ jsxRuntime.jsx(dialog.DialogTitle, { className: "text-ui-sm flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5", children: dialogTitle ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
274
274
|
icon,
|
|
275
275
|
title
|
|
276
276
|
] }) }),
|
|
@@ -305,7 +305,7 @@ function DataCodeSection({
|
|
|
305
305
|
] })
|
|
306
306
|
] })
|
|
307
307
|
] }),
|
|
308
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-auto px-6 pb-6", children: expandedMultiline ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden overflow-y-auto rounded-lg border
|
|
308
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-auto px-6 pb-6", children: expandedMultiline ? /* @__PURE__ */ jsxRuntime.jsx("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", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-neutral4 font-mono break-all", children: /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "text-wrap", children: expandedFinalCodeStr }) }) }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
309
309
|
ReactCodeMirror,
|
|
310
310
|
{
|
|
311
311
|
ref: expandedEditorRef,
|
|
@@ -332,4 +332,4 @@ function containsInnerNewline(obj) {
|
|
|
332
332
|
|
|
333
333
|
exports.DataCodeSection = DataCodeSection;
|
|
334
334
|
exports.DataPanelSectionHeading = DataPanelSectionHeading;
|
|
335
|
-
//# sourceMappingURL=data-code-section-
|
|
335
|
+
//# sourceMappingURL=data-code-section-D2zjah_b.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-code-section-D0BwpqvV.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 { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder } 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// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: '0.75rem',\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: '0.75rem',\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}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\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=\"max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border border-border1 bg-surface3 p-3 text-ui-sm break-all text-neutral4 dark:border-white/10 dark:bg-black/20\">\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-neutral4\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror\n ref={editorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension()]}\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=\"flex min-w-0 items-center gap-1.5 truncate text-ui-sm [&>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=\"overflow-hidden overflow-y-auto rounded-lg border border-border1 bg-surface3 p-3 text-ui-sm break-all text-neutral4 dark:border-white/10 dark:bg-black/20\">\n <div className=\"font-mono break-all text-neutral4\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <ReactCodeMirror\n ref={expandedEditorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension()]}\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","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-D2zjah_b.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 { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder } 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// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: '0.75rem',\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: '0.75rem',\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}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\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()]}\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()]}\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","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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"}
|
|
@@ -9,12 +9,12 @@ import { draculaInit } from '@uiw/codemirror-theme-dracula';
|
|
|
9
9
|
import ReactCodeMirror from '@uiw/react-codemirror';
|
|
10
10
|
import { AlignLeftIcon, AlignJustifyIcon, ExpandIcon, XIcon } from 'lucide-react';
|
|
11
11
|
import { useState, useRef, useMemo, useCallback } from 'react';
|
|
12
|
-
import { B as Button } from './Button-
|
|
12
|
+
import { B as Button } from './Button-Bx2lFdqb.js';
|
|
13
13
|
import { B as ButtonsGroup } from './buttons-group-DJh4wnMs.js';
|
|
14
|
-
import { C as CopyButton } from './copy-button-
|
|
14
|
+
import { C as CopyButton } from './copy-button-H2iaKMng.js';
|
|
15
15
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
16
|
-
import { D as Dialog, c as DialogContent, f as DialogHeader, i as DialogTitle, d as DialogDescription, b as DialogClose } from './dialog-
|
|
17
|
-
import { S as SearchFieldBlock } from './search-field-block-
|
|
16
|
+
import { D as Dialog, c as DialogContent, f as DialogHeader, i as DialogTitle, d as DialogDescription, b as DialogClose } from './dialog-bnt6epW2.js';
|
|
17
|
+
import { S as SearchFieldBlock } from './search-field-block-DCnFZzRK.js';
|
|
18
18
|
import { u as useTheme } from './theme-provider-C9ih9jSS.js';
|
|
19
19
|
|
|
20
20
|
function DataPanelSectionHeading({ icon, className, children }) {
|
|
@@ -256,7 +256,7 @@ function DataCodeSection({
|
|
|
256
256
|
] })
|
|
257
257
|
] })
|
|
258
258
|
] }),
|
|
259
|
-
/* @__PURE__ */ jsx("div", { className: "max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border
|
|
259
|
+
/* @__PURE__ */ jsx("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", children: usePlainTextView ? /* @__PURE__ */ jsx("div", { className: "text-neutral4 font-mono break-all", children: /* @__PURE__ */ jsx("pre", { className: "text-wrap", children: finalCodeStr }) }) : /* @__PURE__ */ jsx(
|
|
260
260
|
ReactCodeMirror,
|
|
261
261
|
{
|
|
262
262
|
ref: editorRef,
|
|
@@ -268,7 +268,7 @@ function DataCodeSection({
|
|
|
268
268
|
) }),
|
|
269
269
|
/* @__PURE__ */ jsx(Dialog, { open: expandedOpen, onOpenChange: setExpandedOpen, children: /* @__PURE__ */ jsxs(DialogContent, { className: "grid h-[calc(100vh-6rem)]! max-w-[90vw]! grid-rows-[auto_1fr] [&>.absolute]:hidden", children: [
|
|
270
270
|
/* @__PURE__ */ jsxs(DialogHeader, { className: "flex-row items-center justify-between", children: [
|
|
271
|
-
/* @__PURE__ */ jsx(DialogTitle, { className: "flex min-w-0 items-center gap-1.5 truncate
|
|
271
|
+
/* @__PURE__ */ jsx(DialogTitle, { className: "text-ui-sm flex min-w-0 items-center gap-1.5 truncate [&>svg]:size-3.5", children: dialogTitle ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
272
272
|
icon,
|
|
273
273
|
title
|
|
274
274
|
] }) }),
|
|
@@ -303,7 +303,7 @@ function DataCodeSection({
|
|
|
303
303
|
] })
|
|
304
304
|
] })
|
|
305
305
|
] }),
|
|
306
|
-
/* @__PURE__ */ jsx("div", { className: "overflow-auto px-6 pb-6", children: expandedMultiline ? /* @__PURE__ */ jsx("div", { className: "overflow-hidden overflow-y-auto rounded-lg border
|
|
306
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-auto px-6 pb-6", children: expandedMultiline ? /* @__PURE__ */ jsx("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", children: /* @__PURE__ */ jsx("div", { className: "text-neutral4 font-mono break-all", children: /* @__PURE__ */ jsx("pre", { className: "text-wrap", children: expandedFinalCodeStr }) }) }) : /* @__PURE__ */ jsx(
|
|
307
307
|
ReactCodeMirror,
|
|
308
308
|
{
|
|
309
309
|
ref: expandedEditorRef,
|
|
@@ -329,4 +329,4 @@ function containsInnerNewline(obj) {
|
|
|
329
329
|
}
|
|
330
330
|
|
|
331
331
|
export { DataCodeSection as D, DataPanelSectionHeading as a };
|
|
332
|
-
//# sourceMappingURL=data-code-section-
|
|
332
|
+
//# sourceMappingURL=data-code-section-MHMkC6q9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-code-section-BjqDCzy3.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 { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder } 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// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: '0.75rem',\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: '0.75rem',\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}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\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=\"max-h-[30vh] overflow-hidden overflow-y-auto rounded-lg border border-border1 bg-surface3 p-3 text-ui-sm break-all text-neutral4 dark:border-white/10 dark:bg-black/20\">\n {usePlainTextView ? (\n <div className=\"font-mono break-all text-neutral4\">\n <pre className=\"text-wrap\">{finalCodeStr}</pre>\n </div>\n ) : (\n <ReactCodeMirror\n ref={editorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension()]}\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=\"flex min-w-0 items-center gap-1.5 truncate text-ui-sm [&>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=\"overflow-hidden overflow-y-auto rounded-lg border border-border1 bg-surface3 p-3 text-ui-sm break-all text-neutral4 dark:border-white/10 dark:bg-black/20\">\n <div className=\"font-mono break-all text-neutral4\">\n <pre className=\"text-wrap\">{expandedFinalCodeStr}</pre>\n </div>\n </div>\n ) : (\n <ReactCodeMirror\n ref={expandedEditorRef}\n extensions={[json(), EditorView.lineWrapping, searchHighlightExtension()]}\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-MHMkC6q9.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 { SearchCursor } from '@codemirror/search';\nimport type { Extension } from '@codemirror/state';\nimport { StateEffect, StateField, RangeSetBuilder } 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// -- Themes -------------------------------------------------------------------\n\nfunction buildDarkTheme(): Extension {\n return draculaInit({\n settings: {\n fontFamily: 'var(--font-mono)',\n fontSize: '0.75rem',\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: '0.75rem',\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}\n\nexport function DataCodeSection({\n codeStr = '',\n title,\n dialogTitle,\n icon,\n simplified = false,\n className,\n}: DataCodeSectionProps) {\n const theme = useCodemirrorTheme();\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()]}\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()]}\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,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
3
3
|
import { ExternalLinkIcon, Link2Icon, CheckIcon, CopyIcon } from 'lucide-react';
|
|
4
|
-
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-
|
|
4
|
+
import { T as Tooltip, c as TooltipTrigger, a as TooltipContent } from './tooltip-BFbYhBj1.js';
|
|
5
5
|
import { useCopyToClipboard } from './hooks/use-copy-to-clipboard.es.js';
|
|
6
6
|
|
|
7
7
|
function DataKeysAndValuesHeader({ className, children }) {
|
|
@@ -104,7 +104,7 @@ function DataKeysAndValuesValueWithTooltip({
|
|
|
104
104
|
tooltip
|
|
105
105
|
}) {
|
|
106
106
|
return /* @__PURE__ */ jsx("dd", { className: cn(dataKeysAndValuesValueStyles, className), children: /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
107
|
-
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("div", { tabIndex: 0, className: "inline cursor-help truncate
|
|
107
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx("div", { tabIndex: 0, className: "hover:text-neutral4 inline cursor-help truncate", children }) }),
|
|
108
108
|
/* @__PURE__ */ jsx(TooltipContent, { children: tooltip })
|
|
109
109
|
] }) });
|
|
110
110
|
}
|
|
@@ -119,4 +119,4 @@ const DataKeysAndValues = Object.assign(DataKeysAndValuesRoot, {
|
|
|
119
119
|
});
|
|
120
120
|
|
|
121
121
|
export { DataKeysAndValues as D };
|
|
122
|
-
//# sourceMappingURL=data-keys-and-values-
|
|
122
|
+
//# sourceMappingURL=data-keys-and-values-BJynhd6V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-keys-and-values-BMnGKbXm.js","sources":["../src/ds/components/DataKeysAndValues/data-keys-and-values-header.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-key.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-root.tsx","../src/ds/components/DataKeysAndValues/shared.ts","../src/ds/components/DataKeysAndValues/data-keys-and-values-value.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-link.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-with-copy-btn.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-with-tooltip.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesHeader({ className, children }: DataKeysAndValuesHeaderProps) {\n return (\n <dt className={cn('col-span-full py-3 text-ui-sm tracking-widest text-neutral2 uppercase', className)}>\n {children}\n </dt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesKey({ className, children }: DataKeysAndValuesKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-ui-smd text-neutral2', className)}>{children}</dt>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesProps {\n className?: string;\n children: React.ReactNode;\n numOfCol?: 1 | 2 | 3;\n density?: 'default' | 'dense';\n}\n\nconst GRID_TEMPLATES: Record<NonNullable<DataKeysAndValuesProps['numOfCol']>, string> = {\n 1: 'auto 1fr',\n 2: 'auto auto auto 1fr',\n 3: 'auto auto auto auto auto 1fr',\n};\n\nconst DENSITY_GAP_Y: Record<NonNullable<DataKeysAndValuesProps['density']>, string> = {\n default: 'gap-y-1.5',\n dense: 'gap-y-0',\n};\n\nexport function DataKeysAndValuesRoot({\n className,\n children,\n numOfCol = 1,\n density = 'default',\n}: DataKeysAndValuesProps) {\n return (\n <dl\n className={cn('grid gap-x-4', DENSITY_GAP_Y[density], className)}\n style={{ gridTemplateColumns: GRID_TEMPLATES[numOfCol] }}\n >\n {children}\n </dl>\n );\n}\n","export const dataKeysAndValuesValueStyles = 'text-ui-smd text-neutral3 min-w-0 py-0.5 pr-6';\n","import { dataKeysAndValuesValueStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesValue({ className, children }: DataKeysAndValuesValueProps) {\n return <dd className={cn(dataKeysAndValuesValueStyles, 'truncate', className)}>{children}</dd>;\n}\n","import { ExternalLinkIcon, Link2Icon } from 'lucide-react';\nimport { dataKeysAndValuesValueStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueLinkProps {\n className?: string;\n children: React.ReactNode;\n href: string;\n as?: React.ElementType;\n}\n\nfunction isExternalUrl(href: string) {\n return /^https?:\\/\\//.test(href);\n}\n\nexport function DataKeysAndValuesValueLink({ className, children, href, as }: DataKeysAndValuesValueLinkProps) {\n const isExternal = isExternalUrl(href);\n const Component = as || 'a';\n // Pass `to` only for custom components so React-Router's `Link` (which reads `to`) works\n // while native anchors don't get an unknown `to` attribute warning.\n const navigationProps = as ? { href, to: href } : { href };\n\n const linkClassName = cn(\n 'flex items-center gap-2 truncate transition-colors hover:text-neutral4',\n '[&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:opacity-70',\n );\n\n if (isExternal) {\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\" className={linkClassName}>\n <span>{children}</span>\n <ExternalLinkIcon />\n </a>\n </dd>\n );\n }\n\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Component {...navigationProps} className={linkClassName}>\n <span>{children}</span>\n <Link2Icon />\n </Component>\n </dd>\n );\n}\n","import { CheckIcon, CopyIcon } from 'lucide-react';\nimport { dataKeysAndValuesValueStyles } from './shared';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueWithCopyBtnProps {\n className?: string;\n children: React.ReactNode;\n copyValue: string;\n copyTooltip?: string;\n}\n\nexport function DataKeysAndValuesValueWithCopyBtn({\n className,\n children,\n copyValue,\n copyTooltip = 'Copy to clipboard',\n}: DataKeysAndValuesValueWithCopyBtnProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: copyValue,\n copyMessage: 'Copied!',\n });\n\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Tooltip open={isCopied || undefined}>\n <TooltipTrigger asChild>\n <button\n onClick={handleCopy}\n type=\"button\"\n className={cn(\n 'flex items-center gap-2 text-left whitespace-nowrap',\n '[&:hover>svg]:opacity-100 [&>svg]:size-3 [&>svg]:shrink-0 [&>svg]:opacity-70',\n { '[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-accent1': isCopied },\n )}\n aria-label={isCopied ? 'Copied!' : copyTooltip}\n >\n <span>{children}</span>\n {isCopied ? <CheckIcon /> : <CopyIcon />}\n </button>\n </TooltipTrigger>\n <TooltipContent>{isCopied ? 'Copied!' : copyTooltip}</TooltipContent>\n </Tooltip>\n </dd>\n );\n}\n","import { dataKeysAndValuesValueStyles } from './shared';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueWithTooltipProps {\n className?: string;\n children: React.ReactNode;\n tooltip: string;\n}\n\nexport function DataKeysAndValuesValueWithTooltip({\n className,\n children,\n tooltip,\n}: DataKeysAndValuesValueWithTooltipProps) {\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Tooltip>\n <TooltipTrigger asChild>\n <div tabIndex={0} className=\"inline cursor-help truncate hover:text-neutral4\">\n {children}\n </div>\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </dd>\n );\n}\n","import { DataKeysAndValuesHeader } from './data-keys-and-values-header';\nimport { DataKeysAndValuesKey } from './data-keys-and-values-key';\nimport { DataKeysAndValuesRoot } from './data-keys-and-values-root';\nimport { DataKeysAndValuesValue } from './data-keys-and-values-value';\nimport { DataKeysAndValuesValueLink } from './data-keys-and-values-value-link';\nimport { DataKeysAndValuesValueWithCopyBtn } from './data-keys-and-values-value-with-copy-btn';\nimport { DataKeysAndValuesValueWithTooltip } from './data-keys-and-values-value-with-tooltip';\n\nexport const DataKeysAndValues = Object.assign(DataKeysAndValuesRoot, {\n Key: DataKeysAndValuesKey,\n Value: DataKeysAndValuesValue,\n ValueLink: DataKeysAndValuesValueLink,\n ValueWithTooltip: DataKeysAndValuesValueWithTooltip,\n ValueWithCopyBtn: DataKeysAndValuesValueWithCopyBtn,\n Header: DataKeysAndValuesHeader,\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-keys-and-values-BJynhd6V.js","sources":["../src/ds/components/DataKeysAndValues/data-keys-and-values-header.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-key.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-root.tsx","../src/ds/components/DataKeysAndValues/shared.ts","../src/ds/components/DataKeysAndValues/data-keys-and-values-value.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-link.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-with-copy-btn.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-with-tooltip.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesHeader({ className, children }: DataKeysAndValuesHeaderProps) {\n return (\n <dt className={cn('col-span-full py-3 text-ui-sm tracking-widest text-neutral2 uppercase', className)}>\n {children}\n </dt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesKey({ className, children }: DataKeysAndValuesKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-ui-smd text-neutral2', className)}>{children}</dt>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesProps {\n className?: string;\n children: React.ReactNode;\n numOfCol?: 1 | 2 | 3;\n density?: 'default' | 'dense';\n}\n\nconst GRID_TEMPLATES: Record<NonNullable<DataKeysAndValuesProps['numOfCol']>, string> = {\n 1: 'auto 1fr',\n 2: 'auto auto auto 1fr',\n 3: 'auto auto auto auto auto 1fr',\n};\n\nconst DENSITY_GAP_Y: Record<NonNullable<DataKeysAndValuesProps['density']>, string> = {\n default: 'gap-y-1.5',\n dense: 'gap-y-0',\n};\n\nexport function DataKeysAndValuesRoot({\n className,\n children,\n numOfCol = 1,\n density = 'default',\n}: DataKeysAndValuesProps) {\n return (\n <dl\n className={cn('grid gap-x-4', DENSITY_GAP_Y[density], className)}\n style={{ gridTemplateColumns: GRID_TEMPLATES[numOfCol] }}\n >\n {children}\n </dl>\n );\n}\n","export const dataKeysAndValuesValueStyles = 'text-ui-smd text-neutral3 min-w-0 py-0.5 pr-6';\n","import { dataKeysAndValuesValueStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesValue({ className, children }: DataKeysAndValuesValueProps) {\n return <dd className={cn(dataKeysAndValuesValueStyles, 'truncate', className)}>{children}</dd>;\n}\n","import { ExternalLinkIcon, Link2Icon } from 'lucide-react';\nimport { dataKeysAndValuesValueStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueLinkProps {\n className?: string;\n children: React.ReactNode;\n href: string;\n as?: React.ElementType;\n}\n\nfunction isExternalUrl(href: string) {\n return /^https?:\\/\\//.test(href);\n}\n\nexport function DataKeysAndValuesValueLink({ className, children, href, as }: DataKeysAndValuesValueLinkProps) {\n const isExternal = isExternalUrl(href);\n const Component = as || 'a';\n // Pass `to` only for custom components so React-Router's `Link` (which reads `to`) works\n // while native anchors don't get an unknown `to` attribute warning.\n const navigationProps = as ? { href, to: href } : { href };\n\n const linkClassName = cn(\n 'flex items-center gap-2 truncate transition-colors hover:text-neutral4',\n '[&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:opacity-70',\n );\n\n if (isExternal) {\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\" className={linkClassName}>\n <span>{children}</span>\n <ExternalLinkIcon />\n </a>\n </dd>\n );\n }\n\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Component {...navigationProps} className={linkClassName}>\n <span>{children}</span>\n <Link2Icon />\n </Component>\n </dd>\n );\n}\n","import { CheckIcon, CopyIcon } from 'lucide-react';\nimport { dataKeysAndValuesValueStyles } from './shared';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueWithCopyBtnProps {\n className?: string;\n children: React.ReactNode;\n copyValue: string;\n copyTooltip?: string;\n}\n\nexport function DataKeysAndValuesValueWithCopyBtn({\n className,\n children,\n copyValue,\n copyTooltip = 'Copy to clipboard',\n}: DataKeysAndValuesValueWithCopyBtnProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: copyValue,\n copyMessage: 'Copied!',\n });\n\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Tooltip open={isCopied || undefined}>\n <TooltipTrigger asChild>\n <button\n onClick={handleCopy}\n type=\"button\"\n className={cn(\n 'flex items-center gap-2 text-left whitespace-nowrap',\n '[&:hover>svg]:opacity-100 [&>svg]:size-3 [&>svg]:shrink-0 [&>svg]:opacity-70',\n { '[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-accent1': isCopied },\n )}\n aria-label={isCopied ? 'Copied!' : copyTooltip}\n >\n <span>{children}</span>\n {isCopied ? <CheckIcon /> : <CopyIcon />}\n </button>\n </TooltipTrigger>\n <TooltipContent>{isCopied ? 'Copied!' : copyTooltip}</TooltipContent>\n </Tooltip>\n </dd>\n );\n}\n","import { dataKeysAndValuesValueStyles } from './shared';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueWithTooltipProps {\n className?: string;\n children: React.ReactNode;\n tooltip: string;\n}\n\nexport function DataKeysAndValuesValueWithTooltip({\n className,\n children,\n tooltip,\n}: DataKeysAndValuesValueWithTooltipProps) {\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Tooltip>\n <TooltipTrigger asChild>\n <div tabIndex={0} className=\"hover:text-neutral4 inline cursor-help truncate\">\n {children}\n </div>\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </dd>\n );\n}\n","import { DataKeysAndValuesHeader } from './data-keys-and-values-header';\nimport { DataKeysAndValuesKey } from './data-keys-and-values-key';\nimport { DataKeysAndValuesRoot } from './data-keys-and-values-root';\nimport { DataKeysAndValuesValue } from './data-keys-and-values-value';\nimport { DataKeysAndValuesValueLink } from './data-keys-and-values-value-link';\nimport { DataKeysAndValuesValueWithCopyBtn } from './data-keys-and-values-value-with-copy-btn';\nimport { DataKeysAndValuesValueWithTooltip } from './data-keys-and-values-value-with-tooltip';\n\nexport const DataKeysAndValues = Object.assign(DataKeysAndValuesRoot, {\n Key: DataKeysAndValuesKey,\n Value: DataKeysAndValuesValue,\n ValueLink: DataKeysAndValuesValueLink,\n ValueWithTooltip: DataKeysAndValuesValueWithTooltip,\n ValueWithCopyBtn: DataKeysAndValuesValueWithCopyBtn,\n Header: DataKeysAndValuesHeader,\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
5
5
|
const lucideReact = require('lucide-react');
|
|
6
|
-
const tooltip = require('./tooltip-
|
|
6
|
+
const tooltip = require('./tooltip-CLz5PtEE.cjs');
|
|
7
7
|
const hooks_useCopyToClipboard = require('./hooks/use-copy-to-clipboard.cjs.js');
|
|
8
8
|
|
|
9
9
|
function DataKeysAndValuesHeader({ className, children }) {
|
|
@@ -106,7 +106,7 @@ function DataKeysAndValuesValueWithTooltip({
|
|
|
106
106
|
tooltip: tooltip$1
|
|
107
107
|
}) {
|
|
108
108
|
return /* @__PURE__ */ jsxRuntime.jsx("dd", { className: utils_cn.cn(dataKeysAndValuesValueStyles, className), children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip, { children: [
|
|
109
|
-
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { tabIndex: 0, className: "inline cursor-help truncate
|
|
109
|
+
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { tabIndex: 0, className: "hover:text-neutral4 inline cursor-help truncate", children }) }),
|
|
110
110
|
/* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipContent, { children: tooltip$1 })
|
|
111
111
|
] }) });
|
|
112
112
|
}
|
|
@@ -121,4 +121,4 @@ const DataKeysAndValues = Object.assign(DataKeysAndValuesRoot, {
|
|
|
121
121
|
});
|
|
122
122
|
|
|
123
123
|
exports.DataKeysAndValues = DataKeysAndValues;
|
|
124
|
-
//# sourceMappingURL=data-keys-and-values
|
|
124
|
+
//# sourceMappingURL=data-keys-and-values-sjag88jf.cjs.map
|