@mastra/playground-ui 57.0.0 → 57.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Button-KUj0U-5I.js → Button-B8nF87ai.js} +2 -8
- package/dist/Button-B8nF87ai.js.map +1 -0
- package/dist/{Button-MMZPEb_q.cjs → Button-BAMnPqos.cjs} +1 -7
- package/dist/Button-BAMnPqos.cjs.map +1 -0
- package/dist/{Card-DwGasv0K.cjs → Card-BbwF20OW.cjs} +3 -3
- package/dist/Card-BbwF20OW.cjs.map +1 -0
- package/dist/{Card-B_buJ5yF.js → Card-DmT57Pve.js} +3 -3
- package/dist/Card-DmT57Pve.js.map +1 -0
- package/dist/{EmptyState-DiSP6UIy.cjs → EmptyState-2XQgeju6.cjs} +12 -3
- package/dist/EmptyState-2XQgeju6.cjs.map +1 -0
- package/dist/{EmptyState-B6cyZw6m.js → EmptyState-Bc4nJ9QH.js} +13 -4
- package/dist/EmptyState-Bc4nJ9QH.js.map +1 -0
- package/dist/{Notice-CPyYcX5J.cjs → Notice-AUNd8fqT.cjs} +2 -2
- package/dist/{Notice-CPyYcX5J.cjs.map → Notice-AUNd8fqT.cjs.map} +1 -1
- package/dist/{Notice-KC18b8Nd.js → Notice-WT8G4OA6.js} +2 -2
- package/dist/{Notice-KC18b8Nd.js.map → Notice-WT8G4OA6.js.map} +1 -1
- package/dist/{ask-user-DaRRR4qQ.cjs → ask-user--Samf9gv.cjs} +2 -2
- package/dist/{ask-user-DaRRR4qQ.cjs.map → ask-user--Samf9gv.cjs.map} +1 -1
- package/dist/{ask-user-C4DTzEQF.js → ask-user-C-B3dhNP.js} +2 -2
- package/dist/{ask-user-C4DTzEQF.js.map → ask-user-C-B3dhNP.js.map} +1 -1
- package/dist/buttons-group.css +2 -14
- package/dist/{chat-notification-DeKD1Ifx.js → chat-notification-CmdRGO_D.js} +2 -2
- package/dist/{chat-notification-DeKD1Ifx.js.map → chat-notification-CmdRGO_D.js.map} +1 -1
- package/dist/{chat-notification-C5Ox5tuS.cjs → chat-notification-DJykWtoj.cjs} +2 -2
- package/dist/{chat-notification-C5Ox5tuS.cjs.map → chat-notification-DJykWtoj.cjs.map} +1 -1
- package/dist/{chat-signal-DiAHks6_.js → chat-signal-Vg8pGXwH.js} +2 -2
- package/dist/{chat-signal-DiAHks6_.js.map → chat-signal-Vg8pGXwH.js.map} +1 -1
- package/dist/{chat-signal-ClyJeml8.cjs → chat-signal-xs3FkPts.cjs} +2 -2
- package/dist/{chat-signal-ClyJeml8.cjs.map → chat-signal-xs3FkPts.cjs.map} +1 -1
- package/dist/{code-block-D37olB3O.js → code-block-CoKMTAdr.js} +5 -5
- package/dist/{code-block-D37olB3O.js.map → code-block-CoKMTAdr.js.map} +1 -1
- package/dist/{code-block-BoTq0TMr.cjs → code-block-FTEGH9VP.cjs} +5 -5
- package/dist/{code-block-BoTq0TMr.cjs.map → code-block-FTEGH9VP.cjs.map} +1 -1
- package/dist/{code-editor-BfoJXq9l.cjs → code-editor-D0wHkvDt.cjs} +2 -2
- package/dist/{code-editor-BfoJXq9l.cjs.map → code-editor-D0wHkvDt.cjs.map} +1 -1
- package/dist/{code-editor-BQTDma1I.js → code-editor-DmvGc1jj.js} +2 -2
- package/dist/{code-editor-BQTDma1I.js.map → code-editor-DmvGc1jj.js.map} +1 -1
- package/dist/{combobox-Bn_uyUSB.cjs → combobox-1tyP_dy-.cjs} +3 -3
- package/dist/{combobox-Bn_uyUSB.cjs.map → combobox-1tyP_dy-.cjs.map} +1 -1
- package/dist/{combobox-Cykfy5wc.js → combobox-gPiXyJgX.js} +3 -3
- package/dist/{combobox-Cykfy5wc.js.map → combobox-gPiXyJgX.js.map} +1 -1
- package/dist/{combobox-styles-CSsS2LEx.cjs → combobox-styles-CeTbTVnX.cjs} +2 -2
- package/dist/combobox-styles-CeTbTVnX.cjs.map +1 -0
- package/dist/{combobox-styles-iuJUkJEQ.js → combobox-styles-DZbWnLlE.js} +2 -2
- package/dist/combobox-styles-DZbWnLlE.js.map +1 -0
- package/dist/{command-Bmy4PznC.js → command-6BKuiTWd.js} +2 -2
- package/dist/{command-Bmy4PznC.js.map → command-6BKuiTWd.js.map} +1 -1
- package/dist/{command-B7H-emho.cjs → command-ByQRbkpW.cjs} +2 -2
- package/dist/{command-B7H-emho.cjs.map → command-ByQRbkpW.cjs.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Columns.cjs.js +2 -106
- package/dist/components/Columns.cjs.js.map +1 -1
- package/dist/components/Columns.es.js +4 -107
- package/dist/components/Columns.es.js.map +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +3 -3
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +3 -3
- package/dist/components/Comment.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 +2 -2
- package/dist/components/DataDetailsPanel.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 +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +3 -3
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
- package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +3 -3
- package/dist/components/FilterBar.es.js +4 -4
- package/dist/components/FormFieldBlocks.cjs.js +2 -2
- package/dist/components/FormFieldBlocks.es.js +2 -2
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/IntegrationDialog.cjs.js +2 -2
- package/dist/components/IntegrationDialog.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +1 -1
- package/dist/components/LogsDataList.es.js +1 -1
- package/dist/components/MainSidebar.cjs.js +125 -11
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +120 -1
- 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/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +26 -3
- package/dist/components/PageLayout.cjs.js.map +1 -1
- package/dist/components/PageLayout.es.js +27 -4
- package/dist/components/PageLayout.es.js.map +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +5 -5
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +6 -6
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +3 -3
- package/dist/components/SideDialog.es.js +3 -3
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +4 -4
- package/dist/components/Workflow.es.js +4 -4
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/chat-event.cjs.js +3 -3
- package/dist/components/ai/chat-event.es.js +4 -4
- package/dist/components/ai/plan.cjs.js +2 -2
- package/dist/components/ai/plan.es.js +2 -2
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +3 -3
- package/dist/{copy-button-B5ZCtnTb.cjs → copy-button-D2MTGxq_.cjs} +2 -2
- package/dist/{copy-button-B5ZCtnTb.cjs.map → copy-button-D2MTGxq_.cjs.map} +1 -1
- package/dist/{copy-button-DZqxEuiE.js → copy-button-DcZ1mdw4.js} +2 -2
- package/dist/{copy-button-DZqxEuiE.js.map → copy-button-DcZ1mdw4.js.map} +1 -1
- package/dist/{data-code-section-iXzoOYMX.cjs → data-code-section-C10eY4qv.cjs} +5 -5
- package/dist/{data-code-section-iXzoOYMX.cjs.map → data-code-section-C10eY4qv.cjs.map} +1 -1
- package/dist/{data-code-section-DJRr65hS.js → data-code-section-CW9vy-nF.js} +5 -5
- package/dist/{data-code-section-DJRr65hS.js.map → data-code-section-CW9vy-nF.js.map} +1 -1
- package/dist/{data-keys-and-values-DhC4U4Yl.js → data-keys-and-values-BTYDB-K2.js} +3 -20
- package/dist/data-keys-and-values-BTYDB-K2.js.map +1 -0
- package/dist/{data-keys-and-values-BduKvvC5.cjs → data-keys-and-values-CMJ9zHKm.cjs} +3 -20
- package/dist/data-keys-and-values-CMJ9zHKm.cjs.map +1 -0
- package/dist/{data-list-DSbuTWLI.cjs → data-list-CH3HAhK5.cjs} +5 -5
- package/dist/data-list-CH3HAhK5.cjs.map +1 -0
- package/dist/{data-list-Cn0Ls4l2.js → data-list-DXjH5wkB.js} +5 -5
- package/dist/data-list-DXjH5wkB.js.map +1 -0
- package/dist/{data-list-spacer-C0YimRXC.js → data-list-spacer-BQ4_YeyT.js} +2 -2
- package/dist/{data-list-spacer-C0YimRXC.js.map → data-list-spacer-BQ4_YeyT.js.map} +1 -1
- package/dist/{data-list-spacer-DUBpzv_H.cjs → data-list-spacer-GIVW2hB1.cjs} +2 -2
- package/dist/{data-list-spacer-DUBpzv_H.cjs.map → data-list-spacer-GIVW2hB1.cjs.map} +1 -1
- package/dist/{data-panel-Bd_Xsz-W.cjs → data-panel-BG7wlPAX.cjs} +3 -3
- package/dist/{data-panel-Bd_Xsz-W.cjs.map → data-panel-BG7wlPAX.cjs.map} +1 -1
- package/dist/{data-panel-Y7wD0xlR.js → data-panel-Dclh0gKS.js} +3 -3
- package/dist/{data-panel-Y7wD0xlR.js.map → data-panel-Dclh0gKS.js.map} +1 -1
- package/dist/{date-time-range-picker-D2g3RU5B.cjs → date-time-range-picker-CiWpvWGR.cjs} +3 -3
- package/dist/{date-time-range-picker-D2g3RU5B.cjs.map → date-time-range-picker-CiWpvWGR.cjs.map} +1 -1
- package/dist/{date-time-range-picker-Cb86jLFc.js → date-time-range-picker-YGP0bTkl.js} +3 -3
- package/dist/{date-time-range-picker-Cb86jLFc.js.map → date-time-range-picker-YGP0bTkl.js.map} +1 -1
- package/dist/{dialog-Bilo4jEU.cjs → dialog-B2DGYuyi.cjs} +2 -2
- package/dist/{dialog-Bilo4jEU.cjs.map → dialog-B2DGYuyi.cjs.map} +1 -1
- package/dist/{dialog-DMOXPT0N.js → dialog-BvDeW4yR.js} +2 -2
- package/dist/{dialog-DMOXPT0N.js.map → dialog-BvDeW4yR.js.map} +1 -1
- package/dist/domains/auth/components/permission-denied.cjs.js +22 -0
- package/dist/domains/auth/components/permission-denied.cjs.js.map +1 -0
- package/dist/domains/auth/components/permission-denied.d.ts +2 -0
- package/dist/domains/auth/components/permission-denied.es.js +18 -0
- package/dist/domains/auth/components/permission-denied.es.js.map +1 -0
- package/dist/domains/auth/components/session-expired.cjs.js +40 -0
- package/dist/domains/auth/components/session-expired.cjs.js.map +1 -0
- package/dist/domains/auth/components/session-expired.d.ts +2 -0
- package/dist/domains/auth/components/session-expired.es.js +36 -0
- package/dist/domains/auth/components/session-expired.es.js.map +1 -0
- package/dist/domains/auth/services/sso-login.cjs.js +28 -0
- package/dist/domains/auth/services/sso-login.cjs.js.map +1 -0
- package/dist/domains/auth/services/sso-login.d.ts +2 -0
- package/dist/domains/auth/services/sso-login.es.js +24 -0
- package/dist/domains/auth/services/sso-login.es.js.map +1 -0
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -3
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -3
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -2
- package/dist/domains/chat/attachments/composer-attachment.es.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +2 -2
- package/dist/domains/logs/components/log-details-view.es.js +2 -2
- package/dist/domains/logs/components/logs-error-content.cjs.js +6 -7
- package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +4 -5
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +1 -1
- 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 +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/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 +4 -4
- package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
- package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
- 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 +5 -5
- package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
- package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +19 -8
- 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 +20 -9
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.cjs.js +5 -3
- package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +6 -4
- package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +5 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +5 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +13 -12
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -6
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +79 -0
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-processor.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +75 -0
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +2 -0
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +2 -1
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +85 -0
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-payload/span-processor-attributes.d.ts +2 -0
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +81 -0
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js.map +1 -0
- package/dist/domains/traces/components/span-payload.cjs.js +4 -0
- package/dist/domains/traces/components/span-payload.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload.es.js +2 -0
- package/dist/domains/traces/components/span-payload.es.js.map +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
- package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
- package/dist/domains/traces/components/span-token-usage.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +12 -16
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +12 -16
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +8 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +8 -1
- package/dist/domains/traces/components/trace-summary-description.es.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
- package/dist/domains/traces/components/traces-error-content.cjs.js +6 -6
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +4 -4
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-view.es.js +2 -2
- package/dist/domains/traces/components.cjs.js +4 -2
- package/dist/domains/traces/components.cjs.js.map +1 -1
- package/dist/domains/traces/components.es.js +2 -1
- package/dist/domains/traces/components.es.js.map +1 -1
- package/dist/domains/traces.cjs.js +4 -2
- package/dist/domains/traces.cjs.js.map +1 -1
- package/dist/domains/traces.es.js +2 -1
- package/dist/domains/traces.es.js.map +1 -1
- package/dist/{drawer-B6Ftum77.cjs → drawer-CmzM8WKh.cjs} +2 -2
- package/dist/{drawer-B6Ftum77.cjs.map → drawer-CmzM8WKh.cjs.map} +1 -1
- package/dist/{drawer-CnCsgToD.js → drawer-b_iqX4G0.js} +2 -2
- package/dist/{drawer-CnCsgToD.js.map → drawer-b_iqX4G0.js.map} +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +2 -3
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +2 -3
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +11 -12
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +9 -10
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +1 -3
- package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -3
- package/dist/ee/signals/examples-pager.es.js.map +1 -1
- package/dist/ee/signals/flow-card.cjs.js +1 -1
- package/dist/ee/signals/flow-card.es.js +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.es.js +2 -2
- package/dist/ee/signals/signals-error-state.cjs.js +2 -2
- package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
- package/dist/ee/signals/signals-error-state.es.js +2 -2
- package/dist/ee/signals/signals-error-state.es.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -2
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -2
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +3 -12
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +3 -12
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +10 -19
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +10 -19
- package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -1
- package/dist/{filter-bar-chip-B_k_vbip.cjs → filter-bar-chip-Y_lejyj9.cjs} +3 -3
- package/dist/{filter-bar-chip-B_k_vbip.cjs.map → filter-bar-chip-Y_lejyj9.cjs.map} +1 -1
- package/dist/{filter-bar-chip-BlvuAPve.js → filter-bar-chip-yvB9JA0r.js} +3 -3
- package/dist/{filter-bar-chip-BlvuAPve.js.map → filter-bar-chip-yvB9JA0r.js.map} +1 -1
- package/dist/hooks/use-fluid-hover.cjs.js +2 -4
- package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
- package/dist/hooks/use-fluid-hover.es.js +2 -4
- package/dist/hooks/use-fluid-hover.es.js.map +1 -1
- package/dist/{input-group-DaIV9Orp.cjs → input-group-Dt7PI7Bh.cjs} +2 -2
- package/dist/{input-group-DaIV9Orp.cjs.map → input-group-Dt7PI7Bh.cjs.map} +1 -1
- package/dist/{input-group-B-pskRGt.js → input-group-QyOyAe2m.js} +2 -2
- package/dist/{input-group-B-pskRGt.js.map → input-group-QyOyAe2m.js.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +6 -6
- package/dist/layout/tabbed-container.es.js +6 -6
- package/dist/{list-search-DhReauU5.cjs → list-search-CspJ7pQa.cjs} +2 -2
- package/dist/{list-search-DhReauU5.cjs.map → list-search-CspJ7pQa.cjs.map} +1 -1
- package/dist/{list-search-DK2yMiME.js → list-search-hX4N3d_Y.js} +2 -2
- package/dist/{list-search-DK2yMiME.js.map → list-search-hX4N3d_Y.js.map} +1 -1
- package/dist/{logs-data-list-DgoCLb6k.cjs → logs-data-list-BGJTRyO_.cjs} +2 -2
- package/dist/{logs-data-list-DgoCLb6k.cjs.map → logs-data-list-BGJTRyO_.cjs.map} +1 -1
- package/dist/{logs-data-list-B24gfDle.js → logs-data-list-XU1hCwI5.js} +2 -2
- package/dist/{logs-data-list-B24gfDle.js.map → logs-data-list-XU1hCwI5.js.map} +1 -1
- package/dist/{main-sidebar-DYfRxFn4.cjs → main-sidebar-link-active-CYZwvfPC.cjs} +5 -118
- package/dist/main-sidebar-link-active-CYZwvfPC.cjs.map +1 -0
- package/dist/{main-sidebar-Cf5G9iaC.js → main-sidebar-link-active-NW5N8nMT.js} +7 -119
- package/dist/main-sidebar-link-active-NW5N8nMT.js.map +1 -0
- package/dist/{markdown-renderer-BUqHHH4y.js → markdown-renderer-4cVz18hI.js} +3 -3
- package/dist/{markdown-renderer-BUqHHH4y.js.map → markdown-renderer-4cVz18hI.js.map} +1 -1
- package/dist/{markdown-renderer-CZLwgva-.cjs → markdown-renderer-zbO5SMQg.cjs} +3 -3
- package/dist/{markdown-renderer-CZLwgva-.cjs.map → markdown-renderer-zbO5SMQg.cjs.map} +1 -1
- package/dist/{metrics-card-CN4VRQQJ.js → metrics-card-Bzm6m1dy.js} +3 -3
- package/dist/{metrics-card-CN4VRQQJ.js.map → metrics-card-Bzm6m1dy.js.map} +1 -1
- package/dist/{metrics-card-DStXI6yn.cjs → metrics-card-DCCHIG-z.cjs} +3 -3
- package/dist/{metrics-card-DStXI6yn.cjs.map → metrics-card-DCCHIG-z.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-CvOXyEGn.cjs → metrics-kpi-card-Bhb4R4z0.cjs} +2 -2
- package/dist/{metrics-kpi-card-CvOXyEGn.cjs.map → metrics-kpi-card-Bhb4R4z0.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-C-XLN_Us.js → metrics-kpi-card-BrnFhFQm.js} +2 -2
- package/dist/{metrics-kpi-card-C-XLN_Us.js.map → metrics-kpi-card-BrnFhFQm.js.map} +1 -1
- package/dist/new/layout/app-shell.cjs.js +13 -0
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +13 -1
- package/dist/new/layout/app-shell.es.js.map +1 -1
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/new/settings.cjs.js +42 -2
- package/dist/new/settings.cjs.js.map +1 -1
- package/dist/new/settings.es.js +43 -3
- package/dist/new/settings.es.js.map +1 -1
- package/dist/new/sidebar.cjs.js +33 -33
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +3 -3
- package/dist/new/sidebar.es.js.map +1 -1
- package/dist/{page-header-CSigVThQ.js → page-header-CyXAezlZ.js} +25 -26
- package/dist/page-header-CyXAezlZ.js.map +1 -0
- package/dist/{page-header-DzEEkOca.cjs → page-header-Dk3s3XtC.cjs} +25 -26
- package/dist/page-header-Dk3s3XtC.cjs.map +1 -0
- package/dist/primitives/control-size.cjs.js +1 -2
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +1 -2
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/form-element.cjs.js +0 -2
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +1 -2
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +1 -1
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +1 -1
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-uYr-sCdm.js → property-filter-applied-CVVhhWGf.js} +2 -2
- package/dist/{property-filter-applied-uYr-sCdm.js.map → property-filter-applied-CVVhhWGf.js.map} +1 -1
- package/dist/{property-filter-applied-DxSZN3Om.cjs → property-filter-applied-DEeqrI0g.cjs} +2 -2
- package/dist/{property-filter-applied-DxSZN3Om.cjs.map → property-filter-applied-DEeqrI0g.cjs.map} +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{search-field-block-Bg9GPPaA.cjs → search-field-block-D34NmyvF.cjs} +2 -2
- package/dist/{search-field-block-Bg9GPPaA.cjs.map → search-field-block-D34NmyvF.cjs.map} +1 -1
- package/dist/{search-field-block-B0twxGWI.js → search-field-block-DCWcRx4k.js} +2 -2
- package/dist/{search-field-block-B0twxGWI.js.map → search-field-block-DCWcRx4k.js.map} +1 -1
- package/dist/{select-65j5NjtJ.cjs → select-DjXJeDlO.cjs} +2 -2
- package/dist/select-DjXJeDlO.cjs.map +1 -0
- package/dist/{select-BiY-SoMJ.js → select-TslOr65J.js} +2 -2
- package/dist/select-TslOr65J.js.map +1 -0
- package/dist/{select-field-block-D_b9N7od.js → select-field-block-660lYYtx.js} +2 -2
- package/dist/{select-field-block-D_b9N7od.js.map → select-field-block-660lYYtx.js.map} +1 -1
- package/dist/{select-field-block-CZbN1w__.cjs → select-field-block-BPSwJ76v.cjs} +2 -2
- package/dist/{select-field-block-CZbN1w__.cjs.map → select-field-block-BPSwJ76v.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DlIOpCII.js → span-payload-primitives-DIIZ42fv.js} +3 -3
- package/dist/{span-payload-primitives-DlIOpCII.js.map → span-payload-primitives-DIIZ42fv.js.map} +1 -1
- package/dist/{span-payload-primitives-BjBTICfq.cjs → span-payload-primitives-c6C46Zp1.cjs} +3 -3
- package/dist/{span-payload-primitives-BjBTICfq.cjs.map → span-payload-primitives-c6C46Zp1.cjs.map} +1 -1
- package/dist/src/domains/auth/components/permission-denied.d.ts +6 -0
- package/dist/src/{ds/components/PermissionDenied → domains/auth/components}/permission-denied.stories.d.ts +1 -3
- package/dist/src/domains/auth/components/session-expired.d.ts +5 -0
- package/dist/src/{ds/components/SessionExpired → domains/auth/components}/session-expired.stories.d.ts +1 -2
- package/dist/src/domains/auth/services/sso-login.d.ts +7 -0
- package/dist/src/domains/logs/components/logs-error-content.d.ts +2 -2
- package/dist/src/domains/traces/components/index.d.ts +0 -1
- package/dist/src/domains/traces/components/span-payload/index.d.ts +2 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-processor.d.ts +10 -0
- package/dist/src/domains/traces/components/span-payload/span-payload-registry.d.ts +1 -0
- package/dist/src/domains/traces/components/span-payload/span-payload.stories.d.ts +2 -0
- package/dist/src/domains/traces/components/span-payload/span-processor-attributes.d.ts +10 -0
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +94 -0
- package/dist/src/domains/traces/components/trace-summary-description.d.ts +1 -0
- package/dist/src/domains/traces/components/traces-error-content.d.ts +2 -2
- package/dist/src/ds/components/Button/Button.d.ts +1 -1
- package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +2 -2
- package/dist/src/ds/components/Columns/column-root.d.ts +1 -3
- package/dist/src/ds/components/Columns/columns.stories.d.ts +0 -1
- package/dist/src/ds/components/Columns/index.d.ts +0 -1
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -2
- package/dist/src/ds/components/DataKeysAndValues/data-keys-and-values-root.d.ts +1 -2
- package/dist/src/ds/components/DataKeysAndValues/data-keys-and-values.stories.d.ts +1 -2
- package/dist/src/ds/components/EmptyState/EmptyState.d.ts +6 -2
- package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +1 -0
- package/dist/src/ds/components/PageLayout/page-layout.d.ts +8 -3
- package/dist/src/ds/components/PageLayout/page-layout.stories.d.ts +3 -0
- package/dist/src/ds/components/Select/select.d.ts +3 -4
- package/dist/src/ds/components/Select/select.stories.d.ts +2 -2
- package/dist/src/ds/new/layout/app-shell/index.d.ts +1 -0
- package/dist/src/ds/new/layout/app-shell/main-card.d.ts +5 -0
- package/dist/src/ds/new/settings/index.d.ts +1 -1
- package/dist/src/ds/new/settings/settings.stories.d.ts +2 -0
- package/dist/src/ds/primitives/control-size.d.ts +1 -1
- package/dist/src/ds/primitives/form-element.d.ts +0 -1
- package/dist/src/hooks/stories/browser/use-autoscroll.stories.d.ts +22 -0
- package/dist/src/hooks/stories/browser/use-copy-to-clipboard.stories.d.ts +22 -0
- package/dist/src/hooks/stories/browser/use-fluid-hover.stories.d.ts +17 -0
- package/dist/src/hooks/stories/browser/use-in-view.stories.d.ts +17 -0
- package/dist/src/hooks/stories/browser/use-is-apple-platform.stories.d.ts +17 -0
- package/dist/src/hooks/stories/browser/use-is-mobile.stories.d.ts +32 -0
- package/dist/src/hooks/stories/browser/use-isomorphic-layout-effect.stories.d.ts +32 -0
- package/dist/src/hooks/stories/browser/use-keyboard-shortcut-label.stories.d.ts +22 -0
- package/dist/src/hooks/stories/browser/use-register-fluid-hover-item.stories.d.ts +17 -0
- package/dist/src/hooks/stories/environment/use-custom-environment-variables-editor.stories.d.ts +17 -0
- package/dist/src/hooks/stories/environment/use-environment-variables-editor.stories.d.ts +17 -0
- package/dist/src/hooks/stories/state/use-debounced-value.stories.d.ts +32 -0
- package/dist/src/hooks/stories/state/use-expiring-local-storage-state.stories.d.ts +17 -0
- package/dist/src/hooks/stories/state/use-local-storage-state.stories.d.ts +17 -0
- package/dist/src/hooks/stories/text/use-is-clamped.stories.d.ts +17 -0
- package/dist/src/hooks/stories/text/use-measured-auto-height.stories.d.ts +17 -0
- package/dist/src/hooks/stories/text/use-scroll-to-first-highlight.stories.d.ts +17 -0
- package/dist/src/hooks/stories/text/use-text-highlight.stories.d.ts +17 -0
- package/dist/src/lib/keyboard/use-keyboard-scope-depth.stories.d.ts +17 -0
- package/dist/src/lib/keyboard/use-keyboard-shortcuts-context.stories.d.ts +17 -0
- package/dist/src/lib/keyboard/use-table-keydown.stories.d.ts +15 -0
- package/dist/style.css +28 -91
- package/dist/{tabs-content-DMrffE9p.js → tabs-content-7ODUUdQ0.js} +2 -2
- package/dist/{tabs-content-DMrffE9p.js.map → tabs-content-7ODUUdQ0.js.map} +1 -1
- package/dist/{tabs-content-CuUlcS67.cjs → tabs-content-DlCJoQUW.cjs} +2 -2
- package/dist/{tabs-content-CuUlcS67.cjs.map → tabs-content-DlCJoQUW.cjs.map} +1 -1
- package/dist/{tabs-root-DrK1hxeV.cjs → tabs-root-COCL6jcx.cjs} +2 -2
- package/dist/{tabs-root-DrK1hxeV.cjs.map → tabs-root-COCL6jcx.cjs.map} +1 -1
- package/dist/{tabs-root-B2sdkQ3A.js → tabs-root-UNPxoGhW.js} +2 -2
- package/dist/{tabs-root-B2sdkQ3A.js.map → tabs-root-UNPxoGhW.js.map} +1 -1
- package/dist/{tabs-tab-ClmulJmM.cjs → tabs-tab-DFmRMdi3.cjs} +2 -2
- package/dist/{tabs-tab-ClmulJmM.cjs.map → tabs-tab-DFmRMdi3.cjs.map} +1 -1
- package/dist/{tabs-tab-u6LS5twu.js → tabs-tab-DluwCnDF.js} +2 -2
- package/dist/{tabs-tab-u6LS5twu.js.map → tabs-tab-DluwCnDF.js.map} +1 -1
- package/dist/{time-picker-PXFCgAuR.cjs → time-picker-BokshW_l.cjs} +2 -2
- package/dist/{time-picker-PXFCgAuR.cjs.map → time-picker-BokshW_l.cjs.map} +1 -1
- package/dist/{time-picker-DMroqHbw.js → time-picker-D0GksHc0.js} +2 -2
- package/dist/{time-picker-DMroqHbw.js.map → time-picker-D0GksHc0.js.map} +1 -1
- package/dist/{tool-approval-DzOGIKRh.js → tool-approval-DXUFyrSl.js} +2 -2
- package/dist/{tool-approval-DzOGIKRh.js.map → tool-approval-DXUFyrSl.js.map} +1 -1
- package/dist/{tool-approval-DYX_ZNWc.cjs → tool-approval-LIy1nZZJ.cjs} +2 -2
- package/dist/{tool-approval-DYX_ZNWc.cjs.map → tool-approval-LIy1nZZJ.cjs.map} +1 -1
- package/dist/{tool-call-HNNRcirD.js → tool-call-Bs-9Cah5.js} +2 -2
- package/dist/{tool-call-HNNRcirD.js.map → tool-call-Bs-9Cah5.js.map} +1 -1
- package/dist/{tool-call-vZeZ5XT5.cjs → tool-call-C0JeHe8Z.cjs} +2 -2
- package/dist/{tool-call-vZeZ5XT5.cjs.map → tool-call-C0JeHe8Z.cjs.map} +1 -1
- package/dist/{traces-data-list-DHrC158-.js → traces-data-list-Cjy5a-1f.js} +3 -3
- package/dist/{traces-data-list-DHrC158-.js.map → traces-data-list-Cjy5a-1f.js.map} +1 -1
- package/dist/{traces-data-list-DNOtQze4.cjs → traces-data-list-DLeKSbaZ.cjs} +3 -3
- package/dist/{traces-data-list-DNOtQze4.cjs.map → traces-data-list-DLeKSbaZ.cjs.map} +1 -1
- package/package.json +13 -13
- package/dist/Button-KUj0U-5I.js.map +0 -1
- package/dist/Button-MMZPEb_q.cjs.map +0 -1
- package/dist/Card-B_buJ5yF.js.map +0 -1
- package/dist/Card-DwGasv0K.cjs.map +0 -1
- package/dist/EmptyState-B6cyZw6m.js.map +0 -1
- package/dist/EmptyState-DiSP6UIy.cjs.map +0 -1
- package/dist/ErrorState-B0839u-q.cjs +0 -21
- package/dist/ErrorState-B0839u-q.cjs.map +0 -1
- package/dist/ErrorState-HyRJdaA2.js +0 -19
- package/dist/ErrorState-HyRJdaA2.js.map +0 -1
- package/dist/PermissionDenied-CTqnE57B.js +0 -27
- package/dist/PermissionDenied-CTqnE57B.js.map +0 -1
- package/dist/PermissionDenied-fdVmTjjf.cjs +0 -29
- package/dist/PermissionDenied-fdVmTjjf.cjs.map +0 -1
- package/dist/SessionExpired-B9e1Kx4I.js +0 -44
- package/dist/SessionExpired-B9e1Kx4I.js.map +0 -1
- package/dist/SessionExpired-GSQkcV9f.cjs +0 -46
- package/dist/SessionExpired-GSQkcV9f.cjs.map +0 -1
- package/dist/combobox-styles-CSsS2LEx.cjs.map +0 -1
- package/dist/combobox-styles-iuJUkJEQ.js.map +0 -1
- package/dist/components/DataFilter.cjs.js +0 -173
- package/dist/components/DataFilter.cjs.js.map +0 -1
- package/dist/components/DataFilter.d.ts +0 -2
- package/dist/components/DataFilter.es.js +0 -169
- package/dist/components/DataFilter.es.js.map +0 -1
- package/dist/components/ErrorState.cjs.js +0 -10
- package/dist/components/ErrorState.cjs.js.map +0 -1
- package/dist/components/ErrorState.d.ts +0 -2
- package/dist/components/ErrorState.es.js +0 -2
- package/dist/components/ErrorState.es.js.map +0 -1
- package/dist/components/PermissionDenied.cjs.js +0 -10
- package/dist/components/PermissionDenied.cjs.js.map +0 -1
- package/dist/components/PermissionDenied.d.ts +0 -2
- package/dist/components/PermissionDenied.es.js +0 -2
- package/dist/components/PermissionDenied.es.js.map +0 -1
- package/dist/components/Sections.cjs.js +0 -13
- package/dist/components/Sections.cjs.js.map +0 -1
- package/dist/components/Sections.d.ts +0 -2
- package/dist/components/Sections.es.js +0 -9
- package/dist/components/Sections.es.js.map +0 -1
- package/dist/components/SessionExpired.cjs.js +0 -10
- package/dist/components/SessionExpired.cjs.js.map +0 -1
- package/dist/components/SessionExpired.d.ts +0 -2
- package/dist/components/SessionExpired.es.js +0 -2
- package/dist/components/SessionExpired.es.js.map +0 -1
- package/dist/components/SettingsLayout.cjs.js +0 -10
- package/dist/components/SettingsLayout.cjs.js.map +0 -1
- package/dist/components/SettingsLayout.d.ts +0 -2
- package/dist/components/SettingsLayout.es.js +0 -2
- package/dist/components/SettingsLayout.es.js.map +0 -1
- package/dist/data-keys-and-values-BduKvvC5.cjs.map +0 -1
- package/dist/data-keys-and-values-DhC4U4Yl.js.map +0 -1
- package/dist/data-list-Cn0Ls4l2.js.map +0 -1
- package/dist/data-list-DSbuTWLI.cjs.map +0 -1
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +0 -70
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js.map +0 -1
- package/dist/domains/traces/components/trace-keys-and-values.d.ts +0 -2
- package/dist/domains/traces/components/trace-keys-and-values.es.js +0 -66
- package/dist/domains/traces/components/trace-keys-and-values.es.js.map +0 -1
- package/dist/main-sidebar-Cf5G9iaC.js.map +0 -1
- package/dist/main-sidebar-DYfRxFn4.cjs.map +0 -1
- package/dist/page-header-CSigVThQ.js.map +0 -1
- package/dist/page-header-DzEEkOca.cjs.map +0 -1
- package/dist/select-65j5NjtJ.cjs.map +0 -1
- package/dist/select-BiY-SoMJ.js.map +0 -1
- package/dist/settings-layout-BGvMSClL.cjs +0 -49
- package/dist/settings-layout-BGvMSClL.cjs.map +0 -1
- package/dist/settings-layout-DA-JWqW3.js +0 -47
- package/dist/settings-layout-DA-JWqW3.js.map +0 -1
- package/dist/src/domains/traces/components/trace-keys-and-values.d.ts +0 -24
- package/dist/src/domains/traces/components/trace-keys-and-values.stories.d.ts +0 -28
- package/dist/src/ds/components/Columns/multi-column.d.ts +0 -7
- package/dist/src/ds/components/DataFilter/index.d.ts +0 -2
- package/dist/src/ds/components/DataFilter/select-data-filter.d.ts +0 -40
- package/dist/src/ds/components/DataFilter/select-data-filter.stories.d.ts +0 -8
- package/dist/src/ds/components/ErrorState/ErrorState.d.ts +0 -8
- package/dist/src/ds/components/ErrorState/error-state.stories.d.ts +0 -8
- package/dist/src/ds/components/ErrorState/index.d.ts +0 -2
- package/dist/src/ds/components/PermissionDenied/PermissionDenied.d.ts +0 -16
- package/dist/src/ds/components/PermissionDenied/index.d.ts +0 -2
- package/dist/src/ds/components/Sections/index.d.ts +0 -1
- package/dist/src/ds/components/Sections/sections.d.ts +0 -5
- package/dist/src/ds/components/Sections/sections.stories.d.ts +0 -8
- package/dist/src/ds/components/SessionExpired/SessionExpired.d.ts +0 -11
- package/dist/src/ds/components/SessionExpired/index.d.ts +0 -2
- package/dist/src/ds/components/SettingsLayout/index.d.ts +0 -1
- package/dist/src/ds/components/SettingsLayout/settings-layout.stories.d.ts +0 -52
- /package/dist/src/ds/{components/SettingsLayout → new/settings}/settings-layout.d.ts +0 -0
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
|
|
5
|
-
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const lucideReact = require('lucide-react');
|
|
7
|
-
const React = require('react');
|
|
8
|
-
const Button = require('../Button-MMZPEb_q.cjs');
|
|
9
|
-
const dropdownMenu = require('../dropdown-menu-j2y37TL5.cjs');
|
|
10
|
-
const primitives_menuItem = require('../primitives/menu-item.cjs.js');
|
|
11
|
-
const utils_cn = require('../cn-DG0X1KEP.cjs');
|
|
12
|
-
|
|
13
|
-
const SUBMENU_SEARCH_THRESHOLD = 6;
|
|
14
|
-
function MenuSearch({
|
|
15
|
-
value,
|
|
16
|
-
onChange,
|
|
17
|
-
label = "Search",
|
|
18
|
-
placeholder = "Search..."
|
|
19
|
-
}) {
|
|
20
|
-
return (
|
|
21
|
-
// Pull the row flush against the popup edges (the popup pads its items with p-1).
|
|
22
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils_cn.cn(primitives_menuItem.menuSearchClasses.container, "-mx-1 -mt-1 mb-1"), children: [
|
|
23
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: primitives_menuItem.menuSearchClasses.icon }),
|
|
24
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
25
|
-
"input",
|
|
26
|
-
{
|
|
27
|
-
type: "text",
|
|
28
|
-
placeholder,
|
|
29
|
-
"aria-label": label,
|
|
30
|
-
value,
|
|
31
|
-
onChange: (e) => onChange(e.target.value),
|
|
32
|
-
onKeyDown: (e) => e.stopPropagation(),
|
|
33
|
-
className: primitives_menuItem.menuSearchClasses.input
|
|
34
|
-
}
|
|
35
|
-
)
|
|
36
|
-
] })
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
function SelectDataFilter({
|
|
40
|
-
categories,
|
|
41
|
-
value,
|
|
42
|
-
onChange,
|
|
43
|
-
disabled,
|
|
44
|
-
label = "Filter",
|
|
45
|
-
align = "end",
|
|
46
|
-
searchThreshold = SUBMENU_SEARCH_THRESHOLD
|
|
47
|
-
}) {
|
|
48
|
-
const [filterSearch, setFilterSearch] = React.useState("");
|
|
49
|
-
const [subSearch, setSubSearch] = React.useState("");
|
|
50
|
-
const resetSubSearch = React.useCallback((open) => {
|
|
51
|
-
if (!open) setSubSearch("");
|
|
52
|
-
}, []);
|
|
53
|
-
const activeFilterCount = React.useMemo(() => {
|
|
54
|
-
let count = 0;
|
|
55
|
-
for (const selections of Object.values(value)) {
|
|
56
|
-
if (selections.length > 0) count++;
|
|
57
|
-
}
|
|
58
|
-
return count;
|
|
59
|
-
}, [value]);
|
|
60
|
-
const grouped = React.useMemo(() => {
|
|
61
|
-
const q = filterSearch.toLowerCase();
|
|
62
|
-
const groups = [];
|
|
63
|
-
const groupMap = /* @__PURE__ */ new Map();
|
|
64
|
-
const ungrouped = [];
|
|
65
|
-
for (const cat of categories) {
|
|
66
|
-
if (cat.values.length === 0) continue;
|
|
67
|
-
if (q) {
|
|
68
|
-
const matchesLabel = cat.label.toLowerCase().includes(q);
|
|
69
|
-
const matchesValues = cat.values.some((v) => v.label.toLowerCase().includes(q));
|
|
70
|
-
if (!matchesLabel && !matchesValues) continue;
|
|
71
|
-
}
|
|
72
|
-
if (cat.group) {
|
|
73
|
-
let items = groupMap.get(cat.group);
|
|
74
|
-
if (!items) {
|
|
75
|
-
items = [];
|
|
76
|
-
groupMap.set(cat.group, items);
|
|
77
|
-
}
|
|
78
|
-
items.push(cat);
|
|
79
|
-
} else {
|
|
80
|
-
ungrouped.push(cat);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
for (const cat of ungrouped) {
|
|
84
|
-
groups.push({ key: cat.id, items: [cat] });
|
|
85
|
-
}
|
|
86
|
-
for (const [groupLabel, items] of groupMap) {
|
|
87
|
-
groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });
|
|
88
|
-
}
|
|
89
|
-
return groups;
|
|
90
|
-
}, [categories, filterSearch]);
|
|
91
|
-
const handleSelect = (categoryId, selectedValue, mode) => {
|
|
92
|
-
const current = value[categoryId] ?? [];
|
|
93
|
-
let next;
|
|
94
|
-
if (mode === "single") {
|
|
95
|
-
next = current.includes(selectedValue) ? [] : [selectedValue];
|
|
96
|
-
} else {
|
|
97
|
-
next = current.includes(selectedValue) ? current.filter((v) => v !== selectedValue) : [...current, selectedValue];
|
|
98
|
-
}
|
|
99
|
-
onChange({ ...value, [categoryId]: next });
|
|
100
|
-
};
|
|
101
|
-
const handleClearAll = () => {
|
|
102
|
-
onChange({});
|
|
103
|
-
};
|
|
104
|
-
const renderCategory = (cat) => {
|
|
105
|
-
const mode = cat.mode ?? "multi";
|
|
106
|
-
const selected = value[cat.id] ?? [];
|
|
107
|
-
const selectedCount = selected.length;
|
|
108
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Sub, { onOpenChange: resetSubSearch, children: [
|
|
109
|
-
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.SubTrigger, { children: [
|
|
110
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children: cat.label }),
|
|
111
|
-
selectedCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("text-caption text-accent1"), children: selectedCount })
|
|
112
|
-
] }),
|
|
113
|
-
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.SubContent, { children: [
|
|
114
|
-
cat.values.length >= searchThreshold && /* @__PURE__ */ jsxRuntime.jsx(MenuSearch, { value: subSearch, onChange: setSubSearch, label: `Search ${cat.label.toLowerCase()}` }),
|
|
115
|
-
mode === "single" ? /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.RadioGroup, { value: selected[0] ?? "", onValueChange: (val) => handleSelect(cat.id, val, mode), children: cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.RadioItem, { value: v.value, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("truncate"), children: v.label }) }, v.value)) }) : cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
116
|
-
dropdownMenu.DropdownMenu.CheckboxItem,
|
|
117
|
-
{
|
|
118
|
-
checked: selected.includes(v.value),
|
|
119
|
-
onCheckedChange: () => handleSelect(cat.id, v.value, mode),
|
|
120
|
-
onSelect: (e) => e.preventDefault(),
|
|
121
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils_cn.cn("truncate"), children: v.label })
|
|
122
|
-
},
|
|
123
|
-
v.value
|
|
124
|
-
))
|
|
125
|
-
] })
|
|
126
|
-
] }, cat.id);
|
|
127
|
-
};
|
|
128
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { modal: false, children: [
|
|
129
|
-
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { variant: "outline", disabled, size: "md", icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.FilterIcon, {}), children: [
|
|
130
|
-
label,
|
|
131
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
132
|
-
"span",
|
|
133
|
-
{
|
|
134
|
-
className: utils_cn.cn(
|
|
135
|
-
"ml-0.5 inline-flex size-5 items-center justify-center rounded-full bg-accent1/50 text-caption text-foreground"
|
|
136
|
-
),
|
|
137
|
-
children: activeFilterCount
|
|
138
|
-
}
|
|
139
|
-
)
|
|
140
|
-
] }) }),
|
|
141
|
-
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Content, { align, children: [
|
|
142
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
143
|
-
MenuSearch,
|
|
144
|
-
{
|
|
145
|
-
value: filterSearch,
|
|
146
|
-
onChange: setFilterSearch,
|
|
147
|
-
label: "Search filters",
|
|
148
|
-
placeholder: "Search filters..."
|
|
149
|
-
}
|
|
150
|
-
),
|
|
151
|
-
grouped.map((group) => {
|
|
152
|
-
const firstItem = group.items[0];
|
|
153
|
-
if (group.items.length === 1 && firstItem) {
|
|
154
|
-
return renderCategory(firstItem);
|
|
155
|
-
}
|
|
156
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Sub, { children: [
|
|
157
|
-
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.SubTrigger, { children: group.label }),
|
|
158
|
-
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.SubContent, { children: group.items.map((cat) => renderCategory(cat)) })
|
|
159
|
-
] }, group.key);
|
|
160
|
-
}),
|
|
161
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
162
|
-
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Separator, {}),
|
|
163
|
-
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Item, { onSelect: handleClearAll, children: [
|
|
164
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
|
|
165
|
-
"Clear all filters"
|
|
166
|
-
] })
|
|
167
|
-
] })
|
|
168
|
-
] })
|
|
169
|
-
] });
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
exports.SelectDataFilter = SelectDataFilter;
|
|
173
|
-
//# sourceMappingURL=DataFilter.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataFilter.cjs.js","sources":["../../src/ds/components/DataFilter/select-data-filter.tsx"],"sourcesContent":["import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { Button } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { menuSearchClasses } from '@/ds/primitives/menu-item';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** A single selectable value within a filter category */\nexport type SelectDataFilterValue = {\n value: string;\n label: string;\n};\n\n/** Selection mode for a filter category */\nexport type SelectDataFilterMode = 'single' | 'multi';\n\n/** A filter category that appears in the filter dropdown */\nexport type SelectDataFilterCategory = {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional group header (categories with the same group are nested under it) */\n group?: string;\n /** Available values to pick from */\n values: SelectDataFilterValue[];\n /** 'single' = radio, 'multi' = checkboxes. Defaults to 'multi'. */\n mode?: SelectDataFilterMode;\n};\n\n/** Current selected state: category id -> selected value(s) */\nexport type SelectDataFilterState = Record<string, string[]>;\n\nexport type SelectDataFilterProps = {\n /** Filter categories to display */\n categories: SelectDataFilterCategory[];\n /** Current filter selections */\n value: SelectDataFilterState;\n /** Called when selections change */\n onChange: (next: SelectDataFilterState) => void;\n /** Disable the trigger button */\n disabled?: boolean;\n /** Override the trigger label */\n label?: ReactNode;\n /** Content alignment */\n align?: 'start' | 'center' | 'end';\n /** Minimum items before showing search in a submenu */\n searchThreshold?: number;\n};\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\nconst SUBMENU_SEARCH_THRESHOLD = 6;\n\nfunction MenuSearch({\n value,\n onChange,\n label = 'Search',\n placeholder = 'Search...',\n}: {\n value: string;\n onChange: (v: string) => void;\n label?: string;\n placeholder?: string;\n}) {\n return (\n // Pull the row flush against the popup edges (the popup pads its items with p-1).\n <div className={cn(menuSearchClasses.container, '-mx-1 -mt-1 mb-1')}>\n <SearchIcon className={menuSearchClasses.icon} />\n <input\n type=\"text\"\n placeholder={placeholder}\n aria-label={label}\n value={value}\n onChange={e => onChange(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={menuSearchClasses.input}\n />\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SelectDataFilter({\n categories,\n value,\n onChange,\n disabled,\n label = 'Filter',\n align = 'end',\n searchThreshold = SUBMENU_SEARCH_THRESHOLD,\n}: SelectDataFilterProps) {\n const [filterSearch, setFilterSearch] = useState('');\n const [subSearch, setSubSearch] = useState('');\n\n const resetSubSearch = useCallback((open: boolean) => {\n if (!open) setSubSearch('');\n }, []);\n\n // Count active filters\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const selections of Object.values(value)) {\n if (selections.length > 0) count++;\n }\n return count;\n }, [value]);\n\n // Group categories\n const grouped = useMemo(() => {\n const q = filterSearch.toLowerCase();\n const groups: { key: string; label?: string; items: SelectDataFilterCategory[] }[] = [];\n const groupMap = new Map<string, SelectDataFilterCategory[]>();\n const ungrouped: SelectDataFilterCategory[] = [];\n\n for (const cat of categories) {\n if (cat.values.length === 0) continue;\n // Filter by search\n if (q) {\n const matchesLabel = cat.label.toLowerCase().includes(q);\n const matchesValues = cat.values.some(v => v.label.toLowerCase().includes(q));\n if (!matchesLabel && !matchesValues) continue;\n }\n if (cat.group) {\n let items = groupMap.get(cat.group);\n if (!items) {\n items = [];\n groupMap.set(cat.group, items);\n }\n items.push(cat);\n } else {\n ungrouped.push(cat);\n }\n }\n\n // Ungrouped items first\n for (const cat of ungrouped) {\n groups.push({ key: cat.id, items: [cat] });\n }\n // Then grouped\n for (const [groupLabel, items] of groupMap) {\n groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });\n }\n\n return groups;\n }, [categories, filterSearch]);\n\n const handleSelect = (categoryId: string, selectedValue: string, mode: SelectDataFilterMode) => {\n const current = value[categoryId] ?? [];\n let next: string[];\n\n if (mode === 'single') {\n next = current.includes(selectedValue) ? [] : [selectedValue];\n } else {\n next = current.includes(selectedValue) ? current.filter(v => v !== selectedValue) : [...current, selectedValue];\n }\n\n onChange({ ...value, [categoryId]: next });\n };\n\n const handleClearAll = () => {\n onChange({});\n };\n\n const renderCategory = (cat: SelectDataFilterCategory) => {\n const mode = cat.mode ?? 'multi';\n const selected = value[cat.id] ?? [];\n const selectedCount = selected.length;\n\n return (\n <DropdownMenu.Sub key={cat.id} onOpenChange={resetSubSearch}>\n <DropdownMenu.SubTrigger>\n <span className=\"flex-1 truncate\">{cat.label}</span>\n {selectedCount > 0 && <span className={cn('text-caption text-accent1')}>{selectedCount}</span>}\n </DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent>\n {cat.values.length >= searchThreshold && (\n <MenuSearch value={subSearch} onChange={setSubSearch} label={`Search ${cat.label.toLowerCase()}`} />\n )}\n {mode === 'single' ? (\n <DropdownMenu.RadioGroup value={selected[0] ?? ''} onValueChange={val => handleSelect(cat.id, val, mode)}>\n {cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.RadioItem key={v.value} value={v.value}>\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n ) : (\n cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={() => handleSelect(cat.id, v.value, mode)}\n onSelect={e => e.preventDefault()}\n >\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.CheckboxItem>\n ))\n )}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n };\n\n return (\n <DropdownMenu modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" disabled={disabled} size=\"md\" icon={<FilterIcon />}>\n {label}\n {activeFilterCount > 0 && (\n <span\n className={cn(\n 'ml-0.5 inline-flex size-5 items-center justify-center rounded-full bg-accent1/50 text-caption text-foreground',\n )}\n >\n {activeFilterCount}\n </span>\n )}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align={align}>\n <MenuSearch\n value={filterSearch}\n onChange={setFilterSearch}\n label=\"Search filters\"\n placeholder=\"Search filters...\"\n />\n\n {grouped.map(group => {\n const firstItem = group.items[0];\n\n if (group.items.length === 1 && firstItem) {\n // A single category (grouped or not) renders directly, without a sub-trigger.\n return renderCategory(firstItem);\n }\n\n // Multiple items under a group label — nest under a sub-trigger\n return (\n <DropdownMenu.Sub key={group.key}>\n <DropdownMenu.SubTrigger>{group.label}</DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent>{group.items.map(cat => renderCategory(cat))}</DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n })}\n\n {/* Clear all */}\n {activeFilterCount > 0 && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item onSelect={handleClearAll}>\n <XIcon />\n Clear all filters\n </DropdownMenu.Item>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["cn","menuSearchClasses","jsx","SearchIcon","useState","useCallback","useMemo","jsxs","DropdownMenu","Button","FilterIcon","Fragment","XIcon"],"mappings":"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"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { FilterIcon, XIcon, SearchIcon } from 'lucide-react';
|
|
3
|
-
import { useState, useCallback, useMemo } from 'react';
|
|
4
|
-
import { B as Button } from '../Button-KUj0U-5I.js';
|
|
5
|
-
import { D as DropdownMenu } from '../dropdown-menu-DpEn6HwK.js';
|
|
6
|
-
import { menuSearchClasses } from '../primitives/menu-item.es.js';
|
|
7
|
-
import { c as cn } from '../cn-65Adrsfj.js';
|
|
8
|
-
|
|
9
|
-
const SUBMENU_SEARCH_THRESHOLD = 6;
|
|
10
|
-
function MenuSearch({
|
|
11
|
-
value,
|
|
12
|
-
onChange,
|
|
13
|
-
label = "Search",
|
|
14
|
-
placeholder = "Search..."
|
|
15
|
-
}) {
|
|
16
|
-
return (
|
|
17
|
-
// Pull the row flush against the popup edges (the popup pads its items with p-1).
|
|
18
|
-
/* @__PURE__ */ jsxs("div", { className: cn(menuSearchClasses.container, "-mx-1 -mt-1 mb-1"), children: [
|
|
19
|
-
/* @__PURE__ */ jsx(SearchIcon, { className: menuSearchClasses.icon }),
|
|
20
|
-
/* @__PURE__ */ jsx(
|
|
21
|
-
"input",
|
|
22
|
-
{
|
|
23
|
-
type: "text",
|
|
24
|
-
placeholder,
|
|
25
|
-
"aria-label": label,
|
|
26
|
-
value,
|
|
27
|
-
onChange: (e) => onChange(e.target.value),
|
|
28
|
-
onKeyDown: (e) => e.stopPropagation(),
|
|
29
|
-
className: menuSearchClasses.input
|
|
30
|
-
}
|
|
31
|
-
)
|
|
32
|
-
] })
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
function SelectDataFilter({
|
|
36
|
-
categories,
|
|
37
|
-
value,
|
|
38
|
-
onChange,
|
|
39
|
-
disabled,
|
|
40
|
-
label = "Filter",
|
|
41
|
-
align = "end",
|
|
42
|
-
searchThreshold = SUBMENU_SEARCH_THRESHOLD
|
|
43
|
-
}) {
|
|
44
|
-
const [filterSearch, setFilterSearch] = useState("");
|
|
45
|
-
const [subSearch, setSubSearch] = useState("");
|
|
46
|
-
const resetSubSearch = useCallback((open) => {
|
|
47
|
-
if (!open) setSubSearch("");
|
|
48
|
-
}, []);
|
|
49
|
-
const activeFilterCount = useMemo(() => {
|
|
50
|
-
let count = 0;
|
|
51
|
-
for (const selections of Object.values(value)) {
|
|
52
|
-
if (selections.length > 0) count++;
|
|
53
|
-
}
|
|
54
|
-
return count;
|
|
55
|
-
}, [value]);
|
|
56
|
-
const grouped = useMemo(() => {
|
|
57
|
-
const q = filterSearch.toLowerCase();
|
|
58
|
-
const groups = [];
|
|
59
|
-
const groupMap = /* @__PURE__ */ new Map();
|
|
60
|
-
const ungrouped = [];
|
|
61
|
-
for (const cat of categories) {
|
|
62
|
-
if (cat.values.length === 0) continue;
|
|
63
|
-
if (q) {
|
|
64
|
-
const matchesLabel = cat.label.toLowerCase().includes(q);
|
|
65
|
-
const matchesValues = cat.values.some((v) => v.label.toLowerCase().includes(q));
|
|
66
|
-
if (!matchesLabel && !matchesValues) continue;
|
|
67
|
-
}
|
|
68
|
-
if (cat.group) {
|
|
69
|
-
let items = groupMap.get(cat.group);
|
|
70
|
-
if (!items) {
|
|
71
|
-
items = [];
|
|
72
|
-
groupMap.set(cat.group, items);
|
|
73
|
-
}
|
|
74
|
-
items.push(cat);
|
|
75
|
-
} else {
|
|
76
|
-
ungrouped.push(cat);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
for (const cat of ungrouped) {
|
|
80
|
-
groups.push({ key: cat.id, items: [cat] });
|
|
81
|
-
}
|
|
82
|
-
for (const [groupLabel, items] of groupMap) {
|
|
83
|
-
groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });
|
|
84
|
-
}
|
|
85
|
-
return groups;
|
|
86
|
-
}, [categories, filterSearch]);
|
|
87
|
-
const handleSelect = (categoryId, selectedValue, mode) => {
|
|
88
|
-
const current = value[categoryId] ?? [];
|
|
89
|
-
let next;
|
|
90
|
-
if (mode === "single") {
|
|
91
|
-
next = current.includes(selectedValue) ? [] : [selectedValue];
|
|
92
|
-
} else {
|
|
93
|
-
next = current.includes(selectedValue) ? current.filter((v) => v !== selectedValue) : [...current, selectedValue];
|
|
94
|
-
}
|
|
95
|
-
onChange({ ...value, [categoryId]: next });
|
|
96
|
-
};
|
|
97
|
-
const handleClearAll = () => {
|
|
98
|
-
onChange({});
|
|
99
|
-
};
|
|
100
|
-
const renderCategory = (cat) => {
|
|
101
|
-
const mode = cat.mode ?? "multi";
|
|
102
|
-
const selected = value[cat.id] ?? [];
|
|
103
|
-
const selectedCount = selected.length;
|
|
104
|
-
return /* @__PURE__ */ jsxs(DropdownMenu.Sub, { onOpenChange: resetSubSearch, children: [
|
|
105
|
-
/* @__PURE__ */ jsxs(DropdownMenu.SubTrigger, { children: [
|
|
106
|
-
/* @__PURE__ */ jsx("span", { className: "flex-1 truncate", children: cat.label }),
|
|
107
|
-
selectedCount > 0 && /* @__PURE__ */ jsx("span", { className: cn("text-caption text-accent1"), children: selectedCount })
|
|
108
|
-
] }),
|
|
109
|
-
/* @__PURE__ */ jsxs(DropdownMenu.SubContent, { children: [
|
|
110
|
-
cat.values.length >= searchThreshold && /* @__PURE__ */ jsx(MenuSearch, { value: subSearch, onChange: setSubSearch, label: `Search ${cat.label.toLowerCase()}` }),
|
|
111
|
-
mode === "single" ? /* @__PURE__ */ jsx(DropdownMenu.RadioGroup, { value: selected[0] ?? "", onValueChange: (val) => handleSelect(cat.id, val, mode), children: cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsx(DropdownMenu.RadioItem, { value: v.value, children: /* @__PURE__ */ jsx("span", { className: cn("truncate"), children: v.label }) }, v.value)) }) : cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsx(
|
|
112
|
-
DropdownMenu.CheckboxItem,
|
|
113
|
-
{
|
|
114
|
-
checked: selected.includes(v.value),
|
|
115
|
-
onCheckedChange: () => handleSelect(cat.id, v.value, mode),
|
|
116
|
-
onSelect: (e) => e.preventDefault(),
|
|
117
|
-
children: /* @__PURE__ */ jsx("span", { className: cn("truncate"), children: v.label })
|
|
118
|
-
},
|
|
119
|
-
v.value
|
|
120
|
-
))
|
|
121
|
-
] })
|
|
122
|
-
] }, cat.id);
|
|
123
|
-
};
|
|
124
|
-
return /* @__PURE__ */ jsxs(DropdownMenu, { modal: false, children: [
|
|
125
|
-
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", disabled, size: "md", icon: /* @__PURE__ */ jsx(FilterIcon, {}), children: [
|
|
126
|
-
label,
|
|
127
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsx(
|
|
128
|
-
"span",
|
|
129
|
-
{
|
|
130
|
-
className: cn(
|
|
131
|
-
"ml-0.5 inline-flex size-5 items-center justify-center rounded-full bg-accent1/50 text-caption text-foreground"
|
|
132
|
-
),
|
|
133
|
-
children: activeFilterCount
|
|
134
|
-
}
|
|
135
|
-
)
|
|
136
|
-
] }) }),
|
|
137
|
-
/* @__PURE__ */ jsxs(DropdownMenu.Content, { align, children: [
|
|
138
|
-
/* @__PURE__ */ jsx(
|
|
139
|
-
MenuSearch,
|
|
140
|
-
{
|
|
141
|
-
value: filterSearch,
|
|
142
|
-
onChange: setFilterSearch,
|
|
143
|
-
label: "Search filters",
|
|
144
|
-
placeholder: "Search filters..."
|
|
145
|
-
}
|
|
146
|
-
),
|
|
147
|
-
grouped.map((group) => {
|
|
148
|
-
const firstItem = group.items[0];
|
|
149
|
-
if (group.items.length === 1 && firstItem) {
|
|
150
|
-
return renderCategory(firstItem);
|
|
151
|
-
}
|
|
152
|
-
return /* @__PURE__ */ jsxs(DropdownMenu.Sub, { children: [
|
|
153
|
-
/* @__PURE__ */ jsx(DropdownMenu.SubTrigger, { children: group.label }),
|
|
154
|
-
/* @__PURE__ */ jsx(DropdownMenu.SubContent, { children: group.items.map((cat) => renderCategory(cat)) })
|
|
155
|
-
] }, group.key);
|
|
156
|
-
}),
|
|
157
|
-
activeFilterCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
158
|
-
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
159
|
-
/* @__PURE__ */ jsxs(DropdownMenu.Item, { onSelect: handleClearAll, children: [
|
|
160
|
-
/* @__PURE__ */ jsx(XIcon, {}),
|
|
161
|
-
"Clear all filters"
|
|
162
|
-
] })
|
|
163
|
-
] })
|
|
164
|
-
] })
|
|
165
|
-
] });
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export { SelectDataFilter };
|
|
169
|
-
//# sourceMappingURL=DataFilter.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataFilter.es.js","sources":["../../src/ds/components/DataFilter/select-data-filter.tsx"],"sourcesContent":["import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { Button } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { menuSearchClasses } from '@/ds/primitives/menu-item';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** A single selectable value within a filter category */\nexport type SelectDataFilterValue = {\n value: string;\n label: string;\n};\n\n/** Selection mode for a filter category */\nexport type SelectDataFilterMode = 'single' | 'multi';\n\n/** A filter category that appears in the filter dropdown */\nexport type SelectDataFilterCategory = {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional group header (categories with the same group are nested under it) */\n group?: string;\n /** Available values to pick from */\n values: SelectDataFilterValue[];\n /** 'single' = radio, 'multi' = checkboxes. Defaults to 'multi'. */\n mode?: SelectDataFilterMode;\n};\n\n/** Current selected state: category id -> selected value(s) */\nexport type SelectDataFilterState = Record<string, string[]>;\n\nexport type SelectDataFilterProps = {\n /** Filter categories to display */\n categories: SelectDataFilterCategory[];\n /** Current filter selections */\n value: SelectDataFilterState;\n /** Called when selections change */\n onChange: (next: SelectDataFilterState) => void;\n /** Disable the trigger button */\n disabled?: boolean;\n /** Override the trigger label */\n label?: ReactNode;\n /** Content alignment */\n align?: 'start' | 'center' | 'end';\n /** Minimum items before showing search in a submenu */\n searchThreshold?: number;\n};\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\nconst SUBMENU_SEARCH_THRESHOLD = 6;\n\nfunction MenuSearch({\n value,\n onChange,\n label = 'Search',\n placeholder = 'Search...',\n}: {\n value: string;\n onChange: (v: string) => void;\n label?: string;\n placeholder?: string;\n}) {\n return (\n // Pull the row flush against the popup edges (the popup pads its items with p-1).\n <div className={cn(menuSearchClasses.container, '-mx-1 -mt-1 mb-1')}>\n <SearchIcon className={menuSearchClasses.icon} />\n <input\n type=\"text\"\n placeholder={placeholder}\n aria-label={label}\n value={value}\n onChange={e => onChange(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={menuSearchClasses.input}\n />\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SelectDataFilter({\n categories,\n value,\n onChange,\n disabled,\n label = 'Filter',\n align = 'end',\n searchThreshold = SUBMENU_SEARCH_THRESHOLD,\n}: SelectDataFilterProps) {\n const [filterSearch, setFilterSearch] = useState('');\n const [subSearch, setSubSearch] = useState('');\n\n const resetSubSearch = useCallback((open: boolean) => {\n if (!open) setSubSearch('');\n }, []);\n\n // Count active filters\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const selections of Object.values(value)) {\n if (selections.length > 0) count++;\n }\n return count;\n }, [value]);\n\n // Group categories\n const grouped = useMemo(() => {\n const q = filterSearch.toLowerCase();\n const groups: { key: string; label?: string; items: SelectDataFilterCategory[] }[] = [];\n const groupMap = new Map<string, SelectDataFilterCategory[]>();\n const ungrouped: SelectDataFilterCategory[] = [];\n\n for (const cat of categories) {\n if (cat.values.length === 0) continue;\n // Filter by search\n if (q) {\n const matchesLabel = cat.label.toLowerCase().includes(q);\n const matchesValues = cat.values.some(v => v.label.toLowerCase().includes(q));\n if (!matchesLabel && !matchesValues) continue;\n }\n if (cat.group) {\n let items = groupMap.get(cat.group);\n if (!items) {\n items = [];\n groupMap.set(cat.group, items);\n }\n items.push(cat);\n } else {\n ungrouped.push(cat);\n }\n }\n\n // Ungrouped items first\n for (const cat of ungrouped) {\n groups.push({ key: cat.id, items: [cat] });\n }\n // Then grouped\n for (const [groupLabel, items] of groupMap) {\n groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });\n }\n\n return groups;\n }, [categories, filterSearch]);\n\n const handleSelect = (categoryId: string, selectedValue: string, mode: SelectDataFilterMode) => {\n const current = value[categoryId] ?? [];\n let next: string[];\n\n if (mode === 'single') {\n next = current.includes(selectedValue) ? [] : [selectedValue];\n } else {\n next = current.includes(selectedValue) ? current.filter(v => v !== selectedValue) : [...current, selectedValue];\n }\n\n onChange({ ...value, [categoryId]: next });\n };\n\n const handleClearAll = () => {\n onChange({});\n };\n\n const renderCategory = (cat: SelectDataFilterCategory) => {\n const mode = cat.mode ?? 'multi';\n const selected = value[cat.id] ?? [];\n const selectedCount = selected.length;\n\n return (\n <DropdownMenu.Sub key={cat.id} onOpenChange={resetSubSearch}>\n <DropdownMenu.SubTrigger>\n <span className=\"flex-1 truncate\">{cat.label}</span>\n {selectedCount > 0 && <span className={cn('text-caption text-accent1')}>{selectedCount}</span>}\n </DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent>\n {cat.values.length >= searchThreshold && (\n <MenuSearch value={subSearch} onChange={setSubSearch} label={`Search ${cat.label.toLowerCase()}`} />\n )}\n {mode === 'single' ? (\n <DropdownMenu.RadioGroup value={selected[0] ?? ''} onValueChange={val => handleSelect(cat.id, val, mode)}>\n {cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.RadioItem key={v.value} value={v.value}>\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n ) : (\n cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={() => handleSelect(cat.id, v.value, mode)}\n onSelect={e => e.preventDefault()}\n >\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.CheckboxItem>\n ))\n )}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n };\n\n return (\n <DropdownMenu modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" disabled={disabled} size=\"md\" icon={<FilterIcon />}>\n {label}\n {activeFilterCount > 0 && (\n <span\n className={cn(\n 'ml-0.5 inline-flex size-5 items-center justify-center rounded-full bg-accent1/50 text-caption text-foreground',\n )}\n >\n {activeFilterCount}\n </span>\n )}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align={align}>\n <MenuSearch\n value={filterSearch}\n onChange={setFilterSearch}\n label=\"Search filters\"\n placeholder=\"Search filters...\"\n />\n\n {grouped.map(group => {\n const firstItem = group.items[0];\n\n if (group.items.length === 1 && firstItem) {\n // A single category (grouped or not) renders directly, without a sub-trigger.\n return renderCategory(firstItem);\n }\n\n // Multiple items under a group label — nest under a sub-trigger\n return (\n <DropdownMenu.Sub key={group.key}>\n <DropdownMenu.SubTrigger>{group.label}</DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent>{group.items.map(cat => renderCategory(cat))}</DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n })}\n\n {/* Clear all */}\n {activeFilterCount > 0 && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item onSelect={handleClearAll}>\n <XIcon />\n Clear all filters\n </DropdownMenu.Item>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorState.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorState.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
|
|
5
|
-
const PermissionDenied = require('../PermissionDenied-fdVmTjjf.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.PermissionDenied = PermissionDenied.PermissionDenied;
|
|
10
|
-
//# sourceMappingURL=PermissionDenied.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionDenied.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionDenied.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
|
|
5
|
-
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const utils_cn = require('../cn-DG0X1KEP.cjs');
|
|
7
|
-
|
|
8
|
-
function Sections({ children, className }) {
|
|
9
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils_cn.cn("grid gap-6", className), children });
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
exports.Sections = Sections;
|
|
13
|
-
//# sourceMappingURL=Sections.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sections.cjs.js","sources":["../../src/ds/components/Sections/sections.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type SectionsProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function Sections({ children, className }: SectionsProps) {\n return <div className={cn('grid gap-6', className)}>{children}</div>;\n}\n"],"names":["cn"],"mappings":";;;;;;;AAOO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAkB;AAC/D,EAAA,sCAAQ,KAAA,EAAA,EAAI,SAAA,EAAWA,YAAG,YAAA,EAAc,SAAS,GAAI,QAAA,EAAS,CAAA;AAChE;;;;"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { c as cn } from '../cn-65Adrsfj.js';
|
|
3
|
-
|
|
4
|
-
function Sections({ children, className }) {
|
|
5
|
-
return /* @__PURE__ */ jsx("div", { className: cn("grid gap-6", className), children });
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export { Sections };
|
|
9
|
-
//# sourceMappingURL=Sections.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sections.es.js","sources":["../../src/ds/components/Sections/sections.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport type SectionsProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nexport function Sections({ children, className }: SectionsProps) {\n return <div className={cn('grid gap-6', className)}>{children}</div>;\n}\n"],"names":[],"mappings":";;;AAOO,SAAS,QAAA,CAAS,EAAE,QAAA,EAAU,SAAA,EAAU,EAAkB;AAC/D,EAAA,2BAAQ,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,YAAA,EAAc,SAAS,GAAI,QAAA,EAAS,CAAA;AAChE;;;;"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
|
|
5
|
-
const SessionExpired = require('../SessionExpired-GSQkcV9f.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.SessionExpired = SessionExpired.SessionExpired;
|
|
10
|
-
//# sourceMappingURL=SessionExpired.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SessionExpired.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SessionExpired.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
-
|
|
5
|
-
const settingsLayout = require('../settings-layout-BGvMSClL.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.SettingsLayout = settingsLayout.SettingsLayout;
|
|
10
|
-
//# sourceMappingURL=SettingsLayout.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsLayout.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsLayout.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data-keys-and-values-BduKvvC5.cjs","sources":["../src/ds/components/DataKeysAndValues/data-keys-and-values-header.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-key.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-root.tsx","../src/ds/components/DataKeysAndValues/shared.ts","../src/ds/components/DataKeysAndValues/data-keys-and-values-value.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-link.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-with-copy-btn.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values-value-with-tooltip.tsx","../src/ds/components/DataKeysAndValues/data-keys-and-values.tsx"],"sourcesContent":["import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesHeaderProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesHeader({ className, children }: DataKeysAndValuesHeaderProps) {\n return (\n <dt className={cn('col-span-full py-3 text-caption tracking-widest text-placeholder uppercase', className)}>\n {children}\n </dt>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesKeyProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesKey({ className, children }: DataKeysAndValuesKeyProps) {\n return <dt className={cn('shrink-0 py-0.5 text-body-sm text-placeholder', className)}>{children}</dt>;\n}\n","import { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesProps {\n className?: string;\n children: React.ReactNode;\n numOfCol?: 1 | 2 | 3;\n density?: 'default' | 'dense';\n}\n\nconst GRID_TEMPLATES: Record<NonNullable<DataKeysAndValuesProps['numOfCol']>, string> = {\n 1: 'auto 1fr',\n 2: 'auto auto auto 1fr',\n 3: 'auto auto auto auto auto 1fr',\n};\n\nconst DENSITY_GAP_Y: Record<NonNullable<DataKeysAndValuesProps['density']>, string> = {\n default: 'gap-y-1.5',\n dense: 'gap-y-0',\n};\n\nexport function DataKeysAndValuesRoot({\n className,\n children,\n numOfCol = 1,\n density = 'default',\n}: DataKeysAndValuesProps) {\n return (\n <dl\n className={cn('grid gap-x-4', DENSITY_GAP_Y[density], className)}\n style={{ gridTemplateColumns: GRID_TEMPLATES[numOfCol] }}\n >\n {children}\n </dl>\n );\n}\n","export const dataKeysAndValuesValueStyles = 'text-body-sm text-muted-foreground min-w-0 py-0.5 pr-6';\n","import { dataKeysAndValuesValueStyles } from './shared';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport function DataKeysAndValuesValue({ className, children }: DataKeysAndValuesValueProps) {\n return <dd className={cn(dataKeysAndValuesValueStyles, 'truncate', className)}>{children}</dd>;\n}\n","import { ExternalLinkIcon, Link2Icon } from 'lucide-react';\nimport { dataKeysAndValuesValueStyles } from './shared';\nimport { controlStateColorTransition } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueLinkProps {\n className?: string;\n children: React.ReactNode;\n href: string;\n as?: React.ElementType;\n}\n\nfunction isExternalUrl(href: string) {\n return /^https?:\\/\\//.test(href);\n}\n\nexport function DataKeysAndValuesValueLink({ className, children, href, as }: DataKeysAndValuesValueLinkProps) {\n const isExternal = isExternalUrl(href);\n const Component = as || 'a';\n // Pass `to` only for custom components so React-Router's `Link` (which reads `to`) works\n // while native anchors don't get an unknown `to` attribute warning.\n const navigationProps = as ? { href, to: href } : { href };\n\n const linkClassName = cn(\n 'flex items-center gap-2 truncate hover:text-foreground',\n controlStateColorTransition,\n '[&:hover>svg]:opacity-100 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:opacity-70',\n );\n\n if (isExternal) {\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\" className={linkClassName}>\n <span>{children}</span>\n <ExternalLinkIcon />\n </a>\n </dd>\n );\n }\n\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Component {...navigationProps} className={linkClassName}>\n <span>{children}</span>\n <Link2Icon />\n </Component>\n </dd>\n );\n}\n","import { CheckIcon, CopyIcon } from 'lucide-react';\nimport { dataKeysAndValuesValueStyles } from './shared';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { useCopyToClipboard } from '@/hooks/use-copy-to-clipboard';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueWithCopyBtnProps {\n className?: string;\n children: React.ReactNode;\n copyValue: string;\n copyTooltip?: string;\n}\n\nexport function DataKeysAndValuesValueWithCopyBtn({\n className,\n children,\n copyValue,\n copyTooltip = 'Copy to clipboard',\n}: DataKeysAndValuesValueWithCopyBtnProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: copyValue,\n copyMessage: 'Copied!',\n });\n\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Tooltip open={isCopied || undefined}>\n <TooltipTrigger asChild>\n <button\n onClick={handleCopy}\n type=\"button\"\n className={cn(\n 'flex items-center gap-2 text-left whitespace-nowrap',\n '[&:hover>svg]:opacity-100 [&>svg]:size-3 [&>svg]:shrink-0 [&>svg]:opacity-70',\n { '[&>svg]:h-4 [&>svg]:w-4 [&>svg]:text-accent1': isCopied },\n )}\n aria-label={isCopied ? 'Copied!' : copyTooltip}\n >\n <span>{children}</span>\n {isCopied ? <CheckIcon /> : <CopyIcon />}\n </button>\n </TooltipTrigger>\n <TooltipContent>{isCopied ? 'Copied!' : copyTooltip}</TooltipContent>\n </Tooltip>\n </dd>\n );\n}\n","import { dataKeysAndValuesValueStyles } from './shared';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { cn } from '@/lib/utils';\n\nexport interface DataKeysAndValuesValueWithTooltipProps {\n className?: string;\n children: React.ReactNode;\n tooltip: string;\n}\n\nexport function DataKeysAndValuesValueWithTooltip({\n className,\n children,\n tooltip,\n}: DataKeysAndValuesValueWithTooltipProps) {\n return (\n <dd className={cn(dataKeysAndValuesValueStyles, className)}>\n <Tooltip>\n <TooltipTrigger asChild>\n <div tabIndex={0} className=\"inline cursor-help truncate\">\n {children}\n </div>\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </dd>\n );\n}\n","import { DataKeysAndValuesHeader } from './data-keys-and-values-header';\nimport { DataKeysAndValuesKey } from './data-keys-and-values-key';\nimport { DataKeysAndValuesRoot } from './data-keys-and-values-root';\nimport { DataKeysAndValuesValue } from './data-keys-and-values-value';\nimport { DataKeysAndValuesValueLink } from './data-keys-and-values-value-link';\nimport { DataKeysAndValuesValueWithCopyBtn } from './data-keys-and-values-value-with-copy-btn';\nimport { DataKeysAndValuesValueWithTooltip } from './data-keys-and-values-value-with-tooltip';\n\nexport const DataKeysAndValues = Object.assign(DataKeysAndValuesRoot, {\n Key: DataKeysAndValuesKey,\n Value: DataKeysAndValuesValue,\n ValueLink: DataKeysAndValuesValueLink,\n ValueWithTooltip: DataKeysAndValuesValueWithTooltip,\n ValueWithCopyBtn: DataKeysAndValuesValueWithCopyBtn,\n Header: DataKeysAndValuesHeader,\n});\n"],"names":["cn","jsx","controlStateColorTransition","jsxs","ExternalLinkIcon","Link2Icon","useCopyToClipboard","Tooltip","TooltipTrigger","CheckIcon","CopyIcon","TooltipContent","tooltip"],"mappings":"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"}
|