@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
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
const jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
const lucideReact = require('lucide-react');
|
|
5
|
-
const Button = require('./Button-
|
|
5
|
+
const Button = require('./Button-Bm94fEF2.cjs');
|
|
6
6
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
7
7
|
const spinner = require('./spinner-BBAmiRCS.cjs');
|
|
8
8
|
const buttonsGroup = require('./buttons-group-Dw8Wu4sj.cjs');
|
|
9
|
-
const dataCodeSection = require('./data-code-section-
|
|
9
|
+
const dataCodeSection = require('./data-code-section-D2zjah_b.cjs');
|
|
10
10
|
|
|
11
11
|
function DataPanelCloseButton({ onClick, tooltip = "Close panel", className }) {
|
|
12
12
|
return /* @__PURE__ */ jsxRuntime.jsx(Button.Button, { size: "md", onClick, "aria-label": "Close Panel", tooltip, className, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}) });
|
|
@@ -37,7 +37,7 @@ function DataPanelHeading({ className, children }) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
function DataPanelLoadingData({ children }) {
|
|
40
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-32 items-center justify-center gap-2 px-4 py-6
|
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-ui-sm text-neutral2 flex min-h-32 items-center justify-center gap-2 px-4 py-6", children: [
|
|
41
41
|
/* @__PURE__ */ jsxRuntime.jsx(spinner.Spinner, { size: "sm", variant: "pulse", className: "text-neutral1" }),
|
|
42
42
|
" ",
|
|
43
43
|
children ?? "Loading..."
|
|
@@ -57,7 +57,7 @@ function DataPanelNextPrevNav({
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
function DataPanelNoData({ children }) {
|
|
60
|
-
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
60
|
+
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-sm text-neutral2 px-4 py-6", children: children ?? "No data found." });
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
function DataPanelRoot({ collapsed, children }) {
|
|
@@ -86,4 +86,4 @@ const DataPanel = Object.assign(DataPanelRoot, {
|
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
exports.DataPanel = DataPanel;
|
|
89
|
-
//# sourceMappingURL=data-panel-
|
|
89
|
+
//# sourceMappingURL=data-panel-BumsjXVz.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-panel-
|
|
1
|
+
{"version":3,"file":"data-panel-BumsjXVz.cjs","sources":["../src/ds/components/DataPanel/data-panel-close-button.tsx","../src/ds/components/DataPanel/data-panel-content.tsx","../src/ds/components/DataPanel/data-panel-header.tsx","../src/ds/components/DataPanel/data-panel-heading.tsx","../src/ds/components/DataPanel/data-panel-loading-data.tsx","../src/ds/components/DataPanel/data-panel-next-prev-nav.tsx","../src/ds/components/DataPanel/data-panel-no-data.tsx","../src/ds/components/DataPanel/data-panel-root.tsx","../src/ds/components/DataPanel/data-panel.tsx"],"sourcesContent":["import { XIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\n\nexport interface DataPanelCloseButtonProps {\n onClick: () => void;\n tooltip?: string;\n className?: string;\n}\n\nexport function DataPanelCloseButton({ onClick, tooltip = 'Close panel', className }: DataPanelCloseButtonProps) {\n return (\n <Button size=\"md\" onClick={onClick} aria-label=\"Close Panel\" tooltip={tooltip} className={className}>\n <XIcon />\n </Button>\n );\n}\n","import type { ReactNode, Ref } from 'react';\n\nexport interface DataPanelContentProps {\n children: ReactNode;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport function DataPanelContent({ children, ref }: DataPanelContentProps) {\n return (\n <div ref={ref} className=\"min-h-0 flex-1 overflow-y-auto p-4\">\n {children}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataPanelHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataPanelHeader({ className, children }: DataPanelHeaderProps) {\n return (\n <div\n className={cn(\n 'mx-4 flex min-h-14 items-center justify-between gap-2 py-3',\n // Bottom border only when something follows the header (i.e. the panel is expanded).\n // When the panel is collapsed and the header is the only child, the border auto-hides.\n 'not-last:border-b not-last:border-border1',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataPanelHeadingProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataPanelHeading({ className, children }: DataPanelHeadingProps) {\n return (\n <h3 className={cn('flex gap-2 text-ui-md text-neutral3 [&>b]:font-normal [&>b]:text-neutral2', className)}>\n {children}\n </h3>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Spinner } from '@/ds/components/Spinner';\n\nexport interface DataPanelLoadingDataProps {\n children?: ReactNode;\n}\n\nexport function DataPanelLoadingData({ children }: DataPanelLoadingDataProps) {\n return (\n <div className=\"text-ui-sm text-neutral2 flex min-h-32 items-center justify-center gap-2 px-4 py-6\">\n <Spinner size=\"sm\" variant=\"pulse\" className=\"text-neutral1\" /> {children ?? 'Loading...'}\n </div>\n );\n}\n","import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\n\nexport interface DataPanelNextPrevNavProps {\n onPrevious?: () => void;\n onNext?: () => void;\n previousLabel?: string;\n nextLabel?: string;\n}\n\nexport function DataPanelNextPrevNav({\n onPrevious,\n onNext,\n previousLabel = 'Previous',\n nextLabel = 'Next',\n}: DataPanelNextPrevNavProps) {\n return (\n <ButtonsGroup spacing=\"close\">\n <Button size=\"md\" tooltip={previousLabel} onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip={nextLabel} onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n );\n}\n","export interface DataPanelNoDataProps {\n children?: React.ReactNode;\n}\n\nexport function DataPanelNoData({ children }: DataPanelNoDataProps) {\n return <p className=\"text-ui-sm text-neutral2 px-4 py-6\">{children ?? 'No data found.'}</p>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataPanelProps {\n collapsed?: boolean;\n children: React.ReactNode;\n}\n\nexport function DataPanelRoot({ collapsed, children }: DataPanelProps) {\n return (\n <section\n className={cn(\n 'flex flex-col overflow-hidden rounded-xl border border-border1 bg-surface2',\n collapsed ? 'h-auto' : 'max-h-full',\n )}\n >\n {children}\n </section>\n );\n}\n","import { DataPanelCloseButton } from './data-panel-close-button';\nimport { DataPanelContent } from './data-panel-content';\nimport { DataPanelHeader } from './data-panel-header';\nimport { DataPanelHeading } from './data-panel-heading';\nimport { DataPanelLoadingData } from './data-panel-loading-data';\nimport { DataPanelNextPrevNav } from './data-panel-next-prev-nav';\nimport { DataPanelNoData } from './data-panel-no-data';\nimport { DataPanelRoot } from './data-panel-root';\nimport { DataPanelSectionHeading } from './data-panel-section-heading';\nimport { DataCodeSection } from '@/ds/components/DataCodeSection';\n\nexport const DataPanel = Object.assign(DataPanelRoot, {\n Header: DataPanelHeader,\n Heading: DataPanelHeading,\n CloseButton: DataPanelCloseButton,\n NextPrevNav: DataPanelNextPrevNav,\n LoadingData: DataPanelLoadingData,\n NoData: DataPanelNoData,\n Content: DataPanelContent,\n CodeSection: DataCodeSection,\n SectionHeading: DataPanelSectionHeading,\n});\n"],"names":["jsx","Button","XIcon","cn","jsxs","Spinner","ButtonsGroup","ArrowUpIcon","ArrowDownIcon","DataCodeSection","DataPanelSectionHeading"],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const dateFns = require('date-fns');
|
|
5
5
|
const lucideReact = require('lucide-react');
|
|
6
6
|
const React = require('react');
|
|
7
|
-
const Button = require('./Button-
|
|
7
|
+
const Button = require('./Button-Bm94fEF2.cjs');
|
|
8
8
|
const datePicker = require('./date-picker-DrWmUawi.cjs');
|
|
9
|
-
const timePicker = require('./time-picker-
|
|
10
|
-
const dropdownMenu = require('./dropdown-menu-
|
|
9
|
+
const timePicker = require('./time-picker-BOQtPoyD.cjs');
|
|
10
|
+
const dropdownMenu = require('./dropdown-menu-ppWztidX.cjs');
|
|
11
11
|
const popover = require('./popover-CO0UtG2f.cjs');
|
|
12
12
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
13
13
|
|
|
@@ -168,4 +168,4 @@ function DateTimeRangePicker({
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
exports.DateTimeRangePicker = DateTimeRangePicker;
|
|
171
|
-
//# sourceMappingURL=date-time-range-picker-
|
|
171
|
+
//# sourceMappingURL=date-time-range-picker-ue0m5G27.cjs.map
|
package/dist/{date-time-range-picker-CF4a39P7.cjs.map → date-time-range-picker-ue0m5G27.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-range-picker-CF4a39P7.cjs","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('px-4 pb-1 text-ui-sm text-red-500')}>{customRangeError}</p>}\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'pointer-events-none opacity-50',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["parse","isValid","useState","jsxs","Popover","jsx","PopoverTrigger","Button","CalendarIcon","PopoverContent","cn","DatePicker","TimePicker","DropdownMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-time-range-picker-ue0m5G27.cjs","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('px-4 pb-1 text-ui-sm text-red-500')}>{customRangeError}</p>}\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'pointer-events-none opacity-50',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["parse","isValid","useState","jsxs","Popover","jsx","PopoverTrigger","Button","CalendarIcon","PopoverContent","cn","DatePicker","TimePicker","DropdownMenu"],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { parse, isValid } from 'date-fns';
|
|
3
3
|
import { CalendarIcon } from 'lucide-react';
|
|
4
4
|
import { useState } from 'react';
|
|
5
|
-
import { B as Button } from './Button-
|
|
5
|
+
import { B as Button } from './Button-Bx2lFdqb.js';
|
|
6
6
|
import { D as DatePicker } from './date-picker-BpKciwOX.js';
|
|
7
|
-
import { T as TimePicker } from './time-picker-
|
|
8
|
-
import { D as DropdownMenu } from './dropdown-menu-
|
|
7
|
+
import { T as TimePicker } from './time-picker-mLzcoQMO.js';
|
|
8
|
+
import { D as DropdownMenu } from './dropdown-menu-DEFygDZI.js';
|
|
9
9
|
import { P as Popover, b as PopoverTrigger, a as PopoverContent } from './popover-DwDnnrzj.js';
|
|
10
10
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
11
11
|
|
|
@@ -166,4 +166,4 @@ function DateTimeRangePicker({
|
|
|
166
166
|
}
|
|
167
167
|
|
|
168
168
|
export { DateTimeRangePicker as D };
|
|
169
|
-
//# sourceMappingURL=date-time-range-picker-
|
|
169
|
+
//# sourceMappingURL=date-time-range-picker-yJBIm34J.js.map
|
package/dist/{date-time-range-picker-DDNeOyj9.js.map → date-time-range-picker-yJBIm34J.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-range-picker-DDNeOyj9.js","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('px-4 pb-1 text-ui-sm text-red-500')}>{customRangeError}</p>}\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'pointer-events-none opacity-50',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAYA,MAAM,YAAA,GAAyE;AAAA,EAC7E,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,KAAA,EAAM;AAAA,EAC7B,EAAE,OAAO,UAAA,EAAY,KAAA,EAAO,iBAAiB,EAAA,EAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA,EAAK;AAAA,EACrE,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,aAAA,EAAe,IAAI,CAAA,GAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA,EAAK;AAAA,EACtE,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,aAAA,EAAe,IAAI,CAAA,GAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA,EAAK;AAAA,EACtE,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,cAAA,EAAgB,IAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA,EAAK;AAAA,EACzE,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,cAAA,EAAgB,IAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA,EAAK;AAAA,EACzE,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,iBAAA;AAC5B,CAAA;AAEA,SAAS,iBAAA,CAAkB,MAAY,OAAA,EAA8B;AACnE,EAAA,MAAM,QAAA,GAAW,IAAI,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,EAAG,IAAA,CAAK,QAAA,EAAS,EAAG,IAAA,CAAK,OAAA,EAAS,CAAA;AAC7E,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,EAAS,QAAA,EAAU,QAAQ,CAAA;AAClD,EAAA,OAAO,OAAA,CAAQ,QAAQ,CAAA,GAAI,QAAA,GAAW,IAAA;AACxC;AAeO,SAAS,mBAAA,CAAoB;AAAA,EAClC,MAAA,GAAS,KAAA;AAAA,EACT,cAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA,GAAO;AACT,CAAA,EAA6B;AAC3B,EAAA,MAAM,cAAA,GAAiB,OAAA,GAAU,YAAA,CAAa,MAAA,CAAO,CAAA,CAAA,KAAK,QAAQ,QAAA,CAAS,CAAA,CAAE,KAAK,CAAC,CAAA,GAAI,YAAA;AACvF,EAAA,MAAM,cAAA,GAAkC,eAAe,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,KAAA,KAAU,QAAQ,GAAG,KAAA,IAAS,KAAA;AACjG,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,SAAS,KAAK,CAAA;AAC5D,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAA2B,QAAQ,CAAA;AAC7E,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAA2B,MAAM,CAAA;AACvE,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,UAAU,CAAA;AAC7D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAS,UAAU,CAAA;AACzD,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,QAAA,EAA6B;AAE7E,EAAA,MAAM,eAAA,GAAkB,aAAa,IAAA,CAAK,CAAA,CAAA,KAAK,EAAE,KAAA,KAAU,MAAM,GAAG,KAAA,IAAS,KAAA;AAE7E,EAAA,MAAM,kBAAA,GAAqB,CAAC,KAAA,KAA2B;AACrD,IAAA,cAAA,GAAiB,KAAK,CAAA;AACtB,IAAA,IAAI,UAAU,QAAA,EAAU;AACtB,MAAA,gBAAA,CAAiB,QAAQ,CAAA;AACzB,MAAA,cAAA,CAAe,MAAM,CAAA;AACrB,MAAA,gBAAA,CAAiB,UAAU,CAAA;AAC3B,MAAA,cAAA,CAAe,UAAU,CAAA;AACzB,MAAA,kBAAA,CAAmB,IAAI,CAAA;AACvB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,QAAQ,YAAA,CAAa,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,UAAU,KAAK,CAAA;AACtD,IAAA,IAAI,OAAO,EAAA,EAAI;AACb,MAAA,YAAA,GAAe,IAAI,KAAK,IAAA,CAAK,GAAA,KAAQ,KAAA,CAAM,EAAE,GAAG,MAAM,CAAA;AACtD,MAAA,YAAA,GAAe,QAAW,IAAI,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,YAAA,GAAe,QAAW,MAAM,CAAA;AAChC,MAAA,YAAA,GAAe,QAAW,IAAI,CAAA;AAAA,IAChC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,MAAM,WAAW,aAAA,GAAiB,iBAAA,CAAkB,aAAA,EAAe,aAAa,KAAK,aAAA,GAAiB,MAAA;AACtG,IAAA,MAAM,SAAS,WAAA,GAAe,iBAAA,CAAkB,WAAA,EAAa,WAAW,KAAK,WAAA,GAAe,MAAA;AAC5F,IAAA,IAAI,YAAY,MAAA,IAAU,QAAA,CAAS,SAAQ,GAAI,MAAA,CAAO,SAAQ,EAAG;AAC/D,MAAA,mBAAA,CAAoB,8CAA8C,CAAA;AAClE,MAAA;AAAA,IACF;AACA,IAAA,mBAAA,CAAoB,MAAS,CAAA;AAC7B,IAAA,YAAA,GAAe,UAAU,MAAM,CAAA;AAC/B,IAAA,YAAA,GAAe,QAAQ,IAAI,CAAA;AAC3B,IAAA,kBAAA,CAAmB,KAAK,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,IAAI,WAAW,QAAA,EAAU;AACvB,IAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAM,eAAA,EAAiB,cAAc,kBAAA,EAC5C,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,OAAA,EAAO,IAAA,EACrB,QAAA,kBAAA,IAAA,CAAC,MAAA,EAAA,EAAO,MAAY,QAAA,EAClB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA;AAAA,QACb,QAAA,GAAW,QAAA,CAAS,kBAAA,EAAmB,GAAI,OAAA;AAAA,QAAQ,GAAA;AAAA,QAAE,KAAA;AAAA,QACrD,MAAA,GAAS,MAAA,CAAO,kBAAA,EAAmB,GAAI;AAAA,OAAA,EAC1C,CAAA,EACF,CAAA;AAAA,2BACC,cAAA,EAAA,EAAe,KAAA,EAAM,SAAQ,SAAA,EAAW,EAAA,CAAG,YAAY,CAAA,EACtD,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,MAAM,CAAA,EACvB,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,yBAAyB,CAAA,EAC1C,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,sDAAsD,GAAG,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,4BAClF,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,QAAA,EAAU,aAAA;AAAA,gBACV,KAAA,EAAO,aAAA;AAAA,gBACP,QAAA,EAAU,gBAAA;AAAA,gBACV,QAAA;AAAA,gBACA,MAAA,EAAQ;AAAA;AAAA,aACV;AAAA,4BACA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,kBAAA;AAAA,gBACV,YAAA,EAAc,aAAA;AAAA,gBACd,eAAe,CAAA,CAAA,KAAK;AAClB,kBAAA,IAAI,CAAC,QAAA,EAAU,gBAAA,CAAiB,CAAC,CAAA;AAAA,gBACnC;AAAA;AAAA;AACF,WAAA,EACF,CAAA;AAAA,+BACC,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,sDAAsD,GAAG,QAAA,EAAA,KAAA,EAAG,CAAA;AAAA,4BAChF,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,QAAA;AAAA,gBACL,QAAA,EAAU,WAAA;AAAA,gBACV,KAAA,EAAO,WAAA;AAAA,gBACP,QAAA,EAAU,cAAA;AAAA,gBACV,QAAA;AAAA,gBACA,QAAA,EAAU;AAAA;AAAA,aACZ;AAAA,4BACA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,kBAAA;AAAA,gBACV,YAAA,EAAc,WAAA;AAAA,gBACd,eAAe,CAAA,CAAA,KAAK;AAClB,kBAAA,IAAI,CAAC,QAAA,EAAU,cAAA,CAAe,CAAC,CAAA;AAAA,gBACjC;AAAA;AAAA;AACF,WAAA,EACF;AAAA,SAAA,EACF,CAAA;AAAA,QACC,oCAAoB,GAAA,CAAC,GAAA,EAAA,EAAE,WAAW,EAAA,CAAG,mCAAmC,GAAI,QAAA,EAAA,gBAAA,EAAiB,CAAA;AAAA,wBAC9F,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,6CAA6C,CAAA,EAC9D,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,QAAA;AAAA,cACA,SAAA,EAAW,EAAA;AAAA,gBACT,8CAAA;AAAA,gBACA,QAAA,IAAY;AAAA,eACd;AAAA,cACA,SAAS,MAAM;AACb,gBAAA,mBAAA,CAAoB,MAAS,CAAA;AAC7B,gBAAA,kBAAA,CAAmB,cAAc,CAAA;AAAA,cACnC,CAAA;AAAA,cACD,QAAA,EAAA;AAAA;AAAA,WAED;AAAA,0BACA,GAAA,CAAC,UAAO,OAAA,EAAQ,SAAA,EAAU,MAAK,IAAA,EAAK,OAAA,EAAS,gBAAA,EAAkB,QAAA,EAAoB,QAAA,EAAA,OAAA,EAEnF;AAAA,SAAA,EACF;AAAA,OAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,4BACG,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAA,CAAa,SAAb,EAAqB,OAAA,EAAO,MAC3B,QAAA,kBAAA,IAAA,CAAC,MAAA,EAAA,EAAO,MAAY,QAAA,EAClB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,CAAA;AAAA,MACb;AAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,YAAA,CAAa,OAAA,EAAb,EAAqB,KAAA,EAAM,SACzB,QAAA,EAAA,cAAA,CAAe,GAAA,CAAI,CAAA,CAAA,qBAClB,GAAA,CAAC,YAAA,CAAa,IAAA,EAAb,EAAgC,QAAA,EAAU,MAAM,kBAAA,CAAmB,CAAA,CAAE,KAAK,CAAA,EACxE,YAAE,KAAA,EAAA,EADmB,CAAA,CAAE,KAE1B,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"date-time-range-picker-yJBIm34J.js","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('block px-4 pt-3 text-ui-sm font-medium text-neutral3')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('px-4 pb-1 text-ui-sm text-red-500')}>{customRangeError}</p>}\n <div className={cn('flex items-center justify-between px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'pointer-events-none opacity-50',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ require('./dialog.css');const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const dialog = require('@base-ui/react/dialog');
|
|
5
5
|
const lucideReact = require('lucide-react');
|
|
6
6
|
const React = require('react');
|
|
7
|
-
const Button = require('./Button-
|
|
7
|
+
const Button = require('./Button-Bm94fEF2.cjs');
|
|
8
8
|
const asChild = require('./as-child-Dgr1RHLO.cjs');
|
|
9
9
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
10
10
|
;/* empty css */
|
|
@@ -104,4 +104,4 @@ exports.DialogOverlay = DialogOverlay;
|
|
|
104
104
|
exports.DialogPortal = DialogPortal;
|
|
105
105
|
exports.DialogTitle = DialogTitle;
|
|
106
106
|
exports.DialogTrigger = DialogTrigger;
|
|
107
|
-
//# sourceMappingURL=dialog-
|
|
107
|
+
//# sourceMappingURL=dialog-ClItuCFY.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-
|
|
1
|
+
{"version":3,"file":"dialog-ClItuCFY.cjs","sources":["../src/ds/components/Dialog/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { asChildRenderProps } from '@/lib/as-child';\nimport { cn } from '@/lib/utils';\n\nimport './dialog.css';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = DialogPrimitive.Trigger.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Trigger ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n );\n },\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\ntype DialogCloseProps = DialogPrimitive.Close.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Close ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Close>\n );\n});\nDialogClose.displayName = 'DialogClose';\n\ntype DialogOverlayProps = Omit<DialogPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogOverlay = React.forwardRef<HTMLDivElement, DialogOverlayProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn('dialog-overlay-anim fixed inset-0 z-50 bg-overlay backdrop-blur-xs', className)}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\ntype DialogContentProps = Omit<DialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n showOverlay?: boolean;\n overlayClassName?: string;\n};\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, showOverlay = true, overlayClassName, ...props }, ref) => (\n <DialogPortal>\n {showOverlay && <DialogOverlay className={overlayClassName} />}\n <DialogPrimitive.Popup\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n 'dialog-content-anim',\n 'fixed top-[50%] left-[50%] z-50 grid translate-[-50%]',\n 'w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-xl border border-border1/40 bg-surface2/96 shadow-dialog backdrop-blur-md',\n 'focus-visible:outline-hidden',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n render={\n <Button variant=\"ghost\" size=\"sm\" className=\"absolute top-3 right-3\" aria-label=\"Close\">\n <X />\n </Button>\n }\n />\n </DialogPrimitive.Popup>\n </DialogPortal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-0.5 px-4 py-3 text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse gap-1.5 px-4 py-2.5 sm:flex-row sm:justify-end', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('max-h-[50vh] overflow-y-auto px-4 py-3.5', className)} {...props} />\n);\nDialogBody.displayName = 'DialogBody';\n\ntype DialogTitleProps = Omit<DialogPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title ref={ref} className={cn('text-ui-md font-medium', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\ntype DialogDescriptionProps = Omit<DialogPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('sr-only', className)} {...props} />\n ),\n);\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogBody,\n DialogTitle,\n DialogDescription,\n};\n"],"names":["DialogPrimitive","React","asChild","jsx","asChildRenderProps","cn","jsxs","Button","X"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { B as Button } from './Button-
|
|
5
|
+
import { B as Button } from './Button-Bx2lFdqb.js';
|
|
6
6
|
import { a as asChildRenderProps } from './as-child-N1qMDCr8.js';
|
|
7
7
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
8
8
|
import './dialog.css';/* empty css */
|
|
@@ -73,4 +73,4 @@ const DialogDescription = React.forwardRef(
|
|
|
73
73
|
DialogDescription.displayName = "DialogDescription";
|
|
74
74
|
|
|
75
75
|
export { Dialog as D, DialogBody as a, DialogClose as b, DialogContent as c, DialogDescription as d, DialogFooter as e, DialogHeader as f, DialogOverlay as g, DialogPortal as h, DialogTitle as i, DialogTrigger as j };
|
|
76
|
-
//# sourceMappingURL=dialog-
|
|
76
|
+
//# sourceMappingURL=dialog-bnt6epW2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-
|
|
1
|
+
{"version":3,"file":"dialog-bnt6epW2.js","sources":["../src/ds/components/Dialog/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { asChildRenderProps } from '@/lib/as-child';\nimport { cn } from '@/lib/utils';\n\nimport './dialog.css';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = DialogPrimitive.Trigger.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Trigger ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n );\n },\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\ntype DialogCloseProps = DialogPrimitive.Close.Props & {\n /** @deprecated Use Base UI's native `render` prop instead for stronger composition typing. */\n asChild?: boolean;\n};\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Close ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Close>\n );\n});\nDialogClose.displayName = 'DialogClose';\n\ntype DialogOverlayProps = Omit<DialogPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogOverlay = React.forwardRef<HTMLDivElement, DialogOverlayProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn('dialog-overlay-anim fixed inset-0 z-50 bg-overlay backdrop-blur-xs', className)}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\ntype DialogContentProps = Omit<DialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n showOverlay?: boolean;\n overlayClassName?: string;\n};\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, showOverlay = true, overlayClassName, ...props }, ref) => (\n <DialogPortal>\n {showOverlay && <DialogOverlay className={overlayClassName} />}\n <DialogPrimitive.Popup\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n 'dialog-content-anim',\n 'fixed top-[50%] left-[50%] z-50 grid translate-[-50%]',\n 'w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-xl border border-border1/40 bg-surface2/96 shadow-dialog backdrop-blur-md',\n 'focus-visible:outline-hidden',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n render={\n <Button variant=\"ghost\" size=\"sm\" className=\"absolute top-3 right-3\" aria-label=\"Close\">\n <X />\n </Button>\n }\n />\n </DialogPrimitive.Popup>\n </DialogPortal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-0.5 px-4 py-3 text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse gap-1.5 px-4 py-2.5 sm:flex-row sm:justify-end', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('max-h-[50vh] overflow-y-auto px-4 py-3.5', className)} {...props} />\n);\nDialogBody.displayName = 'DialogBody';\n\ntype DialogTitleProps = Omit<DialogPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title ref={ref} className={cn('text-ui-md font-medium', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\ntype DialogDescriptionProps = Omit<DialogPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('sr-only', className)} {...props} />\n ),\n);\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogBody,\n DialogTitle,\n DialogDescription,\n};\n"],"names":["DialogPrimitive"],"mappings":"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"}
|
|
@@ -6,9 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const dateFns = require('date-fns');
|
|
7
7
|
const lucideReact = require('lucide-react');
|
|
8
8
|
const React = require('react');
|
|
9
|
-
const Button = require('../../../Button-
|
|
9
|
+
const Button = require('../../../Button-Bm94fEF2.cjs');
|
|
10
10
|
const buttonsGroup = require('../../../buttons-group-Dw8Wu4sj.cjs');
|
|
11
|
-
const copyButton = require('../../../copy-button-
|
|
11
|
+
const copyButton = require('../../../copy-button-BKFcsNE1.cjs');
|
|
12
12
|
const components_DataDetailsPanel = require('../../../components/DataDetailsPanel.cjs.js');
|
|
13
13
|
const utils_cn = require('../../../cn-vA5sWo9W.cjs');
|
|
14
14
|
|
|
@@ -56,13 +56,13 @@ function LogDetailsView({
|
|
|
56
56
|
] })
|
|
57
57
|
] }),
|
|
58
58
|
!collapsed && /* @__PURE__ */ jsxRuntime.jsxs(components_DataDetailsPanel.DataDetailsPanel.Content, { children: [
|
|
59
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
59
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap", children: log.message }),
|
|
60
60
|
(traceId || spanId) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn("my-8 grid gap-2", "[&>button]:justify-between [&>button]:overflow-hidden"), children: [
|
|
61
61
|
traceId && /* @__PURE__ */ jsxRuntime.jsxs(buttonsGroup.ButtonsGroup, { spacing: "close", className: "w-full min-w-0", children: [
|
|
62
62
|
/* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { size: "md", className: "min-w-0 flex-1 overflow-hidden", onClick: () => onTraceClick?.(traceId), children: [
|
|
63
63
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {}),
|
|
64
64
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Trace" }),
|
|
65
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: " ml-auto min-w-0 truncate
|
|
65
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-ui-sm text-neutral2 ml-auto min-w-0 truncate", children: [
|
|
66
66
|
"# ",
|
|
67
67
|
traceId
|
|
68
68
|
] })
|
|
@@ -80,7 +80,7 @@ function LogDetailsView({
|
|
|
80
80
|
children: [
|
|
81
81
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, {}),
|
|
82
82
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Span" }),
|
|
83
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: " ml-auto min-w-0 truncate
|
|
83
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-ui-sm text-neutral2 ml-auto min-w-0 truncate", children: [
|
|
84
84
|
"# ",
|
|
85
85
|
spanId
|
|
86
86
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-details-view.cjs.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <ButtonsGroup className=\"ml-auto shrink-0\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup spacing=\"close\">\n <Button size=\"md\" tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </ButtonsGroup>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"font-mono text-ui-md wrap-break-word whitespace-pre-wrap text-neutral4\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button size=\"md\" className=\"min-w-0 flex-1 overflow-hidden\" onClick={() => onTraceClick?.(traceId)}>\n <ArrowRightIcon />\n <span>Trace</span>\n <span className=\" ml-auto min-w-0 truncate text-ui-sm text-neutral2\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} size=\"md\" tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n >\n <ArrowRightIcon />\n <span>Span</span>\n <span className=\" ml-auto min-w-0 truncate text-ui-sm text-neutral2\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} size=\"md\" tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["DataDetailsPanel","useState","jsxs","jsx","format","ButtonsGroup","Button","ChevronsUpDownIcon","ChevronsDownUpIcon","ArrowUpIcon","ArrowDownIcon","cn","ArrowRightIcon","CopyButton","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"log-details-view.cjs.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <ButtonsGroup className=\"ml-auto shrink-0\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup spacing=\"close\">\n <Button size=\"md\" tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </ButtonsGroup>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button size=\"md\" className=\"min-w-0 flex-1 overflow-hidden\" onClick={() => onTraceClick?.(traceId)}>\n <ArrowRightIcon />\n <span>Trace</span>\n <span className=\"text-ui-sm text-neutral2 ml-auto min-w-0 truncate\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} size=\"md\" tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n >\n <ArrowRightIcon />\n <span>Span</span>\n <span className=\"text-ui-sm text-neutral2 ml-auto min-w-0 truncate\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} size=\"md\" tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["DataDetailsPanel","useState","jsxs","jsx","format","ButtonsGroup","Button","ChevronsUpDownIcon","ChevronsDownUpIcon","ArrowUpIcon","ArrowDownIcon","cn","ArrowRightIcon","CopyButton","Fragment"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { format } from 'date-fns';
|
|
3
3
|
import { ChevronsUpDownIcon, ChevronsDownUpIcon, ArrowUpIcon, ArrowDownIcon, ArrowRightIcon } from 'lucide-react';
|
|
4
4
|
import { useState, Fragment as Fragment$1 } from 'react';
|
|
5
|
-
import { B as Button } from '../../../Button-
|
|
5
|
+
import { B as Button } from '../../../Button-Bx2lFdqb.js';
|
|
6
6
|
import { B as ButtonsGroup } from '../../../buttons-group-DJh4wnMs.js';
|
|
7
|
-
import { C as CopyButton } from '../../../copy-button-
|
|
7
|
+
import { C as CopyButton } from '../../../copy-button-H2iaKMng.js';
|
|
8
8
|
import { DataDetailsPanel } from '../../../components/DataDetailsPanel.es.js';
|
|
9
9
|
import { c as cn } from '../../../cn-BakJzhuv.js';
|
|
10
10
|
|
|
@@ -52,13 +52,13 @@ function LogDetailsView({
|
|
|
52
52
|
] })
|
|
53
53
|
] }),
|
|
54
54
|
!collapsed && /* @__PURE__ */ jsxs(DataDetailsPanel.Content, { children: [
|
|
55
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
55
|
+
/* @__PURE__ */ jsx("p", { className: "text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap", children: log.message }),
|
|
56
56
|
(traceId || spanId) && /* @__PURE__ */ jsxs("div", { className: cn("my-8 grid gap-2", "[&>button]:justify-between [&>button]:overflow-hidden"), children: [
|
|
57
57
|
traceId && /* @__PURE__ */ jsxs(ButtonsGroup, { spacing: "close", className: "w-full min-w-0", children: [
|
|
58
58
|
/* @__PURE__ */ jsxs(Button, { size: "md", className: "min-w-0 flex-1 overflow-hidden", onClick: () => onTraceClick?.(traceId), children: [
|
|
59
59
|
/* @__PURE__ */ jsx(ArrowRightIcon, {}),
|
|
60
60
|
/* @__PURE__ */ jsx("span", { children: "Trace" }),
|
|
61
|
-
/* @__PURE__ */ jsxs("span", { className: " ml-auto min-w-0 truncate
|
|
61
|
+
/* @__PURE__ */ jsxs("span", { className: "text-ui-sm text-neutral2 ml-auto min-w-0 truncate", children: [
|
|
62
62
|
"# ",
|
|
63
63
|
traceId
|
|
64
64
|
] })
|
|
@@ -76,7 +76,7 @@ function LogDetailsView({
|
|
|
76
76
|
children: [
|
|
77
77
|
/* @__PURE__ */ jsx(ArrowRightIcon, {}),
|
|
78
78
|
/* @__PURE__ */ jsx("span", { children: "Span" }),
|
|
79
|
-
/* @__PURE__ */ jsxs("span", { className: " ml-auto min-w-0 truncate
|
|
79
|
+
/* @__PURE__ */ jsxs("span", { className: "text-ui-sm text-neutral2 ml-auto min-w-0 truncate", children: [
|
|
80
80
|
"# ",
|
|
81
81
|
spanId
|
|
82
82
|
] })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-details-view.es.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <ButtonsGroup className=\"ml-auto shrink-0\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup spacing=\"close\">\n <Button size=\"md\" tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </ButtonsGroup>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"font-mono text-ui-md wrap-break-word whitespace-pre-wrap text-neutral4\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button size=\"md\" className=\"min-w-0 flex-1 overflow-hidden\" onClick={() => onTraceClick?.(traceId)}>\n <ArrowRightIcon />\n <span>Trace</span>\n <span className=\" ml-auto min-w-0 truncate text-ui-sm text-neutral2\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} size=\"md\" tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n >\n <ArrowRightIcon />\n <span>Span</span>\n <span className=\" ml-auto min-w-0 truncate text-ui-sm text-neutral2\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} size=\"md\" tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["Fragment"],"mappings":";;;;;;;;;;AAUA,MAAM,KAAK,gBAAA,CAAiB,YAAA;AAE5B,SAAS,OAAO,KAAA,EAA4B;AAC1C,EAAA,OAAO,KAAA,YAAiB,IAAA,GAAO,KAAA,GAAQ,IAAI,KAAK,KAAK,CAAA;AACvD;AAaO,SAAS,cAAA,CAAe;AAAA,EAC7B,GAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,EAAW,mBAAA;AAAA,EACX;AACF,CAAA,EAAwB;AACtB,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,KAAK,CAAA;AAChE,EAAA,MAAM,YAAY,mBAAA,IAAuB,iBAAA;AACzC,EAAA,MAAM,eAAe,iBAAA,IAAqB,oBAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,GAAA,CAAI,SAAS,CAAA;AACjC,EAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,EAAA,MAAM,SAAS,GAAA,CAAI,MAAA;AAEnB,EAAA,uBACE,IAAA,CAAC,oBAAiB,SAAA,EAChB,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,gBAAA,CAAiB,QAAjB,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,gBAAA,CAAiB,SAAjB,EAAyB,QAAA,EAAA;AAAA,QAAA,MAAA;AAAA,wBACpB,GAAA,CAAC,GAAA,EAAA,EAAG,QAAA,EAAA,MAAA,CAAO,IAAA,EAAM,sBAAsB,CAAA,EAAE;AAAA,OAAA,EAC/C,CAAA;AAAA,sBACA,IAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAU,kBAAA,EACrB,QAAA,EAAA;AAAA,QAAA,iBAAA,oBACC,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAS,YAAY,cAAA,GAAiB,gBAAA;AAAA,YACtC,OAAA,EAAS,MAAM,YAAA,CAAa,CAAC,SAAS,CAAA;AAAA,YAErC,QAAA,EAAA,SAAA,mBAAY,GAAA,CAAC,kBAAA,EAAA,EAAmB,CAAA,uBAAM,kBAAA,EAAA,EAAmB;AAAA;AAAA,SAC5D;AAAA,wBAGF,IAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAQ,OAAA,EACpB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,cAAA,EAAe,OAAA,EAAS,UAAA,EAAY,QAAA,EAAU,CAAC,UAAA,EACvE,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA,EACf,CAAA;AAAA,0BACA,GAAA,CAAC,MAAA,EAAA,EAAO,IAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,UAAA,EAAW,OAAA,EAAS,MAAA,EAAQ,QAAA,EAAU,CAAC,MAAA,EAC/D,QAAA,kBAAA,GAAA,CAAC,iBAAc,CAAA,EACjB;AAAA,SAAA,EACF,CAAA;AAAA,wBAEA,GAAA,CAAC,gBAAA,CAAiB,WAAA,EAAjB,EAA6B,SAAS,OAAA,EAAS;AAAA,OAAA,EAClD;AAAA,KAAA,EACF,CAAA;AAAA,IAEC,CAAC,SAAA,oBACA,IAAA,CAAC,gBAAA,CAAiB,SAAjB,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,wEAAA,EAA0E,QAAA,EAAA,GAAA,CAAI,OAAA,EAAQ,CAAA;AAAA,MAAA,CAEjG,OAAA,IAAW,2BACX,IAAA,CAAC,KAAA,EAAA,EAAI,WAAW,EAAA,CAAG,iBAAA,EAAmB,uDAAuD,CAAA,EAC1F,QAAA,EAAA;AAAA,QAAA,OAAA,oBACC,IAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAQ,OAAA,EAAQ,WAAU,gBAAA,EACtC,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,MAAA,EAAA,EAAO,MAAK,IAAA,EAAK,SAAA,EAAU,kCAAiC,OAAA,EAAS,MAAM,YAAA,GAAe,OAAO,CAAA,EAChG,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,cAAA,EAAA,EAAe,CAAA;AAAA,4BAChB,GAAA,CAAC,UAAK,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,4BACX,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oDAAA,EAAqD,QAAA,EAAA;AAAA,cAAA,IAAA;AAAA,cAAG;AAAA,aAAA,EAAQ;AAAA,WAAA,EAClF,CAAA;AAAA,8BACC,UAAA,EAAA,EAAW,OAAA,EAAS,SAAS,IAAA,EAAK,IAAA,EAAK,SAAQ,4BAAA,EAA6B;AAAA,SAAA,EAC/E,CAAA;AAAA,QAED,0BACC,IAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAQ,OAAA,EAAQ,WAAU,gBAAA,EACtC,QAAA,EAAA;AAAA,0BAAA,IAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,IAAA;AAAA,cACL,SAAA,EAAU,gCAAA;AAAA,cACV,QAAA,EAAU,CAAC,OAAA,IAAW,CAAC,WAAA;AAAA,cACvB,OAAA,EAAS,MAAM,OAAA,IAAW,WAAA,GAAc,SAAS,MAAM,CAAA;AAAA,cAEvD,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,cAAA,EAAA,EAAe,CAAA;AAAA,gCAChB,GAAA,CAAC,UAAK,QAAA,EAAA,MAAA,EAAI,CAAA;AAAA,gCACV,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oDAAA,EAAqD,QAAA,EAAA;AAAA,kBAAA,IAAA;AAAA,kBAAG;AAAA,iBAAA,EAAO;AAAA;AAAA;AAAA,WACjF;AAAA,8BACC,UAAA,EAAA,EAAW,OAAA,EAAS,QAAQ,IAAA,EAAK,IAAA,EAAK,SAAQ,2BAAA,EAA4B;AAAA,SAAA,EAC7E;AAAA,OAAA,EAEJ,CAAA;AAAA,sBAGF,IAAA,CAAC,EAAA,EAAA,EAAG,SAAA,EAAU,MAAA,EACX,QAAA,EAAA;AAAA,QAAA,GAAA,CAAI,8BACH,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,EAAA,CAAG,GAAA,EAAH,EAAO,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,0BACnB,GAAA,CAAC,EAAA,CAAG,KAAA,EAAH,EAAU,cAAI,UAAA,EAAW;AAAA,SAAA,EAC5B,CAAA;AAAA,QAED,GAAA,CAAI,8BACH,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,EAAA,CAAG,GAAA,EAAH,EAAO,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,0BACnB,GAAA,CAAC,EAAA,CAAG,KAAA,EAAH,EAAU,cAAI,UAAA,EAAW;AAAA,SAAA,EAC5B,CAAA;AAAA,QAED,GAAA,CAAI,+BACH,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,EAAA,CAAG,GAAA,EAAH,EAAO,QAAA,EAAA,SAAA,EAAO,CAAA;AAAA,0BACf,GAAA,CAAC,EAAA,CAAG,KAAA,EAAH,EAAU,cAAI,WAAA,EAAY;AAAA,SAAA,EAC7B,CAAA;AAAA,QAED,GAAA,CAAI,+BACH,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,EAAA,CAAG,GAAA,EAAH,EAAO,QAAA,EAAA,aAAA,EAAW,CAAA;AAAA,0BACnB,GAAA,CAAC,EAAA,CAAG,KAAA,EAAH,EAAU,cAAI,WAAA,EAAY;AAAA,SAAA,EAC7B,CAAA;AAAA,QAED,GAAA,CAAI,0BACH,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,EAAA,CAAG,GAAA,EAAH,EAAO,QAAA,EAAA,QAAA,EAAM,CAAA;AAAA,0BACd,GAAA,CAAC,EAAA,CAAG,KAAA,EAAH,EAAU,cAAI,MAAA,EAAO;AAAA,SAAA,EACxB,CAAA;AAAA,QAED,GAAA,CAAI,YAAY,MAAA,CAAO,IAAA,CAAK,IAAI,QAAQ,CAAA,CAAE,MAAA,GAAS,CAAA,oBAClD,GAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA,MAAA,CAAO,QAAQ,GAAA,CAAI,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,KAAK,KAAK,CAAA,qBAC5C,IAAA,CAACA,UAAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,EAAA,CAAG,GAAA,EAAH,EAAQ,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,8BACZ,EAAA,CAAG,KAAA,EAAH,EAAU,QAAA,EAAA,MAAA,CAAO,KAAK,CAAA,EAAE;AAAA,SAAA,EAAA,EAFZ,GAGf,CACD,CAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AAAA,MAEC,GAAA,CAAI,IAAA,IAAQ,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,IAAI,CAAA,CAAE,MAAA,GAAS,CAAA,oBAC1C,GAAA,CAAC,gBAAA,CAAiB,WAAA,EAAjB,EAA6B,KAAA,EAAM,MAAA,EAAO,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,MAAM,IAAA,EAAM,CAAC,CAAA,EAAG,SAAA,EAAU,MAAA,EAAO;AAAA,KAAA,EAE5G;AAAA,GAAA,EAEJ,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"log-details-view.es.js","sources":["../../../../src/domains/logs/components/log-details-view.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { ArrowDownIcon, ArrowRightIcon, ArrowUpIcon, ChevronsDownUpIcon, ChevronsUpDownIcon } from 'lucide-react';\nimport { Fragment, useState } from 'react';\nimport type { LogRecord } from '../types';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { DataDetailsPanel } from '@/ds/components/DataDetailsPanel';\nimport { cn } from '@/lib/utils';\n\nconst KV = DataDetailsPanel.KeyValueList;\n\nfunction toDate(value: Date | string): Date {\n return value instanceof Date ? value : new Date(value);\n}\n\nexport interface LogDetailsViewProps {\n log: LogRecord;\n onClose: () => void;\n onTraceClick?: (traceId: string) => void;\n onSpanClick?: (traceId: string, spanId: string) => void;\n onPrevious?: () => void;\n onNext?: () => void;\n collapsed?: boolean;\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\nexport function LogDetailsView({\n log,\n onClose,\n onTraceClick,\n onSpanClick,\n onPrevious,\n onNext,\n collapsed: controlledCollapsed,\n onCollapsedChange,\n}: LogDetailsViewProps) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed ?? internalCollapsed;\n const setCollapsed = onCollapsedChange ?? setInternalCollapsed;\n const date = toDate(log.timestamp);\n const traceId = log.traceId;\n const spanId = log.spanId;\n\n return (\n <DataDetailsPanel collapsed={collapsed}>\n <DataDetailsPanel.Header>\n <DataDetailsPanel.Heading>\n Log <b>{format(date, 'MMM dd, HH:mm:ss.SSS')}</b>\n </DataDetailsPanel.Heading>\n <ButtonsGroup className=\"ml-auto shrink-0\">\n {onCollapsedChange && (\n <Button\n size=\"md\"\n tooltip={collapsed ? 'Expand panel' : 'Collapse panel'}\n onClick={() => setCollapsed(!collapsed)}\n >\n {collapsed ? <ChevronsUpDownIcon /> : <ChevronsDownUpIcon />}\n </Button>\n )}\n\n <ButtonsGroup spacing=\"close\">\n <Button size=\"md\" tooltip=\"Previous log\" onClick={onPrevious} disabled={!onPrevious}>\n <ArrowUpIcon />\n </Button>\n <Button size=\"md\" tooltip=\"Next log\" onClick={onNext} disabled={!onNext}>\n <ArrowDownIcon />\n </Button>\n </ButtonsGroup>\n\n <DataDetailsPanel.CloseButton onClick={onClose} />\n </ButtonsGroup>\n </DataDetailsPanel.Header>\n\n {!collapsed && (\n <DataDetailsPanel.Content>\n <p className=\"text-ui-md text-neutral4 font-mono wrap-break-word whitespace-pre-wrap\">{log.message}</p>\n\n {(traceId || spanId) && (\n <div className={cn('my-8 grid gap-2', '[&>button]:justify-between [&>button]:overflow-hidden')}>\n {traceId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button size=\"md\" className=\"min-w-0 flex-1 overflow-hidden\" onClick={() => onTraceClick?.(traceId)}>\n <ArrowRightIcon />\n <span>Trace</span>\n <span className=\"text-ui-sm text-neutral2 ml-auto min-w-0 truncate\"># {traceId}</span>\n </Button>\n <CopyButton content={traceId} size=\"md\" tooltip=\"Copy Trace ID to clipboard\" />\n </ButtonsGroup>\n )}\n {spanId && (\n <ButtonsGroup spacing=\"close\" className=\"w-full min-w-0\">\n <Button\n size=\"md\"\n className=\"min-w-0 flex-1 overflow-hidden\"\n disabled={!traceId || !onSpanClick}\n onClick={() => traceId && onSpanClick?.(traceId, spanId)}\n >\n <ArrowRightIcon />\n <span>Span</span>\n <span className=\"text-ui-sm text-neutral2 ml-auto min-w-0 truncate\"># {spanId}</span>\n </Button>\n <CopyButton content={spanId} size=\"md\" tooltip=\"Copy Span ID to clipboard\" />\n </ButtonsGroup>\n )}\n </div>\n )}\n\n <KV className=\"mb-6\">\n {log.entityType && (\n <>\n <KV.Key>Entity Type</KV.Key>\n <KV.Value>{log.entityType}</KV.Value>\n </>\n )}\n {log.entityName && (\n <>\n <KV.Key>Entity Name</KV.Key>\n <KV.Value>{log.entityName}</KV.Value>\n </>\n )}\n {log.serviceName && (\n <>\n <KV.Key>Service</KV.Key>\n <KV.Value>{log.serviceName}</KV.Value>\n </>\n )}\n {log.environment && (\n <>\n <KV.Key>Environment</KV.Key>\n <KV.Value>{log.environment}</KV.Value>\n </>\n )}\n {log.source && (\n <>\n <KV.Key>Source</KV.Key>\n <KV.Value>{log.source}</KV.Value>\n </>\n )}\n {log.metadata && Object.keys(log.metadata).length > 0 && (\n <>\n {Object.entries(log.metadata).map(([key, value]) => (\n <Fragment key={key}>\n <KV.Key>{key}</KV.Key>\n <KV.Value>{String(value)}</KV.Value>\n </Fragment>\n ))}\n </>\n )}\n </KV>\n\n {log.data && Object.keys(log.data).length > 0 && (\n <DataDetailsPanel.CodeSection title=\"Data\" codeStr={JSON.stringify(log.data, null, 2)} className=\"mt-6\" />\n )}\n </DataDetailsPanel.Content>\n )}\n </DataDetailsPanel>\n );\n}\n"],"names":["Fragment"],"mappings":"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"}
|