@mastra/playground-ui 58.0.0-alpha.3 → 58.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{code-DhrdtZce.cjs → code-B-x-9sJ1.cjs} +16 -4
- package/dist/code-B-x-9sJ1.cjs.map +1 -0
- package/dist/{code-D4Vw_fYq.js → code-BeWhOFT4.js} +16 -4
- package/dist/code-BeWhOFT4.js.map +1 -0
- package/dist/{code-block-BD2N5Yi2.js → code-block-C4caeNBi.js} +2 -2
- package/dist/{code-block-BD2N5Yi2.js.map → code-block-C4caeNBi.js.map} +1 -1
- package/dist/{code-block-fI67m2KV.cjs → code-block-il1MzQTs.cjs} +2 -2
- package/dist/{code-block-fI67m2KV.cjs.map → code-block-il1MzQTs.cjs.map} +1 -1
- package/dist/{code-diff-BHZTS4Zh.js → code-diff-Hao35skN.js} +2 -2
- package/dist/{code-diff-BHZTS4Zh.js.map → code-diff-Hao35skN.js.map} +1 -1
- package/dist/{code-editor-C-0srcj0.js → code-editor-BTxx6wLT.js} +4 -4
- package/dist/{code-editor-C-0srcj0.js.map → code-editor-BTxx6wLT.js.map} +1 -1
- package/dist/{code-editor-CFu_BYpQ.cjs → code-editor-LgrhXmOy.cjs} +3 -3
- package/dist/{code-editor-CFu_BYpQ.cjs.map → code-editor-LgrhXmOy.cjs.map} +1 -1
- package/dist/components/Code.cjs.js +1 -1
- package/dist/components/Code.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.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/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +2 -78
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +2 -78
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataList.cjs.js +5 -5
- package/dist/components/DataList.es.js +5 -5
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.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/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +2 -2
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +3 -3
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/ThemeProvider.es.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/Workflow.cjs.js +5 -5
- package/dist/components/Workflow.cjs.js.map +1 -1
- package/dist/components/Workflow.es.js +5 -5
- package/dist/components/Workflow.es.js.map +1 -1
- package/dist/components/ai/chat-event.cjs.js +1 -1
- package/dist/components/ai/chat-event.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/data-code-section-Cth9zVkj.js +199 -0
- package/dist/data-code-section-Cth9zVkj.js.map +1 -0
- package/dist/{data-code-section-DzLc9O0B.cjs → data-code-section-DE4AgaTU.cjs} +44 -210
- package/dist/data-code-section-DE4AgaTU.cjs.map +1 -0
- package/dist/{data-list-DXjH5wkB.js → data-list-DisTjDHP.js} +3 -3
- package/dist/{data-list-DXjH5wkB.js.map → data-list-DisTjDHP.js.map} +1 -1
- package/dist/{data-list-CH3HAhK5.cjs → data-list-PwFpP_mo.cjs} +3 -3
- package/dist/{data-list-CH3HAhK5.cjs.map → data-list-PwFpP_mo.cjs.map} +1 -1
- package/dist/{data-list-skeleton-K_WmrVke.cjs → data-list-skeleton-CjwR0o3w.cjs} +2 -2
- package/dist/{data-list-skeleton-K_WmrVke.cjs.map → data-list-skeleton-CjwR0o3w.cjs.map} +1 -1
- package/dist/{data-list-skeleton-h4pILqCC.js → data-list-skeleton-DAfM8AjW.js} +2 -2
- package/dist/{data-list-skeleton-h4pILqCC.js.map → data-list-skeleton-DAfM8AjW.js.map} +1 -1
- package/dist/{data-list-spacer-BQ4_YeyT.js → data-list-spacer-BmorAN0V.js} +2 -2
- package/dist/{data-list-spacer-BQ4_YeyT.js.map → data-list-spacer-BmorAN0V.js.map} +1 -1
- package/dist/{data-list-spacer-GIVW2hB1.cjs → data-list-spacer-DEcgVGFM.cjs} +2 -2
- package/dist/{data-list-spacer-GIVW2hB1.cjs.map → data-list-spacer-DEcgVGFM.cjs.map} +1 -1
- package/dist/{data-list-top-LiaWUw5P.js → data-list-top-DpbOA3uw.js} +2 -2
- package/dist/data-list-top-DpbOA3uw.js.map +1 -0
- package/dist/{data-list-top-B-gb-FY6.cjs → data-list-top-WGUY167p.cjs} +2 -2
- package/dist/data-list-top-WGUY167p.cjs.map +1 -0
- package/dist/{data-panel-CPZ2GuZN.js → data-panel-BQVTKo86.js} +2 -2
- package/dist/{data-panel-CPZ2GuZN.js.map → data-panel-BQVTKo86.js.map} +1 -1
- package/dist/{data-panel-CIu6JToM.cjs → data-panel-XPXrhYJI.cjs} +2 -2
- package/dist/{data-panel-CIu6JToM.cjs.map → data-panel-XPXrhYJI.cjs.map} +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +118 -0
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -0
- package/dist/domains/logs/components/log-data-panel.d.ts +2 -0
- package/dist/domains/logs/components/log-data-panel.es.js +114 -0
- package/dist/domains/logs/components/log-data-panel.es.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +4 -4
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +4 -4
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/logs/components.cjs.js +2 -4
- package/dist/domains/logs/components.cjs.js.map +1 -1
- package/dist/domains/logs/components.es.js +1 -2
- package/dist/domains/logs/components.es.js.map +1 -1
- package/dist/domains/logs.cjs.js +2 -4
- package/dist/domains/logs.cjs.js.map +1 -1
- package/dist/domains/logs.es.js +1 -2
- package/dist/domains/logs.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
- 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 +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- package/dist/domains/traces/components/traces-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/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/trace-intelligence-entity-index.cjs.js +2 -1
- 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 +2 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
- package/dist/filter-bar-chip.css +34 -14
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/{logs-data-list-XU1hCwI5.js → logs-data-list-5BAeLU57.js} +11 -11
- package/dist/logs-data-list-5BAeLU57.js.map +1 -0
- package/dist/{logs-data-list-BGJTRyO_.cjs → logs-data-list-YL9yLKF3.cjs} +11 -11
- package/dist/logs-data-list-YL9yLKF3.cjs.map +1 -0
- package/dist/{markdown-renderer-BBYgxsXL.js → markdown-renderer-Ces7VyRK.js} +2 -2
- package/dist/{markdown-renderer-BBYgxsXL.js.map → markdown-renderer-Ces7VyRK.js.map} +1 -1
- package/dist/{markdown-renderer-Du_Zd1T-.cjs → markdown-renderer-DtH58325.cjs} +2 -2
- package/dist/{markdown-renderer-Du_Zd1T-.cjs.map → markdown-renderer-DtH58325.cjs.map} +1 -1
- package/dist/{span-payload-primitives-CzLh6axt.js → span-payload-primitives-Buq9V8nK.js} +2 -2
- package/dist/{span-payload-primitives-CzLh6axt.js.map → span-payload-primitives-Buq9V8nK.js.map} +1 -1
- package/dist/{span-payload-primitives-KEXwIaeZ.cjs → span-payload-primitives-CjlNH9C-.cjs} +2 -2
- package/dist/{span-payload-primitives-KEXwIaeZ.cjs.map → span-payload-primitives-CjlNH9C-.cjs.map} +1 -1
- package/dist/src/domains/logs/components/index.d.ts +1 -2
- package/dist/src/domains/logs/components/log-data-panel.d.ts +12 -0
- package/dist/src/ds/components/Code/code.d.ts +3 -1
- package/dist/src/ds/components/DataList/shared.d.ts +2 -2
- package/dist/style.css +50 -36
- package/dist/{theme-provider-C9ih9jSS.js → theme-provider-CQKmlkHX.js} +2 -2
- package/dist/{theme-provider-C9ih9jSS.js.map → theme-provider-CQKmlkHX.js.map} +1 -1
- package/dist/{traces-data-list-DLeKSbaZ.cjs → traces-data-list-Dam8-XW-.cjs} +4 -4
- package/dist/{traces-data-list-DLeKSbaZ.cjs.map → traces-data-list-Dam8-XW-.cjs.map} +1 -1
- package/dist/{traces-data-list-Cjy5a-1f.js → traces-data-list-Dvi0s56v.js} +4 -4
- package/dist/{traces-data-list-Cjy5a-1f.js.map → traces-data-list-Dvi0s56v.js.map} +1 -1
- package/package.json +8 -8
- package/dist/code-D4Vw_fYq.js.map +0 -1
- package/dist/code-DhrdtZce.cjs.map +0 -1
- package/dist/data-code-section-C75shCII.js +0 -365
- package/dist/data-code-section-C75shCII.js.map +0 -1
- package/dist/data-code-section-DzLc9O0B.cjs.map +0 -1
- package/dist/data-list-top-B-gb-FY6.cjs.map +0 -1
- package/dist/data-list-top-LiaWUw5P.js.map +0 -1
- package/dist/domains/logs/components/log-details-view.cjs.js +0 -131
- package/dist/domains/logs/components/log-details-view.cjs.js.map +0 -1
- package/dist/domains/logs/components/log-details-view.d.ts +0 -2
- package/dist/domains/logs/components/log-details-view.es.js +0 -127
- package/dist/domains/logs/components/log-details-view.es.js.map +0 -1
- package/dist/domains/logs/components/logs-layout.cjs.js +0 -36
- package/dist/domains/logs/components/logs-layout.cjs.js.map +0 -1
- package/dist/domains/logs/components/logs-layout.d.ts +0 -2
- package/dist/domains/logs/components/logs-layout.es.js +0 -32
- package/dist/domains/logs/components/logs-layout.es.js.map +0 -1
- package/dist/logs-data-list-BGJTRyO_.cjs.map +0 -1
- package/dist/logs-data-list-XU1hCwI5.js.map +0 -1
- package/dist/src/domains/logs/components/log-details-view.d.ts +0 -12
- package/dist/src/domains/logs/components/logs-layout.d.ts +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-intelligence-entity-index.cjs.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":["is401UnauthorizedError","jsx","SessionExpired","is403ForbiddenError","PermissionDenied","EmptyState","jsxs","ListSearch","TraceIntelligenceExplainer","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","ButtonsGroup","Button","List","Columns2","useThemeEntities","useTraceIntelligence","useState","filterAndSortEntities","EntityIndexList","DataListSkeleton","EntityIndexCompactGrid","Fragment","TraceSignalSettingsButton","TraceSignalSettingsPanel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-intelligence-entity-index.cjs.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":["is401UnauthorizedError","jsx","SessionExpired","is403ForbiddenError","PermissionDenied","EmptyState","jsxs","ListSearch","TraceIntelligenceExplainer","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","ButtonsGroup","Button","List","Columns2","useThemeEntities","useTraceIntelligence","useState","filterAndSortEntities","EntityIndexList","DataListSkeleton","EntityIndexCompactGrid","Fragment","TraceSignalSettingsButton","TraceSignalSettingsPanel"],"mappings":"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"}
|
|
@@ -13,7 +13,8 @@ import { PermissionDenied } from '../../../domains/auth/components/permission-de
|
|
|
13
13
|
import { SessionExpired } from '../../../domains/auth/components/session-expired.es.js';
|
|
14
14
|
import { B as Button } from '../../../Button-B8nF87ai.js';
|
|
15
15
|
import { B as ButtonsGroup } from '../../../buttons-group-DsZgrZBZ.js';
|
|
16
|
-
import { D as DataListSkeleton } from '../../../data-list-skeleton-
|
|
16
|
+
import { D as DataListSkeleton } from '../../../data-list-skeleton-DAfM8AjW.js';
|
|
17
|
+
import '../../../keyboard/keyboard-shortcuts-context.es.js';
|
|
17
18
|
import { E as EmptyState } from '../../../EmptyState-Bc4nJ9QH.js';
|
|
18
19
|
import { L as ListSearch } from '../../../list-search-FJ1O5F3S.js';
|
|
19
20
|
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-Dkmx3L5p.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-intelligence-entity-index.es.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-intelligence-entity-index.es.js","sources":["../../../../src/ee/signals/components/trace-intelligence-entity-index.tsx"],"sourcesContent":["import type { SignalCatalogEntry, ThemeLearningEntity } from '@mastra/client-js';\nimport { Columns2, List } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport { useThemeEntities } from '../hooks';\nimport { TraceSignalSettingsButton, TraceSignalSettingsPanel } from '../settings/trace-signal-settings';\nimport { TraceIntelligenceExplainer } from '../trace-intelligence-explainer';\nimport { useTraceIntelligence } from '../use-trace-intelligence';\nimport { EntityIndexCompactGrid } from './entity-index-compact-grid';\nimport { EntityIndexList } from './entity-index-list';\nimport { filterAndSortEntities } from './entity-index-model';\nimport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\nimport { PermissionDenied } from '@/domains/auth/components/permission-denied';\nimport { SessionExpired } from '@/domains/auth/components/session-expired';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataListSkeleton } from '@/ds/components/DataList';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ListSearch } from '@/ds/components/ListSearch';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { is401UnauthorizedError, is403ForbiddenError } from '@/utils/errors';\n\nexport type { TraceIntelligenceEntitySort, TraceIntelligenceEntityView } from './entity-index-model';\n\nconst listColumns = 'minmax(12rem,1.5fr) minmax(7rem,0.6fr) minmax(8rem,0.7fr) minmax(8rem,0.7fr) minmax(12rem,1fr)';\n\nexport interface TraceIntelligenceEntityIndexProps {\n entityType: string;\n search: string;\n sort: TraceIntelligenceEntitySort;\n view: TraceIntelligenceEntityView;\n onSearchChange: (search: string) => void;\n onSortChange: (sort: TraceIntelligenceEntitySort) => void;\n onViewChange: (view: TraceIntelligenceEntityView) => void;\n getEntityHref: (entity: ThemeLearningEntity) => string;\n headerAction?: ReactNode;\n}\n\nfunction EntityIndexError({ error }: { error: Error }) {\n if (is401UnauthorizedError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <SessionExpired />\n </div>\n );\n }\n if (is403ForbiddenError(error)) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <PermissionDenied resource=\"Trace Intelligence\" />\n </div>\n );\n }\n return (\n <div className=\"flex h-full items-center justify-center\">\n <EmptyState tone=\"error\" titleSlot=\"Failed to load Trace Intelligence\" descriptionSlot={error.message} />\n </div>\n );\n}\n\nfunction EntityIndexControls({\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n headerAction,\n signalCatalog,\n}: Pick<\n TraceIntelligenceEntityIndexProps,\n 'search' | 'sort' | 'view' | 'onSearchChange' | 'onSortChange' | 'onViewChange' | 'headerAction'\n> & { signalCatalog: readonly SignalCatalogEntry[] }) {\n return (\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center\">\n <div className=\"max-w-120 flex-1\">\n <ListSearch\n value={search}\n onSearch={onSearchChange}\n label=\"Filter entities\"\n placeholder=\"Filter by entity identifier\"\n />\n </div>\n <div className=\"flex items-center justify-between gap-2 sm:ml-auto sm:justify-end\">\n <TraceIntelligenceExplainer signalCatalog={signalCatalog} />\n <Select<TraceIntelligenceEntitySort> value={sort} onValueChange={onSortChange}>\n <SelectTrigger aria-label=\"Sort entities\" size=\"md\" variant=\"ghost\" className=\"w-auto\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"default\">Default order</SelectItem>\n <SelectItem value=\"entity-asc\">Entity: A–Z</SelectItem>\n <SelectItem value=\"entity-desc\">Entity: Z–A</SelectItem>\n </SelectContent>\n </Select>\n {headerAction}\n <ButtonsGroup aria-label=\"Entities view\">\n <Button\n type=\"button\"\n variant={view === 'list' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"List view\"\n aria-pressed={view === 'list'}\n onClick={() => onViewChange('list')}\n >\n <List />\n </Button>\n <Button\n type=\"button\"\n variant={view === 'compact' ? 'primary' : 'default'}\n size=\"icon-md\"\n tooltip=\"Compact view\"\n aria-pressed={view === 'compact'}\n onClick={() => onViewChange('compact')}\n >\n <Columns2 />\n </Button>\n </ButtonsGroup>\n </div>\n </div>\n );\n}\n\nexport function TraceIntelligenceEntityIndex({\n entityType,\n search,\n sort,\n view,\n onSearchChange,\n onSortChange,\n onViewChange,\n getEntityHref,\n headerAction,\n}: TraceIntelligenceEntityIndexProps) {\n const entitiesQuery = useThemeEntities(entityType);\n const { LinkComponent, signalCatalog: contextSignalCatalog, signalManagement } = useTraceIntelligence();\n const [settingsOpen, setSettingsOpen] = useState(false);\n\n if (entitiesQuery.error) return <EntityIndexError error={entitiesQuery.error} />;\n\n const sourceEntities = entitiesQuery.data?.entities ?? [];\n const signalCatalog =\n sourceEntities.find(entity => entity.signalCatalog?.length)?.signalCatalog ?? contextSignalCatalog;\n const entities = filterAndSortEntities(sourceEntities, search, sort);\n const hasSearch = search.trim().length > 0;\n let body = (\n <EntityIndexList\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n if (entitiesQuery.isPending) {\n body = (\n <div role=\"status\" aria-label=\"Loading Trace Intelligence entities\">\n <DataListSkeleton columns={listColumns} />\n </div>\n );\n } else if (entitiesQuery.data.entities.length === 0 && !hasSearch) {\n body = (\n <EmptyState\n titleSlot=\"No Trace Intelligence entities yet\"\n descriptionSlot=\"Entities appear after Trace Intelligence begins collecting generated signal data.\"\n />\n );\n } else if (view === 'compact') {\n body = (\n <EntityIndexCompactGrid\n entities={entities}\n hasSearch={hasSearch}\n getEntityHref={getEntityHref}\n LinkComponent={LinkComponent}\n />\n );\n }\n\n return (\n <div className=\"mx-auto grid size-full min-h-0 max-w-7xl grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"pb-3\">\n <EntityIndexControls\n search={search}\n sort={sort}\n view={view}\n onSearchChange={onSearchChange}\n onSortChange={onSortChange}\n onViewChange={onViewChange}\n signalCatalog={signalCatalog}\n headerAction={\n headerAction || signalManagement ? (\n <>\n {headerAction}\n {signalManagement ? (\n <TraceSignalSettingsButton open={settingsOpen} onClick={() => setSettingsOpen(open => !open)} />\n ) : null}\n </>\n ) : undefined\n }\n />\n </div>\n <div\n className={\n settingsOpen\n ? 'grid max-h-full min-h-0 grid-cols-1 items-start gap-4 lg:grid-cols-[1fr_1fr]'\n : 'grid min-h-0 grid-cols-1'\n }\n >\n <div className=\"min-h-0 min-w-0\">{body}</div>\n {settingsOpen ? <TraceSignalSettingsPanel onClose={() => setSettingsOpen(false)} /> : null}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const lucideReact = require('lucide-react');
|
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const ee_topics_utils = require('../utils.cjs.js');
|
|
9
9
|
const Button = require('../../../Button-BAMnPqos.cjs');
|
|
10
|
-
const dataList = require('../../../data-list-
|
|
10
|
+
const dataList = require('../../../data-list-PwFpP_mo.cjs');
|
|
11
11
|
const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
|
|
12
12
|
const inputGroup = require('../../../input-group-BfnJ0RIj.cjs');
|
|
13
13
|
|
|
@@ -3,7 +3,7 @@ import { SearchIcon, ChevronDown } from 'lucide-react';
|
|
|
3
3
|
import { useState, useMemo } from 'react';
|
|
4
4
|
import { getVisibleTraceSummaries } from '../utils.es.js';
|
|
5
5
|
import { B as Button } from '../../../Button-B8nF87ai.js';
|
|
6
|
-
import { D as DataList } from '../../../data-list-
|
|
6
|
+
import { D as DataList } from '../../../data-list-DisTjDHP.js';
|
|
7
7
|
import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
|
|
8
8
|
import { I as InputGroup, a as InputGroupAddon, c as InputGroupInput } from '../../../input-group-Jt7lZsN9.js';
|
|
9
9
|
|
package/dist/filter-bar-chip.css
CHANGED
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
/* A chip is written left to right (field → operator → value), so it arrives the same
|
|
2
2
|
* way: each segment grows from zero width in turn, as if being typed out. Real width
|
|
3
3
|
* (not a transform) so the chip's border and neighbours move with it; that needs
|
|
4
|
-
* `interpolate-size` to tween `0 → auto`, so browsers without it simply show the chip.
|
|
4
|
+
* `interpolate-size` to tween `0 → auto`, so browsers without it simply show the chip.
|
|
5
|
+
* The text fades in on its own, slightly later, so it only shows once the segment is
|
|
6
|
+
* nearly full width — otherwise glyphs are visibly clipped while the width grows. */
|
|
5
7
|
|
|
6
8
|
@keyframes filter-bar-segment-in {
|
|
7
9
|
from {
|
|
8
10
|
width: 0;
|
|
9
11
|
padding-inline: 0;
|
|
10
|
-
opacity: 0;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
to {
|
|
14
15
|
width: auto;
|
|
15
16
|
padding-inline: var(--filter-bar-segment-padding);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@keyframes filter-bar-segment-fade-in {
|
|
21
|
+
from {
|
|
22
|
+
opacity: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
to {
|
|
16
26
|
opacity: 1;
|
|
17
27
|
}
|
|
18
28
|
}
|
|
@@ -22,7 +32,9 @@
|
|
|
22
32
|
--filter-bar-segment-padding: 0.5rem;
|
|
23
33
|
interpolate-size: allow-keywords;
|
|
24
34
|
/* `backwards` (not `both`) so the stylesheet padding takes over once it lands. */
|
|
25
|
-
animation:
|
|
35
|
+
animation:
|
|
36
|
+
filter-bar-segment-in 160ms cubic-bezier(0.2, 0.8, 0.2, 1) backwards,
|
|
37
|
+
filter-bar-segment-fade-in 280ms ease-out backwards;
|
|
26
38
|
/* A chip that was the draft already shows its first `--filter-bar-segments-settled`
|
|
27
39
|
* segments. Those must stay put even if React swaps their element (draft span →
|
|
28
40
|
* editor), so their duration collapses to 0; the sequence resumes from the first
|
|
@@ -32,8 +44,13 @@
|
|
|
32
44
|
var(--filter-bar-segment-index, 0) - var(--filter-bar-segments-settled, 0) + 1,
|
|
33
45
|
1
|
|
34
46
|
);
|
|
35
|
-
|
|
36
|
-
|
|
47
|
+
--filter-bar-segment-delay: calc(
|
|
48
|
+
max(0, var(--filter-bar-segment-index, 0) - var(--filter-bar-segments-settled, 0)) * 110ms
|
|
49
|
+
);
|
|
50
|
+
animation-duration: calc(160ms * var(--filter-bar-segment-fresh)), calc(280ms * var(--filter-bar-segment-fresh));
|
|
51
|
+
/* The fade starts ~80ms in, when the front-loaded width curve is already ~90% open. */
|
|
52
|
+
animation-delay:
|
|
53
|
+
var(--filter-bar-segment-delay), calc(var(--filter-bar-segment-delay) + 80ms * var(--filter-bar-segment-fresh));
|
|
37
54
|
}
|
|
38
55
|
|
|
39
56
|
/* Count segments (`of S`) rather than raw children — Base UI interleaves hidden
|
|
@@ -89,23 +106,25 @@
|
|
|
89
106
|
* `--filter-bar-chip-shine`, falling back to the text colour) sweeps across the chip
|
|
90
107
|
* like light catching a surface. Drawn as an overlay so no segment has to know. */
|
|
91
108
|
|
|
92
|
-
/*
|
|
93
|
-
* just off the left edge to just off the right edge
|
|
109
|
+
/* The overlay is 3× the chip's width with the band at 40–60%; sliding it from -2/3 to 0
|
|
110
|
+
* carries the band from just off the left edge to just off the right edge. It moves with
|
|
111
|
+
* `transform` so the sweep runs on the compositor; the chip's `overflow: hidden` clips it. */
|
|
94
112
|
@keyframes filter-bar-chip-shine {
|
|
95
113
|
from {
|
|
96
|
-
|
|
114
|
+
transform: translateX(-66.667%);
|
|
97
115
|
}
|
|
98
116
|
|
|
99
117
|
to {
|
|
100
|
-
|
|
118
|
+
transform: translateX(0);
|
|
101
119
|
}
|
|
102
120
|
}
|
|
103
121
|
|
|
104
122
|
.filter-bar-chip[data-shine]::after {
|
|
105
123
|
content: '';
|
|
106
124
|
position: absolute;
|
|
107
|
-
inset: 0;
|
|
108
|
-
|
|
125
|
+
inset-block: 0;
|
|
126
|
+
left: 0;
|
|
127
|
+
width: 300%;
|
|
109
128
|
pointer-events: none;
|
|
110
129
|
background-image: linear-gradient(
|
|
111
130
|
125deg,
|
|
@@ -113,8 +132,7 @@
|
|
|
113
132
|
color-mix(in oklab, var(--filter-bar-chip-shine, currentColor) 38%, transparent) 50%,
|
|
114
133
|
transparent 60%
|
|
115
134
|
);
|
|
116
|
-
|
|
117
|
-
background-repeat: no-repeat;
|
|
135
|
+
|
|
118
136
|
animation: filter-bar-chip-shine 420ms cubic-bezier(0.4, 0, 0.2, 1) 60ms both;
|
|
119
137
|
}
|
|
120
138
|
|
|
@@ -144,7 +162,9 @@
|
|
|
144
162
|
.filter-bar-logic {
|
|
145
163
|
--filter-bar-segment-padding: 0.25rem;
|
|
146
164
|
interpolate-size: allow-keywords;
|
|
147
|
-
animation:
|
|
165
|
+
animation:
|
|
166
|
+
filter-bar-segment-in 160ms cubic-bezier(0.2, 0.8, 0.2, 1) backwards,
|
|
167
|
+
filter-bar-segment-fade-in 280ms ease-out 80ms backwards;
|
|
148
168
|
}
|
|
149
169
|
}
|
|
150
170
|
|
|
@@ -6,7 +6,7 @@ require('../tabbed-container.css');const jsxRuntime = require('react/jsx-runtime
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
8
|
const combobox = require('../combobox-BoSB-muq.cjs');
|
|
9
|
-
const dataList = require('../data-list-
|
|
9
|
+
const dataList = require('../data-list-PwFpP_mo.cjs');
|
|
10
10
|
const listSearch = require('../list-search-S1mco9Bl.cjs');
|
|
11
11
|
const tabsContent = require('../tabs-content-DlCJoQUW.cjs');
|
|
12
12
|
const tabsTab = require('../tabs-tab-DFmRMdi3.cjs');
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { ListFilterIcon } from 'lucide-react';
|
|
3
3
|
import { Children, isValidElement, useContext } from 'react';
|
|
4
4
|
import { C as Combobox } from '../combobox-Cd0JPUQW.js';
|
|
5
|
-
import { D as DataList } from '../data-list-
|
|
5
|
+
import { D as DataList } from '../data-list-DisTjDHP.js';
|
|
6
6
|
import { L as ListSearch } from '../list-search-FJ1O5F3S.js';
|
|
7
7
|
import { T as TabContent } from '../tabs-content-7ODUUdQ0.js';
|
|
8
8
|
import { T as Tab, a as TabsContext } from '../tabs-tab-DluwCnDF.js';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { c as DataListCell, e as DataListTextCell, D as DataListRoot, f as DataListTimeCell, g as DataListDateCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-
|
|
2
|
-
import { D as DataListNextPageLoading, a as DataListNoMatch, b as DataListSpacer, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper, f as DataListSortableTopCell } from './data-list-spacer-
|
|
1
|
+
import { c as DataListCell, e as DataListTextCell, D as DataListRoot, f as DataListTimeCell, g as DataListDateCell, h as DataListTopCellSmart, i as DataListTopCellWithTooltip, b as DataListTopCell, a as DataListTop } from './data-list-top-DpbOA3uw.js';
|
|
2
|
+
import { D as DataListNextPageLoading, a as DataListNoMatch, b as DataListSpacer, c as DataListRowLink, d as DataListRowButton, e as DataListRowWrapper, f as DataListSortableTopCell } from './data-list-spacer-BmorAN0V.js';
|
|
3
3
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import { B as Badge } from './Badge-TD55_qZJ.js';
|
|
4
5
|
import { AgentIcon } from './icons/AgentIcon.es.js';
|
|
5
6
|
import { ToolsIcon } from './icons/ToolsIcon.es.js';
|
|
6
7
|
import { WorkflowIcon } from './icons/WorkflowIcon.es.js';
|
|
7
8
|
import { c as cn } from './cn-65Adrsfj.js';
|
|
8
9
|
|
|
9
|
-
const
|
|
10
|
-
debug:
|
|
11
|
-
info:
|
|
12
|
-
warn:
|
|
13
|
-
error:
|
|
14
|
-
fatal:
|
|
10
|
+
const LEVEL_VARIANT = {
|
|
11
|
+
debug: "neutral",
|
|
12
|
+
info: "blue",
|
|
13
|
+
warn: "yellow",
|
|
14
|
+
error: "red",
|
|
15
|
+
fatal: "red"
|
|
15
16
|
};
|
|
16
17
|
function LogsDataListLevelCell({ level }) {
|
|
17
|
-
|
|
18
|
-
return /* @__PURE__ */ jsx(DataListCell, { children: /* @__PURE__ */ jsx("span", { className: "text-column uppercase", style: { color: config.color }, children: config.label }) });
|
|
18
|
+
return /* @__PURE__ */ jsx(DataListCell, { children: /* @__PURE__ */ jsx(Badge, { variant: LEVEL_VARIANT[level], children: level }) });
|
|
19
19
|
}
|
|
20
20
|
function EntityTypeIcon({ entityType, className }) {
|
|
21
21
|
const iconClass = cn("size-3.5 shrink-0 text-placeholder", className);
|
|
@@ -78,4 +78,4 @@ const LogsDataList = Object.assign(DataListRoot, {
|
|
|
78
78
|
});
|
|
79
79
|
|
|
80
80
|
export { LogsDataList as L };
|
|
81
|
-
//# sourceMappingURL=logs-data-list-
|
|
81
|
+
//# sourceMappingURL=logs-data-list-5BAeLU57.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs-data-list-5BAeLU57.js","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'blue',\n warn: 'yellow',\n error: 'red',\n fatal: 'red',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"min-w-0 truncate text-body-sm\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const dataListTop = require('./data-list-top-
|
|
4
|
-
const dataListSpacer = require('./data-list-spacer-
|
|
3
|
+
const dataListTop = require('./data-list-top-WGUY167p.cjs');
|
|
4
|
+
const dataListSpacer = require('./data-list-spacer-DEcgVGFM.cjs');
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
const Badge = require('./Badge-BEeYtjmv.cjs');
|
|
6
7
|
const icons_AgentIcon = require('./icons/AgentIcon.cjs.js');
|
|
7
8
|
const icons_ToolsIcon = require('./icons/ToolsIcon.cjs.js');
|
|
8
9
|
const icons_WorkflowIcon = require('./icons/WorkflowIcon.cjs.js');
|
|
9
10
|
const utils_cn = require('./cn-DG0X1KEP.cjs');
|
|
10
11
|
|
|
11
|
-
const
|
|
12
|
-
debug:
|
|
13
|
-
info:
|
|
14
|
-
warn:
|
|
15
|
-
error:
|
|
16
|
-
fatal:
|
|
12
|
+
const LEVEL_VARIANT = {
|
|
13
|
+
debug: "neutral",
|
|
14
|
+
info: "blue",
|
|
15
|
+
warn: "yellow",
|
|
16
|
+
error: "red",
|
|
17
|
+
fatal: "red"
|
|
17
18
|
};
|
|
18
19
|
function LogsDataListLevelCell({ level }) {
|
|
19
|
-
|
|
20
|
-
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-column uppercase", style: { color: config.color }, children: config.label }) });
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dataListTop.DataListCell, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { variant: LEVEL_VARIANT[level], children: level }) });
|
|
21
21
|
}
|
|
22
22
|
function EntityTypeIcon({ entityType, className }) {
|
|
23
23
|
const iconClass = utils_cn.cn("size-3.5 shrink-0 text-placeholder", className);
|
|
@@ -80,4 +80,4 @@ const LogsDataList = Object.assign(dataListTop.DataListRoot, {
|
|
|
80
80
|
});
|
|
81
81
|
|
|
82
82
|
exports.LogsDataList = LogsDataList;
|
|
83
|
-
//# sourceMappingURL=logs-data-list-
|
|
83
|
+
//# sourceMappingURL=logs-data-list-YL9yLKF3.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs-data-list-YL9yLKF3.cjs","sources":["../src/ds/components/LogsDataList/logs-data-list-cells.tsx","../src/ds/components/LogsDataList/logs-data-list.tsx"],"sourcesContent":["import { Badge } from '../Badge';\nimport type { BadgeVariant } from '../Badge';\nimport { DataListCell, DataListTextCell } from '../DataList/data-list-cells';\nimport { AgentIcon } from '@/ds/icons/AgentIcon';\nimport { ToolsIcon } from '@/ds/icons/ToolsIcon';\nimport { WorkflowIcon } from '@/ds/icons/WorkflowIcon';\nimport { cn } from '@/lib/utils';\n\ntype LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';\n\nconst LEVEL_VARIANT: Record<LogLevel, BadgeVariant> = {\n debug: 'neutral',\n info: 'blue',\n warn: 'yellow',\n error: 'red',\n fatal: 'red',\n};\n\n// ---------------------------------------------------------------------------\n// LevelCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListLevelCellProps {\n level: LogLevel;\n}\n\nexport function LogsDataListLevelCell({ level }: LogsDataListLevelCellProps) {\n return (\n <DataListCell>\n <Badge variant={LEVEL_VARIANT[level]}>{level}</Badge>\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// EntityCell\n// ---------------------------------------------------------------------------\n\nfunction EntityTypeIcon({ entityType, className }: { entityType: string; className?: string }) {\n const iconClass = cn('size-3.5 shrink-0 text-placeholder', className);\n const normalizedEntityType = entityType.toLowerCase();\n\n switch (normalizedEntityType) {\n case 'agent':\n return <AgentIcon className={iconClass} aria-hidden />;\n case 'workflow':\n case 'workflow_run':\n return <WorkflowIcon className={iconClass} aria-hidden />;\n case 'tool':\n return <ToolsIcon className={iconClass} aria-hidden />;\n default:\n return null;\n }\n}\n\nexport interface LogsDataListEntityCellProps {\n entityType?: string | null;\n entityName?: string | null;\n}\n\nexport function LogsDataListEntityCell({ entityType, entityName }: LogsDataListEntityCellProps) {\n const type = entityType ?? '';\n\n return (\n <DataListCell className=\"flex min-w-0 items-center gap-2\">\n <EntityTypeIcon entityType={type} />\n {entityName ? <span className=\"min-w-0 truncate text-body-sm\">{entityName}</span> : '-'}\n </DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// MessageCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListMessageCellProps {\n message: string;\n}\n\nexport function LogsDataListMessageCell({ message }: LogsDataListMessageCellProps) {\n return (\n <DataListCell className=\"min-w-0 truncate font-mono text-body-sm text-muted-foreground\">{message}</DataListCell>\n );\n}\n\n// ---------------------------------------------------------------------------\n// DataCell\n// ---------------------------------------------------------------------------\n\nexport interface LogsDataListDataCellProps {\n data?: Record<string, unknown> | null;\n}\n\nexport function LogsDataListDataCell({ data }: LogsDataListDataCellProps) {\n if (!data || Object.keys(data).length === 0) {\n return <DataListCell>{null}</DataListCell>;\n }\n\n const summary = Object.entries(data)\n .map(([k, v]) => {\n if (typeof v === 'string') return `${k}: ${v}`;\n try {\n return `${k}: ${JSON.stringify(v)}`;\n } catch {\n return `${k}: <unserializable>`;\n }\n })\n .join(', ');\n\n return <DataListTextCell font=\"mono\">{summary}</DataListTextCell>;\n}\n","import { DataListDateCell, DataListTimeCell } from '../DataList/data-list-cells';\nimport { DataListNextPageLoading } from '../DataList/data-list-next-page-loading';\nimport { DataListNoMatch } from '../DataList/data-list-no-match';\nimport { DataListRoot } from '../DataList/data-list-root';\nimport { DataListRowButton } from '../DataList/data-list-row-button';\nimport { DataListRowLink } from '../DataList/data-list-row-link';\nimport { DataListRowWrapper } from '../DataList/data-list-row-wrapper';\nimport { DataListSortableTopCell } from '../DataList/data-list-sortable-top-cell';\nimport { DataListSpacer } from '../DataList/data-list-spacer';\nimport { DataListTop } from '../DataList/data-list-top';\nimport { DataListTopCell, DataListTopCellWithTooltip, DataListTopCellSmart } from '../DataList/data-list-top-cell';\nimport {\n LogsDataListLevelCell,\n LogsDataListEntityCell,\n LogsDataListMessageCell,\n LogsDataListDataCell,\n} from './logs-data-list-cells';\n\nexport const LogsDataList = Object.assign(DataListRoot, {\n Top: DataListTop,\n TopCell: DataListTopCell,\n SortableTopCell: DataListSortableTopCell,\n TopCellWithTooltip: DataListTopCellWithTooltip,\n TopCellSmart: DataListTopCellSmart,\n RowWrapper: DataListRowWrapper,\n RowButton: DataListRowButton,\n RowLink: DataListRowLink,\n Spacer: DataListSpacer,\n NoMatch: DataListNoMatch,\n DateCell: DataListDateCell,\n TimeCell: DataListTimeCell,\n LevelCell: LogsDataListLevelCell,\n EntityCell: LogsDataListEntityCell,\n MessageCell: LogsDataListMessageCell,\n DataCell: LogsDataListDataCell,\n NextPageLoading: DataListNextPageLoading,\n});\n"],"names":["jsx","DataListCell","Badge","cn","AgentIcon","WorkflowIcon","ToolsIcon","jsxs","DataListTextCell","DataListRoot","DataListTop","DataListTopCell","DataListSortableTopCell","DataListTopCellWithTooltip","DataListTopCellSmart","DataListRowWrapper","DataListRowButton","DataListRowLink","DataListSpacer","DataListNoMatch","DataListDateCell","DataListTimeCell","DataListNextPageLoading"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import { D as DropdownMenu } from './dropdown-menu-DpEn6HwK.js';
|
|
|
12
12
|
import { useCopyToClipboard } from './hooks/use-copy-to-clipboard.es.js';
|
|
13
13
|
import { gfmToMarkdown } from 'mdast-util-gfm';
|
|
14
14
|
import { toMarkdown } from 'mdast-util-to-markdown';
|
|
15
|
-
import { C as CodeBlock } from './code-block-
|
|
15
|
+
import { C as CodeBlock } from './code-block-C4caeNBi.js';
|
|
16
16
|
import { c as cn } from './cn-65Adrsfj.js';
|
|
17
17
|
|
|
18
18
|
import './markdown-renderer.css';const UNBROKEN = /* @__PURE__ */ new Set(["pre", "code"]);
|
|
@@ -404,4 +404,4 @@ const TABLE_COMPONENTS = {
|
|
|
404
404
|
};
|
|
405
405
|
|
|
406
406
|
export { MarkdownRenderer as M };
|
|
407
|
-
//# sourceMappingURL=markdown-renderer-
|
|
407
|
+
//# sourceMappingURL=markdown-renderer-Ces7VyRK.js.map
|