@mastra/playground-ui 56.0.0 → 57.0.0-alpha.1
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-CVewl8nT.cjs → Button-C0DBEBcJ.cjs} +12 -5
- package/dist/Button-C0DBEBcJ.cjs.map +1 -0
- package/dist/{Button-cWcBEd-G.js → Button-C9cvaVFG.js} +13 -6
- package/dist/Button-C9cvaVFG.js.map +1 -0
- package/dist/{Card-DEvGFj-Z.js → Card-B_buJ5yF.js} +3 -3
- package/dist/{Card-DEvGFj-Z.js.map → Card-B_buJ5yF.js.map} +1 -1
- package/dist/{Card-D0kFp9j9.cjs → Card-DwGasv0K.cjs} +3 -3
- package/dist/{Card-D0kFp9j9.cjs.map → Card-DwGasv0K.cjs.map} +1 -1
- package/dist/{EmptyState-UWXhBp5U.js → EmptyState-B6cyZw6m.js} +12 -6
- package/dist/EmptyState-B6cyZw6m.js.map +1 -0
- package/dist/{EmptyState-CdRjFB06.cjs → EmptyState-DiSP6UIy.cjs} +12 -6
- package/dist/EmptyState-DiSP6UIy.cjs.map +1 -0
- package/dist/ErrorState-B0839u-q.cjs +21 -0
- package/dist/ErrorState-B0839u-q.cjs.map +1 -0
- package/dist/ErrorState-HyRJdaA2.js +19 -0
- package/dist/ErrorState-HyRJdaA2.js.map +1 -0
- package/dist/Header-BVnFQlzE.js +31 -0
- package/dist/Header-BVnFQlzE.js.map +1 -0
- package/dist/Header-CGjhJ0nQ.cjs +36 -0
- package/dist/Header-CGjhJ0nQ.cjs.map +1 -0
- package/dist/{Notice-Cjti0e0j.cjs → Notice-CoFjo8O6.cjs} +3 -3
- package/dist/{Notice-Cjti0e0j.cjs.map → Notice-CoFjo8O6.cjs.map} +1 -1
- package/dist/{Notice-Ah-84yi6.js → Notice-DUdQkUqH.js} +3 -3
- package/dist/{Notice-Ah-84yi6.js.map → Notice-DUdQkUqH.js.map} +1 -1
- package/dist/{PermissionDenied-B6TSGolC.js → PermissionDenied-CTqnE57B.js} +11 -6
- package/dist/PermissionDenied-CTqnE57B.js.map +1 -0
- package/dist/{PermissionDenied-Dz5qXpQj.cjs → PermissionDenied-fdVmTjjf.cjs} +11 -6
- package/dist/PermissionDenied-fdVmTjjf.cjs.map +1 -0
- package/dist/{SessionExpired-CF0BGNo_.cjs → SessionExpired-CFGTqnU5.cjs} +5 -6
- package/dist/SessionExpired-CFGTqnU5.cjs.map +1 -0
- package/dist/{SessionExpired-Bq5LcsDu.js → SessionExpired-COK6flhT.js} +5 -6
- package/dist/SessionExpired-COK6flhT.js.map +1 -0
- package/dist/ask-user-3fufbFt8.cjs +216 -0
- package/dist/ask-user-3fufbFt8.cjs.map +1 -0
- package/dist/ask-user-CvCMHkhI.js +206 -0
- package/dist/ask-user-CvCMHkhI.js.map +1 -0
- package/dist/buttons-group-CoZP3lJt.cjs +59 -0
- package/dist/buttons-group-CoZP3lJt.cjs.map +1 -0
- package/dist/buttons-group-DsZgrZBZ.js +37 -0
- package/dist/buttons-group-DsZgrZBZ.js.map +1 -0
- package/dist/buttons-group.css +113 -22
- package/dist/{chat-notification-4OuPNhtu.js → chat-notification-BM24QnK9.js} +7 -7
- package/dist/{chat-notification-4OuPNhtu.js.map → chat-notification-BM24QnK9.js.map} +1 -1
- package/dist/{chat-notification-CPrlBwP_.cjs → chat-notification-CQlc3Z3y.cjs} +7 -7
- package/dist/{chat-notification-CPrlBwP_.cjs.map → chat-notification-CQlc3Z3y.cjs.map} +1 -1
- package/dist/{chat-signal-CG5-vy21.js → chat-signal-5gAZo10e.js} +6 -6
- package/dist/{chat-signal-CG5-vy21.js.map → chat-signal-5gAZo10e.js.map} +1 -1
- package/dist/{chat-signal-B_T2DSzo.cjs → chat-signal-CUkeTh1i.cjs} +6 -6
- package/dist/{chat-signal-B_T2DSzo.cjs.map → chat-signal-CUkeTh1i.cjs.map} +1 -1
- package/dist/{code-block-Cd4u7Bo9.cjs → code-block-D2q4w1t-.cjs} +10 -10
- package/dist/{code-block-Cd4u7Bo9.cjs.map → code-block-D2q4w1t-.cjs.map} +1 -1
- package/dist/{code-block-CSqjpBvb.js → code-block-D3BWud_S.js} +10 -10
- package/dist/{code-block-CSqjpBvb.js.map → code-block-D3BWud_S.js.map} +1 -1
- package/dist/{code-diff-C5uY-3Hz.js → code-diff-BHZTS4Zh.js} +2 -2
- package/dist/{code-diff-C5uY-3Hz.js.map → code-diff-BHZTS4Zh.js.map} +1 -1
- package/dist/{code-diff-DBtbPe9D.cjs → code-diff-CG8veSa-.cjs} +2 -2
- package/dist/{code-diff-DBtbPe9D.cjs.map → code-diff-CG8veSa-.cjs.map} +1 -1
- package/dist/{code-editor-vCt7l9Bl.js → code-editor-7wJJDE9d.js} +2 -2
- package/dist/{code-editor-vCt7l9Bl.js.map → code-editor-7wJJDE9d.js.map} +1 -1
- package/dist/{code-editor-DgY7d8kg.cjs → code-editor-Ce1FXyFV.cjs} +2 -2
- package/dist/{code-editor-DgY7d8kg.cjs.map → code-editor-Ce1FXyFV.cjs.map} +1 -1
- package/dist/{collapsible-BvrI6XnN.cjs → collapsible-BFSJouuI.cjs} +2 -2
- package/dist/{collapsible-BvrI6XnN.cjs.map → collapsible-BFSJouuI.cjs.map} +1 -1
- package/dist/{collapsible-B2uUy8w5.js → collapsible-DhhP5p1j.js} +2 -2
- package/dist/{collapsible-B2uUy8w5.js.map → collapsible-DhhP5p1j.js.map} +1 -1
- package/dist/{combobox-D7xJFZuO.js → combobox-CV-Ue388.js} +5 -5
- package/dist/combobox-CV-Ue388.js.map +1 -0
- package/dist/{combobox-BWM3VH-n.cjs → combobox-Dw3W6EHS.cjs} +6 -6
- package/dist/combobox-Dw3W6EHS.cjs.map +1 -0
- package/dist/{combobox-styles-CRebmeht.js → combobox-styles-Dgc_Jp-E.js} +3 -6
- package/dist/combobox-styles-Dgc_Jp-E.js.map +1 -0
- package/dist/{combobox-styles-DYlNNjKC.cjs → combobox-styles-ExU7SMb7.cjs} +3 -6
- package/dist/combobox-styles-ExU7SMb7.cjs.map +1 -0
- package/dist/{command-DuT06mTw.cjs → command-BJrGchxZ.cjs} +6 -6
- package/dist/{command-DuT06mTw.cjs.map → command-BJrGchxZ.cjs.map} +1 -1
- package/dist/{command-jRiL1vXM.js → command-kHnYspgO.js} +6 -6
- package/dist/{command-jRiL1vXM.js.map → command-kHnYspgO.js.map} +1 -1
- package/dist/components/ActionRow.cjs.js +38 -0
- package/dist/components/ActionRow.cjs.js.map +1 -0
- package/dist/components/ActionRow.d.ts +2 -0
- package/dist/components/ActionRow.es.js +34 -0
- package/dist/components/ActionRow.es.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/Button.cjs.js +2 -2
- package/dist/components/Button.es.js +3 -3
- package/dist/components/ButtonsGroup.cjs.js +1 -2
- package/dist/components/ButtonsGroup.cjs.js.map +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- 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/CodeDiff.cjs.js +1 -1
- package/dist/components/CodeDiff.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +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 +12 -12
- package/dist/components/CommandPalette.cjs.js.map +1 -1
- package/dist/components/CommandPalette.es.js +12 -12
- package/dist/components/CommandPalette.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +6 -7
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +5 -6
- package/dist/components/Comment.es.js.map +1 -1
- package/dist/components/Composer.cjs.js +6 -6
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +6 -6
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContextMenu.cjs.js +1 -6
- package/dist/components/ContextMenu.cjs.js.map +1 -1
- package/dist/components/ContextMenu.es.js +1 -6
- package/dist/components/ContextMenu.es.js.map +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +10 -11
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +10 -11
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataFilter.cjs.js +2 -2
- package/dist/components/DataFilter.es.js +2 -2
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +8 -8
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +8 -8
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +6 -6
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +6 -6
- package/dist/components/DateRangeTimeline.es.js.map +1 -1
- package/dist/components/DateTimePicker.cjs.js +4 -4
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +4 -4
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +3 -3
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.cjs.js.map +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/EntityHeader.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +15 -16
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +9 -10
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/ErrorBoundary.cjs.js +3 -3
- package/dist/components/ErrorBoundary.cjs.js.map +1 -1
- package/dist/components/ErrorBoundary.es.js +3 -3
- package/dist/components/ErrorBoundary.es.js.map +1 -1
- package/dist/components/ErrorState.cjs.js +1 -1
- package/dist/components/ErrorState.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +495 -43
- package/dist/components/FilterBar.cjs.js.map +1 -1
- package/dist/components/FilterBar.es.js +495 -47
- package/dist/components/FilterBar.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +11 -12
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -1
- package/dist/components/FormFieldBlocks.es.js +4 -5
- package/dist/components/FormFieldBlocks.es.js.map +1 -1
- package/dist/components/Header.cjs.js +6 -31
- package/dist/components/Header.cjs.js.map +1 -1
- package/dist/components/Header.es.js +1 -30
- package/dist/components/Header.es.js.map +1 -1
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/HoverCard.cjs.js +1 -1
- package/dist/components/HoverCard.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/IntegrationDialog.cjs.js +6 -6
- package/dist/components/IntegrationDialog.cjs.js.map +1 -1
- package/dist/components/IntegrationDialog.es.js +6 -6
- package/dist/components/IntegrationDialog.es.js.map +1 -1
- package/dist/components/ItemList.cjs.js +4 -4
- package/dist/components/ItemList.cjs.js.map +1 -1
- package/dist/components/ItemList.es.js +4 -4
- package/dist/components/ItemList.es.js.map +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +3 -3
- package/dist/components/JSONSchemaForm.es.js +3 -3
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +1 -1
- package/dist/components/KeyValueList.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +4 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +4 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainHeader.cjs.js +3 -3
- package/dist/components/MainHeader.cjs.js.map +1 -1
- package/dist/components/MainHeader.es.js +3 -3
- package/dist/components/MainHeader.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +11 -125
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +1 -120
- 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 +2 -2
- package/dist/components/Message.es.js +3 -3
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +30 -8
- package/dist/components/PageLayout.cjs.js.map +1 -1
- package/dist/components/PageLayout.es.js +32 -3
- package/dist/components/PageLayout.es.js.map +1 -1
- package/dist/components/PendingIndicator.cjs.js +1 -1
- package/dist/components/PendingIndicator.cjs.js.map +1 -1
- package/dist/components/PendingIndicator.es.js +1 -1
- package/dist/components/PendingIndicator.es.js.map +1 -1
- package/dist/components/PermissionDenied.cjs.js +1 -1
- package/dist/components/PermissionDenied.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +18 -19
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +21 -22
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +3 -56
- package/dist/components/RadioGroup.cjs.js.map +1 -1
- package/dist/components/RadioGroup.es.js +1 -39
- package/dist/components/RadioGroup.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +10 -10
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +10 -10
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +2 -2
- package/dist/components/ScatterPlotChart.cjs.js.map +1 -1
- package/dist/components/ScatterPlotChart.es.js +2 -2
- package/dist/components/ScatterPlotChart.es.js.map +1 -1
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SettingsLayout.cjs.js +1 -1
- package/dist/components/SettingsLayout.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +17 -10
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +17 -10
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/Spinner.cjs.js +1 -1
- package/dist/components/Spinner.es.js +1 -1
- package/dist/components/StatusIndicators.cjs.js +3 -3
- package/dist/components/StatusIndicators.cjs.js.map +1 -1
- package/dist/components/StatusIndicators.es.js +3 -3
- package/dist/components/StatusIndicators.es.js.map +1 -1
- package/dist/components/Steps.cjs.js +3 -3
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +3 -3
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/ThreadList.cjs.js +2 -2
- package/dist/components/ThreadList.cjs.js.map +1 -1
- package/dist/components/ThreadList.es.js +2 -2
- package/dist/components/ThreadList.es.js.map +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/TokenBudget.cjs.js +1 -1
- package/dist/components/TokenBudget.cjs.js.map +1 -1
- package/dist/components/TokenBudget.es.js +1 -1
- package/dist/components/TokenBudget.es.js.map +1 -1
- package/dist/components/Tree.cjs.js +3 -3
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +3 -3
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +36 -36
- package/dist/components/Workflow.cjs.js.map +1 -1
- package/dist/components/Workflow.es.js +36 -36
- package/dist/components/Workflow.es.js.map +1 -1
- package/dist/components/ai/ask-user.cjs.js +4 -3
- package/dist/components/ai/ask-user.cjs.js.map +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/chat-event.cjs.js +6 -6
- package/dist/components/ai/chat-event.cjs.js.map +1 -1
- package/dist/components/ai/chat-event.es.js +7 -7
- package/dist/components/ai/chat-event.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +2 -2
- package/dist/components/ai/plan.es.js +2 -2
- package/dist/components/ai/task-list.cjs.js +7 -7
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +7 -7
- package/dist/components/ai/task-list.es.js.map +1 -1
- 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 +8 -8
- package/dist/components/ai/tool-call.cjs.js.map +1 -1
- package/dist/components/ai/tool-call.es.js +9 -9
- package/dist/components/ai/tool-call.es.js.map +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js +13 -35
- package/dist/components/fluid-hover-highlight.cjs.js.map +1 -1
- package/dist/components/fluid-hover-highlight.es.js +14 -33
- package/dist/components/fluid-hover-highlight.es.js.map +1 -1
- package/dist/{composer-BUoRnMDd.cjs → composer-B_Err196.cjs} +6 -6
- package/dist/{composer-BUoRnMDd.cjs.map → composer-B_Err196.cjs.map} +1 -1
- package/dist/{composer-CEL1glw7.js → composer-DJGAoBcn.js} +6 -6
- package/dist/{composer-CEL1glw7.js.map → composer-DJGAoBcn.js.map} +1 -1
- package/dist/{copy-button-BbDBpBMl.cjs → copy-button-C5dMlWsW.cjs} +2 -2
- package/dist/{copy-button-BbDBpBMl.cjs.map → copy-button-C5dMlWsW.cjs.map} +1 -1
- package/dist/{copy-button-2cwdZ3dW.js → copy-button-C6RswD_D.js} +2 -2
- package/dist/{copy-button-2cwdZ3dW.js.map → copy-button-C6RswD_D.js.map} +1 -1
- package/dist/{data-code-section-qujvEc6j.cjs → data-code-section-B-y2WPBl.cjs} +17 -19
- package/dist/data-code-section-B-y2WPBl.cjs.map +1 -0
- package/dist/{data-code-section-DKz9Okaz.js → data-code-section-DcocgDAN.js} +17 -19
- package/dist/data-code-section-DcocgDAN.js.map +1 -0
- package/dist/{data-keys-and-values-4pYpSbqS.cjs → data-keys-and-values-BduKvvC5.cjs} +2 -2
- package/dist/{data-keys-and-values-4pYpSbqS.cjs.map → data-keys-and-values-BduKvvC5.cjs.map} +1 -1
- package/dist/{data-keys-and-values-j0NVKPOl.js → data-keys-and-values-DhC4U4Yl.js} +2 -2
- package/dist/{data-keys-and-values-j0NVKPOl.js.map → data-keys-and-values-DhC4U4Yl.js.map} +1 -1
- package/dist/{data-list-DnSdaRES.js → data-list-gN4SP7a8.js} +5 -5
- package/dist/{data-list-DnSdaRES.js.map → data-list-gN4SP7a8.js.map} +1 -1
- package/dist/{data-list-skeleton-ADXw-opu.cjs → data-list-skeleton-DYG2LLri.cjs} +2 -2
- package/dist/{data-list-skeleton-ADXw-opu.cjs.map → data-list-skeleton-DYG2LLri.cjs.map} +1 -1
- package/dist/{data-list-skeleton-D7-glFuk.js → data-list-skeleton-PXHovGLv.js} +2 -2
- package/dist/{data-list-skeleton-D7-glFuk.js.map → data-list-skeleton-PXHovGLv.js.map} +1 -1
- package/dist/{data-list-spacer-DRHNUeeP.js → data-list-spacer-D-AQzTYw.js} +3 -3
- package/dist/{data-list-spacer-DRHNUeeP.js.map → data-list-spacer-D-AQzTYw.js.map} +1 -1
- package/dist/{data-list-spacer-EWo65MrK.cjs → data-list-spacer-MpuBsXjL.cjs} +3 -3
- package/dist/{data-list-spacer-EWo65MrK.cjs.map → data-list-spacer-MpuBsXjL.cjs.map} +1 -1
- package/dist/{data-list-top-DLwt_Sv-.js → data-list-top-BTeM7hI4.js} +5 -5
- package/dist/{data-list-top-DLwt_Sv-.js.map → data-list-top-BTeM7hI4.js.map} +1 -1
- package/dist/{data-list-top-RK_yX6z8.cjs → data-list-top-DDux1Eu4.cjs} +5 -5
- package/dist/{data-list-top-RK_yX6z8.cjs.map → data-list-top-DDux1Eu4.cjs.map} +1 -1
- package/dist/{data-list-CypPKOQ_.cjs → data-list-yJm-3f2w.cjs} +5 -5
- package/dist/{data-list-CypPKOQ_.cjs.map → data-list-yJm-3f2w.cjs.map} +1 -1
- package/dist/{data-panel-CWZJKBeW.cjs → data-panel-CM3N_4M7.cjs} +9 -9
- package/dist/{data-panel-CWZJKBeW.cjs.map → data-panel-CM3N_4M7.cjs.map} +1 -1
- package/dist/{data-panel-CWjgS1Gh.js → data-panel-D3UfzCoE.js} +9 -9
- package/dist/{data-panel-CWjgS1Gh.js.map → data-panel-D3UfzCoE.js.map} +1 -1
- package/dist/{date-time-range-picker-C6hjZswK.cjs → date-time-range-picker-2Pkg-FoU.cjs} +6 -7
- package/dist/{date-time-range-picker-C6hjZswK.cjs.map → date-time-range-picker-2Pkg-FoU.cjs.map} +1 -1
- package/dist/{date-time-range-picker-BcjLbkGu.js → date-time-range-picker-DHg-fuV3.js} +5 -6
- package/dist/{date-time-range-picker-BcjLbkGu.js.map → date-time-range-picker-DHg-fuV3.js.map} +1 -1
- package/dist/{dialog-Dm33cZqt.cjs → dialog-Cyj59QsZ.cjs} +3 -3
- package/dist/{dialog-Dm33cZqt.cjs.map → dialog-Cyj59QsZ.cjs.map} +1 -1
- package/dist/{dialog-DRpMek34.js → dialog-D8fuBETk.js} +3 -3
- package/dist/{dialog-DRpMek34.js.map → dialog-D8fuBETk.js.map} +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.cjs.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.es.js.map +1 -1
- package/dist/domains/chat/components/loading-badge.cjs.js +1 -1
- package/dist/domains/chat/components/loading-badge.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +4 -4
- package/dist/domains/chat/messages/reasoning.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning.es.js +4 -4
- package/dist/domains/chat/messages/reasoning.es.js.map +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/system-reminder-badge.cjs.js +6 -6
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +6 -6
- package/dist/domains/chat/messages/system-reminder-badge.es.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +3 -3
- package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +3 -3
- package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +5 -5
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +5 -5
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +29 -29
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +29 -29
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +11 -11
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +11 -11
- package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +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 +10 -12
- package/dist/domains/logs/components/log-details-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-details-view.es.js +10 -12
- package/dist/domains/logs/components/log-details-view.es.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +4 -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 -7
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +6 -6
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +7 -7
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +19 -19
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +19 -19
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.cjs.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +17 -18
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +17 -18
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.cjs.js +3 -3
- package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +3 -3
- package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.cjs.js +9 -9
- package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.es.js +9 -9
- package/dist/domains/metrics/components/bar-list.es.js.map +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 +5 -5
- package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
- 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 +6 -6
- package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
- package/dist/domains/traces/components/no-traces-info.cjs.js +2 -3
- package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +2 -3
- package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +7 -7
- package/dist/domains/traces/components/span-data-panel-view.es.js +7 -7
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +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 +3 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +4 -6
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +4 -6
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
- 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-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.cjs.js +4 -4
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +4 -4
- package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +2 -2
- package/dist/domains/traces/components/span-timing-hover-card.es.js +2 -2
- package/dist/domains/traces/components/span-token-usage.cjs.js +5 -5
- package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.es.js +5 -5
- package/dist/domains/traces/components/span-token-usage.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +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-rail.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +2 -2
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js +1 -1
- package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +2 -2
- package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.es.js +2 -2
- package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +8 -8
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +6 -6
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +11 -13
- 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 +11 -13
- 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-keys-and-values.cjs.js +1 -1
- package/dist/domains/traces/components/trace-keys-and-values.es.js +1 -1
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +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 +3 -3
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +3 -3
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
- package/dist/domains/traces/components/traces-list-view.cjs.js +5 -5
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +5 -5
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +3 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +3 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +4 -2
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +5 -3
- package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +92 -11
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +87 -13
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +76 -45
- package/dist/domains/traces/trace-query-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +76 -46
- package/dist/domains/traces/trace-query-filters.es.js.map +1 -1
- package/dist/domains/traces.cjs.js +7 -0
- package/dist/domains/traces.cjs.js.map +1 -1
- package/dist/domains/traces.es.js +2 -2
- package/dist/{drawer-BL5shtHH.cjs → drawer-9eoZbmRK.cjs} +5 -5
- package/dist/{drawer-BL5shtHH.cjs.map → drawer-9eoZbmRK.cjs.map} +1 -1
- package/dist/{drawer-Bv2DRY8E.js → drawer-DnfOugYZ.js} +5 -5
- package/dist/{drawer-Bv2DRY8E.js.map → drawer-DnfOugYZ.js.map} +1 -1
- package/dist/{dropdown-menu-DL0MzjEb.js → dropdown-menu-DpEn6HwK.js} +2 -7
- package/dist/dropdown-menu-DpEn6HwK.js.map +1 -0
- package/dist/{dropdown-menu-DNRCA4Gj.cjs → dropdown-menu-j2y37TL5.cjs} +2 -7
- package/dist/dropdown-menu-j2y37TL5.cjs.map +1 -0
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
- package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +3 -1
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +34 -34
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +34 -34
- package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -7
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -7
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +15 -17
- 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 +16 -18
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +2 -2
- package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
- package/dist/ee/signals/examples-pager.es.js +2 -2
- package/dist/ee/signals/examples-pager.es.js.map +1 -1
- package/dist/ee/signals/flow-card.cjs.js +6 -6
- package/dist/ee/signals/flow-card.cjs.js.map +1 -1
- package/dist/ee/signals/flow-card.es.js +6 -6
- package/dist/ee/signals/flow-card.es.js.map +1 -1
- package/dist/ee/signals/lifeline-row.cjs.js +4 -4
- package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-row.es.js +4 -4
- package/dist/ee/signals/lifeline-row.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +12 -12
- package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +12 -12
- package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +6 -6
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +6 -6
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +13 -14
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +6 -7
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +9 -9
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +9 -9
- package/dist/ee/signals/settings/trace-signal-settings.es.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.cjs.js +7 -7
- package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.es.js +7 -7
- package/dist/ee/signals/signal-delta-column.es.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.cjs.js +2 -2
- package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.es.js +2 -2
- package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +3 -3
- package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
- package/dist/ee/signals/signals-error-state.es.js +3 -3
- package/dist/ee/signals/signals-error-state.es.js.map +1 -1
- package/dist/ee/signals/signals-loading-skeleton.cjs.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.cjs.js.map +1 -1
- package/dist/ee/signals/signals-loading-skeleton.es.js +1 -1
- package/dist/ee/signals/signals-loading-skeleton.es.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +5 -5
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +5 -5
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -1
- package/dist/ee/signals/theme-compare-sparkline.cjs.js +1 -1
- package/dist/ee/signals/theme-compare-sparkline.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare-sparkline.es.js +1 -1
- package/dist/ee/signals/theme-compare-sparkline.es.js.map +1 -1
- package/dist/ee/signals/theme-compare.cjs.js +5 -5
- package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare.es.js +5 -5
- package/dist/ee/signals/theme-compare.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +18 -18
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +18 -18
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +2 -2
- package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +2 -2
- package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.es.js +1 -1
- package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +12 -12
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +12 -12
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +2 -2
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +2 -2
- package/dist/ee/signals/trace-intelligence-explainer.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 +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/ee/topics/components/topics-layout.cjs.js +3 -3
- package/dist/ee/topics/components/topics-layout.cjs.js.map +1 -1
- package/dist/ee/topics/components/topics-layout.es.js +3 -3
- package/dist/ee/topics/components/topics-layout.es.js.map +1 -1
- package/dist/{field-block-Dy1IaWbv.cjs → field-error-id-6EfqmQ4C.cjs} +5 -2
- package/dist/field-error-id-6EfqmQ4C.cjs.map +1 -0
- package/dist/{field-block-DWkbNcsV.js → field-error-id-DyWx33Fu.js} +5 -3
- package/dist/field-error-id-DyWx33Fu.js.map +1 -0
- package/dist/{filter-bar-chip-BxI0NgEz.cjs → filter-bar-chip-D8O9jpCW.cjs} +300 -69
- package/dist/filter-bar-chip-D8O9jpCW.cjs.map +1 -0
- package/dist/{filter-bar-chip-C-JxWUU8.js → filter-bar-chip-DMhUPTt8.js} +297 -71
- package/dist/filter-bar-chip-DMhUPTt8.js.map +1 -0
- package/dist/filter-bar-chip.css +33 -1
- package/dist/hooks/use-fluid-hover.cjs.js +15 -9
- package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
- package/dist/hooks/use-fluid-hover.es.js +15 -9
- package/dist/hooks/use-fluid-hover.es.js.map +1 -1
- package/dist/{horizontal-bars-nyWGmQ7g.cjs → horizontal-bars-BkVi2dEb.cjs} +7 -7
- package/dist/{horizontal-bars-nyWGmQ7g.cjs.map → horizontal-bars-BkVi2dEb.cjs.map} +1 -1
- package/dist/{horizontal-bars-CksEKcCE.js → horizontal-bars-nTOFylzc.js} +7 -7
- package/dist/{horizontal-bars-CksEKcCE.js.map → horizontal-bars-nTOFylzc.js.map} +1 -1
- package/dist/{hover-card-Ch5smNcf.js → hover-card-B1-n3amu.js} +3 -3
- package/dist/{hover-card-Ch5smNcf.js.map → hover-card-B1-n3amu.js.map} +1 -1
- package/dist/{hover-card-DdHnkGcs.cjs → hover-card-DVfZ2INZ.cjs} +3 -3
- package/dist/{hover-card-DdHnkGcs.cjs.map → hover-card-DVfZ2INZ.cjs.map} +1 -1
- package/dist/icons/Icon.cjs.js +1 -1
- package/dist/icons/Icon.cjs.js.map +1 -1
- package/dist/icons/Icon.es.js +1 -1
- package/dist/icons/Icon.es.js.map +1 -1
- package/dist/{input-group-CvWwK1Vz.cjs → input-group-2yWKRuq9.cjs} +7 -5
- package/dist/input-group-2yWKRuq9.cjs.map +1 -0
- package/dist/{input-group-BEdHivvy.js → input-group-Czviwtvr.js} +8 -6
- package/dist/input-group-Czviwtvr.js.map +1 -0
- package/dist/{kbd-CINtikLh.js → kbd-BDVTQHD_.js} +2 -2
- package/dist/{kbd-CINtikLh.js.map → kbd-BDVTQHD_.js.map} +1 -1
- package/dist/{kbd-B-Z2sNvK.cjs → kbd-BptPsKP6.cjs} +2 -2
- package/dist/{kbd-B-Z2sNvK.cjs.map → kbd-BptPsKP6.cjs.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-BTW0Neuc.js → list-search-Jm6SLN0g.js} +2 -2
- package/dist/{list-search-BTW0Neuc.js.map → list-search-Jm6SLN0g.js.map} +1 -1
- package/dist/{list-search-vyxsZMAK.cjs → list-search-s3DRIfz6.cjs} +2 -2
- package/dist/{list-search-vyxsZMAK.cjs.map → list-search-s3DRIfz6.cjs.map} +1 -1
- package/dist/{logs-data-list-BSHJPGi6.cjs → logs-data-list-C5tjRtkQ.cjs} +5 -5
- package/dist/{logs-data-list-BSHJPGi6.cjs.map → logs-data-list-C5tjRtkQ.cjs.map} +1 -1
- package/dist/{logs-data-list-CG-UgC_x.js → logs-data-list-Cl3abARp.js} +5 -5
- package/dist/{logs-data-list-CG-UgC_x.js.map → logs-data-list-Cl3abARp.js.map} +1 -1
- package/dist/{main-sidebar-link-active-DbCvKZy2.cjs → main-sidebar-BsEmFpKN.cjs} +122 -9
- package/dist/main-sidebar-BsEmFpKN.cjs.map +1 -0
- package/dist/{main-sidebar-link-active-CmDoiX6g.js → main-sidebar-C5PU7zgc.js} +123 -11
- package/dist/main-sidebar-C5PU7zgc.js.map +1 -0
- package/dist/{markdown-renderer-D8qYAU7K.cjs → markdown-renderer-C74wABzc.cjs} +6 -7
- package/dist/markdown-renderer-C74wABzc.cjs.map +1 -0
- package/dist/{markdown-renderer-B0gTm_Ea.js → markdown-renderer-DZAcPOxC.js} +6 -7
- package/dist/markdown-renderer-DZAcPOxC.js.map +1 -0
- package/dist/{message-BrwbcLPi.js → message-Cs8NW-MR.js} +2 -2
- package/dist/{message-BrwbcLPi.js.map → message-Cs8NW-MR.js.map} +1 -1
- package/dist/{message-CszposMZ.cjs → message-D9b33Pf_.cjs} +2 -2
- package/dist/{message-CszposMZ.cjs.map → message-D9b33Pf_.cjs.map} +1 -1
- package/dist/{metrics-card-BUJxiwec.cjs → metrics-card-BdWGPlnt.cjs} +8 -8
- package/dist/metrics-card-BdWGPlnt.cjs.map +1 -0
- package/dist/{metrics-card-BlBt1WHw.js → metrics-card-C5znWn69.js} +8 -8
- package/dist/metrics-card-C5znWn69.js.map +1 -0
- package/dist/{metrics-kpi-card-CBSNmtc5.js → metrics-kpi-card-CinKYTBn.js} +4 -4
- package/dist/{metrics-kpi-card-CBSNmtc5.js.map → metrics-kpi-card-CinKYTBn.js.map} +1 -1
- package/dist/{metrics-kpi-card-CgqmNcEC.cjs → metrics-kpi-card-HU17WRTT.cjs} +4 -4
- package/dist/{metrics-kpi-card-CgqmNcEC.cjs.map → metrics-kpi-card-HU17WRTT.cjs.map} +1 -1
- package/dist/{metrics-line-chart-B_sP3eiL.cjs → metrics-line-chart-0FR3SYSt.cjs} +3 -3
- package/dist/{metrics-line-chart-B_sP3eiL.cjs.map → metrics-line-chart-0FR3SYSt.cjs.map} +1 -1
- package/dist/{metrics-line-chart-DHyrDPkJ.js → metrics-line-chart-knlgw8bV.js} +3 -3
- package/dist/{metrics-line-chart-DHyrDPkJ.js.map → metrics-line-chart-knlgw8bV.js.map} +1 -1
- package/dist/new/layout/app-shell.cjs.js +23 -28
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +23 -28
- 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 +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/new/sidebar.cjs.js +40 -40
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +10 -10
- package/dist/new/sidebar.es.js.map +1 -1
- package/dist/{page-header-BIoUf7MA.js → page-header-CSigVThQ.js} +2 -2
- package/dist/{page-header-BIoUf7MA.js.map → page-header-CSigVThQ.js.map} +1 -1
- package/dist/{page-header-BBlPmW-T.cjs → page-header-DzEEkOca.cjs} +2 -2
- package/dist/{page-header-BBlPmW-T.cjs.map → page-header-DzEEkOca.cjs.map} +1 -1
- package/dist/primitives/control-size.cjs.js +24 -2
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +5 -3
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/fluid-menu.cjs.js +30 -18
- package/dist/primitives/fluid-menu.cjs.js.map +1 -1
- package/dist/primitives/fluid-menu.es.js +30 -18
- package/dist/primitives/fluid-menu.es.js.map +1 -1
- package/dist/primitives/form-element.cjs.js +4 -4
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +4 -3
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +7 -4
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +7 -4
- 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-BBiUbtr0.js → property-filter-applied-C15IJHLs.js} +30 -36
- package/dist/property-filter-applied-C15IJHLs.js.map +1 -0
- package/dist/{property-filter-applied-BmxCPe2d.cjs → property-filter-applied-DtSjGypB.cjs} +30 -36
- package/dist/property-filter-applied-DtSjGypB.cjs.map +1 -0
- package/dist/radio-group-BdEPWGzi.cjs +62 -0
- package/dist/radio-group-BdEPWGzi.cjs.map +1 -0
- package/dist/radio-group-CFZXUXZ5.js +40 -0
- package/dist/radio-group-CFZXUXZ5.js.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +1 -1
- package/dist/resize/collapsible-panel.es.js +1 -1
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/{sankey-chart-Bcm9jMhe.cjs → sankey-chart-C1e0nRc3.cjs} +4 -4
- package/dist/{sankey-chart-Bcm9jMhe.cjs.map → sankey-chart-C1e0nRc3.cjs.map} +1 -1
- package/dist/{sankey-chart-CqngN2lw.js → sankey-chart-jvMXKzud.js} +4 -4
- package/dist/{sankey-chart-CqngN2lw.js.map → sankey-chart-jvMXKzud.js.map} +1 -1
- package/dist/{scroll-area-Qjf7e0Ik.cjs → scroll-area-BzOyuS8Y.cjs} +2 -2
- package/dist/{scroll-area-Qjf7e0Ik.cjs.map → scroll-area-BzOyuS8Y.cjs.map} +1 -1
- package/dist/{scroll-area-CdQ_5bLm.js → scroll-area-DyTZoISq.js} +2 -2
- package/dist/{scroll-area-CdQ_5bLm.js.map → scroll-area-DyTZoISq.js.map} +1 -1
- package/dist/{search-field-block-D0PUUCAE.cjs → search-field-block-ChXCuPrB.cjs} +9 -10
- package/dist/{search-field-block-D0PUUCAE.cjs.map → search-field-block-ChXCuPrB.cjs.map} +1 -1
- package/dist/{search-field-block-B5vUVTpl.js → search-field-block-nVeIkFXN.js} +3 -4
- package/dist/{search-field-block-B5vUVTpl.js.map → search-field-block-nVeIkFXN.js.map} +1 -1
- package/dist/{select--DXpTg0O.js → select-CDIt5aab.js} +3 -6
- package/dist/select-CDIt5aab.js.map +1 -0
- package/dist/{select-7ACAVdGX.cjs → select-CH5XO18L.cjs} +3 -6
- package/dist/select-CH5XO18L.cjs.map +1 -0
- package/dist/{select-field-block-Bu7UXI2H.js → select-field-block-BtjE0P5d.js} +3 -4
- package/dist/{select-field-block-Bu7UXI2H.js.map → select-field-block-BtjE0P5d.js.map} +1 -1
- package/dist/{select-field-block-W2u2WmN3.cjs → select-field-block-CpzMTsP6.cjs} +9 -10
- package/dist/{select-field-block-W2u2WmN3.cjs.map → select-field-block-CpzMTsP6.cjs.map} +1 -1
- package/dist/{settings-layout-NP_1dC-e.cjs → settings-layout-BGvMSClL.cjs} +2 -2
- package/dist/{settings-layout-NP_1dC-e.cjs.map → settings-layout-BGvMSClL.cjs.map} +1 -1
- package/dist/{settings-layout-C80s-D31.js → settings-layout-DA-JWqW3.js} +2 -2
- package/dist/{settings-layout-C80s-D31.js.map → settings-layout-DA-JWqW3.js.map} +1 -1
- package/dist/{span-payload-primitives-DnRsP93D.cjs → span-payload-primitives-70wznWZl.cjs} +6 -6
- package/dist/{span-payload-primitives-DnRsP93D.cjs.map → span-payload-primitives-70wznWZl.cjs.map} +1 -1
- package/dist/{span-payload-primitives-sbxk4CHC.js → span-payload-primitives-BvoMauDb.js} +6 -6
- package/dist/{span-payload-primitives-sbxk4CHC.js.map → span-payload-primitives-BvoMauDb.js.map} +1 -1
- package/dist/{spinner-CqP-NaB2.cjs → spinner-BCpN7LL9.cjs} +9 -3
- package/dist/spinner-BCpN7LL9.cjs.map +1 -0
- package/dist/{spinner-D2C2DYw8.js → spinner-ylbE0TJA.js} +9 -3
- package/dist/spinner-ylbE0TJA.js.map +1 -0
- package/dist/src/components/fluid-hover-highlight.d.ts +4 -58
- package/dist/src/domains/traces/components/traces-error-content.d.ts +2 -2
- package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +5 -3
- package/dist/src/domains/traces/trace-filters.d.ts +19 -4
- package/dist/src/domains/traces/trace-query-filters.d.ts +13 -1
- package/dist/src/ds/components/ActionRow/action-row.d.ts +9 -0
- package/dist/src/ds/components/ActionRow/action-row.stories.d.ts +8 -0
- package/dist/src/ds/components/ActionRow/index.d.ts +5 -0
- package/dist/src/ds/components/Badge/badge.stories.d.ts +0 -1
- package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +11 -11
- package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +17 -7
- package/dist/src/ds/components/EmptyState/EmptyState.d.ts +8 -2
- package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +1 -0
- package/dist/src/ds/components/ErrorState/ErrorState.d.ts +3 -1
- package/dist/src/ds/components/ErrorState/error-state.stories.d.ts +1 -0
- package/dist/src/ds/components/FilterBar/filter-bar-advanced-chip.d.ts +10 -0
- package/dist/src/ds/components/FilterBar/filter-bar-context.d.ts +46 -9
- package/dist/src/ds/components/FilterBar/filter-bar-group-editor.d.ts +25 -0
- package/dist/src/ds/components/FilterBar/filter-bar-input.d.ts +8 -1
- package/dist/src/ds/components/FilterBar/filter-bar-option-list.d.ts +5 -0
- package/dist/src/ds/components/FilterBar/filter-bar-tree.d.ts +36 -0
- package/dist/src/ds/components/FilterBar/filter-bar.d.ts +28 -7
- package/dist/src/ds/components/FilterBar/filter-bar.stories.d.ts +3 -0
- package/dist/src/ds/components/FilterBar/index.d.ts +6 -1
- package/dist/src/ds/components/FilterBar/types.d.ts +36 -0
- package/dist/src/ds/components/FilterBar/use-settle-on-leave.d.ts +2 -0
- package/dist/src/ds/components/PageLayout/index.d.ts +1 -2
- package/dist/src/ds/components/PageLayout/page-layout.d.ts +13 -11
- package/dist/src/ds/components/PageLayout/page-layout.stories.d.ts +1 -2
- package/dist/src/ds/components/PermissionDenied/PermissionDenied.d.ts +3 -1
- package/dist/src/ds/components/PermissionDenied/permission-denied.stories.d.ts +1 -0
- package/dist/src/ds/components/SessionExpired/SessionExpired.d.ts +3 -1
- package/dist/src/ds/components/SessionExpired/session-expired.stories.d.ts +1 -0
- package/dist/src/ds/components/Spinner/spinner.d.ts +6 -3
- package/dist/src/ds/components/Spinner/spinner.stories.d.ts +1 -0
- package/dist/src/ds/components/ai/ask-user/ask-user.d.ts +13 -8
- package/dist/src/ds/new/layout/app-shell/app-shell.d.ts +2 -8
- package/dist/src/ds/new/layout/app-shell/app-shell.stories.d.ts +0 -1
- package/dist/src/ds/primitives/control-size.d.ts +3 -1
- package/dist/src/ds/primitives/fluid-menu.d.ts +8 -3
- package/dist/src/ds/primitives/form-element.d.ts +1 -2
- package/dist/src/hooks/use-fluid-hover.d.ts +7 -2
- package/dist/style.css +83 -120
- package/dist/{tabs-content-CKC4kIpH.js → tabs-content-BeFlc4E_.js} +2 -2
- package/dist/{tabs-content-CKC4kIpH.js.map → tabs-content-BeFlc4E_.js.map} +1 -1
- package/dist/{tabs-content-Bz6CZuv9.cjs → tabs-content-Cdu6HP8U.cjs} +2 -2
- package/dist/{tabs-content-Bz6CZuv9.cjs.map → tabs-content-Cdu6HP8U.cjs.map} +1 -1
- package/dist/{tabs-root-C5ABfm1F.cjs → tabs-root-BiV8irc3.cjs} +4 -4
- package/dist/{tabs-root-C5ABfm1F.cjs.map → tabs-root-BiV8irc3.cjs.map} +1 -1
- package/dist/{tabs-root-CcEQrwTM.js → tabs-root-CJ3GkDzi.js} +4 -4
- package/dist/{tabs-root-CcEQrwTM.js.map → tabs-root-CJ3GkDzi.js.map} +1 -1
- package/dist/{tabs-tab-BycF4dvx.js → tabs-tab-CoSCf5Ku.js} +2 -2
- package/dist/{tabs-tab-BycF4dvx.js.map → tabs-tab-CoSCf5Ku.js.map} +1 -1
- package/dist/{tabs-tab-DA466DbX.cjs → tabs-tab-J91Szy3Q.cjs} +2 -2
- package/dist/{tabs-tab-DA466DbX.cjs.map → tabs-tab-J91Szy3Q.cjs.map} +1 -1
- package/dist/{text-field-block-BLpLWmu8.cjs → text-field-block-BmWGMw3a.cjs} +8 -9
- package/dist/{text-field-block-BLpLWmu8.cjs.map → text-field-block-BmWGMw3a.cjs.map} +1 -1
- package/dist/{text-field-block--EUJKlY_.js → text-field-block-Cihf0IRw.js} +2 -3
- package/dist/{text-field-block--EUJKlY_.js.map → text-field-block-Cihf0IRw.js.map} +1 -1
- package/dist/{thread-rail-b-8RHNX_.cjs → thread-rail-BVpfkSyT.cjs} +6 -6
- package/dist/{thread-rail-b-8RHNX_.cjs.map → thread-rail-BVpfkSyT.cjs.map} +1 -1
- package/dist/{thread-rail-vsR5C0j4.js → thread-rail-DV89nFnn.js} +6 -6
- package/dist/{thread-rail-vsR5C0j4.js.map → thread-rail-DV89nFnn.js.map} +1 -1
- package/dist/{time-picker-Dlm-C-n4.cjs → time-picker-DXuXFGa-.cjs} +2 -2
- package/dist/{time-picker-Dlm-C-n4.cjs.map → time-picker-DXuXFGa-.cjs.map} +1 -1
- package/dist/{time-picker-DVt1ZUsS.js → time-picker-vFozGRyK.js} +2 -2
- package/dist/{time-picker-DVt1ZUsS.js.map → time-picker-vFozGRyK.js.map} +1 -1
- package/dist/{tool-approval-DB82iiRa.js → tool-approval-C11ECt4s.js} +5 -5
- package/dist/{tool-approval-DB82iiRa.js.map → tool-approval-C11ECt4s.js.map} +1 -1
- package/dist/{tool-approval-Dys524ty.cjs → tool-approval-DODxfqk7.cjs} +5 -5
- package/dist/{tool-approval-Dys524ty.cjs.map → tool-approval-DODxfqk7.cjs.map} +1 -1
- package/dist/{tool-call-K147tCug.js → tool-call-BjAGFbH-.js} +5 -5
- package/dist/{tool-call-K147tCug.js.map → tool-call-BjAGFbH-.js.map} +1 -1
- package/dist/{tool-call-CMRvRE-v.cjs → tool-call-CNBGnCmO.cjs} +5 -5
- package/dist/{tool-call-CMRvRE-v.cjs.map → tool-call-CNBGnCmO.cjs.map} +1 -1
- package/dist/{traces-data-list-CDNE9P8W.js → traces-data-list-BhKK8-wa.js} +7 -7
- package/dist/{traces-data-list-CDNE9P8W.js.map → traces-data-list-BhKK8-wa.js.map} +1 -1
- package/dist/{traces-data-list-B3q_cy6c.cjs → traces-data-list-D58cw23x.cjs} +7 -7
- package/dist/{traces-data-list-B3q_cy6c.cjs.map → traces-data-list-D58cw23x.cjs.map} +1 -1
- package/dist/types-CIPrYAzY.js +9 -0
- package/dist/types-CIPrYAzY.js.map +1 -0
- package/dist/types-Ns4ZNp-g.cjs +12 -0
- package/dist/types-Ns4ZNp-g.cjs.map +1 -0
- package/package.json +6 -7
- package/theme/surfaces.css +2 -2
- package/dist/Button-CVewl8nT.cjs.map +0 -1
- package/dist/Button-cWcBEd-G.js.map +0 -1
- package/dist/EmptyState-CdRjFB06.cjs.map +0 -1
- package/dist/EmptyState-UWXhBp5U.js.map +0 -1
- package/dist/ErrorState-B3uTRAEd.cjs +0 -16
- package/dist/ErrorState-B3uTRAEd.cjs.map +0 -1
- package/dist/ErrorState-DqRx8Dw_.js +0 -14
- package/dist/ErrorState-DqRx8Dw_.js.map +0 -1
- package/dist/PermissionDenied-B6TSGolC.js.map +0 -1
- package/dist/PermissionDenied-Dz5qXpQj.cjs.map +0 -1
- package/dist/SessionExpired-Bq5LcsDu.js.map +0 -1
- package/dist/SessionExpired-CF0BGNo_.cjs.map +0 -1
- package/dist/ask-user-CS2e6Re4.cjs +0 -147
- package/dist/ask-user-CS2e6Re4.cjs.map +0 -1
- package/dist/ask-user-gS3Y1bCc.js +0 -138
- package/dist/ask-user-gS3Y1bCc.js.map +0 -1
- package/dist/buttons-group-BiLEV_Ak.cjs +0 -101
- package/dist/buttons-group-BiLEV_Ak.cjs.map +0 -1
- package/dist/buttons-group-CaA7KAWf.js +0 -78
- package/dist/buttons-group-CaA7KAWf.js.map +0 -1
- package/dist/combobox-BWM3VH-n.cjs.map +0 -1
- package/dist/combobox-D7xJFZuO.js.map +0 -1
- package/dist/combobox-styles-CRebmeht.js.map +0 -1
- package/dist/combobox-styles-DYlNNjKC.cjs.map +0 -1
- package/dist/components/MainContent.cjs.js +0 -81
- package/dist/components/MainContent.cjs.js.map +0 -1
- package/dist/components/MainContent.d.ts +0 -2
- package/dist/components/MainContent.es.js +0 -75
- package/dist/components/MainContent.es.js.map +0 -1
- package/dist/data-code-section-DKz9Okaz.js.map +0 -1
- package/dist/data-code-section-qujvEc6j.cjs.map +0 -1
- package/dist/dropdown-menu-DL0MzjEb.js.map +0 -1
- package/dist/dropdown-menu-DNRCA4Gj.cjs.map +0 -1
- package/dist/field-block-DWkbNcsV.js.map +0 -1
- package/dist/field-block-Dy1IaWbv.cjs.map +0 -1
- package/dist/field-error-id-B3Z2Zu5y.cjs +0 -6
- package/dist/field-error-id-B3Z2Zu5y.cjs.map +0 -1
- package/dist/field-error-id-D3yg1nBh.js +0 -4
- package/dist/field-error-id-D3yg1nBh.js.map +0 -1
- package/dist/filter-bar-chip-BxI0NgEz.cjs.map +0 -1
- package/dist/filter-bar-chip-C-JxWUU8.js.map +0 -1
- package/dist/input-group-BEdHivvy.js.map +0 -1
- package/dist/input-group-CvWwK1Vz.cjs.map +0 -1
- package/dist/lib/springs.cjs.js +0 -32
- package/dist/lib/springs.cjs.js.map +0 -1
- package/dist/lib/springs.d.ts +0 -2
- package/dist/lib/springs.es.js +0 -27
- package/dist/lib/springs.es.js.map +0 -1
- package/dist/main-sidebar-link-active-CmDoiX6g.js.map +0 -1
- package/dist/main-sidebar-link-active-DbCvKZy2.cjs.map +0 -1
- package/dist/markdown-renderer-B0gTm_Ea.js.map +0 -1
- package/dist/markdown-renderer-D8qYAU7K.cjs.map +0 -1
- package/dist/metrics-card-BUJxiwec.cjs.map +0 -1
- package/dist/metrics-card-BlBt1WHw.js.map +0 -1
- package/dist/new/layout/page-shell.cjs.js +0 -34
- package/dist/new/layout/page-shell.cjs.js.map +0 -1
- package/dist/new/layout/page-shell.d.ts +0 -2
- package/dist/new/layout/page-shell.es.js +0 -30
- package/dist/new/layout/page-shell.es.js.map +0 -1
- package/dist/no-data-page-layout-DcVPjj-J.js +0 -9
- package/dist/no-data-page-layout-DcVPjj-J.js.map +0 -1
- package/dist/no-data-page-layout-Drzbg_w8.cjs +0 -11
- package/dist/no-data-page-layout-Drzbg_w8.cjs.map +0 -1
- package/dist/page-heading-context-D3yjYoJE.js +0 -9
- package/dist/page-heading-context-D3yjYoJE.js.map +0 -1
- package/dist/page-heading-context-Du-CpxAx.cjs +0 -12
- package/dist/page-heading-context-Du-CpxAx.cjs.map +0 -1
- package/dist/page-layout-C9ifD9Q8.cjs +0 -99
- package/dist/page-layout-C9ifD9Q8.cjs.map +0 -1
- package/dist/page-layout-xcM8IR-B.js +0 -97
- package/dist/page-layout-xcM8IR-B.js.map +0 -1
- package/dist/property-filter-applied-BBiUbtr0.js.map +0 -1
- package/dist/property-filter-applied-BmxCPe2d.cjs.map +0 -1
- package/dist/select--DXpTg0O.js.map +0 -1
- package/dist/select-7ACAVdGX.cjs.map +0 -1
- package/dist/spinner-CqP-NaB2.cjs.map +0 -1
- package/dist/spinner-D2C2DYw8.js.map +0 -1
- package/dist/src/ds/components/MainContent/index.d.ts +0 -1
- package/dist/src/ds/components/MainContent/main-content.d.ts +0 -21
- package/dist/src/ds/components/MainContent/main-content.stories.d.ts +0 -10
- package/dist/src/ds/components/PageLayout/no-data-page-layout.d.ts +0 -6
- package/dist/src/ds/components/PageLayout/page-heading-context.d.ts +0 -2
- package/dist/src/ds/components/PageLayout/page-layout-column.d.ts +0 -5
- package/dist/src/ds/components/PageLayout/page-layout-main-area.d.ts +0 -7
- package/dist/src/ds/components/PageLayout/page-layout-root.d.ts +0 -7
- package/dist/src/ds/components/PageLayout/page-layout-row.d.ts +0 -11
- package/dist/src/ds/components/PageLayout/page-layout-top-area.d.ts +0 -5
- package/dist/src/ds/new/layout/page-shell/index.d.ts +0 -1
- package/dist/src/ds/new/layout/page-shell/page-shell.d.ts +0 -24
- package/dist/src/ds/new/layout/page-shell/page-shell.stories.d.ts +0 -63
- package/dist/src/lib/springs.d.ts +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterBar.cjs.js","sources":["../../src/ds/components/FilterBar/filter-bar-clear.tsx","../../src/ds/components/FilterBar/filter-bar-input.tsx","../../src/ds/components/FilterBar/filter-bar.tsx","../../src/ds/components/FilterBar/default-operators.ts"],"sourcesContent":["import { XIcon } from 'lucide-react';\nimport { useFilterBarContext } from './filter-bar-context';\nimport { Button } from '@/ds/components/Button/Button';\n\n/** Removes every removable filter. Rendered by FilterBar at its trailing edge; hidden while nothing can be removed. */\nexport function FilterBarClear({ label }: { label: string }) {\n const ctx = useFilterBarContext();\n if (!ctx.hasRemovableItems) return null;\n return (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={label}\n tooltip={label}\n onClick={event => {\n event.stopPropagation();\n ctx.clear();\n ctx.focusInput();\n }}\n >\n <XIcon />\n </Button>\n );\n}\n","import type { BaseUIEvent } from '@base-ui/react/types';\nimport { ListFilterIcon, Search } from 'lucide-react';\nimport { useCallback, useMemo, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\nimport { FILTER_BAR_CONTROL_SIZE, FilterBarFieldLabel } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport { FilterBarOptionList } from './filter-bar-option-list';\nimport { matchesQueryFilter } from './match-query';\nimport type { FilterBarField, FilterBarOperator, FilterBarOption, FilterBarValue } from './types';\nimport { useValueStep } from './use-value-step';\nimport { Button } from '@/ds/components/Button/Button';\nimport { ComboboxPrimitive, comboboxStyles } from '@/ds/components/Combobox';\nimport { comboboxTriggerClass } from '@/ds/components/Combobox/combobox-styles';\nimport { Kbd } from '@/ds/components/Kbd/kbd';\nimport { Txt } from '@/ds/components/Txt';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { inputFocusBorderWithin, unstyledFormElementStyle } from '@/ds/primitives/form-element';\nimport { MENU_SIDE_OFFSET } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { useIsApplePlatform } from '@/hooks/use-keyboard-shortcut-label';\nimport { cn } from '@/lib/utils';\n\ntype Step = 'field' | 'operator' | 'value';\n\ntype Item = FilterBarField | FilterBarOperator | FilterBarOption;\n\nconst getItemLabel = (item: Item) => ('label' in item && item.label ? item.label : 'value' in item ? item.value : '');\n\nexport type FilterBarInputProps = {\n placeholder?: string;\n className?: string;\n 'aria-label'?: string;\n};\n\n/**\n * Typeahead entry point: type to pick a field, then an operator, then a value.\n * Focus never leaves the input; the popup is driven with the arrow keys.\n */\nexport function FilterBarInput({\n placeholder = 'Filter…',\n className,\n 'aria-label': ariaLabel = 'Add filter',\n}: FilterBarInputProps) {\n const ctx = useFilterBarContext();\n const container = usePortalContainer();\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [highlighted, setHighlighted] = useState<Item | null>(null);\n const modEnterLabel = useIsApplePlatform() ? '⌘↵' : 'Ctrl ↵';\n\n // The draft lives in the provider so the chip list can render it; the step follows from it.\n const { draft, setDraft, commitDraft } = ctx;\n const step: Step = !draft ? 'field' : !draft.operatorId ? 'operator' : 'value';\n const field = draft ? ctx.getField(draft.fieldId) : undefined;\n const operator = draft?.operatorId ? ctx.getOperator(draft.operatorId) : undefined;\n const fieldOperators = useMemo(() => (field ? ctx.getFieldOperators(field) : []), [ctx, field]);\n const visibleFields = useMemo(() => ctx.fields.filter(f => !f.hidden), [ctx.fields]);\n\n const reset = useCallback(() => {\n setDraft(null);\n setQuery('');\n }, [setDraft]);\n\n const close = useCallback(() => {\n setOpen(false);\n reset();\n }, [reset]);\n\n const commit = useCallback(\n (fieldId: string, operatorId: string, value: FilterBarValue) => {\n commitDraft({ fieldId, operatorId }, value);\n setQuery('');\n inputRef.current?.focus();\n },\n [commitDraft],\n );\n\n const selectOperator = useCallback(\n (fieldId: string, next: FilterBarOperator) => {\n if (next.arity === 'none') {\n commit(fieldId, next.id, '');\n return;\n }\n setDraft({ fieldId, operatorId: next.id });\n setQuery('');\n },\n [commit, setDraft],\n );\n\n const selectField = useCallback(\n (next: FilterBarField) => {\n // A single allowed operator is implied: skip straight to the value step.\n const [only, ...rest] = ctx.getFieldOperators(next);\n if (only && rest.length === 0) {\n selectOperator(next.id, only);\n return;\n }\n setDraft({ fieldId: next.id });\n setQuery('');\n },\n [ctx, selectOperator, setDraft],\n );\n\n const valueStep = useValueStep({\n field,\n operator,\n query,\n enabled: open && step === 'value',\n onCommit: value => {\n if (draft?.operatorId) commit(draft.fieldId, draft.operatorId, value);\n },\n });\n\n const stepBack = useCallback(() => {\n if (step === 'value' && draft) {\n // Back to the field step when the operator was implied (single operator).\n const skipOperator = field ? fieldOperators.length === 1 : false;\n setDraft(skipOperator ? null : { fieldId: draft.fieldId });\n } else if (step === 'operator') setDraft(null);\n else setOpen(false);\n setQuery('');\n }, [step, draft, field, fieldOperators, setDraft]);\n\n // Selection is routed per step and never kept by Base UI (`value` stays null).\n const handleSelect = (item: Item) => {\n if (step === 'field') selectField(item as FilterBarField);\n else if (step === 'operator' && draft) selectOperator(draft.fieldId, item as FilterBarOperator);\n else valueStep.handleSelect(item as FilterBarOption);\n };\n\n // App-level keys run before Base UI's own input handling.\n const handleKeyDown = (event: BaseUIEvent<KeyboardEvent<HTMLInputElement>>) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n event.preventBaseUIHandler();\n stepBack();\n return;\n }\n if (!open && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault();\n event.preventBaseUIHandler();\n setOpen(true);\n return;\n }\n if (query === '') {\n if (event.key === 'Backspace') {\n event.preventDefault();\n event.preventBaseUIHandler();\n if (step !== 'field') stepBack();\n else {\n // Chips still animating out are already gone from the value: skip them.\n const last = ctx.items.findLast(item => !ctx.leaving.has(item.id));\n if (last) ctx.removeItem(last.id);\n }\n return;\n }\n if (event.key === 'ArrowLeft' && step === 'field') {\n if (ctx.focusChip(ctx.items.length - 1, -1, 'remove')) event.preventDefault();\n return;\n }\n }\n if (!open) return;\n\n if (event.key === 'Tab' && highlighted && step !== 'value' && (step === 'operator' || query !== '')) {\n event.preventDefault();\n event.preventBaseUIHandler();\n handleSelect(highlighted);\n return;\n }\n if (step === 'value') {\n const highlightedOption = valueStep.hasSuggestions ? (highlighted as FilterBarOption | null) : null;\n const handled = valueStep.handleKeyDown(event, highlightedOption);\n // Base UI closes on Enter when nothing is highlighted (form submission); the draft must stay open.\n if (handled || (event.key === 'Enter' && highlightedOption === null)) event.preventBaseUIHandler();\n }\n };\n\n const items: readonly Item[] =\n step === 'field' ? visibleFields : step === 'operator' ? fieldOperators : valueStep.options;\n\n const searchPlaceholder =\n step === 'field' ? 'Search fields…' : step === 'operator' ? 'Search operators…' : 'Search values…';\n\n const inputPlaceholder =\n step === 'field'\n ? placeholder\n : step === 'operator'\n ? 'Operator…'\n : valueStep.hasSuggestions && valueStep.allowFreeText\n ? 'Search or type a value…'\n : field?.type === 'number'\n ? 'Number…'\n : 'Value…';\n\n return (\n <>\n <ComboboxPrimitive.Root<Item>\n items={items}\n itemToStringLabel={getItemLabel}\n // The value step is already filtered (locally or server-side) by useValueSuggestions.\n filter={step === 'value' ? null : matchesQueryFilter}\n value={null}\n onValueChange={(item, details) => {\n // Never let Base UI keep the selection, fill the input or close: each step routes it.\n details.cancel();\n if (item) handleSelect(item);\n }}\n inputValue={query}\n onInputValueChange={(next, details) => {\n if (details.reason !== 'input-change') return;\n setQuery(next);\n if (!open) setOpen(true);\n }}\n onItemHighlighted={item => setHighlighted(item ?? null)}\n open={open}\n onOpenChange={(next, details) => {\n // Escape is handled by the input (it steps back rather than closing).\n if (!next && details.reason === 'escape-key') return;\n // The input is the anchor, not a trigger: clicking it must keep the draft open.\n if (\n !next &&\n details.reason === 'outside-press' &&\n details.event.target instanceof Node &&\n inputRef.current?.contains(details.event.target)\n ) {\n return;\n }\n if (next) setOpen(true);\n else close();\n }}\n // ComboboxRoot's typings narrow `autoHighlight` to boolean, but the runtime (shared with\n // AutocompleteRoot) supports 'always': highlight the first item as soon as the list opens.\n autoHighlight={'always' as unknown as boolean}\n modal={false}\n >\n <div\n data-slot=\"filter-bar-input-trigger\"\n className={cn(\n // Same trigger recipe as every other DS Combobox (fill, radius, `[&>svg]` icon sizing\n // and the Button icon offset); the bar itself has no chrome. Focus lives on the\n // nested input, so the recipe's `focus-visible` border becomes `focus-within`.\n comboboxTriggerClass({ variant: 'default', size: FILTER_BAR_CONTROL_SIZE }),\n 'w-auto cursor-text',\n 'focus-within:bg-fill-hover',\n inputFocusBorderWithin,\n step === 'field' ? 'min-w-40' : 'min-w-28',\n className,\n )}\n >\n <ListFilterIcon aria-hidden className=\"text-muted-foreground -ml-[.3em] shrink-0\" />\n <ComboboxPrimitive.Input\n ref={el => {\n inputRef.current = el;\n ctx.registerInput(el);\n }}\n aria-label={ariaLabel}\n spellCheck={false}\n data-slot=\"filter-bar-input\"\n data-step={step}\n inputMode={step === 'value' && field?.type === 'number' ? 'decimal' : undefined}\n placeholder={inputPlaceholder}\n className={cn(\n unstyledFormElementStyle,\n 'min-w-0 flex-1 bg-transparent',\n 'placeholder:text-muted-foreground placeholder:transition-opacity placeholder:duration-normal focus:placeholder:opacity-70',\n )}\n onFocus={() => setOpen(true)}\n onKeyDown={handleKeyDown}\n />\n </div>\n <ComboboxPrimitive.Portal container={container}>\n <ComboboxPrimitive.Positioner\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n positionMethod={FLOATING_POSITION_METHOD}\n className={comboboxStyles.positioner}\n >\n <ComboboxPrimitive.Popup // The input stretches across the bar, so drop the anchor-width floor: size to content.\n className={cn(comboboxStyles.popup, 'min-w-56')}\n data-slot=\"filter-bar-editor\"\n >\n {(step !== 'value' || valueStep.hasSuggestions) && (\n // Search row mirroring the bar input, so the popup reads as a searchable combobox.\n // The bar input stays the only real input: focus and keyboard navigation never move.\n <div\n className={cn(comboboxStyles.searchContainer, 'cursor-text')}\n data-slot=\"filter-bar-search\"\n onMouseDown={e => e.preventDefault()}\n onClick={() => inputRef.current?.focus()}\n >\n <Search className={comboboxStyles.searchIcon} />\n <span\n className={cn(\n comboboxStyles.searchInput,\n 'flex items-center truncate',\n query === '' && comboboxStyles.placeholder,\n )}\n >\n {query === '' ? searchPlaceholder : query}\n </span>\n </div>\n )}\n {step === 'field' && (\n <FilterBarOptionList<FilterBarField>\n aria-label=\"Fields\"\n getKey={f => f.id}\n renderOption={f => <FilterBarFieldLabel field={f} />}\n emptyText=\"No matching field.\"\n />\n )}\n {step === 'operator' && (\n <FilterBarOptionList<FilterBarOperator>\n aria-label=\"Operators\"\n getKey={o => o.id}\n renderOption={o => o.label}\n emptyText=\"No matching operator.\"\n />\n )}\n {step === 'value' && valueStep.hasSuggestions && (\n <FilterBarOptionList<FilterBarOption>\n aria-label=\"Values\"\n aria-multiselectable={valueStep.isMany || undefined}\n getKey={o => o.value}\n renderOption={o => o.label ?? o.value}\n isSelected={o => valueStep.isMany && valueStep.selected.includes(o.value)}\n isLoading={valueStep.isLoading}\n error={valueStep.error}\n emptyText={\n valueStep.allowFreeText ? 'No suggestions — press Enter to use your text.' : 'No matching value.'\n }\n />\n )}\n {step === 'value' && !valueStep.hasSuggestions && (\n <div className=\"flex items-center justify-between gap-2 py-1 pr-1 pl-[.9em]\">\n <Txt variant=\"caption\" tone=\"muted\">\n Type a value\n </Txt>\n <Button\n size=\"sm\"\n variant=\"default\"\n disabled={!valueStep.canCommitQuery}\n onMouseDown={e => e.preventDefault()}\n onClick={() => valueStep.commitFreeText()}\n >\n Apply\n <Kbd size=\"xs\">↵</Kbd>\n </Button>\n </div>\n )}\n {step === 'value' && valueStep.isMany && (\n <div className=\"border-border flex items-center justify-end gap-1 border-t p-1\">\n <Button\n size=\"sm\"\n variant=\"default\"\n onMouseDown={e => e.preventDefault()}\n onClick={() => valueStep.commitSelection() || valueStep.commitFreeText()}\n >\n Done\n <Kbd size=\"xs\">{modEnterLabel}</Kbd>\n </Button>\n </div>\n )}\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n </ComboboxPrimitive.Root>\n </>\n );\n}\n","import { Fragment } from 'react';\nimport type { ReactNode } from 'react';\nimport { FilterBarChip } from './filter-bar-chip';\nimport { FilterBarClear } from './filter-bar-clear';\nimport { FilterBarProvider, useFilterBarContext } from './filter-bar-context';\nimport { FilterBarInput } from './filter-bar-input';\nimport type { FilterBarField, FilterBarItem, FilterBarOperator } from './types';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport { cn } from '@/lib/utils';\n\nexport type FilterBarProps = {\n fields: FilterBarField[];\n operators: FilterBarOperator[];\n value: FilterBarItem[];\n onValueChange: (items: FilterBarItem[]) => void;\n /**\n * Id given to a newly added item. Defaults to a random id. Consumers that rebuild `value` from\n * their own store (URL, query params…) should return the id they will rebuild it with, so the\n * draft chip and the committed chip are the same element.\n */\n createItemId?: (fieldId: string) => string;\n 'aria-label'?: string;\n /** Accessible label of the trailing \"remove every filter\" button. */\n clearLabel?: string;\n className?: string;\n children: ReactNode;\n};\n\nfunction FilterBarSurface({\n className,\n clearLabel,\n children,\n}: {\n className?: string;\n clearLabel: string;\n children: ReactNode;\n}) {\n const ctx = useFilterBarContext();\n return (\n <div\n role=\"group\"\n aria-label={ctx.ariaLabel}\n data-slot=\"filter-bar\"\n className={cn(\n // No chrome of its own: chips and the typeahead input sit directly on the parent surface.\n // Layout: chips, input, then Clear right beside the input — all in one wrapping row so\n // Clear never drifts to the far edge of a wide container.\n 'flex w-full flex-wrap items-center gap-1',\n className,\n )}\n >\n {children}\n <span className=\"flex shrink-0 items-center empty:hidden\">\n <FilterBarClear label={clearLabel} />\n </span>\n <VisuallyHidden aria-live=\"polite\">{ctx.announcement}</VisuallyHidden>\n </div>\n );\n}\n\n/**\n * Braintrust-style filter bar: `field → operator → value` filters built from a\n * single typeahead input, rendered as inline editable chips. Domain-agnostic —\n * fields, operators and values are plain strings supplied by the consumer.\n *\n * @example\n * <FilterBar value={items} onValueChange={setItems} fields={fields} operators={DEFAULT_FILTER_OPERATORS}>\n * <FilterBar.Chips />\n * <FilterBar.Input />\n * </FilterBar>\n */\nexport function FilterBar({\n fields,\n operators,\n value,\n onValueChange,\n createItemId,\n 'aria-label': ariaLabel = 'Filters',\n clearLabel = 'Clear filters',\n className,\n children,\n}: FilterBarProps) {\n return (\n <FilterBarProvider\n fields={fields}\n operators={operators}\n value={value}\n onValueChange={onValueChange}\n createItemId={createItemId}\n ariaLabel={ariaLabel}\n >\n <FilterBarSurface className={className} clearLabel={clearLabel}>\n {children}\n </FilterBarSurface>\n </FilterBarProvider>\n );\n}\n\n/**\n * Default layout: one editable chip per item, in order, then the chip of the filter\n * being built in the input (which becomes the last item's chip once committed).\n */\nexport function FilterBarChips({ renderChip = defaultRenderChip }: FilterBarChipsProps) {\n const ctx = useFilterBarContext();\n // One keyed array: the draft chip and the item it becomes share a key, so React\n // keeps the element across the commit instead of mounting a new chip.\n const chips = ctx.items.map(item => <Fragment key={item.id}>{renderChip(item)}</Fragment>);\n if (ctx.draft) {\n // `FilterBarChip` needs a full item; the draft's missing parts are blank until picked.\n const { id, fieldId, operatorId = '' } = ctx.draft;\n chips.push(\n <Fragment key={id}>\n <FilterBarChip draft item={{ id, fieldId, operatorId, value: '' }} />\n </Fragment>,\n );\n }\n return <>{chips}</>;\n}\n\nexport type FilterBarChipsProps = {\n /**\n * Chip for an item; return `null` to render none (e.g. an item only held in the\n * value for scoping). Defaults to a plain editable `FilterBar.Chip`.\n */\n renderChip?: (item: FilterBarItem) => ReactNode;\n};\n\nconst defaultRenderChip = (item: FilterBarItem) => <FilterBarChip item={item} />;\n\nFilterBar.Chips = FilterBarChips;\nFilterBar.Chip = FilterBarChip;\nFilterBar.Input = FilterBarInput;\n","import type { FilterBarOperator } from './types';\n\n/** Opt-in starter set. Pure data: the component attaches no semantics to ids. */\nexport const DEFAULT_FILTER_OPERATORS: FilterBarOperator[] = [\n { id: 'is', label: 'is' },\n { id: 'is-not', label: 'is not' },\n { id: 'contains', label: 'contains' },\n { id: 'not-contains', label: 'does not contain' },\n { id: 'starts-with', label: 'starts with' },\n { id: 'gt', label: '>' },\n { id: 'lt', label: '<' },\n { id: 'gte', label: '>=' },\n { id: 'lte', label: '<=' },\n { id: 'is-empty', label: 'is empty', arity: 'none' },\n { id: 'is-not-empty', label: 'is not empty', arity: 'none' },\n { id: 'in', label: 'in', arity: 'many' },\n];\n"],"names":["useFilterBarContext","jsx","Button","XIcon","usePortalContainer","useRef","useState","useIsApplePlatform","useMemo","useCallback","useValueStep","Fragment","jsxs","ComboboxPrimitive","matchesQueryFilter","cn","comboboxTriggerClass","FILTER_BAR_CONTROL_SIZE","inputFocusBorderWithin","ListFilterIcon","unstyledFormElementStyle","MENU_SIDE_OFFSET","FLOATING_POSITION_METHOD","comboboxStyles","Search","FilterBarOptionList","FilterBarFieldLabel","Txt","Kbd","VisuallyHidden","FilterBarProvider","FilterBarChip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterBar.cjs.js","sources":["../../src/ds/components/FilterBar/filter-bar-input.tsx","../../src/ds/components/FilterBar/use-settle-on-leave.ts","../../src/ds/components/FilterBar/filter-bar-group-editor.tsx","../../src/ds/components/FilterBar/filter-bar-advanced-chip.tsx","../../src/ds/components/FilterBar/filter-bar-clear.tsx","../../src/ds/components/FilterBar/filter-bar.tsx","../../src/ds/components/FilterBar/default-operators.ts"],"sourcesContent":["import type { BaseUIEvent } from '@base-ui/react/types';\nimport { BracesIcon, ListFilterIcon, Search } from 'lucide-react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\nimport { flushSync } from 'react-dom';\nimport { FILTER_BAR_CONTROL_SIZE, FilterBarFieldLabel } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport { FilterBarOptionLabel, FilterBarOptionList } from './filter-bar-option-list';\nimport { findGroup } from './filter-bar-tree';\nimport { matchesQueryFilter } from './match-query';\nimport type { FilterBarDraft, FilterBarField, FilterBarOperator, FilterBarOption, FilterBarValue } from './types';\nimport { parseFieldValue } from './types';\nimport { useValueStep } from './use-value-step';\nimport { Button } from '@/ds/components/Button/Button';\nimport { ComboboxPrimitive, comboboxStyles } from '@/ds/components/Combobox';\nimport { comboboxTriggerClass } from '@/ds/components/Combobox/combobox-styles';\nimport { Kbd } from '@/ds/components/Kbd/kbd';\nimport { Txt } from '@/ds/components/Txt';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { inputFocusBorderWithin, unstyledFormElementStyle } from '@/ds/primitives/form-element';\nimport { MENU_SIDE_OFFSET } from '@/ds/primitives/menu-item';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { useIsApplePlatform } from '@/hooks/use-keyboard-shortcut-label';\nimport { cn } from '@/lib/utils';\n\ntype Step = 'field' | 'operator' | 'value';\n\ntype Item = FilterBarField | FilterBarOperator | FilterBarOption;\n\nconst getItemLabel = (item: Item) => ('label' in item && item.label ? item.label : 'value' in item ? item.value : '');\n\nconst EMPTY_ITEMS: readonly Item[] = [];\n/** Pinned last entry of the field list that spawns an advanced filter (an `or` group) instead of a filter. */\nconst ADVANCED_FIELD_ID = '__filter-bar-advanced__';\nconst ADVANCED_FIELD: FilterBarField = {\n id: ADVANCED_FIELD_ID,\n label: 'Advanced filter…',\n icon: BracesIcon,\n operators: [],\n};\n\nexport type FilterBarInputProps = {\n placeholder?: string;\n className?: string;\n 'aria-label'?: string;\n /**\n * Group this instance commits into; omit for the bar's own input. Only the instance whose\n * `groupId` matches the provider's `inputTarget` renders, so a single input is ever mounted.\n */\n groupId?: string;\n /** Called when Escape is pressed on an empty query inside a group, after the input hands back to the bar. */\n onLeave?: () => void;\n};\n\n/**\n * Typeahead entry point: type to pick a field, then an operator, then a value.\n * Focus never leaves the input; the popup is driven with the arrow keys.\n */\nexport function FilterBarInput(props: FilterBarInputProps) {\n const ctx = useFilterBarContext();\n if (ctx.inputTarget !== props.groupId) return null;\n return <FilterBarInputImpl {...props} />;\n}\n\nfunction FilterBarInputImpl({\n placeholder = 'Filter…',\n className,\n 'aria-label': ariaLabel = 'Add filter',\n groupId,\n onLeave,\n}: FilterBarInputProps) {\n const ctx = useFilterBarContext();\n const container = usePortalContainer();\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [highlighted, setHighlighted] = useState<Item | null>(null);\n const [emptyForStepChange, setEmptyForStepChange] = useState(false);\n const modEnterLabel = useIsApplePlatform() ? '⌘↵' : 'Ctrl ↵';\n\n // The draft lives in the provider so the chip list can render it; the step follows from it.\n const { draft, setDraft: setDraftState, commitDraft } = ctx;\n const step: Step = !draft ? 'field' : !draft.operatorId ? 'operator' : 'value';\n const field = draft ? ctx.getField(draft.fieldId) : undefined;\n const operator = draft?.operatorId ? ctx.getOperator(draft.operatorId) : undefined;\n const fieldOperators = useMemo(() => (field ? ctx.getFieldOperators(field) : []), [ctx, field]);\n // The advanced option lives in the bar only; inside a popover, nesting is the editor's `+ Group`.\n const offerAdvanced = ctx.groupsEnabled && groupId === undefined;\n const visibleFields = useMemo(() => {\n const fields = ctx.fields.filter(f => !f.hidden);\n return offerAdvanced ? [...fields, ADVANCED_FIELD] : fields;\n }, [ctx.fields, offerAdvanced]);\n const targetGroup = groupId ? findGroup(ctx.expression, groupId) : undefined;\n\n // A group's input mounts on demand (see `openGroupInput`) and takes focus itself.\n useEffect(() => {\n if (groupId) inputRef.current?.focus();\n }, [groupId]);\n\n // Base UI owns the highlight index and keeps it when the list content changes, so a row\n // reached with ArrowDown would carry over into the step that follows. An empty list committed\n // first drops that index, and `autoHighlight` re-anchors on the first row of the new step.\n const withHighlightReset = useCallback((change: () => void) => {\n flushSync(() => setEmptyForStepChange(true));\n change();\n setEmptyForStepChange(false);\n }, []);\n\n const setDraft = useCallback(\n (next: Omit<FilterBarDraft, 'id' | 'from'> | null) => withHighlightReset(() => setDraftState(next)),\n [withHighlightReset, setDraftState],\n );\n\n const reset = useCallback(() => {\n setDraftState(null);\n setQuery('');\n }, [setDraftState]);\n\n const close = useCallback(() => {\n setOpen(false);\n reset();\n }, [reset]);\n\n const commit = useCallback(\n (fieldId: string, operatorId: string, value: FilterBarValue) => {\n withHighlightReset(() => commitDraft({ fieldId, operatorId }, value));\n setQuery('');\n inputRef.current?.focus();\n },\n [withHighlightReset, commitDraft],\n );\n\n const selectOperator = useCallback(\n (fieldId: string, next: FilterBarOperator) => {\n if (next.arity === 'none') {\n commit(fieldId, next.id, '');\n return;\n }\n setDraft({ fieldId, operatorId: next.id });\n setQuery('');\n },\n [commit, setDraft],\n );\n\n const selectField = useCallback(\n (next: FilterBarField) => {\n if (next.id === ADVANCED_FIELD_ID) {\n // `or` is the useful default: an `and` group is indistinguishable from the root.\n const id = ctx.addGroup(undefined, 'or');\n ctx.setOpenGroup(id);\n ctx.openGroupInput(id);\n setQuery('');\n setOpen(false);\n return;\n }\n const [only, ...rest] = ctx.getFieldOperators(next);\n // Free-text entry with text already typed: that text is the value, so neither the\n // operator nor the value step has anything left to ask.\n if (next.search && only && query.trim() !== '') {\n commit(next.id, only.id, parseFieldValue(next.type, query));\n return;\n }\n // A single allowed operator is implied: skip straight to the value step.\n if (only && rest.length === 0) {\n selectOperator(next.id, only);\n return;\n }\n setDraft({ fieldId: next.id });\n setQuery('');\n },\n [ctx, commit, query, selectOperator, setDraft],\n );\n\n const valueStep = useValueStep({\n field,\n operator,\n query,\n enabled: open && step === 'value',\n onCommit: value => {\n if (draft?.operatorId) commit(draft.fieldId, draft.operatorId, value);\n },\n });\n\n // Leaving a group's input hands the target back to the bar; empty groups are pruned when the\n // popover closes, never here.\n const leaveGroup = useCallback(() => {\n if (!groupId) return false;\n ctx.openGroupInput(undefined);\n onLeave?.();\n return true;\n }, [ctx, groupId, onLeave]);\n\n const stepBack = useCallback(() => {\n if (step === 'value' && draft) {\n // Back to the field step when the operator was implied (single operator).\n const skipOperator = field ? fieldOperators.length === 1 : false;\n setDraft(skipOperator ? null : { fieldId: draft.fieldId });\n } else if (step === 'operator') setDraft(null);\n else if (!leaveGroup()) setOpen(false);\n setQuery('');\n }, [step, draft, field, fieldOperators, setDraft, leaveGroup]);\n\n // Selection is routed per step and never kept by Base UI (`value` stays null).\n const handleSelect = (item: Item) => {\n if (step === 'field') selectField(item as FilterBarField);\n else if (step === 'operator' && draft) selectOperator(draft.fieldId, item as FilterBarOperator);\n else valueStep.handleSelect(item as FilterBarOption);\n };\n\n // App-level keys run before Base UI's own input handling.\n const handleKeyDown = (event: BaseUIEvent<KeyboardEvent<HTMLInputElement>>) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n // Consumed here: an enclosing popover (advanced filter) must not close on it.\n event.stopPropagation();\n event.preventBaseUIHandler();\n stepBack();\n return;\n }\n if (!open && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault();\n event.preventBaseUIHandler();\n setOpen(true);\n return;\n }\n if (query === '') {\n if (event.key === 'Backspace') {\n event.preventDefault();\n event.preventBaseUIHandler();\n if (step !== 'field') stepBack();\n else if (targetGroup) {\n // Inside a group: eat its last chip, or drop the group once it is empty.\n const last = targetGroup.nodes.findLast(node => !ctx.leaving.has(node.id));\n if (last) ctx.removeItem(last.id);\n else leaveGroup();\n } else {\n // Chips still animating out are already gone from the value: skip them.\n const last = ctx.items.findLast(item => !ctx.leaving.has(item.id));\n if (last) ctx.removeItem(last.id);\n }\n return;\n }\n if (event.key === 'ArrowLeft' && step === 'field') {\n if (ctx.focusChip(ctx.items.length - 1, -1, 'remove')) event.preventDefault();\n return;\n }\n }\n if (!open) return;\n\n if (event.key === 'Tab' && highlighted && step !== 'value' && (step === 'operator' || query !== '')) {\n event.preventDefault();\n event.preventBaseUIHandler();\n handleSelect(highlighted);\n return;\n }\n if (step === 'value') {\n const highlightedOption = valueStep.hasSuggestions ? (highlighted as FilterBarOption | null) : null;\n const handled = valueStep.handleKeyDown(event, highlightedOption);\n // Base UI closes on Enter when nothing is highlighted (form submission); the draft must stay open.\n if (handled || (event.key === 'Enter' && highlightedOption === null)) event.preventBaseUIHandler();\n }\n };\n\n const optionsForStep: Record<Step, readonly Item[]> = {\n field: visibleFields,\n operator: fieldOperators,\n value: valueStep.options,\n };\n const items: readonly Item[] = emptyForStepChange ? EMPTY_ITEMS : optionsForStep[step];\n\n // A search field is the way out for text that names no field, so it survives the field\n // step's own filtering whatever was typed; every other item matches on its label.\n const filterItem = useCallback(\n (item: Item, text: string, itemToString?: (item: Item) => string) =>\n ('search' in item && item.search === true) || matchesQueryFilter(item, text, itemToString),\n [],\n );\n\n const searchPlaceholder =\n step === 'field' ? 'Search fields…' : step === 'operator' ? 'Search operators…' : 'Search values…';\n\n const inputPlaceholder =\n step === 'field'\n ? placeholder\n : step === 'operator'\n ? 'Operator…'\n : valueStep.hasSuggestions && valueStep.allowFreeText\n ? 'Search or type a value…'\n : field?.type === 'number'\n ? 'Number…'\n : 'Value…';\n\n return (\n <>\n <ComboboxPrimitive.Root<Item>\n items={items}\n itemToStringLabel={getItemLabel}\n // The value step is already filtered (locally or server-side) by useValueSuggestions.\n filter={step === 'value' ? null : filterItem}\n value={null}\n onValueChange={(item, details) => {\n // Never let Base UI keep the selection, fill the input or close: each step routes it.\n details.cancel();\n if (item) handleSelect(item);\n }}\n inputValue={query}\n onInputValueChange={(next, details) => {\n if (details.reason !== 'input-change') return;\n setQuery(next);\n if (!open) setOpen(true);\n }}\n onItemHighlighted={item => setHighlighted(item ?? null)}\n open={open}\n onOpenChange={(next, details) => {\n // Escape is handled by the input (it steps back rather than closing).\n if (!next && details.reason === 'escape-key') return;\n // The input is the anchor, not a trigger: clicking it must keep the draft open.\n if (\n !next &&\n details.reason === 'outside-press' &&\n details.event.target instanceof Node &&\n inputRef.current?.contains(details.event.target)\n ) {\n return;\n }\n if (next) setOpen(true);\n else close();\n }}\n // ComboboxRoot's typings narrow `autoHighlight` to boolean, but the runtime (shared with\n // AutocompleteRoot) supports 'always': highlight the first item as soon as the list opens.\n autoHighlight={'always' as unknown as boolean}\n modal={false}\n >\n <div\n data-slot=\"filter-bar-input-trigger\"\n className={cn(\n // Same trigger recipe as every other DS Combobox (fill, radius, `[&>svg]` icon sizing\n // and the Button icon offset); the bar itself has no chrome. Focus lives on the\n // nested input, so the recipe's `focus-visible` border becomes `focus-within`.\n comboboxTriggerClass({ variant: 'default', size: FILTER_BAR_CONTROL_SIZE }),\n 'w-auto cursor-text',\n 'focus-within:bg-fill-hover',\n inputFocusBorderWithin,\n step === 'field' ? 'min-w-40' : 'min-w-28',\n className,\n )}\n >\n <ListFilterIcon aria-hidden className=\"-ml-[.3em] shrink-0 text-muted-foreground\" />\n <ComboboxPrimitive.Input\n ref={el => {\n inputRef.current = el;\n ctx.registerInput(el);\n }}\n aria-label={ariaLabel}\n spellCheck={false}\n data-slot=\"filter-bar-input\"\n data-step={step}\n data-target={targetGroup?.id}\n inputMode={step === 'value' && field?.type === 'number' ? 'decimal' : undefined}\n placeholder={inputPlaceholder}\n className={cn(\n unstyledFormElementStyle,\n 'min-w-0 flex-1 bg-transparent',\n 'placeholder:text-muted-foreground placeholder:transition-opacity placeholder:duration-normal focus:placeholder:opacity-70',\n )}\n onFocus={() => setOpen(true)}\n onKeyDown={handleKeyDown}\n />\n </div>\n <ComboboxPrimitive.Portal container={container}>\n <ComboboxPrimitive.Positioner\n align=\"start\"\n sideOffset={MENU_SIDE_OFFSET}\n positionMethod={FLOATING_POSITION_METHOD}\n className={comboboxStyles.positioner}\n >\n <ComboboxPrimitive.Popup // The input stretches across the bar, so drop the anchor-width floor: size to content.\n className={cn(comboboxStyles.popup, 'min-w-56')}\n data-slot=\"filter-bar-editor\"\n >\n {(step !== 'value' || valueStep.hasSuggestions) && (\n // Search row mirroring the bar input, so the popup reads as a searchable combobox.\n // The bar input stays the only real input: focus and keyboard navigation never move.\n <div\n className={cn(comboboxStyles.searchContainer, 'cursor-text')}\n data-slot=\"filter-bar-search\"\n onMouseDown={e => e.preventDefault()}\n onClick={() => inputRef.current?.focus()}\n >\n <Search className={comboboxStyles.searchIcon} />\n <span\n className={cn(\n comboboxStyles.searchInput,\n 'flex items-center truncate',\n query === '' && comboboxStyles.placeholder,\n )}\n >\n {query === '' ? searchPlaceholder : query}\n </span>\n </div>\n )}\n {step === 'field' && (\n <FilterBarOptionList<FilterBarField>\n aria-label=\"Fields\"\n getKey={f => f.id}\n renderOption={f => (\n <>\n <FilterBarFieldLabel field={f} />\n {f.search && query !== '' && (\n <span className=\"min-w-0 truncate text-muted-foreground\">\n {ctx.getFieldOperators(f)[0]?.label} \"{query}\"\n </span>\n )}\n </>\n )}\n emptyText=\"No matching field.\"\n />\n )}\n {step === 'operator' && (\n <FilterBarOptionList<FilterBarOperator>\n aria-label=\"Operators\"\n getKey={o => o.id}\n renderOption={o => o.label}\n emptyText=\"No matching operator.\"\n />\n )}\n {step === 'value' && valueStep.hasSuggestions && (\n <FilterBarOptionList<FilterBarOption>\n aria-label=\"Values\"\n aria-multiselectable={valueStep.isMany || undefined}\n getKey={o => o.value}\n renderOption={option => <FilterBarOptionLabel option={option} />}\n isSelected={o => valueStep.isMany && valueStep.selected.includes(o.value)}\n isLoading={valueStep.isLoading}\n error={valueStep.error}\n emptyText={\n valueStep.allowFreeText ? 'No suggestions — press Enter to use your text.' : 'No matching value.'\n }\n />\n )}\n {step === 'value' && !valueStep.hasSuggestions && (\n <div className=\"flex items-center justify-between gap-2 py-1 pr-1 pl-[.9em]\">\n <Txt variant=\"caption\" tone=\"muted\">\n Type a value\n </Txt>\n <Button\n size=\"sm\"\n variant=\"default\"\n disabled={!valueStep.canCommitQuery}\n onMouseDown={e => e.preventDefault()}\n onClick={() => valueStep.commitFreeText()}\n >\n Apply\n <Kbd size=\"xs\">↵</Kbd>\n </Button>\n </div>\n )}\n {step === 'value' && valueStep.isMany && (\n <div className=\"flex items-center justify-end gap-1 border-t border-border p-1\">\n <Button\n size=\"sm\"\n variant=\"default\"\n onMouseDown={e => e.preventDefault()}\n onClick={() => valueStep.commitSelection() || valueStep.commitFreeText()}\n >\n Done\n <Kbd size=\"xs\">{modEnterLabel}</Kbd>\n </Button>\n </div>\n )}\n </ComboboxPrimitive.Popup>\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n </ComboboxPrimitive.Root>\n </>\n );\n}\n","import { useEffect } from 'react';\nimport { useFilterBarContext } from './filter-bar-context';\n\n/** Keeps a leaving node in the DOM until its exit animation has played, then releases it. */\nexport function useSettleOnLeave(id: string, leaving: boolean, rootRef: React.RefObject<HTMLElement | null>) {\n const { settleRemove } = useFilterBarContext();\n useEffect(() => {\n const root = rootRef.current;\n if (!leaving || !root) return;\n const animations = typeof root.getAnimations === 'function' ? root.getAnimations({ subtree: true }) : [];\n if (animations.length === 0) {\n settleRemove(id);\n return;\n }\n let cancelled = false;\n Promise.all(animations.map(animation => animation.finished))\n .then(() => {\n if (!cancelled) settleRemove(id);\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, [leaving, id, settleRemove, rootRef]);\n}\n","import { FolderIcon, FolderPlusIcon, PlusIcon, Trash2Icon } from 'lucide-react';\nimport { Fragment, useEffect, useRef } from 'react';\nimport type { ReactNode } from 'react';\nimport { FilterBarChip } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport { FilterBarInput } from './filter-bar-input';\nimport { countLeaves } from './filter-bar-tree';\nimport type { FilterBarGroup, FilterBarLogic } from './types';\nimport { isFilterBarGroup } from './types';\nimport { useSettleOnLeave } from './use-settle-on-leave';\nimport { Button } from '@/ds/components/Button/Button';\nimport { cn } from '@/lib/utils';\n\nconst connectorClass =\n 'flex h-control-sm w-14 shrink-0 items-center justify-center rounded-md text-column tracking-wide text-muted-foreground uppercase';\n\nexport type FilterBarLogicToggleProps = {\n groupId: string;\n logic: FilterBarLogic;\n className?: string;\n};\n\n/** `and` / `or` connector in front of a row; every connector of a group shares its logic. */\nexport function FilterBarLogicToggle({ groupId, logic, className }: FilterBarLogicToggleProps) {\n const ctx = useFilterBarContext();\n const next: FilterBarLogic = logic === 'and' ? 'or' : 'and';\n return (\n <button\n type=\"button\"\n data-slot=\"filter-bar-logic\"\n data-logic={logic}\n aria-label={`Joined with ${logic}, switch to ${next}`}\n title={`Switch to ${next}`}\n className={cn(\n connectorClass,\n 'filter-bar-logic cursor-pointer border border-border bg-fill-subtle outline-none',\n 'hover:bg-fill-hover hover:text-foreground focus-visible:bg-fill-hover focus-visible:text-foreground',\n className,\n )}\n onClick={() => ctx.setLogic(groupId, next)}\n >\n {logic}\n </button>\n );\n}\n\n/** Segmented `and | or` control shown in a nested group's header. */\nfunction FilterBarLogicSwitch({ groupId, logic }: { groupId: string; logic: FilterBarLogic }) {\n const ctx = useFilterBarContext();\n return (\n <div\n role=\"radiogroup\"\n aria-label=\"Group logic\"\n className=\"flex h-control-sm items-center gap-0.5 rounded-md border border-border bg-fill-subtle p-0.5\"\n >\n {(['and', 'or'] as const).map(value => (\n <button\n key={value}\n type=\"button\"\n role=\"radio\"\n aria-checked={logic === value}\n aria-label={`Join with ${value}`}\n className={cn(\n 'h-full cursor-pointer rounded-sm px-1.5 text-column tracking-wide uppercase outline-none',\n 'focus-visible:bg-fill-hover',\n logic === value ? 'bg-fill-hover text-foreground' : 'text-muted-foreground hover:text-foreground',\n )}\n onClick={() => logic !== value && ctx.setLogic(groupId, value)}\n >\n {value}\n </button>\n ))}\n </div>\n );\n}\n\nexport type FilterBarGroupEditorProps = {\n group: FilterBarGroup;\n /** Nesting level of `group` (root-level group = 1). */\n depth: number;\n /** Drops this group; rendered as a trailing `Clear all` in the footer. */\n onRemove?: () => void;\n removeLabel?: string;\n className?: string;\n};\n\n/**\n * Recursive rule builder shown in an advanced-filter popover. Rows are laid out as\n * `connector | condition`: the first row reads `where`, the following ones carry the\n * group's `and` / `or` toggle. Nested groups render as bordered cards with their own\n * header (logic switch + remove) and footer. The shared typeahead input renders as the\n * last row of the group it is pointed at.\n */\nexport function FilterBarGroupEditor({\n group,\n depth,\n onRemove,\n removeLabel = 'Remove group',\n className,\n}: FilterBarGroupEditorProps) {\n const ctx = useFilterBarContext();\n const addFilterRef = useRef<HTMLButtonElement>(null);\n const focusAddFilter = useRef(false);\n const targeted = ctx.inputTarget === group.id;\n const canNest = depth < ctx.maxDepth;\n\n // `+ Condition` is hidden while the input is open; focus it once it remounts.\n useEffect(() => {\n if (targeted || !focusAddFilter.current) return;\n focusAddFilter.current = false;\n addFilterRef.current?.focus();\n }, [targeted]);\n\n const rows: ReactNode[] = [];\n const connector = (key: string) =>\n rows.length === 0 ? (\n <span key={`${key}:where`} className={connectorClass}>\n where\n </span>\n ) : (\n <FilterBarLogicToggle key={`${key}:logic`} groupId={group.id} logic={group.logic} />\n );\n for (const node of group.nodes) {\n rows.push(\n <Fragment key={node.id}>\n {connector(node.id)}\n {isFilterBarGroup(node) ? (\n <NestedGroupCard group={node} depth={depth + 1} />\n ) : (\n <FilterBarChip item={node} className=\"w-fit\" />\n )}\n </Fragment>,\n );\n }\n if (ctx.draft && ctx.draft.groupId === group.id) {\n const { id, fieldId, operatorId = '' } = ctx.draft;\n rows.push(\n <Fragment key={id}>\n {connector(id)}\n <FilterBarChip draft item={{ id, fieldId, operatorId, value: '' }} className=\"w-fit\" />\n </Fragment>,\n );\n }\n if (targeted) {\n rows.push(\n <Fragment key=\"input\">\n {connector('input')}\n <FilterBarInput\n groupId={group.id}\n placeholder=\"Add condition…\"\n onLeave={() => {\n focusAddFilter.current = true;\n }}\n />\n </Fragment>,\n );\n }\n\n return (\n <div\n data-slot=\"filter-bar-group-editor\"\n data-depth={depth}\n role=\"group\"\n aria-label={`Conditions joined with ${group.logic}`}\n className={cn('flex min-w-0 flex-col', className)}\n >\n {rows.length > 0 && (\n <div className=\"grid grid-cols-[auto_minmax(0,1fr)] items-start gap-x-2 gap-y-1.5 p-2\">{rows}</div>\n )}\n <div\n data-slot=\"filter-bar-editor-actions\"\n className={cn('flex w-full items-center gap-1 p-1', rows.length > 0 && 'border-t border-border')}\n >\n {!targeted && (\n <Button\n ref={addFilterRef}\n variant=\"ghost\"\n size=\"sm\"\n icon={<PlusIcon />}\n onClick={() => ctx.openGroupInput(group.id)}\n >\n Condition\n </Button>\n )}\n <Button\n variant=\"ghost\"\n size=\"sm\"\n icon={<FolderPlusIcon />}\n className=\"text-muted-foreground\"\n tooltip={canNest ? undefined : `Groups can nest ${ctx.maxDepth} levels deep`}\n disabled={!canNest}\n onClick={() => ctx.addGroup(group.id, group.logic === 'and' ? 'or' : 'and')}\n >\n Group\n </Button>\n {onRemove && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n icon={<Trash2Icon />}\n className=\"ml-auto text-muted-foreground\"\n aria-label={removeLabel}\n onClick={onRemove}\n >\n Clear all\n </Button>\n )}\n </div>\n </div>\n );\n}\n\nfunction NestedGroupCard({ group, depth }: { group: FilterBarGroup; depth: number }) {\n const ctx = useFilterBarContext();\n const rootRef = useRef<HTMLDivElement>(null);\n const leaving = ctx.leaving.has(group.id);\n useSettleOnLeave(group.id, leaving, rootRef);\n const count = countLeaves(group);\n\n return (\n <div\n ref={rootRef}\n data-slot=\"filter-bar-editor-nested\"\n data-leaving={leaving || undefined}\n aria-hidden={leaving || undefined}\n className={cn(\n 'filter-bar-editor-nested w-full overflow-hidden rounded-lg border border-border',\n leaving && 'pointer-events-none',\n )}\n >\n <div className=\"flex items-center gap-2 border-b border-border px-2 py-1\">\n <FolderIcon className=\"size-3.5 text-muted-foreground\" />\n <span className=\"text-label text-foreground\">Group</span>\n <span className=\"text-label text-muted-foreground\">\n · {count} {count === 1 ? 'condition' : 'conditions'}\n </span>\n <div className=\"ml-auto flex items-center gap-1\">\n <FilterBarLogicSwitch groupId={group.id} logic={group.logic} />\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n tooltip=\"Remove group\"\n disabled={leaving}\n onClick={() => ctx.removeGroup(group.id)}\n >\n <Trash2Icon />\n </Button>\n </div>\n </div>\n <FilterBarGroupEditor group={group} depth={depth} />\n </div>\n );\n}\n","import { BracesIcon, XIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport type { KeyboardEvent } from 'react';\nimport { chipClass, editableSegmentClass } from './filter-bar-chip';\nimport { FILTER_BAR_SCOPE_ATTR, useFilterBarContext } from './filter-bar-context';\nimport { FilterBarGroupEditor } from './filter-bar-group-editor';\nimport { countLeaves } from './filter-bar-tree';\nimport type { FilterBarGroup } from './types';\nimport { useSettleOnLeave } from './use-settle-on-leave';\nimport { Button } from '@/ds/components/Button/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { cn } from '@/lib/utils';\n\nexport type FilterBarAdvancedChipProps = {\n group: FilterBarGroup;\n className?: string;\n};\n\n/**\n * A root-level group rendered as one \"Advanced filter\" chip. Its popover hosts the\n * recursive rule builder; the chip's remove button drops the whole subtree.\n */\nexport function FilterBarAdvancedChip({ group, className }: FilterBarAdvancedChipProps) {\n const ctx = useFilterBarContext();\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const leaving = ctx.leaving.has(group.id);\n const open = ctx.openGroupId === group.id;\n const count = countLeaves(group);\n // Position in the flattened item list: navigation from the chip continues from its first leaf.\n const firstLeafIndex = ctx.items.findIndex(item => isUnder(group, item.id));\n const index = firstLeafIndex === -1 ? ctx.items.length : firstLeafIndex;\n useSettleOnLeave(group.id, leaving, rootRef);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (leaving) return;\n const segments = Array.from(rootRef.current?.querySelectorAll<HTMLElement>('[data-filter-bar-segment]') ?? []);\n const current = segments.findIndex(el => el === event.target);\n if (current === -1) return;\n switch (event.key) {\n case 'ArrowRight': {\n event.preventDefault();\n const next = segments[current + 1];\n if (next) next.focus();\n else if (!ctx.focusChip(index + count, 1, 'field')) ctx.focusInput();\n return;\n }\n case 'ArrowLeft': {\n event.preventDefault();\n const prev = segments[current - 1];\n if (prev) prev.focus();\n else ctx.focusChip(index - 1, -1, 'remove');\n return;\n }\n case 'Delete':\n case 'Backspace':\n event.preventDefault();\n remove();\n return;\n default:\n }\n };\n\n const remove = () => {\n ctx.removeGroup(group.id);\n ctx.focusAfterRemove(index);\n };\n\n return (\n <Popover open={open} onOpenChange={next => ctx.setOpenGroup(next ? group.id : null)}>\n <div\n ref={rootRef}\n role=\"group\"\n aria-label={`Advanced filter, ${count} ${count === 1 ? 'condition' : 'conditions'}`}\n aria-hidden={leaving || undefined}\n data-slot=\"filter-bar-advanced\"\n data-leaving={leaving || undefined}\n className={cn('filter-bar-advanced', chipClass, leaving && 'pointer-events-none', className)}\n onKeyDown={handleKeyDown}\n >\n <PopoverTrigger\n ref={el => {\n triggerRef.current = el;\n ctx.registerSegment(group.id, 'field', leaving ? null : el);\n }}\n render={<button type=\"button\" />}\n data-filter-bar-segment=\"field\"\n className={cn(editableSegmentClass, 'gap-1.5')}\n title=\"Edit advanced filter\"\n >\n <BracesIcon className=\"size-[1.1em] shrink-0\" aria-hidden />\n <span className=\"truncate\">Advanced filter</span>\n {count > 0 && (\n <span className=\"text-column text-muted-foreground\" aria-hidden>\n {count}\n </span>\n )}\n </PopoverTrigger>\n {leaving ? (\n <span aria-hidden className={cn(editableSegmentClass, 'px-1.5')}>\n <XIcon className=\"size-[1.1em]\" />\n </span>\n ) : (\n <button\n type=\"button\"\n ref={el => ctx.registerSegment(group.id, 'remove', el)}\n data-filter-bar-segment=\"remove\"\n aria-label=\"Remove advanced filter\"\n title=\"Remove advanced filter\"\n className={cn(editableSegmentClass, 'px-1.5')}\n onClick={remove}\n >\n <XIcon className=\"size-[1.1em]\" />\n </button>\n )}\n </div>\n <PopoverContent\n align=\"start\"\n className=\"w-[min(92vw,44rem)] p-0\"\n {...{ [FILTER_BAR_SCOPE_ATTR]: 'advanced' }}\n finalFocus={triggerRef}\n >\n <div className=\"flex items-center gap-2 border-b border-border px-3 py-2\">\n <BracesIcon className=\"size-3.5 text-muted-foreground\" />\n <span className=\"text-label text-foreground\">Advanced filter</span>\n <span className=\"rounded-md bg-fill-subtle px-1.5 text-column text-muted-foreground\">{count}</span>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"ml-auto\"\n tooltip=\"Close\"\n onClick={() => ctx.setOpenGroup(null)}\n >\n <XIcon />\n </Button>\n </div>\n <FilterBarGroupEditor\n group={group}\n depth={1}\n removeLabel=\"Remove advanced filter\"\n onRemove={() => {\n ctx.setOpenGroup(null);\n remove();\n }}\n />\n </PopoverContent>\n </Popover>\n );\n}\n\nconst isUnder = (group: FilterBarGroup, itemId: string): boolean =>\n group.nodes.some(node => (node.id === itemId ? true : 'kind' in node && isUnder(node, itemId)));\n","import { XIcon } from 'lucide-react';\nimport { useFilterBarContext } from './filter-bar-context';\nimport { Button } from '@/ds/components/Button/Button';\n\n/** Removes every removable filter. Rendered by FilterBar at its trailing edge; hidden while nothing can be removed. */\nexport function FilterBarClear({ label }: { label: string }) {\n const ctx = useFilterBarContext();\n if (!ctx.hasRemovableItems) return null;\n return (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={label}\n tooltip={label}\n onClick={event => {\n event.stopPropagation();\n ctx.clear();\n ctx.focusInput();\n }}\n >\n <XIcon />\n </Button>\n );\n}\n","import { Fragment } from 'react';\nimport type { ReactNode } from 'react';\nimport { FilterBarAdvancedChip } from './filter-bar-advanced-chip';\nimport { FilterBarChip } from './filter-bar-chip';\nimport { FilterBarClear } from './filter-bar-clear';\nimport { FILTER_BAR_SCOPE_ATTR, FilterBarProvider, useFilterBarContext } from './filter-bar-context';\nimport { FilterBarInput } from './filter-bar-input';\nimport { isFilterBarGroup } from './types';\nimport type { FilterBarExpression, FilterBarField, FilterBarItem, FilterBarOperator } from './types';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\nimport { cn } from '@/lib/utils';\n\ntype FilterBarValueProps =\n | {\n /** Flat list of filters, implicitly joined with `and`. Advanced filters are never offered. */\n value: FilterBarItem[];\n onValueChange: (items: FilterBarItem[]) => void;\n }\n | {\n /**\n * Tree of filters and groups. Root nodes are joined with `and`; each root group renders\n * as one \"Advanced filter\" chip whose popover edits the nested `and` / `or` logic.\n */\n value: FilterBarExpression;\n onValueChange: (expression: FilterBarExpression) => void;\n };\n\nexport type FilterBarProps = FilterBarValueProps & {\n fields: FilterBarField[];\n operators: FilterBarOperator[];\n /**\n * Id given to a newly added item. Defaults to a random id. Consumers that rebuild `value` from\n * their own store (URL, query params…) should return the id they will rebuild it with, so the\n * draft chip and the committed chip are the same element.\n */\n createItemId?: (fieldId: string) => string;\n /** How deep advanced-filter groups may nest (root-level group = 1). Defaults to 3. */\n maxDepth?: number;\n 'aria-label'?: string;\n /** Accessible label of the trailing \"remove every filter\" button. */\n clearLabel?: string;\n className?: string;\n children: ReactNode;\n};\n\nfunction FilterBarSurface({\n className,\n clearLabel,\n children,\n}: {\n className?: string;\n clearLabel: string;\n children: ReactNode;\n}) {\n const ctx = useFilterBarContext();\n return (\n <div\n role=\"group\"\n aria-label={ctx.ariaLabel}\n data-slot=\"filter-bar\"\n {...{ [FILTER_BAR_SCOPE_ATTR]: 'bar' }}\n className={cn(\n // No chrome of its own: chips and the typeahead input sit directly on the parent surface.\n // Layout: chips, input, then Clear right beside the input — all in one wrapping row so\n // Clear never drifts to the far edge of a wide container.\n 'flex w-full flex-wrap items-center gap-1',\n className,\n )}\n >\n {children}\n <span className=\"flex shrink-0 items-center empty:hidden\">\n <FilterBarClear label={clearLabel} />\n </span>\n <VisuallyHidden aria-live=\"polite\">{ctx.announcement}</VisuallyHidden>\n </div>\n );\n}\n\n/**\n * Braintrust-style filter bar: `field → operator → value` filters built from a\n * single typeahead input, rendered as inline editable chips. Domain-agnostic —\n * fields, operators and values are plain strings supplied by the consumer.\n *\n * Pass a `FilterBarExpression` as `value` to enable Linear-style advanced filters:\n * the input offers \"Advanced filter…\", which adds one chip whose popover hosts a\n * recursive rule builder (`and` / `or` connectors, nested groups). The bar itself\n * stays flat. A flat `FilterBarItem[]` stays flat.\n *\n * @example\n * <FilterBar value={items} onValueChange={setItems} fields={fields} operators={DEFAULT_FILTER_OPERATORS}>\n * <FilterBar.Chips />\n * <FilterBar.Input />\n * </FilterBar>\n */\nexport function FilterBar({\n fields,\n operators,\n value,\n onValueChange,\n createItemId,\n maxDepth,\n 'aria-label': ariaLabel = 'Filters',\n clearLabel = 'Clear filters',\n className,\n children,\n}: FilterBarProps) {\n return (\n <FilterBarProvider\n fields={fields}\n operators={operators}\n value={value}\n onValueChange={onValueChange}\n createItemId={createItemId}\n maxDepth={maxDepth}\n ariaLabel={ariaLabel}\n >\n <FilterBarSurface className={className} clearLabel={clearLabel}>\n {children}\n </FilterBarSurface>\n </FilterBarProvider>\n );\n}\n\n/**\n * Default layout: one editable chip per root item, one \"Advanced filter\" chip per root\n * group, in order, then the chip of the filter being built in the bar's input (which\n * becomes the last item's chip once committed).\n */\nexport function FilterBarChips({ renderChip = defaultRenderChip }: FilterBarChipsProps) {\n const ctx = useFilterBarContext();\n // One keyed array: the draft chip and the item it becomes share a key, so React\n // keeps the element across the commit instead of mounting a new chip.\n const chips: ReactNode[] = [];\n for (const node of ctx.expression.nodes) {\n const chip = isFilterBarGroup(node) ? <FilterBarAdvancedChip group={node} /> : renderChip(node);\n if (chip !== null) chips.push(<Fragment key={node.id}>{chip}</Fragment>);\n }\n if (ctx.draft && !ctx.draft.groupId) {\n // `FilterBarChip` needs a full item; the draft's missing parts are blank until picked.\n const { id, fieldId, operatorId = '' } = ctx.draft;\n chips.push(\n <Fragment key={id}>\n <FilterBarChip draft item={{ id, fieldId, operatorId, value: '' }} />\n </Fragment>,\n );\n }\n return <>{chips}</>;\n}\n\nexport type FilterBarChipsProps = {\n /**\n * Chip for an item; return `null` to render none (e.g. an item only held in the\n * value for scoping). Defaults to a plain editable `FilterBar.Chip`.\n */\n renderChip?: (item: FilterBarItem) => ReactNode;\n};\n\nconst defaultRenderChip = (item: FilterBarItem) => <FilterBarChip item={item} />;\n\nFilterBar.Chips = FilterBarChips;\nFilterBar.Chip = FilterBarChip;\nFilterBar.AdvancedChip = FilterBarAdvancedChip;\nFilterBar.Input = FilterBarInput;\n","import type { FilterBarOperator } from './types';\n\n/** Opt-in starter set. Pure data: the component attaches no semantics to ids. */\nexport const DEFAULT_FILTER_OPERATORS: FilterBarOperator[] = [\n { id: 'is', label: 'is' },\n { id: 'is-not', label: 'is not' },\n { id: 'contains', label: 'contains' },\n { id: 'not-contains', label: 'does not contain' },\n { id: 'starts-with', label: 'starts with' },\n { id: 'gt', label: '>' },\n { id: 'lt', label: '<' },\n { id: 'gte', label: '>=' },\n { id: 'lte', label: '<=' },\n { id: 'is-empty', label: 'is empty', arity: 'none' },\n { id: 'is-not-empty', label: 'is not empty', arity: 'none' },\n { id: 'in', label: 'in', arity: 'many' },\n];\n"],"names":["BracesIcon","useFilterBarContext","jsx","usePortalContainer","useRef","useState","useIsApplePlatform","useMemo","findGroup","useEffect","useCallback","flushSync","parseFieldValue","useValueStep","matchesQueryFilter","Fragment","jsxs","ComboboxPrimitive","cn","comboboxTriggerClass","FILTER_BAR_CONTROL_SIZE","inputFocusBorderWithin","ListFilterIcon","unstyledFormElementStyle","MENU_SIDE_OFFSET","FLOATING_POSITION_METHOD","comboboxStyles","Search","FilterBarOptionList","FilterBarFieldLabel","FilterBarOptionLabel","Txt","Button","Kbd","isFilterBarGroup","FilterBarChip","PlusIcon","FolderPlusIcon","Trash2Icon","countLeaves","FolderIcon","Popover","chipClass","PopoverTrigger","editableSegmentClass","XIcon","PopoverContent","FILTER_BAR_SCOPE_ATTR","VisuallyHidden","FilterBarProvider"],"mappings":"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"}
|