@mastra/playground-ui 68.0.0 → 69.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/README.md +80 -8
- package/dist/AgentIndicator-Dnv_1hvF.js +1995 -0
- package/dist/AgentIndicator-Dnv_1hvF.js.map +1 -0
- package/dist/AgentIndicator-zCokR2zb.cjs +2012 -0
- package/dist/AgentIndicator-zCokR2zb.cjs.map +1 -0
- package/dist/AttachmentCard-Bt3-QAxJ.js +61 -0
- package/dist/AttachmentCard-Bt3-QAxJ.js.map +1 -0
- package/dist/AttachmentCard-BycDEelL.cjs +66 -0
- package/dist/AttachmentCard-BycDEelL.cjs.map +1 -0
- package/dist/Avatar-DOoEXudh.js +146 -0
- package/dist/Avatar-DOoEXudh.js.map +1 -0
- package/dist/Avatar-Dxpc0YUx.cjs +151 -0
- package/dist/Avatar-Dxpc0YUx.cjs.map +1 -0
- package/dist/Badge-C7NnqmMx.js +149 -0
- package/dist/Badge-C7NnqmMx.js.map +1 -0
- package/dist/Badge-DqaMg7Gy.cjs +154 -0
- package/dist/Badge-DqaMg7Gy.cjs.map +1 -0
- package/dist/Button-BfICfyxD.cjs +276 -0
- package/dist/Button-BfICfyxD.cjs.map +1 -0
- package/dist/Button-Bi7aXd_G.js +233 -0
- package/dist/Button-Bi7aXd_G.js.map +1 -0
- package/dist/Card-C9oCXvxU.cjs +134 -0
- package/dist/Card-C9oCXvxU.cjs.map +1 -0
- package/dist/Card-ClDoUQNb.js +91 -0
- package/dist/Card-ClDoUQNb.js.map +1 -0
- package/dist/CodeEditor-DHIDfP5g.cjs +515 -0
- package/dist/CodeEditor-DHIDfP5g.cjs.map +1 -0
- package/dist/CodeEditor-ZoBu3Gjw.js +466 -0
- package/dist/CodeEditor-ZoBu3Gjw.js.map +1 -0
- package/dist/Comment-2q9SomE2.js +317 -0
- package/dist/Comment-2q9SomE2.js.map +1 -0
- package/dist/Comment-rQxuMDQv.cjs +412 -0
- package/dist/Comment-rQxuMDQv.cjs.map +1 -0
- package/dist/Composer-bVE8qK52.js +357 -0
- package/dist/Composer-bVE8qK52.js.map +1 -0
- package/dist/Composer-u1K6edoZ.cjs +446 -0
- package/dist/Composer-u1K6edoZ.cjs.map +1 -0
- package/dist/DataCodeSection-7SvRJj6f.cjs +236 -0
- package/dist/DataCodeSection-7SvRJj6f.cjs.map +1 -0
- package/dist/DataCodeSection-CTodi9wg.js +231 -0
- package/dist/DataCodeSection-CTodi9wg.js.map +1 -0
- package/dist/DataDetailsPanel-BDoD6pxx.cjs +185 -0
- package/dist/DataDetailsPanel-BDoD6pxx.cjs.map +1 -0
- package/dist/DataDetailsPanel-BU05psHL.js +180 -0
- package/dist/DataDetailsPanel-BU05psHL.js.map +1 -0
- package/dist/DataKeysAndValues-B56je3sK.js +123 -0
- package/dist/DataKeysAndValues-B56je3sK.js.map +1 -0
- package/dist/DataKeysAndValues-BbKeVxrQ.cjs +128 -0
- package/dist/DataKeysAndValues-BbKeVxrQ.cjs.map +1 -0
- package/dist/DataList-B7ho6PrJ.js +408 -0
- package/dist/DataList-B7ho6PrJ.js.map +1 -0
- package/dist/DataList-DTIdllb-.cjs +431 -0
- package/dist/DataList-DTIdllb-.cjs.map +1 -0
- package/dist/DataPanel-BRRAvWYQ.cjs +298 -0
- package/dist/DataPanel-BRRAvWYQ.cjs.map +1 -0
- package/dist/DataPanel-pVr5LVaK.js +292 -0
- package/dist/DataPanel-pVr5LVaK.js.map +1 -0
- package/dist/Dialog-Duy3M1ny.cjs +424 -0
- package/dist/Dialog-Duy3M1ny.cjs.map +1 -0
- package/dist/Dialog-OBPu3rl2.js +334 -0
- package/dist/Dialog-OBPu3rl2.js.map +1 -0
- package/dist/EmptyState-Dc-sP95H.cjs +1524 -0
- package/dist/EmptyState-Dc-sP95H.cjs.map +1 -0
- package/dist/EmptyState-i88y1x75.js +1511 -0
- package/dist/EmptyState-i88y1x75.js.map +1 -0
- package/dist/ErrorBoundary-Bwoum0sT.cjs +138 -0
- package/dist/ErrorBoundary-Bwoum0sT.cjs.map +1 -0
- package/dist/ErrorBoundary-BzmaWe2y.js +131 -0
- package/dist/ErrorBoundary-BzmaWe2y.js.map +1 -0
- package/dist/FilterBar-CFacnMNl.js +861 -0
- package/dist/FilterBar-CFacnMNl.js.map +1 -0
- package/dist/FilterBar-CR8nbvoe.cjs +902 -0
- package/dist/FilterBar-CR8nbvoe.cjs.map +1 -0
- package/dist/KnowledgePageGraph.css +1 -3
- package/dist/LogsDataList-Cdo_U0Ei.js +96 -0
- package/dist/LogsDataList-Cdo_U0Ei.js.map +1 -0
- package/dist/LogsDataList-z0Y2X8P5.cjs +101 -0
- package/dist/LogsDataList-z0Y2X8P5.cjs.map +1 -0
- package/dist/MarkdownRenderer-BSGb65Ze.js +481 -0
- package/dist/MarkdownRenderer-BSGb65Ze.js.map +1 -0
- package/dist/MarkdownRenderer-CDwlvw0Y.cjs +490 -0
- package/dist/MarkdownRenderer-CDwlvw0Y.cjs.map +1 -0
- package/dist/MarkdownRenderer.css +77 -6
- package/dist/Message-CgO_SxI4.cjs +116 -0
- package/dist/Message-CgO_SxI4.cjs.map +1 -0
- package/dist/Message-DnnCoSef.js +87 -0
- package/dist/Message-DnnCoSef.js.map +1 -0
- package/dist/MessageScroller-D-mK1uuu.cjs +976 -0
- package/dist/MessageScroller-D-mK1uuu.cjs.map +1 -0
- package/dist/MessageScroller-nV_zBF3H.js +903 -0
- package/dist/MessageScroller-nV_zBF3H.js.map +1 -0
- package/dist/Metadata-5GJlO4GU.cjs +32 -0
- package/dist/Metadata-5GJlO4GU.cjs.map +1 -0
- package/dist/Metadata-DlVgmRTA.js +27 -0
- package/dist/Metadata-DlVgmRTA.js.map +1 -0
- package/dist/MetricsCard-CSJ4TsNq.cjs +229 -0
- package/dist/MetricsCard-CSJ4TsNq.cjs.map +1 -0
- package/dist/MetricsCard-D6bQfynP.js +224 -0
- package/dist/MetricsCard-D6bQfynP.js.map +1 -0
- package/dist/MetricsKpiCard-1blTbzUs.js +216 -0
- package/dist/MetricsKpiCard-1blTbzUs.js.map +1 -0
- package/dist/MetricsKpiCard-C_9GvRAp.cjs +221 -0
- package/dist/MetricsKpiCard-C_9GvRAp.cjs.map +1 -0
- package/dist/MetricsLineChart-4w5lpH63.js +262 -0
- package/dist/MetricsLineChart-4w5lpH63.js.map +1 -0
- package/dist/MetricsLineChart-BnY9JKzc.cjs +279 -0
- package/dist/MetricsLineChart-BnY9JKzc.cjs.map +1 -0
- package/dist/MetricsStackedBarChart-Bmk0OjYp.js +308 -0
- package/dist/MetricsStackedBarChart-Bmk0OjYp.js.map +1 -0
- package/dist/MetricsStackedBarChart-CJQF99sc.cjs +313 -0
- package/dist/MetricsStackedBarChart-CJQF99sc.cjs.map +1 -0
- package/dist/MetricsTable-CvMoo2vg.cjs +332 -0
- package/dist/MetricsTable-CvMoo2vg.cjs.map +1 -0
- package/dist/MetricsTable-DIjbD5Xk.js +327 -0
- package/dist/MetricsTable-DIjbD5Xk.js.map +1 -0
- package/dist/Notice-B_KjMmA6.cjs +117 -0
- package/dist/Notice-B_KjMmA6.cjs.map +1 -0
- package/dist/Notice-OSlG42lD.js +112 -0
- package/dist/Notice-OSlG42lD.js.map +1 -0
- package/dist/PageLayout-C0Fo3ZQC.cjs +54 -0
- package/dist/PageLayout-C0Fo3ZQC.cjs.map +1 -0
- package/dist/PageLayout-DLll7ZwB.js +49 -0
- package/dist/PageLayout-DLll7ZwB.js.map +1 -0
- package/dist/SankeyChart-lkM5cpOC.js +856 -0
- package/dist/SankeyChart-lkM5cpOC.js.map +1 -0
- package/dist/SankeyChart-m50vrsBS.cjs +921 -0
- package/dist/SankeyChart-m50vrsBS.cjs.map +1 -0
- package/dist/Section-B8MIbDDs.cjs +130 -0
- package/dist/Section-B8MIbDDs.cjs.map +1 -0
- package/dist/Section-C9Fgv-IF.js +113 -0
- package/dist/Section-C9Fgv-IF.js.map +1 -0
- package/dist/ShareBar-DERy_egz.cjs +456 -0
- package/dist/ShareBar-DERy_egz.cjs.map +1 -0
- package/dist/ShareBar-KrzzdcyI.js +451 -0
- package/dist/ShareBar-KrzzdcyI.js.map +1 -0
- package/dist/Tree-D1_VJClB.js +438 -0
- package/dist/Tree-D1_VJClB.js.map +1 -0
- package/dist/Tree-kgLG4IbP.cjs +445 -0
- package/dist/Tree-kgLG4IbP.cjs.map +1 -0
- package/dist/Txt-5efBsb2p.js +21 -0
- package/dist/Txt-5efBsb2p.js.map +1 -0
- package/dist/Txt-_00wWxTd.cjs +26 -0
- package/dist/Txt-_00wWxTd.cjs.map +1 -0
- package/dist/Workflow-CXRv3YXx.js +1316 -0
- package/dist/Workflow-CXRv3YXx.js.map +1 -0
- package/dist/Workflow-DIfTVqZs.cjs +1467 -0
- package/dist/Workflow-DIfTVqZs.cjs.map +1 -0
- package/dist/activity-BH_eegMA.js +450 -0
- package/dist/activity-BH_eegMA.js.map +1 -0
- package/dist/activity-Ciolopq8.cjs +581 -0
- package/dist/activity-Ciolopq8.cjs.map +1 -0
- package/dist/annotations.css +8 -0
- package/dist/ask-user-D4ezQ6pt.js +412 -0
- package/dist/ask-user-D4ezQ6pt.js.map +1 -0
- package/dist/ask-user-DcnUNMM5.cjs +495 -0
- package/dist/ask-user-DcnUNMM5.cjs.map +1 -0
- package/dist/buttons-group-DA_wORqQ.js +35 -0
- package/dist/buttons-group-DA_wORqQ.js.map +1 -0
- package/dist/buttons-group-DM6_Kohs.cjs +48 -0
- package/dist/buttons-group-DM6_Kohs.cjs.map +1 -0
- package/dist/chat-shell-context-0m1GVhS7.js +16 -0
- package/dist/chat-shell-context-0m1GVhS7.js.map +1 -0
- package/dist/chat-shell-context-ONCslAGn.cjs +39 -0
- package/dist/chat-shell-context-ONCslAGn.cjs.map +1 -0
- package/dist/clear-filters-button-C79dzuzA.js +22 -0
- package/dist/clear-filters-button-C79dzuzA.js.map +1 -0
- package/dist/clear-filters-button-CCO-y7kt.cjs +27 -0
- package/dist/clear-filters-button-CCO-y7kt.cjs.map +1 -0
- package/dist/combobox-i723LxeC.cjs +313 -0
- package/dist/combobox-i723LxeC.cjs.map +1 -0
- package/dist/combobox-lbSxWRMl.js +306 -0
- package/dist/combobox-lbSxWRMl.js.map +1 -0
- package/dist/combobox-parts-BeNqgCbj.cjs +582 -0
- package/dist/combobox-parts-BeNqgCbj.cjs.map +1 -0
- package/dist/combobox-parts-C9o4UfH_.js +437 -0
- package/dist/combobox-parts-C9o4UfH_.js.map +1 -0
- package/dist/components/AgentIndicator.cjs.js +1 -1
- package/dist/components/AgentIndicator.es.js +1 -1
- package/dist/components/AlertDialog.cjs.js +2 -2
- package/dist/components/AlertDialog.es.js +2 -2
- package/dist/components/AttachmentCard.cjs.js +1 -1
- package/dist/components/AttachmentCard.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +6 -5
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js +6 -5
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/Button.cjs.js +2 -2
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ButtonsGroup.cjs.js +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/ChartSkeleton.cjs.js +2 -2
- package/dist/components/ChartSkeleton.es.js +2 -2
- package/dist/components/ChartTooltip.cjs.js +1 -1
- package/dist/components/ChartTooltip.es.js +1 -1
- package/dist/components/ChatShell.cjs.js +33 -9
- package/dist/components/ChatShell.cjs.js.map +1 -1
- package/dist/components/ChatShell.es.js +33 -9
- package/dist/components/ChatShell.es.js.map +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +3 -3
- package/dist/components/ClampedText.es.js +3 -3
- package/dist/components/ClearFiltersButton.cjs.js +1 -1
- package/dist/components/ClearFiltersButton.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +5 -5
- package/dist/components/CodeBlock.es.js +5 -5
- package/dist/components/CodeDiff.cjs.js +3 -3
- package/dist/components/CodeDiff.es.js +2 -2
- 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/CollapsibleBox.cjs.js +1 -1
- package/dist/components/CollapsibleBox.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 +5 -5
- package/dist/components/Command.es.js +5 -5
- package/dist/components/CommandPalette.cjs.js +7 -7
- package/dist/components/CommandPalette.cjs.js.map +1 -1
- package/dist/components/CommandPalette.es.js +7 -7
- package/dist/components/CommandPalette.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/CompactNumber.cjs.js +2 -2
- package/dist/components/CompactNumber.es.js +2 -2
- package/dist/components/Composer.cjs.js +1 -1
- package/dist/components/Composer.es.js +1 -1
- package/dist/components/ContextMenu.cjs.js +1 -1
- package/dist/components/ContextMenu.es.js +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 +1 -1
- package/dist/components/DataDetailsPanel.es.js +1 -1
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +9 -9
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +9 -9
- package/dist/components/DateRangeTimeline.es.js.map +1 -1
- package/dist/components/DateTimePicker.cjs.js +75 -142
- package/dist/components/DateTimePicker.cjs.js.map +1 -1
- package/dist/components/DateTimePicker.es.js +79 -146
- package/dist/components/DateTimePicker.es.js.map +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/DiffStat.cjs.js +1 -1
- package/dist/components/DiffStat.es.js +1 -1
- package/dist/components/DisabledFeatureButton.cjs.js +3 -3
- package/dist/components/DisabledFeatureButton.es.js +3 -3
- package/dist/components/DisclosureChevron.cjs.js +1 -1
- package/dist/components/DisclosureChevron.es.js +1 -1
- package/dist/components/Drawer.cjs.js +2 -2
- package/dist/components/Drawer.es.js +2 -2
- 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/Entity.cjs.js +3 -3
- package/dist/components/Entity.es.js +3 -3
- package/dist/components/EntityHeader.cjs.js +2 -2
- package/dist/components/EntityHeader.es.js +2 -2
- package/dist/components/Entry.cjs.js +1 -1
- package/dist/components/Entry.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +6 -6
- package/dist/components/EnvironmentVariablesEditor.es.js +6 -6
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/Field.cjs.js +2 -2
- package/dist/components/Field.es.js +2 -2
- package/dist/components/FileDropBackdrop.cjs.js +1 -1
- package/dist/components/FileDropBackdrop.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +3 -3
- package/dist/components/FilterBar.es.js +3 -3
- package/dist/components/FormFieldBlocks.cjs.js +5 -5
- package/dist/components/FormFieldBlocks.es.js +6 -6
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/HoverCard.cjs.js +1 -1
- package/dist/components/HoverCard.es.js +1 -1
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +3 -3
- package/dist/components/InputNumber.es.js +3 -3
- package/dist/components/JSONSchemaForm.cjs.js +4 -4
- package/dist/components/JSONSchemaForm.es.js +4 -4
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +2 -2
- package/dist/components/KeyValueList.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainHeader.cjs.js +1 -1
- package/dist/components/MainHeader.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.es.js +1 -1
- package/dist/components/Metadata.cjs.js +3 -0
- package/dist/components/Metadata.d.ts +1 -0
- package/dist/components/Metadata.es.js +1 -0
- package/dist/components/Meter.cjs.js +3 -3
- package/dist/components/Meter.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/MetricsStackedBarChart.cjs.js +1 -1
- package/dist/components/MetricsStackedBarChart.es.js +1 -1
- package/dist/components/MetricsTable.cjs.js +1 -1
- package/dist/components/MetricsTable.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 +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/ProductAvatar.cjs.js +2 -2
- package/dist/components/ProductAvatar.es.js +2 -2
- package/dist/components/ProductBadge.cjs.js +2 -2
- package/dist/components/ProductBadge.es.js +2 -2
- package/dist/components/PropertyFilter.cjs.js +9 -9
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +9 -9
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +6 -30
- package/dist/components/RelativeTimestamp.cjs.js.map +1 -1
- package/dist/components/RelativeTimestamp.es.js +7 -31
- package/dist/components/RelativeTimestamp.es.js.map +1 -1
- package/dist/components/RuleBuilder.cjs.js +22 -22
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +5 -5
- package/dist/components/SankeyChart.cjs.js +1 -1
- package/dist/components/SankeyChart.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +9 -9
- package/dist/components/SavedViews.es.js +9 -9
- package/dist/components/ScatterPlotChart.cjs.js +2 -2
- package/dist/components/ScatterPlotChart.es.js +2 -2
- package/dist/components/ScrollArea.cjs.js +1 -1
- package/dist/components/ScrollArea.es.js +1 -1
- package/dist/components/SearchInput.cjs.js +2 -2
- package/dist/components/SearchInput.es.js +2 -2
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SectionCard.cjs.js +1 -1
- package/dist/components/SectionCard.es.js +1 -1
- package/dist/components/SegmentedControl.cjs.js +3 -3
- package/dist/components/SegmentedControl.es.js +3 -3
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/ShareBar.cjs.js +1 -1
- package/dist/components/ShareBar.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +8 -8
- package/dist/components/SideDialog.es.js +8 -8
- package/dist/components/Sidebar.cjs.js +14 -14
- package/dist/components/Sidebar.cjs.js.map +1 -1
- package/dist/components/Sidebar.es.js +15 -15
- package/dist/components/Sidebar.es.js.map +1 -1
- package/dist/components/Skeleton.cjs.js +1 -1
- package/dist/components/Skeleton.es.js +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.es.js +3 -3
- package/dist/components/Steps.cjs.js +73 -3
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +73 -4
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Switch.cjs.js +2 -2
- package/dist/components/Switch.es.js +2 -2
- package/dist/components/Table.cjs.js +4 -4
- package/dist/components/Table.es.js +4 -4
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/Text.cjs.js +1 -1
- package/dist/components/Text.es.js +1 -1
- package/dist/components/Textarea.cjs.js +2 -2
- package/dist/components/Textarea.es.js +2 -2
- package/dist/components/ThinkingLevel.cjs.js +5 -5
- package/dist/components/ThinkingLevel.cjs.js.map +1 -1
- package/dist/components/ThinkingLevel.es.js +5 -5
- package/dist/components/ThinkingLevel.es.js.map +1 -1
- package/dist/components/ThreadList.cjs.js +2 -2
- package/dist/components/ThreadList.es.js +2 -2
- package/dist/components/ThreadRail.cjs.js +10 -8
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +10 -8
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Toaster.cjs.js +4 -4
- package/dist/components/Toaster.es.js +3 -3
- package/dist/components/TokenBudget.cjs.js +3 -3
- package/dist/components/TokenBudget.es.js +2 -2
- package/dist/components/Tooltip.cjs.js +2 -2
- package/dist/components/Tooltip.es.js +2 -2
- package/dist/components/Tree.cjs.js +1 -1
- package/dist/components/Tree.es.js +1 -1
- package/dist/components/Truncate.cjs.js +3 -3
- package/dist/components/Truncate.es.js +3 -3
- package/dist/components/Txt.cjs.js +1 -1
- package/dist/components/Txt.es.js +1 -1
- package/dist/components/Workflow.cjs.js +1 -1
- package/dist/components/Workflow.es.js +1 -1
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/annotations.cjs.js +836 -0
- package/dist/components/ai/annotations.cjs.js.map +1 -0
- package/dist/components/ai/annotations.d.ts +1 -0
- package/dist/components/ai/annotations.es.js +831 -0
- package/dist/components/ai/annotations.es.js.map +1 -0
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/components/ai/plan.cjs.js +6 -6
- package/dist/components/ai/plan.es.js +6 -6
- package/dist/components/ai/task-list.cjs.js +4 -4
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +4 -4
- 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 +7 -2
- package/dist/components/ai/tool-call.es.js +3 -3
- package/dist/components/ai/transcript-divider.cjs.js +1 -1
- package/dist/components/ai/transcript-divider.es.js +1 -1
- package/dist/context-menu-6_Kcs8kj.js +204 -0
- package/dist/context-menu-6_Kcs8kj.js.map +1 -0
- package/dist/context-menu-DwB7u7fB.cjs +211 -0
- package/dist/context-menu-DwB7u7fB.cjs.map +1 -0
- package/dist/copy-button-B-_Z6N6y.js +25 -0
- package/dist/copy-button-B-_Z6N6y.js.map +1 -0
- package/dist/copy-button-DuEUYvS2.cjs +30 -0
- package/dist/copy-button-DuEUYvS2.cjs.map +1 -0
- package/dist/data-list-072hHK9L.cjs +1003 -0
- package/dist/data-list-072hHK9L.cjs.map +1 -0
- package/dist/data-list-GzbzPmYR.js +866 -0
- package/dist/data-list-GzbzPmYR.js.map +1 -0
- package/dist/date-time-range-picker-2a-wUBTk.cjs +377 -0
- package/dist/date-time-range-picker-2a-wUBTk.cjs.map +1 -0
- package/dist/date-time-range-picker-BUjjjvo8.js +372 -0
- package/dist/date-time-range-picker-BUjjjvo8.js.map +1 -0
- package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
- package/dist/domains/auth/components/permission-denied.es.js +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +3 -3
- package/dist/domains/auth/components/session-expired.es.js +3 -3
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +2 -2
- package/dist/domains/chat/activity/activity-stretch-line.es.js +2 -2
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +54 -58
- package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +54 -58
- package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +2 -2
- package/dist/domains/chat/activity/components/calls-panel.es.js +2 -2
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +2 -2
- package/dist/domains/chat/activity/components/stretch-content.es.js +2 -2
- package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.cjs.js +7 -11
- package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
- package/dist/domains/chat/activity/model/activity-words.es.js +8 -11
- package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
- package/dist/domains/chat/activity.cjs.js +2 -5
- package/dist/domains/chat/activity.es.js +4 -5
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +3 -3
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +3 -3
- package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-entry.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +4 -4
- package/dist/domains/chat/attachments/composer-attachment.es.js +4 -4
- package/dist/domains/chat/attachments/message-attachment.cjs.js +2 -2
- package/dist/domains/chat/attachments/message-attachment.es.js +2 -2
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js +2 -2
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/message-image-attachment.es.js +2 -2
- package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -1
- package/dist/domains/chat/attachments/split-message-attachments.cjs.js +4 -1
- package/dist/domains/chat/attachments/split-message-attachments.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/split-message-attachments.es.js +4 -1
- package/dist/domains/chat/attachments/split-message-attachments.es.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
- package/dist/domains/chat/components/loading-badge.cjs.js +2 -2
- package/dist/domains/chat/components/loading-badge.es.js +2 -2
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
- package/dist/domains/chat/components/section-label.cjs.js +1 -1
- package/dist/domains/chat/components/section-label.es.js +1 -1
- package/dist/domains/chat/context/chat-context.cjs.js +2 -0
- package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
- package/dist/domains/chat/context/chat-context.es.js +2 -1
- package/dist/domains/chat/context/chat-context.es.js.map +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.es.js +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +3 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +3 -3
- package/dist/domains/chat/knowledge.cjs.js +1 -1
- package/dist/domains/chat/knowledge.es.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +10 -10
- package/dist/domains/chat/messages/dataset-save-action.es.js +11 -11
- package/dist/domains/chat/messages/message-row.cjs.js +20 -20
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +20 -20
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +5 -5
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +5 -5
- package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
- package/dist/domains/chat/messages/renderers/data-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/data-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +5 -5
- package/dist/domains/chat/messages/renderers/message-text.es.js +5 -5
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- 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/renderers/user-file-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +5 -5
- package/dist/domains/chat/messages/signal-badge.es.js +5 -5
- package/dist/domains/chat/messages/skill-message.cjs.js +4 -4
- package/dist/domains/chat/messages/skill-message.es.js +4 -4
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +8 -13
- package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +8 -13
- package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +5 -5
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +7 -6
- 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 +7 -6
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +5 -5
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +5 -5
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +34 -28
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +34 -28
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +28 -24
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +28 -24
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +8 -7
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +8 -7
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +3 -3
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +3 -3
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +25 -34
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +27 -36
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +19 -26
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +19 -26
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +12 -10
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +12 -10
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js +13 -0
- package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.es.js +13 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +8 -8
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +8 -8
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +5 -5
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js +5 -5
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +4 -4
- package/dist/domains/chat/tools/submit-plan-tool.es.js +4 -4
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +10 -5
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +10 -5
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +2 -2
- package/dist/domains/chat/tools/tool-groups.es.js +2 -2
- package/dist/domains/chat.cjs.js +6 -5
- package/dist/domains/chat.es.js +6 -6
- package/dist/domains/connect.cjs.js +1 -1
- package/dist/domains/connect.es.js +1 -1
- package/dist/domains/dashboards/components/connected-widget.cjs.js +55 -0
- package/dist/domains/dashboards/components/connected-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/connected-widget.d.ts +1 -0
- package/dist/domains/dashboards/components/connected-widget.es.js +54 -0
- package/dist/domains/dashboards/components/connected-widget.es.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js +11 -8
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-grid.es.js +11 -8
- package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +26 -10
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +26 -10
- package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
- package/dist/domains/dashboards/components/stateless-widget.cjs.js +30 -0
- package/dist/domains/dashboards/components/stateless-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/stateless-widget.d.ts +1 -0
- package/dist/domains/dashboards/components/stateless-widget.es.js +29 -0
- package/dist/domains/dashboards/components/stateless-widget.es.js.map +1 -0
- package/dist/domains/dashboards/components/view-gate.cjs.js +18 -40
- package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/view-gate.es.js +18 -40
- package/dist/domains/dashboards/components/view-gate.es.js.map +1 -1
- package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
- package/dist/domains/dashboards/components/widget-controls.cjs.js +122 -1
- package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/widget-controls.es.js +121 -3
- package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -1
- package/dist/domains/dashboards/components/widget-error.cjs.js +6 -3
- package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/widget-error.es.js +6 -3
- package/dist/domains/dashboards/components/widget-error.es.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js +55 -0
- package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-environment.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js +53 -0
- package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +24 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +23 -1
- package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +10 -6
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.es.js +10 -7
- package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js +11 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-plan.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js +9 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +28 -15
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +29 -16
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis.cjs.js +4 -1
- package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis.es.js +4 -1
- package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js +27 -0
- package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-plan.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-plan.es.js +24 -0
- package/dist/domains/dashboards/kinds/scores/scores-plan.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +35 -33
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +35 -33
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores.cjs.js +4 -0
- package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores.es.js +4 -0
- package/dist/domains/dashboards/kinds/scores.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +3 -7
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-cells.es.js +3 -7
- package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +5 -3
- package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-columns.es.js +5 -3
- package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-plan.cjs.js +47 -0
- package/dist/domains/dashboards/kinds/table/table-plan.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-plan.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-plan.es.js +44 -0
- package/dist/domains/dashboards/kinds/table/table-plan.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +25 -24
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +26 -25
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js +19 -19
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.es.js +19 -19
- package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +14 -15
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +14 -15
- package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table.cjs.js +5 -1
- package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table.es.js +5 -1
- package/dist/domains/dashboards/kinds/table.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js +18 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js +16 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +38 -31
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +39 -32
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries.cjs.js +4 -1
- package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries.es.js +4 -1
- package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -1
- package/dist/domains/dashboards/lib/alert-actions.cjs.js +123 -0
- package/dist/domains/dashboards/lib/alert-actions.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/alert-actions.d.ts +1 -0
- package/dist/domains/dashboards/lib/alert-actions.es.js +118 -0
- package/dist/domains/dashboards/lib/alert-actions.es.js.map +1 -0
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
- package/dist/domains/dashboards/lib/format.cjs.js +1 -1
- package/dist/domains/dashboards/lib/format.es.js +1 -1
- package/dist/domains/dashboards/lib/gate.cjs.js +62 -0
- package/dist/domains/dashboards/lib/gate.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/gate.d.ts +1 -0
- package/dist/domains/dashboards/lib/gate.es.js +60 -0
- package/dist/domains/dashboards/lib/gate.es.js.map +1 -0
- package/dist/domains/dashboards/lib/pin-actions.cjs.js +16 -0
- package/dist/domains/dashboards/lib/pin-actions.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/pin-actions.d.ts +1 -0
- package/dist/domains/dashboards/lib/pin-actions.es.js +15 -0
- package/dist/domains/dashboards/lib/pin-actions.es.js.map +1 -0
- package/dist/domains/dashboards/lib/plan-widget.cjs.js +41 -0
- package/dist/domains/dashboards/lib/plan-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/plan-widget.d.ts +1 -0
- package/dist/domains/dashboards/lib/plan-widget.es.js +38 -0
- package/dist/domains/dashboards/lib/plan-widget.es.js.map +1 -0
- package/dist/domains/dashboards/lib/requests.cjs.js +49 -2
- package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/requests.es.js +48 -3
- package/dist/domains/dashboards/lib/requests.es.js.map +1 -1
- package/dist/domains/dashboards/lib/scores.cjs.js +32 -0
- package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/scores.es.js +31 -1
- package/dist/domains/dashboards/lib/scores.es.js.map +1 -1
- package/dist/domains/dashboards/lib/timeseries.cjs.js +17 -0
- package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/timeseries.es.js +17 -1
- package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -1
- package/dist/domains/dashboards/lib/values.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/values.es.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
- package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
- package/dist/domains/dashboards.cjs.js +26 -8
- package/dist/domains/dashboards.es.js +15 -11
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +11 -11
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +11 -11
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +3 -3
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +3 -3
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +6 -6
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +6 -6
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -7
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +7 -7
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +3 -2
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js +3 -2
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +191 -222
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +193 -225
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +625 -273
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +626 -274
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +554 -463
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +557 -466
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +22 -13
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +23 -14
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js +16 -0
- package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgeSourceIcon.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js +15 -0
- package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js +10 -0
- package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgeTooltip.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgeTooltip.es.js +9 -0
- package/dist/domains/knowledge/components/KnowledgeTooltip.es.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js +22 -8
- package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/fitViewport.es.js +22 -9
- package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -1
- package/dist/domains/knowledge/lib/pageAddress.cjs.js +51 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageAddress.es.js +50 -1
- package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -1
- package/dist/domains/knowledge/lib/pageRefs.cjs.js +43 -2
- package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageRefs.es.js +43 -3
- package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -1
- package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js +10 -0
- package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pagesByRefContext.d.ts +1 -0
- package/dist/domains/knowledge/lib/pagesByRefContext.es.js +10 -0
- package/dist/domains/knowledge/lib/pagesByRefContext.es.js.map +1 -0
- package/dist/domains/llm/models-dev-logo-slugs.cjs.js +230 -0
- package/dist/domains/llm/models-dev-logo-slugs.cjs.js.map +1 -0
- package/dist/domains/llm/models-dev-logo-slugs.d.ts +1 -0
- package/dist/domains/llm/models-dev-logo-slugs.es.js +229 -0
- package/dist/domains/llm/models-dev-logo-slugs.es.js.map +1 -0
- package/dist/domains/llm/provider-logo-monogram.cjs.js +37 -0
- package/dist/domains/llm/provider-logo-monogram.cjs.js.map +1 -0
- package/dist/domains/llm/provider-logo-monogram.d.ts +1 -0
- package/dist/domains/llm/provider-logo-monogram.es.js +36 -0
- package/dist/domains/llm/provider-logo-monogram.es.js.map +1 -0
- package/dist/domains/llm/provider-logo.cjs.js +46 -17
- package/dist/domains/llm/provider-logo.cjs.js.map +1 -1
- package/dist/domains/llm/provider-logo.es.js +46 -17
- package/dist/domains/llm/provider-logo.es.js.map +1 -1
- package/dist/domains/llm/provider-map-icon.cjs.js +1 -1
- package/dist/domains/llm/provider-map-icon.es.js +1 -1
- package/dist/domains/llm.cjs.js +1 -1
- package/dist/domains/llm.es.js +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +11 -7
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +11 -7
- package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +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-saved-views.cjs.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +3 -3
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +3 -3
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
- package/dist/domains/logs.cjs.js +2 -2
- package/dist/domains/logs.es.js +2 -2
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +29 -5
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js +30 -6
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +64 -9
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-viewer.es.js +64 -9
- package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -1
- package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js +11 -0
- package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js.map +1 -0
- package/dist/domains/mcps/context/mcp-app-host-context-value.d.ts +1 -0
- package/dist/domains/mcps/context/mcp-app-host-context-value.es.js +9 -0
- package/dist/domains/mcps/context/mcp-app-host-context-value.es.js.map +1 -0
- package/dist/domains/mcps/context/mcp-app-host-context.cjs.js +14 -0
- package/dist/domains/mcps/context/mcp-app-host-context.cjs.js.map +1 -0
- package/dist/domains/mcps/context/mcp-app-host-context.d.ts +1 -0
- package/dist/domains/mcps/context/mcp-app-host-context.es.js +13 -0
- package/dist/domains/mcps/context/mcp-app-host-context.es.js.map +1 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js +37 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +1 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +36 -0
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -0
- package/dist/domains/mcps.cjs.js +5 -0
- package/dist/domains/mcps.d.ts +1 -0
- package/dist/domains/mcps.es.js +3 -0
- package/dist/domains/memory/components/flame-graph.cjs.js +4 -4
- package/dist/domains/memory/components/flame-graph.es.js +4 -4
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +6 -6
- package/dist/domains/memory/components/memory-studio-panel.es.js +6 -6
- package/dist/domains/memory/components/observation-detail-view.cjs.js +6 -6
- package/dist/domains/memory/components/observation-detail-view.es.js +6 -6
- package/dist/domains/memory/components/thread-context-progress.cjs.js +2 -2
- package/dist/domains/memory/components/thread-context-progress.es.js +2 -2
- package/dist/domains/memory/components.cjs.js +1 -1
- package/dist/domains/memory/components.es.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +7 -7
- package/dist/domains/metrics/components/agent-runs-card.es.js +7 -7
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-figure.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-figure.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +8 -8
- package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +8 -8
- package/dist/domains/metrics/components/breakdown/breakdown-text.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-text.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +2 -2
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +2 -2
- package/dist/domains/metrics/components/breakdown-card.cjs.js +4 -4
- package/dist/domains/metrics/components/breakdown-card.es.js +4 -4
- 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/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +2 -2
- package/dist/domains/metrics/components/chart-card-error.es.js +2 -2
- package/dist/domains/metrics/components/chart-card.cjs.js +21 -5
- package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +21 -5
- package/dist/domains/metrics/components/chart-card.es.js.map +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/distinct-ids/distinct-ids-chart.cjs.js +5 -5
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +5 -5
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +7 -7
- package/dist/domains/metrics/components/failure-rate-card.es.js +7 -7
- package/dist/domains/metrics/components/kpi-card.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +7 -7
- package/dist/domains/metrics/components/latency-card.es.js +7 -7
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +2 -2
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +2 -2
- package/dist/domains/metrics/components/scores-card.cjs.js +4 -4
- package/dist/domains/metrics/components/scores-card.es.js +4 -4
- package/dist/domains/metrics/components/token-usage-card.cjs.js +8 -8
- package/dist/domains/metrics/components/token-usage-card.es.js +8 -8
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +4 -4
- package/dist/domains/metrics/components/trace-volume-card.es.js +4 -4
- package/dist/domains/metrics/components/usage-card.cjs.js +5 -5
- package/dist/domains/metrics/components/usage-card.es.js +5 -5
- package/dist/domains/metrics/components.cjs.js +9 -9
- package/dist/domains/metrics/components.es.js +9 -9
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +2 -2
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +2 -2
- package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics.es.js +1 -1
- package/dist/domains/metrics/hooks.cjs.js +5 -5
- package/dist/domains/metrics/hooks.es.js +5 -5
- package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
- package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
- package/dist/domains/metrics/lib/series-colors.cjs.js +279 -0
- package/dist/domains/metrics/lib/series-colors.cjs.js.map +1 -0
- package/dist/domains/metrics/lib/series-colors.d.ts +1 -0
- package/dist/domains/metrics/lib/series-colors.es.js +272 -0
- package/dist/domains/metrics/lib/series-colors.es.js.map +1 -0
- package/dist/domains/metrics/lib.cjs.js +9 -3
- package/dist/domains/metrics/lib.es.js +5 -4
- package/dist/domains/metrics.cjs.js +10 -4
- package/dist/domains/metrics.es.js +6 -5
- package/dist/domains/observability/components/observability-capability-gate.cjs.js +3 -3
- package/dist/domains/observability/components/observability-capability-gate.es.js +3 -3
- package/dist/domains/observability/components/observability-histogram.cjs.js +5 -5
- package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +5 -5
- package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
- package/dist/domains/observability/components/observability-page-layout.cjs.js +2 -2
- package/dist/domains/observability/components/observability-page-layout.es.js +2 -2
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +3 -3
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js +3 -3
- package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
- package/dist/domains/observability/observability-list-url-state.es.js +1 -1
- package/dist/domains/observability/saved-view-state.cjs.js +3 -3
- package/dist/domains/observability/saved-view-state.es.js +3 -3
- package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +1 -1
- package/dist/domains/observability/saved-views.cjs.js +2 -2
- package/dist/domains/observability/saved-views.es.js +2 -2
- package/dist/domains/observability.cjs.js +6 -6
- package/dist/domains/observability.es.js +6 -6
- package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
- package/dist/domains/review/components/review-status-badge.es.js +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +7 -7
- package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +7 -7
- package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
- package/dist/domains/scores/components/span-scoring.es.js +4 -4
- package/dist/domains/scores/components/trace-scores-list.cjs.js +5 -5
- package/dist/domains/scores/components/trace-scores-list.es.js +5 -5
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +15 -19
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +15 -19
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/scores/components.cjs.js +1 -1
- package/dist/domains/scores/components.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +4 -4
- package/dist/domains/skills/skill-simple-form.es.js +4 -4
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +6 -6
- package/dist/domains/spans/components/spans-explorer-body.es.js +7 -7
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +3 -3
- package/dist/domains/spans/components/spans-filter-bar.es.js +3 -3
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +2 -2
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +2 -2
- package/dist/domains/spans/hooks/use-spans-list-source.cjs.js +1 -1
- package/dist/domains/spans/hooks/use-spans-list-source.es.js +1 -1
- package/dist/domains/spans/hooks.cjs.js +1 -1
- package/dist/domains/spans/hooks.es.js +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +6 -6
- package/dist/domains/threads/components/threads-explorer-body.es.js +7 -7
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
- package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +2 -2
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +2 -2
- package/dist/domains/threads/hooks/use-threads-list-source.cjs.js +1 -1
- package/dist/domains/threads/hooks/use-threads-list-source.es.js +1 -1
- package/dist/domains/threads/hooks.cjs.js +1 -1
- package/dist/domains/threads/hooks.es.js +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js +2 -2
- package/dist/domains/traces/components/feedback-options.cjs.js +0 -0
- package/dist/domains/traces/components/feedback-options.d.ts +1 -0
- package/dist/domains/traces/components/feedback-options.es.js +0 -0
- package/dist/domains/traces/components/feedback-thread.cjs.js +16 -10
- package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +16 -10
- package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
- package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +1 -1
- package/dist/domains/traces/components/format-trace-thread-messages.es.js +1 -1
- package/dist/domains/traces/components/no-traces-info.cjs.js +2 -2
- package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +2 -2
- package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
- package/dist/domains/traces/components/shared.cjs.js +3 -3
- package/dist/domains/traces/components/shared.es.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +23 -23
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +23 -23
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.cjs.js +3 -3
- package/dist/domains/traces/components/span-details-view.es.js +3 -3
- package/dist/domains/traces/components/span-feedback-tab.cjs.js +8 -5
- package/dist/domains/traces/components/span-feedback-tab.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-feedback-tab.es.js +8 -5
- package/dist/domains/traces/components/span-feedback-tab.es.js.map +1 -1
- package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
- package/dist/domains/traces/components/span-outcome.es.js +1 -1
- package/dist/domains/traces/components/span-outcome.utils.cjs.js +3 -3
- package/dist/domains/traces/components/span-outcome.utils.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-outcome.utils.es.js +3 -3
- package/dist/domains/traces/components/span-outcome.utils.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +5 -5
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +5 -5
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +7 -7
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -7
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +14 -9
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +14 -9
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +7 -7
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +7 -7
- 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 +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-signal-details.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-signal-details.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +6 -6
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +6 -6
- package/dist/domains/traces/components/span-payload.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload.es.js +4 -4
- package/dist/domains/traces/components/span-prompt-changes.cjs.js +17 -10
- package/dist/domains/traces/components/span-prompt-changes.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-prompt-changes.es.js +17 -10
- package/dist/domains/traces/components/span-prompt-changes.es.js.map +1 -1
- package/dist/domains/traces/components/span-rows.cjs.js +1 -1
- package/dist/domains/traces/components/span-rows.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +3 -3
- package/dist/domains/traces/components/span-summary-description.es.js +3 -3
- package/dist/domains/traces/components/span-timeline-row.cjs.js +10 -10
- package/dist/domains/traces/components/span-timeline-row.es.js +10 -10
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +3 -3
- package/dist/domains/traces/components/span-timing-hover-card.es.js +3 -3
- package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
- package/dist/domains/traces/components/span-token-usage.es.js +2 -2
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js +2 -2
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.utils.es.js +2 -2
- package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -1
- package/dist/domains/traces/components/span-type-badge.cjs.js +1 -1
- package/dist/domains/traces/components/span-type-badge.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +2 -2
- 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-root.cjs.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +3 -3
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +5 -5
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +5 -5
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +6 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +6 -6
- package/dist/domains/traces/components/thread-trace.cjs.js +3 -3
- package/dist/domains/traces/components/thread-trace.es.js +3 -3
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +12 -10
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +12 -10
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-skeleton.cjs.js +5 -5
- package/dist/domains/traces/components/thread-view-skeleton.es.js +5 -5
- package/dist/domains/traces/components/timeline-name-col.cjs.js +6 -6
- package/dist/domains/traces/components/timeline-name-col.es.js +6 -6
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +4 -4
- package/dist/domains/traces/components/timeline-timing-col.es.js +4 -4
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
- package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +13 -13
- package/dist/domains/traces/components/trace-data-panel-view.es.js +13 -13
- package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
- package/dist/domains/traces/components/trace-details-view.cjs.js +3 -3
- package/dist/domains/traces/components/trace-details-view.es.js +3 -3
- package/dist/domains/traces/components/trace-error-cell.cjs.js +2 -2
- package/dist/domains/traces/components/trace-error-cell.es.js +2 -2
- package/dist/domains/traces/components/trace-error-summary.cjs.js +2 -2
- package/dist/domains/traces/components/trace-error-summary.es.js +2 -2
- package/dist/domains/traces/components/trace-feedback-tab.cjs.js +9 -4
- package/dist/domains/traces/components/trace-feedback-tab.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-feedback-tab.es.js +9 -4
- package/dist/domains/traces/components/trace-feedback-tab.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-messages-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-skeleton.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +5 -4
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +5 -4
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +6 -6
- package/dist/domains/traces/components/trace-span-timeline-markers.es.js +6 -6
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +5 -5
- package/dist/domains/traces/components/trace-span-timeline.es.js +5 -5
- package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +2 -2
- package/dist/domains/traces/components/trace-span-tree.cjs.js +2 -2
- package/dist/domains/traces/components/trace-span-tree.es.js +2 -2
- package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +5 -5
- package/dist/domains/traces/components/trace-summary-description.es.js +5 -5
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +5 -5
- package/dist/domains/traces/components/trace-thread-item-view.es.js +5 -5
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +3 -2
- package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +3 -2
- package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-timeline.cjs.js +1 -1
- package/dist/domains/traces/components/trace-timeline.es.js +1 -1
- package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
- package/dist/domains/traces/components/traces-error-content.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-body.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-body.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +14 -9
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +14 -9
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +16 -3
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +17 -4
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer.cjs.js +4 -4
- package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer.es.js +4 -4
- package/dist/domains/traces/components/traces-explorer.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 +10 -10
- package/dist/domains/traces/components/traces-list-view.es.js +10 -10
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
- package/dist/domains/traces/components/traces-spans-switch.cjs.js +3 -3
- package/dist/domains/traces/components/traces-spans-switch.es.js +3 -3
- package/dist/domains/traces/components.cjs.js +15 -15
- package/dist/domains/traces/components.es.js +15 -15
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.es.js +1 -1
- package/dist/domains/traces/hooks.cjs.js +4 -4
- package/dist/domains/traces/hooks.es.js +4 -4
- package/dist/domains/traces/utils/span-utils.cjs.js +2 -2
- package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
- package/dist/domains/traces/utils/span-utils.es.js +2 -2
- package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
- package/dist/domains/traces/utils.cjs.js +2 -2
- package/dist/domains/traces/utils.es.js +2 -2
- package/dist/domains/traces.cjs.js +2 -2
- package/dist/domains/traces.es.js +2 -2
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -3
- package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +4 -3
- package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -6
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -6
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +10 -10
- package/dist/domains/workflows/components/workflow-information.es.js +10 -10
- package/dist/domains/workflows/components/workflow-layout.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-layout.es.js +2 -2
- package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-run-status-icon.es.js +3 -3
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +4 -4
- package/dist/domains/workflows/components/workflow-step-detail.es.js +4 -4
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +11 -11
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +11 -11
- package/dist/domains/workflows/context/playground-workflow-run-provider.cjs.js +1 -1
- package/dist/domains/workflows/context/playground-workflow-run-provider.es.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-details.cjs.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-details.es.js +2 -2
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +26 -21
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +26 -21
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
- package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/use-workflow-data.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +5 -5
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +5 -5
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +8 -8
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +8 -8
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
- package/dist/domains/workflows/workflow/utils.cjs.js +2 -2
- package/dist/domains/workflows/workflow/utils.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-card.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-card.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +6 -6
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +6 -6
- package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-groups.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-groups.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +6 -6
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +6 -6
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +6 -6
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +6 -6
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +7 -7
- package/dist/domains/workflows/workflow/workflow-status.es.js +7 -7
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +10 -10
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +10 -10
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +12 -12
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +12 -12
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +9 -9
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +9 -9
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +5 -5
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +5 -5
- package/dist/domains/workflows.cjs.js +4 -4
- package/dist/domains/workflows.es.js +4 -4
- package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-active-file.es.js +4 -4
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +10 -10
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +10 -10
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-context.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-context.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-create-directory.es.js +4 -4
- package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-parts.es.js +5 -5
- package/dist/domains/workspace/components/workspace-search.cjs.js +17 -20
- package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +18 -21
- package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree-view.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-tree-view.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +11 -11
- package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +11 -11
- package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace.es.js +1 -1
- package/dist/domains/workspace.cjs.js +3 -3
- package/dist/domains/workspace.es.js +3 -3
- package/dist/dropdown-menu-D3D8USIY.cjs +249 -0
- package/dist/dropdown-menu-D3D8USIY.cjs.map +1 -0
- package/dist/dropdown-menu-jsf9D-J_.js +242 -0
- package/dist/dropdown-menu-jsf9D-J_.js.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.es.js +4 -4
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/entity-index-status.cjs.js +2 -2
- package/dist/ee/signals/components/entity-index-status.es.js +2 -2
- package/dist/ee/signals/components/signals-empty-state.cjs.js +12 -21
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +12 -21
- 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 -5
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -5
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +13 -13
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +14 -14
- package/dist/ee/signals/examples-pager.cjs.js +2 -2
- package/dist/ee/signals/examples-pager.es.js +2 -2
- package/dist/ee/signals/flow-card.cjs.js +4 -4
- package/dist/ee/signals/flow-card.es.js +4 -4
- package/dist/ee/signals/lifeline-point.cjs.js +2 -2
- package/dist/ee/signals/lifeline-point.es.js +2 -2
- package/dist/ee/signals/lifeline-row.cjs.js +6 -6
- package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-row.es.js +6 -6
- package/dist/ee/signals/lifeline-row.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +6 -6
- package/dist/ee/signals/noise-detail-panel.es.js +6 -6
- package/dist/ee/signals/sankey-signals-data.cjs.js +9 -5
- package/dist/ee/signals/sankey-signals-data.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals-data.es.js +9 -5
- package/dist/ee/signals/sankey-signals-data.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +21 -12
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +21 -12
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +4 -4
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -4
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +7 -7
- package/dist/ee/signals/settings/trace-signal-settings.es.js +7 -7
- package/dist/ee/signals/signal-delta-column.cjs.js +3 -3
- package/dist/ee/signals/signal-delta-column.es.js +3 -3
- package/dist/ee/signals/signal-lifelines.cjs.js +5 -5
- package/dist/ee/signals/signal-lifelines.es.js +5 -5
- package/dist/ee/signals/signals-error-state.cjs.js +2 -2
- package/dist/ee/signals/signals-error-state.es.js +2 -2
- package/dist/ee/signals/snapshot-summary.cjs.js +15 -0
- package/dist/ee/signals/snapshot-summary.cjs.js.map +1 -0
- package/dist/ee/signals/snapshot-summary.d.ts +1 -0
- package/dist/ee/signals/snapshot-summary.es.js +14 -0
- package/dist/ee/signals/snapshot-summary.es.js.map +1 -0
- package/dist/ee/signals/snapshot-timeline.cjs.js +4 -4
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +4 -4
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +6 -6
- package/dist/ee/signals/sortable-signal-headers.es.js +6 -6
- package/dist/ee/signals/theme-compare.cjs.js +15 -7
- package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare.es.js +15 -7
- package/dist/ee/signals/theme-compare.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +13 -17
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +13 -17
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +7 -7
- package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +7 -7
- package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js +8 -5
- package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.es.js +8 -5
- package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +3 -3
- package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +3 -3
- package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +11 -13
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +11 -13
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +10 -15
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +10 -15
- package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
- package/dist/ee/signals/view-mode-tab.es.js +2 -2
- package/dist/ee/signals.cjs.js +5 -5
- package/dist/ee/signals.es.js +5 -5
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +4 -4
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +4 -4
- package/dist/ee/topics/components/topics-layout.cjs.js +1 -1
- package/dist/ee/topics/components/topics-layout.es.js +1 -1
- package/dist/field-error-id-6ZynvsRO.js +89 -0
- package/dist/field-error-id-6ZynvsRO.js.map +1 -0
- package/dist/field-error-id-VimPQI_b.cjs +100 -0
- package/dist/field-error-id-VimPQI_b.cjs.map +1 -0
- package/dist/filter-bar-chip-DFsbUZ-V.cjs +1545 -0
- package/dist/filter-bar-chip-DFsbUZ-V.cjs.map +1 -0
- package/dist/filter-bar-chip-NBtfDca9.js +1420 -0
- package/dist/filter-bar-chip-NBtfDca9.js.map +1 -0
- package/dist/filter-bar-time-range-CEgdThCy.cjs +83 -0
- package/dist/filter-bar-time-range-CEgdThCy.cjs.map +1 -0
- package/dist/filter-bar-time-range-CHSMbpPd.js +60 -0
- package/dist/filter-bar-time-range-CHSMbpPd.js.map +1 -0
- package/dist/hooks/use-clock.cjs.js +34 -0
- package/dist/hooks/use-clock.cjs.js.map +1 -0
- package/dist/hooks/use-clock.d.ts +1 -0
- package/dist/hooks/use-clock.es.js +33 -0
- package/dist/hooks/use-clock.es.js.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
- package/dist/hooks/use-text-highlight.cjs.js +3 -5
- package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
- package/dist/hooks/use-text-highlight.es.js +1 -3
- package/dist/hooks/use-text-highlight.es.js.map +1 -1
- package/dist/icons/ByteDanceIcon.cjs.js +37 -0
- package/dist/icons/ByteDanceIcon.cjs.js.map +1 -0
- package/dist/icons/ByteDanceIcon.d.ts +1 -0
- package/dist/icons/ByteDanceIcon.es.js +34 -0
- package/dist/icons/ByteDanceIcon.es.js.map +1 -0
- package/dist/icons/CohereBrandIcon.cjs.js +34 -0
- package/dist/icons/CohereBrandIcon.cjs.js.map +1 -0
- package/dist/icons/CohereBrandIcon.d.ts +1 -0
- package/dist/icons/CohereBrandIcon.es.js +31 -0
- package/dist/icons/CohereBrandIcon.es.js.map +1 -0
- package/dist/icons/ConfluenceIcon.cjs.js +18 -0
- package/dist/icons/ConfluenceIcon.cjs.js.map +1 -0
- package/dist/icons/ConfluenceIcon.d.ts +1 -0
- package/dist/icons/ConfluenceIcon.es.js +15 -0
- package/dist/icons/ConfluenceIcon.es.js.map +1 -0
- package/dist/icons/FireworksIcon.cjs.js +22 -0
- package/dist/icons/FireworksIcon.cjs.js.map +1 -0
- package/dist/icons/FireworksIcon.d.ts +1 -0
- package/dist/icons/FireworksIcon.es.js +19 -0
- package/dist/icons/FireworksIcon.es.js.map +1 -0
- package/dist/icons/Icon.cjs.js +1 -1
- package/dist/icons/Icon.es.js +1 -1
- package/dist/icons/LongCatIcon.cjs.js +22 -0
- package/dist/icons/LongCatIcon.cjs.js.map +1 -0
- package/dist/icons/LongCatIcon.d.ts +1 -0
- package/dist/icons/LongCatIcon.es.js +19 -0
- package/dist/icons/LongCatIcon.es.js.map +1 -0
- package/dist/icons/MicrosoftIcon.cjs.js +34 -0
- package/dist/icons/MicrosoftIcon.cjs.js.map +1 -0
- package/dist/icons/MicrosoftIcon.d.ts +1 -0
- package/dist/icons/MicrosoftIcon.es.js +31 -0
- package/dist/icons/MicrosoftIcon.es.js.map +1 -0
- package/dist/icons/MorphIcon.cjs.js +20 -0
- package/dist/icons/MorphIcon.cjs.js.map +1 -0
- package/dist/icons/MorphIcon.d.ts +1 -0
- package/dist/icons/MorphIcon.es.js +17 -0
- package/dist/icons/MorphIcon.es.js.map +1 -0
- package/dist/icons/NotionIcon.cjs.js +18 -0
- package/dist/icons/NotionIcon.cjs.js.map +1 -0
- package/dist/icons/NotionIcon.d.ts +1 -0
- package/dist/icons/NotionIcon.es.js +15 -0
- package/dist/icons/NotionIcon.es.js.map +1 -0
- package/dist/icons/NousResearchIcon.cjs.js +19 -0
- package/dist/icons/NousResearchIcon.cjs.js.map +1 -0
- package/dist/icons/NousResearchIcon.d.ts +1 -0
- package/dist/icons/NousResearchIcon.es.js +16 -0
- package/dist/icons/NousResearchIcon.es.js.map +1 -0
- package/dist/icons/NovaIcon.cjs.js +41 -0
- package/dist/icons/NovaIcon.cjs.js.map +1 -0
- package/dist/icons/NovaIcon.d.ts +1 -0
- package/dist/icons/NovaIcon.es.js +38 -0
- package/dist/icons/NovaIcon.es.js.map +1 -0
- package/dist/icons/PerplexityIcon.cjs.js +21 -0
- package/dist/icons/PerplexityIcon.cjs.js.map +1 -0
- package/dist/icons/PerplexityIcon.d.ts +1 -0
- package/dist/icons/PerplexityIcon.es.js +18 -0
- package/dist/icons/PerplexityIcon.es.js.map +1 -0
- package/dist/icons/SakanaIcon.cjs.js +20 -0
- package/dist/icons/SakanaIcon.cjs.js.map +1 -0
- package/dist/icons/SakanaIcon.d.ts +1 -0
- package/dist/icons/SakanaIcon.es.js +17 -0
- package/dist/icons/SakanaIcon.es.js.map +1 -0
- package/dist/icons/StepFunIcon.cjs.js +35 -0
- package/dist/icons/StepFunIcon.cjs.js.map +1 -0
- package/dist/icons/StepFunIcon.d.ts +1 -0
- package/dist/icons/StepFunIcon.es.js +32 -0
- package/dist/icons/StepFunIcon.es.js.map +1 -0
- package/dist/icons/TencentIcon.cjs.js +21 -0
- package/dist/icons/TencentIcon.cjs.js.map +1 -0
- package/dist/icons/TencentIcon.d.ts +1 -0
- package/dist/icons/TencentIcon.es.js +18 -0
- package/dist/icons/TencentIcon.es.js.map +1 -0
- package/dist/icons/UpstageIcon.cjs.js +36 -0
- package/dist/icons/UpstageIcon.cjs.js.map +1 -0
- package/dist/icons/UpstageIcon.d.ts +1 -0
- package/dist/icons/UpstageIcon.es.js +33 -0
- package/dist/icons/UpstageIcon.es.js.map +1 -0
- package/dist/icons/ZendeskIcon.cjs.js +18 -0
- package/dist/icons/ZendeskIcon.cjs.js.map +1 -0
- package/dist/icons/ZendeskIcon.d.ts +1 -0
- package/dist/icons/ZendeskIcon.es.js +15 -0
- package/dist/icons/ZendeskIcon.es.js.map +1 -0
- package/dist/input-BpnUsQSt.cjs +55 -0
- package/dist/input-BpnUsQSt.cjs.map +1 -0
- package/dist/input-Cyit5ZSc.js +48 -0
- package/dist/input-Cyit5ZSc.js.map +1 -0
- package/dist/input-group-DBCilXjT.cjs +169 -0
- package/dist/input-group-DBCilXjT.cjs.map +1 -0
- package/dist/input-group-NV4ZzKOk.js +120 -0
- package/dist/input-group-NV4ZzKOk.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/lib/form/auto-form.cjs.js +1 -1
- package/dist/lib/form/auto-form.es.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.cjs.js +4 -4
- package/dist/lib/form/components/array-element-wrapper.es.js +4 -4
- package/dist/lib/form/components/array-wrapper.cjs.js +2 -2
- package/dist/lib/form/components/array-wrapper.es.js +2 -2
- package/dist/lib/form/components/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +5 -5
- package/dist/lib/form/components/date-field.es.js +5 -5
- package/dist/lib/form/components/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +2 -2
- package/dist/lib/form/components/form-submit-row.es.js +2 -2
- package/dist/lib/form/components/number-field.cjs.js +1 -1
- package/dist/lib/form/components/number-field.es.js +1 -1
- package/dist/lib/form/components/object-wrapper.cjs.js +3 -3
- package/dist/lib/form/components/object-wrapper.es.js +3 -3
- package/dist/lib/form/components/record-field.cjs.js +2 -2
- package/dist/lib/form/components/record-field.es.js +2 -2
- package/dist/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/string-field.cjs.js +1 -1
- package/dist/lib/form/components/string-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/lib/form/components/union-field.cjs.js +1 -1
- package/dist/lib/form/components/union-field.es.js +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/list-search-DUcIMJTk.js +45 -0
- package/dist/list-search-DUcIMJTk.js.map +1 -0
- package/dist/list-search-yF02rvZt.cjs +50 -0
- package/dist/list-search-yF02rvZt.cjs.map +1 -0
- 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/observability-saved-views-UM8HBJ6J.cjs +304 -0
- package/dist/observability-saved-views-UM8HBJ6J.cjs.map +1 -0
- package/dist/observability-saved-views-lLWk1w0g.js +299 -0
- package/dist/observability-saved-views-lLWk1w0g.js.map +1 -0
- package/dist/page-header-Maytcmgh.js +120 -0
- package/dist/page-header-Maytcmgh.js.map +1 -0
- package/dist/page-header-pZCts_WC.cjs +125 -0
- package/dist/page-header-pZCts_WC.cjs.map +1 -0
- package/dist/popover-BpMi52Tb.js +94 -0
- package/dist/popover-BpMi52Tb.js.map +1 -0
- package/dist/popover-D9AfJmla.cjs +119 -0
- package/dist/popover-D9AfJmla.cjs.map +1 -0
- package/dist/primitives/chart-frame.cjs.js +2 -2
- package/dist/primitives/chart-frame.es.js +2 -2
- package/dist/primitives/chart-time-tick.cjs.js +2 -2
- package/dist/primitives/chart-time-tick.es.js +2 -2
- package/dist/primitives/charts/drag-selection.cjs.js +1 -1
- package/dist/primitives/charts/drag-selection.es.js +1 -1
- package/dist/primitives/menu-item.cjs.js +2 -2
- package/dist/primitives/menu-item.es.js +2 -2
- package/dist/primitives/menu-scroll-area.cjs.js +1 -1
- package/dist/primitives/menu-scroll-area.es.js +1 -1
- package/dist/primitives/resize-handle-indicator.cjs.js +1 -1
- package/dist/primitives/resize-handle-indicator.es.js +1 -1
- package/dist/primitives/trigger-button.cjs.js +2 -2
- package/dist/primitives/trigger-button.es.js +2 -2
- package/dist/property-filter-applied-BBVmWRsC.js +344 -0
- package/dist/property-filter-applied-BBVmWRsC.js.map +1 -0
- package/dist/property-filter-applied-iYDdM1hb.cjs +361 -0
- package/dist/property-filter-applied-iYDdM1hb.cjs.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +4 -4
- package/dist/resize/collapsible-panel.cjs.js.map +1 -1
- package/dist/resize/collapsible-panel.es.js +4 -4
- package/dist/resize/collapsible-panel.es.js.map +1 -1
- package/dist/resize/panel-drawer.cjs.js +3 -3
- package/dist/resize/panel-drawer.es.js +3 -3
- package/dist/resize/panel-icon-button.cjs.js +1 -2
- package/dist/resize/panel-icon-button.cjs.js.map +1 -1
- package/dist/resize/panel-icon-button.es.js +1 -1
- package/dist/resize/separator.cjs.js +1 -1
- package/dist/resize/separator.es.js +1 -1
- package/dist/scroll-area-9-S7wfSs.js +227 -0
- package/dist/scroll-area-9-S7wfSs.js.map +1 -0
- package/dist/scroll-area-BU_TorPW.cjs +246 -0
- package/dist/scroll-area-BU_TorPW.cjs.map +1 -0
- package/dist/select-CeukeSn_.cjs +176 -0
- package/dist/select-CeukeSn_.cjs.map +1 -0
- package/dist/select-dNX9If-s.js +133 -0
- package/dist/select-dNX9If-s.js.map +1 -0
- package/dist/settings-BEw_bg12.js +106 -0
- package/dist/settings-BEw_bg12.js.map +1 -0
- package/dist/settings-Bminohri.cjs +135 -0
- package/dist/settings-Bminohri.cjs.map +1 -0
- package/dist/span-payload-primitives-CL3hlirm.cjs +217 -0
- package/dist/span-payload-primitives-CL3hlirm.cjs.map +1 -0
- package/dist/span-payload-primitives-KxqoXspn.js +164 -0
- package/dist/span-payload-primitives-KxqoXspn.js.map +1 -0
- package/dist/spinner-B9ykw74u.js +63 -0
- package/dist/spinner-B9ykw74u.js.map +1 -0
- package/dist/spinner-oS6q4pwx.cjs +68 -0
- package/dist/spinner-oS6q4pwx.cjs.map +1 -0
- package/dist/src/domains/chat/activity/index.d.ts +1 -3
- package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -2
- package/dist/src/domains/chat/activity/model/activity-words.d.ts +1 -2
- package/dist/src/domains/chat/context/chat-context.d.ts +9 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +2 -1
- package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -1
- package/dist/src/domains/chat/tools/badges/workspace-data-parts.d.ts +6 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +12 -2
- package/dist/src/domains/dashboards/components/connected-widget.d.ts +9 -0
- package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +4 -1
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +30 -3
- package/dist/src/domains/dashboards/components/stateless-widget.d.ts +40 -0
- package/dist/src/domains/dashboards/components/view-gate.d.ts +2 -10
- package/dist/src/domains/dashboards/components/widget-controls.d.ts +27 -0
- package/dist/src/domains/dashboards/components/widget-error.d.ts +7 -2
- package/dist/src/domains/dashboards/hooks/use-dashboard-environment.d.ts +8 -0
- package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +11 -1
- package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +8 -2
- package/dist/src/domains/dashboards/index.d.ts +14 -6
- package/dist/src/domains/dashboards/kinds/kpis/kpis-plan.d.ts +355 -0
- package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/scores/scores-plan.d.ts +358 -0
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +6 -2
- package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +2 -1
- package/dist/src/domains/dashboards/kinds/table/table-plan.d.ts +18 -0
- package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +1 -0
- package/dist/src/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +355 -0
- package/dist/src/domains/dashboards/lib/alert-actions.d.ts +36 -0
- package/dist/src/domains/dashboards/lib/chrome.d.ts +5 -2
- package/dist/src/domains/dashboards/lib/gate.d.ts +65 -0
- package/dist/src/domains/dashboards/lib/pin-actions.d.ts +7 -0
- package/dist/src/domains/dashboards/lib/plan-widget.d.ts +390 -0
- package/dist/src/domains/dashboards/lib/requests.d.ts +22 -0
- package/dist/src/domains/dashboards/lib/scores.d.ts +11 -1
- package/dist/src/domains/dashboards/lib/timeseries.d.ts +6 -1
- package/dist/src/domains/dashboards/lib/values.d.ts +5 -0
- package/dist/src/domains/dashboards/widget-kind.d.ts +118 -2
- package/dist/src/domains/knowledge/components/KnowledgePageDetail.d.ts +7 -1
- package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +4 -1
- package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +3 -0
- package/dist/src/domains/knowledge/components/KnowledgeSourceIcon.d.ts +5 -0
- package/dist/src/domains/knowledge/components/KnowledgeTooltip.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/fitViewport.d.ts +9 -2
- package/dist/src/domains/knowledge/lib/pageAddress.d.ts +10 -0
- package/dist/src/domains/knowledge/lib/pageRefs.d.ts +12 -1
- package/dist/src/domains/knowledge/lib/pagesByRefContext.d.ts +6 -0
- package/dist/src/domains/llm/models-dev-logo-slugs.d.ts +1 -0
- package/dist/src/domains/llm/provider-logo-monogram.d.ts +8 -0
- package/dist/src/domains/llm/provider-logo.d.ts +0 -4
- package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +4 -1
- package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +12 -2
- package/dist/src/domains/mcps/context/mcp-app-host-context-value.d.ts +23 -0
- package/dist/src/domains/mcps/context/mcp-app-host-context.d.ts +7 -0
- package/dist/src/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +5 -0
- package/dist/src/domains/mcps/index.d.ts +3 -0
- package/dist/src/domains/metrics/components/chart-card.d.ts +6 -2
- package/dist/src/domains/metrics/components/kpi-card.d.ts +2 -1
- package/dist/src/domains/metrics/lib/index.d.ts +1 -0
- package/dist/src/domains/metrics/lib/series-colors.d.ts +39 -0
- package/dist/src/domains/traces/components/feedback-options.d.ts +8 -0
- package/dist/src/domains/traces/components/feedback-thread.d.ts +2 -1
- package/dist/src/domains/traces/components/span-feedback-tab.d.ts +4 -2
- package/dist/src/domains/traces/components/span-token-usage.utils.d.ts +1 -1
- package/dist/src/domains/traces/components/thread-view-by-trace.d.ts +4 -1
- package/dist/src/domains/traces/components/trace-feedback-tab.d.ts +4 -2
- package/dist/src/domains/traces/components/trace-span-panel.d.ts +3 -1
- package/dist/src/domains/traces/components/trace-thread-panel.d.ts +3 -1
- package/dist/src/domains/traces/components/traces-explorer/index.d.ts +1 -0
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +2 -0
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-root.d.ts +4 -1
- package/dist/src/domains/workflows/components/workflow-combobox.d.ts +2 -1
- package/dist/src/ds/components/AgentIndicator/paint.d.ts +6 -2
- package/dist/src/ds/components/AgentIndicator/poses/coordination.d.ts +7 -0
- package/dist/src/ds/components/AgentIndicator/poses/documents.d.ts +2 -0
- package/dist/src/ds/components/AgentIndicator/poses/files.d.ts +5 -0
- package/dist/src/ds/components/AgentIndicator/poses/interface.d.ts +8 -0
- package/dist/src/ds/components/AgentIndicator/poses/knowledge-actions.d.ts +6 -0
- package/dist/src/ds/components/AgentIndicator/poses/knowledge.d.ts +2 -0
- package/dist/src/ds/components/AgentIndicator/poses/skills.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/poses/terminal.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/poses/thinking.d.ts +2 -0
- package/dist/src/ds/components/AgentIndicator/poses.d.ts +1 -1
- package/dist/src/ds/components/AgentIndicator/shapes.d.ts +7 -1
- package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +2 -0
- package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +1 -0
- package/dist/src/ds/components/ChatShell/chat-shell-context.d.ts +9 -0
- package/dist/src/ds/components/ChatShell/chat-shell.d.ts +5 -0
- package/dist/src/ds/components/ChatShell/index.d.ts +2 -1
- package/dist/src/ds/components/Combobox/combobox-parts.d.ts +2 -1
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +9 -4
- package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
- package/dist/src/ds/components/CommandPalette/command-palette.d.ts +1 -1
- package/dist/src/ds/components/DateTimePicker/date-picker.d.ts +6 -1
- package/dist/src/ds/components/DateTimePicker/index.d.ts +0 -1
- package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -2
- package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +3 -0
- package/dist/src/ds/components/Message/message-timestamp.d.ts +1 -0
- package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +3 -2
- package/dist/src/ds/components/MessageScroller/message-scroller-geometry.d.ts +1 -1
- package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +2 -8
- package/dist/src/ds/components/MessageScroller/message-scroller-visibility-store.d.ts +8 -0
- package/dist/src/ds/components/Metadata/index.d.ts +2 -0
- package/dist/src/ds/components/Metadata/metadata.d.ts +10 -0
- package/dist/src/ds/components/MetricsCard/index.d.ts +1 -0
- package/dist/src/ds/components/MetricsCard/metrics-card-drag-handle.d.ts +12 -0
- package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -0
- package/dist/src/ds/components/Steps/index.d.ts +1 -0
- package/dist/src/ds/components/Steps/step.d.ts +13 -0
- package/dist/src/ds/components/Steps/steps-context.d.ts +2 -0
- package/dist/src/ds/components/Steps/steps-root.d.ts +18 -0
- package/dist/src/ds/components/Steps/steps.d.ts +7 -0
- package/dist/src/ds/components/Tree/tree-label.d.ts +1 -1
- package/dist/src/ds/components/ai/annotations/annotatable-selection.d.ts +25 -0
- package/dist/src/ds/components/ai/annotations/annotation-comment-card.d.ts +11 -0
- package/dist/src/ds/components/ai/annotations/annotation-comment-popover.d.ts +15 -0
- package/dist/src/ds/components/ai/annotations/annotation-highlights.d.ts +1 -0
- package/dist/src/ds/components/ai/annotations/annotation-marker.d.ts +13 -0
- package/dist/src/ds/components/ai/annotations/annotation-markers.d.ts +9 -0
- package/dist/src/ds/components/ai/annotations/annotation-number.d.ts +4 -0
- package/dist/src/ds/components/ai/annotations/annotation-selection-toolbar.d.ts +7 -0
- package/dist/src/ds/components/ai/annotations/chat-annotations.d.ts +27 -0
- package/dist/src/ds/components/ai/annotations/composer-annotation-list.d.ts +6 -0
- package/dist/src/ds/components/ai/annotations/composer-annotations.d.ts +5 -0
- package/dist/src/ds/components/ai/annotations/format-annotated-message.d.ts +11 -0
- package/dist/src/ds/components/ai/annotations/index.d.ts +5 -0
- package/dist/src/ds/components/ai/annotations/transcript-annotations.d.ts +6 -0
- package/dist/src/ds/components/ai/annotations/use-annotation-placement.d.ts +11 -0
- package/dist/src/ds/components/ai/annotations/use-annotation-selection.d.ts +12 -0
- package/dist/src/ds/components/ai/tool-call/index.d.ts +3 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-body.d.ts +6 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-exit-status.d.ts +11 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-output.d.ts +1 -2
- package/dist/src/ds/components/ai/tool-call/tool-call-view.d.ts +17 -0
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +127 -138
- package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +2 -0
- package/dist/src/ds/components/ai/tool-call/tool-styles.d.ts +10 -0
- package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +2 -2
- package/dist/src/ds/icons/ByteDanceIcon.d.ts +2 -0
- package/dist/src/ds/icons/CohereBrandIcon.d.ts +2 -0
- package/dist/src/ds/icons/ConfluenceIcon.d.ts +2 -0
- package/dist/src/ds/icons/FireworksIcon.d.ts +2 -0
- package/dist/src/ds/icons/LongCatIcon.d.ts +2 -0
- package/dist/src/ds/icons/MicrosoftIcon.d.ts +2 -0
- package/dist/src/ds/icons/MorphIcon.d.ts +2 -0
- package/dist/src/ds/icons/NotionIcon.d.ts +2 -0
- package/dist/src/ds/icons/NousResearchIcon.d.ts +2 -0
- package/dist/src/ds/icons/NovaIcon.d.ts +2 -0
- package/dist/src/ds/icons/PerplexityIcon.d.ts +2 -0
- package/dist/src/ds/icons/SakanaIcon.d.ts +2 -0
- package/dist/src/ds/icons/StepFunIcon.d.ts +2 -0
- package/dist/src/ds/icons/TencentIcon.d.ts +2 -0
- package/dist/src/ds/icons/UpstageIcon.d.ts +2 -0
- package/dist/src/ds/icons/ZendeskIcon.d.ts +2 -0
- package/dist/src/ds/icons/index.d.ts +16 -0
- package/dist/src/ds/tokens/colors.d.ts +12 -0
- package/dist/src/ee/signals/sankey-signals-data.d.ts +2 -2
- package/dist/src/ee/signals/snapshot-summary.d.ts +7 -0
- package/dist/src/ee/signals/snapshot-timeline.d.ts +2 -1
- package/dist/src/hooks/use-clock.d.ts +5 -0
- package/dist/src/lib/resize/collapsible-panel.d.ts +5 -3
- package/dist/src/lib/string.d.ts +1 -0
- package/dist/src/utils/mcp-app-context.d.ts +6 -0
- package/dist/string-CA5M0mj_.js +19 -0
- package/dist/string-CA5M0mj_.js.map +1 -0
- package/dist/string-EyTazW-F.cjs +42 -0
- package/dist/string-EyTazW-F.cjs.map +1 -0
- package/dist/style.css +400 -179
- package/dist/tabbed-container-9yvqEQON.js +125 -0
- package/dist/tabbed-container-9yvqEQON.js.map +1 -0
- package/dist/tabbed-container-Bmk5dgJ4.cjs +130 -0
- package/dist/tabbed-container-Bmk5dgJ4.cjs.map +1 -0
- package/dist/tabs-content-BGkPZ5EQ.js +29 -0
- package/dist/tabs-content-BGkPZ5EQ.js.map +1 -0
- package/dist/tabs-content-D_ic2ZqI.cjs +34 -0
- package/dist/tabs-content-D_ic2ZqI.cjs.map +1 -0
- package/dist/tabs-tab-CJVS0WED.js +349 -0
- package/dist/tabs-tab-CJVS0WED.js.map +1 -0
- package/dist/tabs-tab-Dj2huH5T.cjs +372 -0
- package/dist/tabs-tab-Dj2huH5T.cjs.map +1 -0
- package/dist/toast-api-Cak5N8pT.js +50 -0
- package/dist/toast-api-Cak5N8pT.js.map +1 -0
- package/dist/toast-api-DDcGCbIw.cjs +55 -0
- package/dist/toast-api-DDcGCbIw.cjs.map +1 -0
- package/dist/tokens.cjs.js +12 -0
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +12 -0
- package/dist/tokens.es.js.map +1 -1
- package/dist/tool-approval-C4WNL8VD.cjs +115 -0
- package/dist/tool-approval-C4WNL8VD.cjs.map +1 -0
- package/dist/tool-approval-ZfL3-Vvi.js +98 -0
- package/dist/tool-approval-ZfL3-Vvi.js.map +1 -0
- package/dist/tool-call-BLzYTI-x.js +505 -0
- package/dist/tool-call-BLzYTI-x.js.map +1 -0
- package/dist/tool-call-C4TBpJ6Y.cjs +600 -0
- package/dist/tool-call-C4TBpJ6Y.cjs.map +1 -0
- package/dist/tool-card-BjOV2sXi.js +412 -0
- package/dist/tool-card-BjOV2sXi.js.map +1 -0
- package/dist/tool-card-CO_3C_Bn.cjs +438 -0
- package/dist/tool-card-CO_3C_Bn.cjs.map +1 -0
- package/dist/tool-presentation-C2bYQ7gB.js +874 -0
- package/dist/tool-presentation-C2bYQ7gB.js.map +1 -0
- package/dist/tool-presentation-DPp9h-n2.cjs +915 -0
- package/dist/tool-presentation-DPp9h-n2.cjs.map +1 -0
- package/dist/tooltip-BsExuMO8.cjs +112 -0
- package/dist/tooltip-BsExuMO8.cjs.map +1 -0
- package/dist/tooltip-DJcze2VZ.js +87 -0
- package/dist/tooltip-DJcze2VZ.js.map +1 -0
- package/dist/transcript-divider-DM2HkdeO.js +35 -0
- package/dist/transcript-divider-DM2HkdeO.js.map +1 -0
- package/dist/transcript-divider-DroC3feH.cjs +40 -0
- package/dist/transcript-divider-DroC3feH.cjs.map +1 -0
- package/dist/types-BwdKiX24.js +1909 -0
- package/dist/types-BwdKiX24.js.map +1 -0
- package/dist/types-KjLUPShK.cjs +1922 -0
- package/dist/types-KjLUPShK.cjs.map +1 -0
- package/dist/use-workflow-graph-runtime-B_dKpjUe.js +284 -0
- package/dist/use-workflow-graph-runtime-B_dKpjUe.js.map +1 -0
- package/dist/use-workflow-graph-runtime-D_PpEIQ5.cjs +307 -0
- package/dist/use-workflow-graph-runtime-D_PpEIQ5.cjs.map +1 -0
- package/dist/utils/mcp-app-context.cjs.js +17 -0
- package/dist/utils/mcp-app-context.cjs.js.map +1 -0
- package/dist/utils/mcp-app-context.d.ts +1 -0
- package/dist/utils/mcp-app-context.es.js +15 -0
- package/dist/utils/mcp-app-context.es.js.map +1 -0
- package/dist/utils/string.cjs.js +2 -1
- package/dist/utils/string.es.js +1 -1
- package/dist/utils/toast.cjs.js +1 -1
- package/dist/utils/toast.es.js +1 -1
- package/oxlint/copy-rules.d.ts +4 -0
- package/oxlint/copy-rules.js +29 -0
- package/oxlint/copy-sources.js +223 -0
- package/oxlint/index.d.ts +5 -0
- package/oxlint/index.js +17 -0
- package/package.json +13 -10
- package/theme/data-viz.css +33 -0
- package/dist/AgentIndicator-Bs2S8AWJ.js +0 -847
- package/dist/AgentIndicator-Bs2S8AWJ.js.map +0 -1
- package/dist/AgentIndicator-to30W73z.cjs +0 -864
- package/dist/AgentIndicator-to30W73z.cjs.map +0 -1
- package/dist/AttachmentCard-CciBqu7E.cjs +0 -66
- package/dist/AttachmentCard-CciBqu7E.cjs.map +0 -1
- package/dist/AttachmentCard-DbGp7TYl.js +0 -61
- package/dist/AttachmentCard-DbGp7TYl.js.map +0 -1
- package/dist/Avatar-Dj8aP7OI.js +0 -146
- package/dist/Avatar-Dj8aP7OI.js.map +0 -1
- package/dist/Avatar-Iiqjad9K.cjs +0 -151
- package/dist/Avatar-Iiqjad9K.cjs.map +0 -1
- package/dist/Badge-DZ6r6bcw.cjs +0 -154
- package/dist/Badge-DZ6r6bcw.cjs.map +0 -1
- package/dist/Badge-aVu5iGAF.js +0 -149
- package/dist/Badge-aVu5iGAF.js.map +0 -1
- package/dist/Button-CLXTbAY8.js +0 -233
- package/dist/Button-CLXTbAY8.js.map +0 -1
- package/dist/Button-DLcMcuUL.cjs +0 -276
- package/dist/Button-DLcMcuUL.cjs.map +0 -1
- package/dist/Card-C6iEBgVq.cjs +0 -134
- package/dist/Card-C6iEBgVq.cjs.map +0 -1
- package/dist/Card-LU1aWO7U.js +0 -91
- package/dist/Card-LU1aWO7U.js.map +0 -1
- package/dist/CodeEditor-CLzs0yVc.cjs +0 -515
- package/dist/CodeEditor-CLzs0yVc.cjs.map +0 -1
- package/dist/CodeEditor-COnz9c6B.js +0 -466
- package/dist/CodeEditor-COnz9c6B.js.map +0 -1
- package/dist/Comment-0n98b_f_.js +0 -317
- package/dist/Comment-0n98b_f_.js.map +0 -1
- package/dist/Comment-Cg0f7eLa.cjs +0 -412
- package/dist/Comment-Cg0f7eLa.cjs.map +0 -1
- package/dist/Composer-BcueJvdX.cjs +0 -441
- package/dist/Composer-BcueJvdX.cjs.map +0 -1
- package/dist/Composer-D1gF-0jZ.js +0 -352
- package/dist/Composer-D1gF-0jZ.js.map +0 -1
- package/dist/DataCodeSection-CFxXsQWH.cjs +0 -236
- package/dist/DataCodeSection-CFxXsQWH.cjs.map +0 -1
- package/dist/DataCodeSection-PY9XEg2C.js +0 -231
- package/dist/DataCodeSection-PY9XEg2C.js.map +0 -1
- package/dist/DataDetailsPanel-CohEKPm4.js +0 -180
- package/dist/DataDetailsPanel-CohEKPm4.js.map +0 -1
- package/dist/DataDetailsPanel-DiyjEXqK.cjs +0 -185
- package/dist/DataDetailsPanel-DiyjEXqK.cjs.map +0 -1
- package/dist/DataKeysAndValues-DsH6AbAo.cjs +0 -128
- package/dist/DataKeysAndValues-DsH6AbAo.cjs.map +0 -1
- package/dist/DataKeysAndValues-PwOmGxyp.js +0 -123
- package/dist/DataKeysAndValues-PwOmGxyp.js.map +0 -1
- package/dist/DataList-CUhRQAv6.js +0 -408
- package/dist/DataList-CUhRQAv6.js.map +0 -1
- package/dist/DataList-Cj0mfk19.cjs +0 -431
- package/dist/DataList-Cj0mfk19.cjs.map +0 -1
- package/dist/DataPanel-Coc9h35I.cjs +0 -298
- package/dist/DataPanel-Coc9h35I.cjs.map +0 -1
- package/dist/DataPanel-IgB9D5PO.js +0 -292
- package/dist/DataPanel-IgB9D5PO.js.map +0 -1
- package/dist/Dialog-BvWF9HE-.cjs +0 -424
- package/dist/Dialog-BvWF9HE-.cjs.map +0 -1
- package/dist/Dialog-DaWtxwd9.js +0 -334
- package/dist/Dialog-DaWtxwd9.js.map +0 -1
- package/dist/EmptyState-DxDHlYqD.cjs +0 -1524
- package/dist/EmptyState-DxDHlYqD.cjs.map +0 -1
- package/dist/EmptyState-P-Gy898T.js +0 -1511
- package/dist/EmptyState-P-Gy898T.js.map +0 -1
- package/dist/ErrorBoundary-B5GjmA6V.cjs +0 -138
- package/dist/ErrorBoundary-B5GjmA6V.cjs.map +0 -1
- package/dist/ErrorBoundary-Cat3KU86.js +0 -131
- package/dist/ErrorBoundary-Cat3KU86.js.map +0 -1
- package/dist/FilterBar-BSP2UTjc.cjs +0 -903
- package/dist/FilterBar-BSP2UTjc.cjs.map +0 -1
- package/dist/FilterBar-PSQ1OwqH.js +0 -862
- package/dist/FilterBar-PSQ1OwqH.js.map +0 -1
- package/dist/LogsDataList-BI2C5OJz.js +0 -96
- package/dist/LogsDataList-BI2C5OJz.js.map +0 -1
- package/dist/LogsDataList-CCIfUPGo.cjs +0 -101
- package/dist/LogsDataList-CCIfUPGo.cjs.map +0 -1
- package/dist/MarkdownRenderer-CI30RqdB.js +0 -481
- package/dist/MarkdownRenderer-CI30RqdB.js.map +0 -1
- package/dist/MarkdownRenderer-y65WGBhC.cjs +0 -490
- package/dist/MarkdownRenderer-y65WGBhC.cjs.map +0 -1
- package/dist/Message-CWzi5F_Q.js +0 -76
- package/dist/Message-CWzi5F_Q.js.map +0 -1
- package/dist/Message-jj56lxNL.cjs +0 -105
- package/dist/Message-jj56lxNL.cjs.map +0 -1
- package/dist/MessageScroller-CGsfTd1Z.cjs +0 -952
- package/dist/MessageScroller-CGsfTd1Z.cjs.map +0 -1
- package/dist/MessageScroller-DvaKlm4O.js +0 -879
- package/dist/MessageScroller-DvaKlm4O.js.map +0 -1
- package/dist/MetricsCard-BEwiS7Pe.cjs +0 -216
- package/dist/MetricsCard-BEwiS7Pe.cjs.map +0 -1
- package/dist/MetricsCard-ua6C6b8a.js +0 -211
- package/dist/MetricsCard-ua6C6b8a.js.map +0 -1
- package/dist/MetricsKpiCard-By_-sagx.cjs +0 -221
- package/dist/MetricsKpiCard-By_-sagx.cjs.map +0 -1
- package/dist/MetricsKpiCard-OHbAElTl.js +0 -216
- package/dist/MetricsKpiCard-OHbAElTl.js.map +0 -1
- package/dist/MetricsLineChart-4SwxBbQx.js +0 -262
- package/dist/MetricsLineChart-4SwxBbQx.js.map +0 -1
- package/dist/MetricsLineChart-tZxsauau.cjs +0 -279
- package/dist/MetricsLineChart-tZxsauau.cjs.map +0 -1
- package/dist/MetricsStackedBarChart-CDLE76IB.cjs +0 -313
- package/dist/MetricsStackedBarChart-CDLE76IB.cjs.map +0 -1
- package/dist/MetricsStackedBarChart-D2QyS4-z.js +0 -308
- package/dist/MetricsStackedBarChart-D2QyS4-z.js.map +0 -1
- package/dist/MetricsTable-BSl81oNe.cjs +0 -332
- package/dist/MetricsTable-BSl81oNe.cjs.map +0 -1
- package/dist/MetricsTable-DID6LRoP.js +0 -327
- package/dist/MetricsTable-DID6LRoP.js.map +0 -1
- package/dist/Notice-C-8oOZZF.js +0 -112
- package/dist/Notice-C-8oOZZF.js.map +0 -1
- package/dist/Notice-JZ7SW7q6.cjs +0 -117
- package/dist/Notice-JZ7SW7q6.cjs.map +0 -1
- package/dist/PageLayout-CyM_Op3c.js +0 -49
- package/dist/PageLayout-CyM_Op3c.js.map +0 -1
- package/dist/PageLayout-DFRzcnkf.cjs +0 -54
- package/dist/PageLayout-DFRzcnkf.cjs.map +0 -1
- package/dist/SankeyChart-DHeJ45KN.cjs +0 -921
- package/dist/SankeyChart-DHeJ45KN.cjs.map +0 -1
- package/dist/SankeyChart-E68mYEs2.js +0 -856
- package/dist/SankeyChart-E68mYEs2.js.map +0 -1
- package/dist/Section-CWFQ8jNS.js +0 -113
- package/dist/Section-CWFQ8jNS.js.map +0 -1
- package/dist/Section-CyGQZR7U.cjs +0 -130
- package/dist/Section-CyGQZR7U.cjs.map +0 -1
- package/dist/ShareBar-3Z5np-NY.cjs +0 -456
- package/dist/ShareBar-3Z5np-NY.cjs.map +0 -1
- package/dist/ShareBar-D6dWWl4C.js +0 -451
- package/dist/ShareBar-D6dWWl4C.js.map +0 -1
- package/dist/Tree-BplQcY8u.cjs +0 -444
- package/dist/Tree-BplQcY8u.cjs.map +0 -1
- package/dist/Tree-CoLkeBCL.js +0 -437
- package/dist/Tree-CoLkeBCL.js.map +0 -1
- package/dist/Txt-BM6TVV_c.js +0 -21
- package/dist/Txt-BM6TVV_c.js.map +0 -1
- package/dist/Txt-BnoSqxKE.cjs +0 -26
- package/dist/Txt-BnoSqxKE.cjs.map +0 -1
- package/dist/Workflow-C3SlEdP-.js +0 -1315
- package/dist/Workflow-C3SlEdP-.js.map +0 -1
- package/dist/Workflow-DSWQ-ROz.cjs +0 -1466
- package/dist/Workflow-DSWQ-ROz.cjs.map +0 -1
- package/dist/activity-C8Ql81WM.js +0 -450
- package/dist/activity-C8Ql81WM.js.map +0 -1
- package/dist/activity-CcQZeDYi.cjs +0 -581
- package/dist/activity-CcQZeDYi.cjs.map +0 -1
- package/dist/ask-user-C1p2PEYe.cjs +0 -495
- package/dist/ask-user-C1p2PEYe.cjs.map +0 -1
- package/dist/ask-user-DPznrqGO.js +0 -412
- package/dist/ask-user-DPznrqGO.js.map +0 -1
- package/dist/buttons-group-Dc6R7YSs.cjs +0 -48
- package/dist/buttons-group-Dc6R7YSs.cjs.map +0 -1
- package/dist/buttons-group-DkFlnMiL.js +0 -35
- package/dist/buttons-group-DkFlnMiL.js.map +0 -1
- package/dist/clear-filters-button-Buc973vw.cjs +0 -27
- package/dist/clear-filters-button-Buc973vw.cjs.map +0 -1
- package/dist/clear-filters-button-CNrRuHOY.js +0 -22
- package/dist/clear-filters-button-CNrRuHOY.js.map +0 -1
- package/dist/combobox-D21no8t5.js +0 -302
- package/dist/combobox-D21no8t5.js.map +0 -1
- package/dist/combobox-DIT_6xiG.cjs +0 -309
- package/dist/combobox-DIT_6xiG.cjs.map +0 -1
- package/dist/combobox-parts-C4phOq4t.cjs +0 -567
- package/dist/combobox-parts-C4phOq4t.cjs.map +0 -1
- package/dist/combobox-parts-D90ir0Py.js +0 -428
- package/dist/combobox-parts-D90ir0Py.js.map +0 -1
- package/dist/context-menu-DTFPCyae.cjs +0 -211
- package/dist/context-menu-DTFPCyae.cjs.map +0 -1
- package/dist/context-menu-Dv0NU0oM.js +0 -204
- package/dist/context-menu-Dv0NU0oM.js.map +0 -1
- package/dist/copy-button-BXrbevLn.js +0 -25
- package/dist/copy-button-BXrbevLn.js.map +0 -1
- package/dist/copy-button-DJAQ6_3o.cjs +0 -30
- package/dist/copy-button-DJAQ6_3o.cjs.map +0 -1
- package/dist/data-list-C4Vmq5HA.cjs +0 -1003
- package/dist/data-list-C4Vmq5HA.cjs.map +0 -1
- package/dist/data-list-DHCOoLmj.js +0 -866
- package/dist/data-list-DHCOoLmj.js.map +0 -1
- package/dist/date-time-range-picker-CWGjoR3j.cjs +0 -348
- package/dist/date-time-range-picker-CWGjoR3j.cjs.map +0 -1
- package/dist/date-time-range-picker-CdSiXwB4.js +0 -343
- package/dist/date-time-range-picker-CdSiXwB4.js.map +0 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +0 -29
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js.map +0 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +0 -28
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js.map +0 -1
- package/dist/domains/dashboards/hooks/use-scorers.cjs.js +0 -41
- package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +0 -1
- package/dist/domains/dashboards/hooks/use-scorers.d.ts +0 -1
- package/dist/domains/dashboards/hooks/use-scorers.es.js +0 -40
- package/dist/domains/dashboards/hooks/use-scorers.es.js.map +0 -1
- package/dist/dropdown-menu-B4jY3J9e.js +0 -234
- package/dist/dropdown-menu-B4jY3J9e.js.map +0 -1
- package/dist/dropdown-menu-BETTTPBB.cjs +0 -241
- package/dist/dropdown-menu-BETTTPBB.cjs.map +0 -1
- package/dist/field-error-id-DBSuJ3HM.js +0 -89
- package/dist/field-error-id-DBSuJ3HM.js.map +0 -1
- package/dist/field-error-id-nGAF0330.cjs +0 -100
- package/dist/field-error-id-nGAF0330.cjs.map +0 -1
- package/dist/filter-bar-chip-CABeKrtf.js +0 -1420
- package/dist/filter-bar-chip-CABeKrtf.js.map +0 -1
- package/dist/filter-bar-chip-Cg-UbIwP.cjs +0 -1545
- package/dist/filter-bar-chip-Cg-UbIwP.cjs.map +0 -1
- package/dist/filter-bar-time-range-qlV8p7hp.js +0 -60
- package/dist/filter-bar-time-range-qlV8p7hp.js.map +0 -1
- package/dist/filter-bar-time-range-zdM024JD.cjs +0 -83
- package/dist/filter-bar-time-range-zdM024JD.cjs.map +0 -1
- package/dist/input-0l1uzOBZ.js +0 -48
- package/dist/input-0l1uzOBZ.js.map +0 -1
- package/dist/input-2hRXcZIu.cjs +0 -55
- package/dist/input-2hRXcZIu.cjs.map +0 -1
- package/dist/input-group-DVJLZDBL.cjs +0 -169
- package/dist/input-group-DVJLZDBL.cjs.map +0 -1
- package/dist/input-group-QKKV_ouF.js +0 -120
- package/dist/input-group-QKKV_ouF.js.map +0 -1
- package/dist/list-search-BtRno5As.cjs +0 -50
- package/dist/list-search-BtRno5As.cjs.map +0 -1
- package/dist/list-search-CkhsTFdG.js +0 -45
- package/dist/list-search-CkhsTFdG.js.map +0 -1
- package/dist/observability-saved-views-CjKTEp1V.js +0 -299
- package/dist/observability-saved-views-CjKTEp1V.js.map +0 -1
- package/dist/observability-saved-views-Daizz4tU.cjs +0 -304
- package/dist/observability-saved-views-Daizz4tU.cjs.map +0 -1
- package/dist/page-header-BB6yjtce.cjs +0 -125
- package/dist/page-header-BB6yjtce.cjs.map +0 -1
- package/dist/page-header-BykBsHUy.js +0 -120
- package/dist/page-header-BykBsHUy.js.map +0 -1
- package/dist/popover-BJqa6Hz6.cjs +0 -119
- package/dist/popover-BJqa6Hz6.cjs.map +0 -1
- package/dist/popover-CzHvTPk2.js +0 -94
- package/dist/popover-CzHvTPk2.js.map +0 -1
- package/dist/property-filter-applied--U5EZdaA.js +0 -344
- package/dist/property-filter-applied--U5EZdaA.js.map +0 -1
- package/dist/property-filter-applied-BkkIObRq.cjs +0 -361
- package/dist/property-filter-applied-BkkIObRq.cjs.map +0 -1
- package/dist/scroll-area-BP4gPZ4G.cjs +0 -246
- package/dist/scroll-area-BP4gPZ4G.cjs.map +0 -1
- package/dist/scroll-area-C226l0v0.js +0 -227
- package/dist/scroll-area-C226l0v0.js.map +0 -1
- package/dist/select-BdIZEdcy.js +0 -133
- package/dist/select-BdIZEdcy.js.map +0 -1
- package/dist/select-Dg8L5ROX.cjs +0 -176
- package/dist/select-Dg8L5ROX.cjs.map +0 -1
- package/dist/settings-BaUeaO96.js +0 -106
- package/dist/settings-BaUeaO96.js.map +0 -1
- package/dist/settings-CUVqhBbf.cjs +0 -135
- package/dist/settings-CUVqhBbf.cjs.map +0 -1
- package/dist/span-payload-primitives-CKKIAVPJ.js +0 -164
- package/dist/span-payload-primitives-CKKIAVPJ.js.map +0 -1
- package/dist/span-payload-primitives-D4tHWN2W.cjs +0 -217
- package/dist/span-payload-primitives-D4tHWN2W.cjs.map +0 -1
- package/dist/spinner-C8ZxiA5C.cjs +0 -68
- package/dist/spinner-C8ZxiA5C.cjs.map +0 -1
- package/dist/spinner-CnLgLj9R.js +0 -63
- package/dist/spinner-CnLgLj9R.js.map +0 -1
- package/dist/src/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -9
- package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +0 -66
- package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +0 -7
- package/dist/string-CNKDIc_4.js +0 -16
- package/dist/string-CNKDIc_4.js.map +0 -1
- package/dist/string-DdJJdCv2.cjs +0 -33
- package/dist/string-DdJJdCv2.cjs.map +0 -1
- package/dist/tabbed-container-B4lCBgRP.cjs +0 -130
- package/dist/tabbed-container-B4lCBgRP.cjs.map +0 -1
- package/dist/tabbed-container-DI1GI1Qv.js +0 -125
- package/dist/tabbed-container-DI1GI1Qv.js.map +0 -1
- package/dist/tabs-content-CmXe5ML0.cjs +0 -34
- package/dist/tabs-content-CmXe5ML0.cjs.map +0 -1
- package/dist/tabs-content-D__B9hd-.js +0 -29
- package/dist/tabs-content-D__B9hd-.js.map +0 -1
- package/dist/tabs-tab-CYTZevdV.js +0 -349
- package/dist/tabs-tab-CYTZevdV.js.map +0 -1
- package/dist/tabs-tab-DGwfHVDr.cjs +0 -372
- package/dist/tabs-tab-DGwfHVDr.cjs.map +0 -1
- package/dist/toast-api-D_rrRhNG.js +0 -50
- package/dist/toast-api-D_rrRhNG.js.map +0 -1
- package/dist/toast-api-qtkOucy2.cjs +0 -55
- package/dist/toast-api-qtkOucy2.cjs.map +0 -1
- package/dist/tool-approval-CJvPDL7D.cjs +0 -115
- package/dist/tool-approval-CJvPDL7D.cjs.map +0 -1
- package/dist/tool-approval-DyN11vFA.js +0 -98
- package/dist/tool-approval-DyN11vFA.js.map +0 -1
- package/dist/tool-call-DBn14X-3.cjs +0 -497
- package/dist/tool-call-DBn14X-3.cjs.map +0 -1
- package/dist/tool-call-Dsj43lvJ.js +0 -426
- package/dist/tool-call-Dsj43lvJ.js.map +0 -1
- package/dist/tool-card-BOLXeKIp.cjs +0 -428
- package/dist/tool-card-BOLXeKIp.cjs.map +0 -1
- package/dist/tool-card-HZ5bm7ue.js +0 -402
- package/dist/tool-card-HZ5bm7ue.js.map +0 -1
- package/dist/tool-presentation-CvibOP1J.js +0 -256
- package/dist/tool-presentation-CvibOP1J.js.map +0 -1
- package/dist/tool-presentation-D6nzVruN.cjs +0 -291
- package/dist/tool-presentation-D6nzVruN.cjs.map +0 -1
- package/dist/tooltip-BiRLT3Th.cjs +0 -112
- package/dist/tooltip-BiRLT3Th.cjs.map +0 -1
- package/dist/tooltip-HzcLyGtV.js +0 -87
- package/dist/tooltip-HzcLyGtV.js.map +0 -1
- package/dist/transcript-divider-CQ6sc3nt.cjs +0 -46
- package/dist/transcript-divider-CQ6sc3nt.cjs.map +0 -1
- package/dist/transcript-divider-CvdgElIC.js +0 -41
- package/dist/transcript-divider-CvdgElIC.js.map +0 -1
- package/dist/use-workflow-graph-runtime-BKNhOKsH.js +0 -284
- package/dist/use-workflow-graph-runtime-BKNhOKsH.js.map +0 -1
- package/dist/use-workflow-graph-runtime-DYao-08R.cjs +0 -307
- package/dist/use-workflow-graph-runtime-DYao-08R.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgePageExplorer.cjs.js","names":["useState","useMemo","_Fragment","KnowledgeNoteItem","mentionPopupPlacement","Txt","X","EmptyState","KnowledgePageDetail","useStableWhile","useCallback","lazyGraph","knowledgePageRefIndex","bodyLinkRefs","bodyLinkEdges","isChildPlaceholder","isRestCircle","isScopeGroup","useRef","useIsMobile","KnowledgePageTree","ArrowLeft","Link2","Hash","KnowledgePageGraph"],"sources":["../../../../src/domains/knowledge/components/KnowledgePageExplorer.tsx"],"sourcesContent":["import { ArrowLeft, Hash, Link2, X } from 'lucide-react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { REST_BATCH, isChildPlaceholder, isRestCircle, isScopeGroup, lazyGraph } from '../lib/graphShape';\nimport { bodyLinkEdges, bodyLinkRefs, knowledgePageRefIndex } from '../lib/pageRefs';\nimport { childCountLabel } from '../lib/pageTree';\nimport { mentionPopupPlacement } from '../lib/popupPlacement';\nimport { useStableWhile } from '../lib/useStableWhile';\n\nimport type {\n KnowledgePageActivityPayload,\n KnowledgeNotePayload,\n KnowledgePageEdge,\n KnowledgePagePayload,\n KnowledgePinPayload,\n KnowledgeScopeGrantPayload,\n} from '../pageTypes';\nimport { KnowledgeNoteItem, KnowledgePageDetail } from './KnowledgePageDetail';\nimport { KnowledgePageGraph } from './KnowledgePageGraph';\nimport { KNOWLEDGE_TREE_ROOT, KnowledgePageTree } from './KnowledgePageTree';\n\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { Txt } from '@/ds/components/Txt';\nimport { useIsMobile } from '@/hooks/use-is-mobile';\n\n/** `tree` is only a choice below `lg`; wider screens always show the tree beside the graph or the page. */\nexport type KnowledgeExplorerView = 'tree' | 'graph' | 'page';\n\n/** The bounded page graph a host loads. Without `useTreeLevels`, its pages also feed the tree. */\nexport interface KnowledgeExplorerGraph {\n pages: KnowledgePagePayload[];\n edges: KnowledgePageEdge[];\n pinnedIds: string[];\n /** Access grants between scopes; hosts whose server doesn't send them leave this out. */\n grants?: KnowledgeScopeGrantPayload[];\n truncated: boolean;\n}\n\nexport interface KnowledgeExplorerPageDetail {\n page: KnowledgePagePayload;\n notes: KnowledgeNotePayload[];\n /** Cursor for the page's next notes. */\n notesNextCursor?: string;\n pin?: KnowledgePinPayload | null;\n /** Ancestors and referenced pages, which may sit outside the loaded graph. */\n ancestors: KnowledgePagePayload[];\n related: KnowledgePagePayload[];\n /** Notes on other pages that mention this one. */\n mentionedBy?: KnowledgeNotePayload[];\n}\n\n/** One level of the tree: a parent's child scopes then its child pages, paged. */\nexport interface KnowledgeExplorerTreeLevel {\n pages: KnowledgePagePayload[];\n nextCursor?: string;\n}\n\nexport interface KnowledgeExplorerActivity {\n events: KnowledgePageActivityPayload[];\n}\n\nexport interface KnowledgeExplorerQueryState<T> {\n data?: T;\n isPending: boolean;\n isError: boolean;\n error: Error | null;\n}\n\nexport interface KnowledgeExplorerPageLinks {\n edges: Array<{ fromPageId: string; toPageId: string; kind: 'body' | 'note'; count: number }>;\n pages: KnowledgePagePayload[];\n truncated: boolean;\n}\n\n/** One request for a tree level: `parentId: null` for the root scopes. */\nexport interface KnowledgeExplorerTreeRequest {\n parentId: string | null;\n cursor?: string;\n}\n\n/** Page ids are ULIDs; a bare `[[id]]` is askable, a bare `[[Name]]` is not. */\nconst PAGE_ID_SHAPE = /^[0-9A-Z]{26}$/;\nconst JUST_CREATED_MS = 60_000;\nconst isJustCreated = (page: KnowledgePagePayload) => Date.now() - Date.parse(page.createdAt) < JUST_CREATED_MS;\n\n/**\n * Host data hooks. Each host binds them to its own routes (Studio to the Mastra client, Factory to its\n * project-scoped routes), so the explorer never knows a URL or an id outside the page ids it shows.\n * Pass the same functions every render: they are called as hooks.\n */\nexport interface KnowledgeExplorerSource {\n /** One page; `noteCursor` fetches a later page of its notes. Disabled when `pageId` is null. */\n usePage: (pageId: string | null, noteCursor?: string) => KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>;\n useSearch: (query: string) => { data?: { results: Array<{ page: KnowledgePagePayload }> } };\n /** Tree levels, one result per request in order (e.g. `useQueries`). Enables the lazily loaded tree and child pages. */\n useTreeLevels?: (\n requests: KnowledgeExplorerTreeRequest[],\n ) => Array<KnowledgeExplorerQueryState<KnowledgeExplorerTreeLevel>>;\n /**\n * Pages a link reaches, by id or `[[ref]]` (`scope#path`), one result per entry in order (e.g.\n * `useQueries`). Lets the focused page draw links to pages the graph hasn't loaded; without it only\n * links to loaded pages are drawn. A key the host can't resolve should come back as an error.\n */\n useLinkedPages?: (keys: string[]) => Array<KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>>;\n /**\n * Exact links into and out of each page (by `[[ref]]` or note mention), counted over the whole store, for\n * the pages the graph draws. Without it, or when it errors (a server with no link index answers 501), the\n * graph counts only the links between pages it has loaded.\n */\n useLinkCounts?: (pageIds: string[]) => KnowledgeExplorerQueryState<Record<string, { in: number; out: number }>>;\n /** One page's links with the pages at their other ends; fetched for the page under the pointer. Null disables it. */\n usePageLinks?: (pageId: string | null) => KnowledgeExplorerQueryState<KnowledgeExplorerPageLinks>;\n /** A page's recent activity, newest first. */\n useActivity?: (pageId: string) => KnowledgeExplorerQueryState<KnowledgeExplorerActivity>;\n}\n\nexport interface KnowledgePageExplorerProps {\n graph: KnowledgeExplorerGraph;\n source: KnowledgeExplorerSource;\n selectedPageId: string | null;\n /** `null` clears the selection: a click on empty graph canvas. */\n onSelect: (pageId: string | null) => void;\n view: KnowledgeExplorerView;\n onViewChange: (view: KnowledgeExplorerView) => void;\n}\n\nconst MIN_SEARCH_LENGTH = 2;\n/** Links of the selected page drawn at most in each direction; the rest are counted. */\nexport const FOCUS_LINK_CAP = 20;\n/** Keys fetched per direction: a page reached by a note and by the body is two keys but one link, so this is twice the cap. */\nconst FOCUS_LINK_FETCH_CAP = FOCUS_LINK_CAP * 2;\n\nfunction edgeKey(edge: KnowledgePageEdge) {\n return `${edge.kind}\\u0000${edge.source}\\u0000${edge.target}`;\n}\n\n/**\n * The links to draw, and per page how many of its links (into it, out of it) go undrawn. With all links\n * on, every link between drawn pages shows. Otherwise only the selected page's, up to\n * {@link FOCUS_LINK_CAP} each way; with nothing selected, none.\n */\nfunction visibleLinks(\n known: KnowledgePageEdge[],\n drawn: ReadonlyMap<string, KnowledgePagePayload>,\n selectedId: string | null,\n all: boolean,\n): { edges: KnowledgePageEdge[]; hidden: Map<string, { in: number; out: number }>; more: { in: number; out: number } } {\n const unique = new Map<string, KnowledgePageEdge>();\n for (const edge of known)\n if (edge.source !== edge.target && !unique.has(edgeKey(edge))) unique.set(edgeKey(edge), edge);\n // One link per pair and direction for counting, whether a note or a body makes it.\n const pairs = new Map<string, KnowledgePageEdge>();\n for (const edge of unique.values()) pairs.set(`${edge.source}\\u0000${edge.target}`, edge);\n const shown = new Set<string>();\n const more = { in: 0, out: 0 };\n if (all) {\n for (const [key, edge] of unique) if (drawn.has(edge.source) && drawn.has(edge.target)) shown.add(key);\n } else if (selectedId) {\n // The cap counts pages linked, not lines: a page reached by a note and by the body is one link.\n const admitted = new Set<string>();\n const over = new Set<string>();\n let ins = 0;\n let outs = 0;\n for (const [key, edge] of unique) {\n if (!drawn.has(edge.source) || !drawn.has(edge.target)) continue;\n const side = edge.source === selectedId ? 'out' : edge.target === selectedId ? 'in' : null;\n if (!side) continue;\n const pair = `${edge.source}\\u0000${edge.target}`;\n if (!admitted.has(pair) && !over.has(pair)) {\n if ((side === 'out' ? outs : ins) >= FOCUS_LINK_CAP) {\n over.add(pair);\n more[side]++;\n } else {\n admitted.add(pair);\n if (side === 'out') outs++;\n else ins++;\n }\n }\n if (admitted.has(pair)) shown.add(key);\n }\n }\n const drawnPairs = new Set(\n [...shown].map(key => {\n const edge = unique.get(key) as KnowledgePageEdge;\n return `${edge.source}\\u0000${edge.target}`;\n }),\n );\n const hidden = new Map<string, { in: number; out: number }>();\n const bump = (id: string, side: 'in' | 'out') => {\n if (!drawn.has(id)) return;\n const counts = hidden.get(id) ?? { in: 0, out: 0 };\n counts[side]++;\n hidden.set(id, counts);\n };\n for (const [pair, edge] of pairs) {\n if (drawnPairs.has(pair)) continue;\n bump(edge.source, 'out');\n bump(edge.target, 'in');\n }\n return { edges: [...unique.values()].filter(edge => shown.has(edgeKey(edge))), hidden, more };\n}\n/** The round buttons floating over the graph: muted when off or idle, a solid fill when pressed. */\nconst FLOAT_BUTTON =\n 'flex size-9 cursor-pointer items-center justify-center rounded-full border border-border bg-card text-muted-foreground shadow-overlay transition-colors hover:bg-fill-subtle hover:text-foreground aria-pressed:border-transparent aria-pressed:bg-fill-inverse aria-pressed:text-background aria-pressed:hover:bg-fill-inverse disabled:cursor-not-allowed disabled:opacity-40 disabled:hover:bg-card';\n\n/** How many earlier focuses Back remembers. */\nconst FOCUS_HISTORY_CAP = 50;\nconst noTreeLevels = () => [];\nconst noKeys: string[] = [];\nconst noLinkedPages = (): Array<KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>> => [];\nconst noLinkQuery = <T,>(): KnowledgeExplorerQueryState<T> => ({ isPending: false, isError: false, error: null });\n/** Longest a pointer rests on a page before its links are fetched, so sweeping across the graph fetches none. */\nconst HOVER_FETCH_DELAY_MS = 150;\n\n/** Per page, the links into and out of it that none of `shown` draws, given the exact totals. */\nfunction undrawnLinks(\n exact: ReadonlyMap<string, { in: number; out: number }>,\n shown: readonly KnowledgePageEdge[],\n): Map<string, { in: number; out: number }> {\n const drawn = new Map<string, { in: number; out: number }>();\n const pairs = new Set<string>();\n for (const edge of shown) {\n if (edge.kind === 'parent' || pairs.has(`${edge.source}\\u0000${edge.target}`)) continue;\n pairs.add(`${edge.source}\\u0000${edge.target}`);\n const out = drawn.get(edge.source) ?? { in: 0, out: 0 };\n out.out++;\n drawn.set(edge.source, out);\n const into = drawn.get(edge.target) ?? { in: 0, out: 0 };\n into.in++;\n drawn.set(edge.target, into);\n }\n const hidden = new Map<string, { in: number; out: number }>();\n for (const [id, total] of exact) {\n const seen = drawn.get(id) ?? { in: 0, out: 0 };\n hidden.set(id, { in: Math.max(0, total.in - seen.in), out: Math.max(0, total.out - seen.out) });\n }\n return hidden;\n}\nconst noActivity = (): KnowledgeExplorerQueryState<KnowledgeExplorerActivity> => ({\n isPending: false,\n isError: false,\n error: null,\n});\n\nfunction isNotFound(error: unknown): boolean {\n return !!error && typeof error === 'object' && 'status' in error && error.status === 404;\n}\n\nfunction withPages(\n base: ReadonlyMap<string, KnowledgePagePayload>,\n pages: KnowledgePagePayload[],\n): ReadonlyMap<string, KnowledgePagePayload> {\n if (pages.length === 0) return base;\n const merged = new Map(base);\n for (const page of pages) merged.set(page.id, page);\n return merged;\n}\n\n/** `pages` narrowed to `scopeId` and everything below it, following parent links among the given pages. */\nfunction withinScope(pages: KnowledgePagePayload[], scopeId: string | null): KnowledgePagePayload[] {\n if (!scopeId) return pages;\n const byId = new Map(pages.map(page => [page.id, page]));\n const inside = new Map<string, boolean>([[scopeId, true]]);\n const isInside = (page: KnowledgePagePayload): boolean => {\n const known = inside.get(page.id);\n if (known !== undefined) return known;\n const parent = page.parentId ? byId.get(page.parentId) : undefined;\n inside.set(page.id, false);\n const result = !!parent && parent.id !== page.id && isInside(parent);\n inside.set(page.id, result);\n return result;\n };\n return pages.filter(isInside);\n}\n\nfunction MoreButton({ onClick, label = 'Load more' }: { onClick: () => void; label?: string }) {\n return (\n <button\n type=\"button\"\n className=\"self-start text-caption text-muted-foreground hover:text-foreground\"\n onClick={onClick}\n >\n {label}\n </button>\n );\n}\n\n/** The next page of a page's notes, then a button for the one after. */\nfunction MoreNotes({\n source,\n pageId,\n cursor,\n pagesById,\n onPageClick,\n}: {\n source: KnowledgeExplorerSource;\n pageId: string;\n cursor: string;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n const chunk = source.usePage(pageId, cursor);\n const [showNext, setShowNext] = useState(false);\n const known = useMemo(() => withPages(pagesById, chunk.data?.related ?? []), [chunk.data, pagesById]);\n if (chunk.isPending) return <p className=\"text-caption text-muted-foreground\">Loading notes…</p>;\n if (!chunk.data) return null;\n const next = chunk.data.notesNextCursor;\n return (\n <>\n <ul className=\"flex flex-col gap-3\">\n {chunk.data.notes.map(note => (\n <KnowledgeNoteItem key={note.id} note={note} pagesById={known} onPageClick={onPageClick} />\n ))}\n </ul>\n {next ? (\n showNext ? (\n <MoreNotes source={source} pageId={pageId} cursor={next} pagesById={pagesById} onPageClick={onPageClick} />\n ) : (\n <MoreButton label=\"Load more notes\" onClick={() => setShowNext(true)} />\n )\n ) : null}\n </>\n );\n}\n\n/** A page's children, a page at a time. */\nfunction ChildPages({\n useTreeLevels,\n parentId,\n onPageClick,\n}: {\n useTreeLevels: NonNullable<KnowledgeExplorerSource['useTreeLevels']>;\n parentId: string;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n const [cursors, setCursors] = useState<string[]>([]);\n const requests = useMemo(() => [{ parentId }, ...cursors.map(cursor => ({ parentId, cursor }))], [parentId, cursors]);\n const levels = useTreeLevels(requests);\n const pages = levels.flatMap(level => level.data?.pages ?? []);\n const last = levels[levels.length - 1];\n if (levels[0]?.isPending) return <p className=\"text-caption text-muted-foreground\">Loading pages…</p>;\n if (pages.length === 0) {\n return (\n <p className=\"text-body text-muted-foreground\" data-testid=\"knowledge-no-child-pages\">\n No pages under this one.\n </p>\n );\n }\n const next = last?.data?.nextCursor;\n return (\n <>\n <ul className=\"flex flex-col gap-1\">\n {pages.map(child => (\n <li key={child.id} className=\"flex flex-col\">\n <button\n type=\"button\"\n className=\"text-left text-body font-medium text-info-indicator hover:underline\"\n onClick={() => onPageClick(child)}\n >\n {child.name}\n </button>\n {child.description ? (\n <span className=\"truncate text-caption text-muted-foreground\">{child.description}</span>\n ) : null}\n </li>\n ))}\n </ul>\n {next ? <MoreButton onClick={() => setCursors(current => [...current, next])} /> : null}\n </>\n );\n}\n\ninterface MentionSelection {\n source: KnowledgePagePayload;\n target: KnowledgePagePayload;\n point: { x: number; y: number };\n pane: { width: number; height: number };\n}\n\n/** What a clicked mention line stands for: the notes on one page that mention the other. */\nfunction MentionPopup({\n source,\n mention,\n pagesById,\n onOpen,\n onClose,\n}: {\n source: KnowledgeExplorerSource;\n mention: MentionSelection;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onOpen: (pageId: string) => void;\n onClose: () => void;\n}) {\n const detail = source.usePage(mention.source.id);\n const notes = (detail.data?.notes ?? []).filter(note => note.mentions.includes(mention.target.id));\n useEffect(() => {\n const onKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose();\n };\n window.addEventListener('keydown', onKey);\n return () => window.removeEventListener('keydown', onKey);\n }, [onClose]);\n return (\n <div\n role=\"dialog\"\n aria-label={`${mention.source.name} mentions ${mention.target.name}`}\n data-testid=\"knowledge-mention-popup\"\n className=\"absolute z-20 flex w-80 max-w-[calc(100%-1rem)] flex-col gap-2 overflow-hidden rounded-lg border border-border bg-card p-3 shadow-overlay\"\n style={mentionPopupPlacement(mention)}\n >\n <div className=\"flex items-start gap-2\">\n <Txt as=\"h3\" variant=\"card-title\" className=\"min-w-0 flex-1\">\n <button type=\"button\" className=\"hover:underline\" onClick={() => onOpen(mention.source.id)}>\n {mention.source.name}\n </button>\n <Txt as=\"span\" variant=\"card-title\" tone=\"muted\">\n {' '}\n mentions{' '}\n </Txt>\n <button type=\"button\" className=\"hover:underline\" onClick={() => onOpen(mention.target.id)}>\n {mention.target.name}\n </button>\n </Txt>\n <button\n type=\"button\"\n aria-label=\"Close\"\n className=\"rounded p-0.5 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={onClose}\n >\n <X size={14} aria-hidden />\n </button>\n </div>\n <div className=\"min-h-0 overflow-y-auto\">\n {detail.isPending ? (\n <Txt variant=\"caption\" tone=\"muted\">\n Loading notes…\n </Txt>\n ) : notes.length === 0 ? (\n <Txt variant=\"caption\" tone=\"muted\">\n The notes that make this mention aren't in the first page of notes. Open {mention.source.name} to read them\n all.\n </Txt>\n ) : (\n <ul className=\"flex flex-col gap-2\">\n {notes.map(note => (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={withPages(pagesById, detail.data?.related ?? [])}\n onPageClick={page => onOpen(page.id)}\n compact\n />\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n}\n\nfunction SelectedPage({\n source,\n pageId,\n pagesById,\n onSelect,\n highlightMentionOf,\n}: {\n source: KnowledgeExplorerSource;\n pageId: string;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onSelect: (pageId: string) => void;\n highlightMentionOf?: string;\n}) {\n const detail = source.usePage(pageId);\n const activity = (source.useActivity ?? noActivity)(pageId);\n const [moreNotes, setMoreNotes] = useState<{ pageId: string } | null>(null);\n const known = useMemo(\n () => (detail.data ? withPages(pagesById, [...detail.data.ancestors, ...detail.data.related]) : pagesById),\n [detail.data, pagesById],\n );\n\n if (detail.isPending) return <p className=\"text-ui-md p-4 text-muted-foreground\">Loading page…</p>;\n if (detail.isError || !detail.data) {\n const notFound = isNotFound(detail.error);\n return (\n <EmptyState\n tone=\"error\"\n variant=\"fill\"\n titleSlot={notFound ? 'Page not found' : 'Failed to load the page'}\n descriptionSlot={notFound ? 'It may have been deleted or merged.' : (detail.error?.message ?? '')}\n />\n );\n }\n const onPageClick = (page: KnowledgePagePayload) => onSelect(page.id);\n const next = detail.data.notesNextCursor;\n return (\n <KnowledgePageDetail\n page={detail.data.page}\n notes={detail.data.notes}\n pin={detail.data.pin ?? undefined}\n pagesById={known}\n onPageClick={onPageClick}\n highlightMentionOf={highlightMentionOf}\n ancestors={detail.data.ancestors}\n mentionedBy={detail.data.mentionedBy}\n activity={activity.data?.events}\n childPages={\n source.useTreeLevels ? (\n <ChildPages key={pageId} useTreeLevels={source.useTreeLevels} parentId={pageId} onPageClick={onPageClick} />\n ) : undefined\n }\n notesMore={\n next ? (\n moreNotes?.pageId === pageId ? (\n <MoreNotes source={source} pageId={pageId} cursor={next} pagesById={known} onPageClick={onPageClick} />\n ) : (\n <MoreButton label=\"Load more notes\" onClick={() => setMoreNotes({ pageId })} />\n )\n ) : undefined\n }\n />\n );\n}\n\nfunction SearchBox({ source, onSelect }: { source: KnowledgeExplorerSource; onSelect: (pageId: string) => void }) {\n const [query, setQuery] = useState('');\n const search = source.useSearch(query);\n const results = query.trim().length >= MIN_SEARCH_LENGTH ? (search.data?.results ?? []) : [];\n const seen = new Set<string>();\n const pages = results\n .map(hit => hit.page)\n .filter(page => (seen.has(page.id) ? false : (seen.add(page.id), true)))\n .slice(0, 10);\n return (\n <div className=\"relative min-w-60 flex-1\">\n <input\n aria-label=\"Search knowledge\"\n placeholder=\"Search pages and notes\"\n className=\"text-ui-md h-8 w-full rounded border border-border bg-card px-2\"\n value={query}\n onChange={event => setQuery(event.target.value)}\n />\n {pages.length > 0 ? (\n <ul\n role=\"listbox\"\n aria-label=\"Search results\"\n className=\"absolute z-20 mt-1 max-h-72 w-full overflow-auto rounded border border-border bg-card shadow-raised\"\n >\n {pages.map(page => (\n <li key={page.id} role=\"option\" aria-selected={false}>\n <button\n type=\"button\"\n className=\"text-ui-md w-full px-2 py-1.5 text-left hover:bg-muted\"\n onClick={() => {\n onSelect(page.id);\n setQuery('');\n }}\n >\n {page.name}\n </button>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n );\n}\n\ntype LevelResult = {\n pages: KnowledgePagePayload[];\n loaded: ReadonlySet<string>;\n failed: ReadonlySet<string>;\n nextCursor: ReadonlyMap<string, string>;\n};\n\n// Compares pages by identity, so a host must not mutate a page payload in place: a new page is a new object.\nfunction sameLevels(a: LevelResult, b: LevelResult) {\n const sameSet = (x: ReadonlySet<string>, y: ReadonlySet<string>) =>\n x.size === y.size && [...x].every(id => y.has(id));\n return (\n a.pages.length === b.pages.length &&\n a.pages.every((page, index) => page === b.pages[index]) &&\n sameSet(a.loaded, b.loaded) &&\n sameSet(a.failed, b.failed) &&\n a.nextCursor.size === b.nextCursor.size &&\n [...a.nextCursor].every(([id, cursor]) => b.nextCursor.get(id) === cursor)\n );\n}\n\n/**\n * The tree loaded a level at a time through `useTreeLevels`: the root scopes, then each level as it is\n * opened, plus the path to the selected page. Unloaded pages keep a chevron until opened.\n */\nfunction useLazyTree(\n source: KnowledgeExplorerSource,\n graph: KnowledgeExplorerGraph,\n selected: KnowledgeExplorerPageDetail | undefined,\n // Pages focused in the graph: their first level of children loads too, so the graph can draw them.\n graphOpened: readonly string[],\n) {\n const [expanded, setExpanded] = useState<ReadonlySet<string>>(() => new Set());\n const [more, setMore] = useState<ReadonlyMap<string, string[]>>(() => new Map());\n const requests = useMemo(() => {\n const list: KnowledgeExplorerTreeRequest[] = [{ parentId: null }];\n for (const id of expanded) {\n list.push({ parentId: id });\n for (const cursor of more.get(id) ?? []) list.push({ parentId: id, cursor });\n }\n for (const id of graphOpened) if (!expanded.has(id)) list.push({ parentId: id });\n return list;\n }, [expanded, more, graphOpened]);\n const levels = (source.useTreeLevels ?? noTreeLevels)(requests);\n\n const built = useMemo(() => {\n const failedIds = new Set<string>();\n const byId = new Map<string, KnowledgePagePayload>();\n const loadedIds = new Set<string>();\n const next = new Map<string, string>();\n levels.forEach((level, index) => {\n const request = requests[index];\n if (!request) return;\n const key = request.parentId ?? KNOWLEDGE_TREE_ROOT;\n if (level.isError) failedIds.add(key);\n if (!level.data) return;\n loadedIds.add(key);\n for (const page of level.data.pages) byId.set(page.id, page);\n if (level.data.nextCursor) next.set(key, level.data.nextCursor);\n else next.delete(key);\n });\n // The selected page and its path, so the tree can open down to a page outside the loaded levels.\n for (const page of [...(selected?.ancestors ?? []), ...(selected ? [selected.page] : [])]) {\n if (!byId.has(page.id)) byId.set(page.id, page);\n }\n return { pages: [...byId.values()], loaded: loadedIds, failed: failedIds, nextCursor: next };\n }, [levels, requests, selected]);\n // `levels` is a new array every render, so what is built from it is too: keep the previous result while\n // its pages are the same objects, or every render (a hover's, say) would lay the whole graph out again.\n const { pages, loaded, failed, nextCursor } = useStableWhile(built, sameLevels);\n\n // With the whole graph loaded, its structure is complete: only pages with children get a chevron.\n const graphParents = useMemo(\n () => (graph.truncated ? null : new Set(graph.pages.map(page => page.parentId).filter(id => id !== null))),\n [graph],\n );\n // A counted page has children exactly when its count says so. An uncounted one is guessed from the graph,\n // except a page created a moment ago, which has no children yet and shows no arrow while its level is counted.\n const mayHaveChildren = useCallback(\n (page: KnowledgePagePayload) =>\n !loaded.has(page.id) &&\n (page.childCountCapped ||\n (page.childCount !== undefined\n ? page.childCount > 0\n : !isJustCreated(page) && (graphParents ? graphParents.has(page.id) : true))),\n [loaded, graphParents],\n );\n const loadMore = useMemo(() => {\n const map = new Map<string, () => void>();\n for (const [parentId, cursor] of nextCursor) {\n map.set(parentId, () =>\n setMore(current => new Map(current).set(parentId, [...(current.get(parentId) ?? []), cursor])),\n );\n }\n return map;\n }, [nextCursor]);\n const onExpandedChange = useCallback((ids: ReadonlySet<string>) => setExpanded(new Set(ids)), []);\n\n return {\n pages,\n loaded,\n failed,\n mayHaveChildren,\n loadMore,\n onExpandedChange,\n rootsPending: levels[0]?.isPending ?? false,\n };\n}\n\n/**\n * Search, the page tree, and either the page graph or the selected page, kept in sync on one selection.\n * Wide screens show the tree beside the graph or the page; below `lg` one toggle picks tree, graph or page.\n * A first click on a page in the graph selects it; clicking it again opens it as a page. A search result\n * opens it as a page straight away. Selecting in the tree keeps the current view, so the graph frames the\n * page instead.\n */\nexport function KnowledgePageExplorer({\n graph,\n source,\n selectedPageId,\n onSelect,\n view,\n onViewChange,\n}: KnowledgePageExplorerProps) {\n const selected = source.usePage(selectedPageId);\n const lazyMode = !!source.useTreeLevels;\n // Parents whose next level the graph loads: the focus and its parent (or the root scopes), plus any\n // page whose stand-in dots the pointer rested on.\n const [graphOpened, setGraphOpened] = useState<readonly string[]>([]);\n const [previewed, setPreviewed] = useState<readonly string[]>([]);\n const [openGroups, setOpenGroups] = useState<ReadonlySet<string>>(() => new Set());\n // Children drawn past the cap, per parent, as its \"+N more\" circle is clicked.\n const [revealed, setRevealed] = useState<ReadonlyMap<string, number>>(() => new Map());\n const [allLinks, setAllLinks] = useState(false);\n const [dotCounts, setDotCounts] = useState(true);\n const lazy = useLazyTree(source, graph, selected.data, graphOpened);\n // With tree levels the graph loads like the tree: the focus (or the root scopes) and what sits around\n // it, never the whole instance. Without them it draws the host's bounded graph as it is.\n const drawnGraph = useMemo(\n () =>\n lazyMode\n ? lazyGraph({\n // The host's bounded graph fills in pages a level's first chunk didn't reach; tree levels win.\n pages: [...new Map([...graph.pages, ...lazy.pages].map(page => [page.id, page])).values()],\n loadedParents: lazy.loaded,\n rootKey: KNOWLEDGE_TREE_ROOT,\n focusId: selectedPageId,\n openGroups,\n revealed,\n })\n : {\n pages: graph.pages,\n hiddenChildren: new Map<string, { hidden: number; drawn: number }>(),\n wanted: [],\n hub: null,\n },\n [lazyMode, lazy.pages, lazy.loaded, selectedPageId, openGroups, revealed, graph.pages],\n );\n // The pages the focus needs are in (or failed to load): only then does the graph move to the new focus.\n const graphSettled = !lazyMode || drawnGraph.wanted.every(id => lazy.loaded.has(id) || lazy.failed.has(id));\n useEffect(() => {\n if (!lazyMode || view === 'page') return;\n const next = [...new Set([...drawnGraph.wanted, ...previewed])];\n setGraphOpened(current =>\n current.length === next.length && current.every((id, index) => id === next[index]) ? current : next,\n );\n }, [lazyMode, view, drawnGraph.wanted, previewed]);\n\n // The selected page's own links: its notes' mentions and `[[links]]` in its body going out, notes\n // elsewhere that mention it coming in. Each end is a page id or a ref; the ends the explorer holds\n // resolve at once, the rest are fetched (up to twice FOCUS_LINK_CAP keys each way, outranking sibling dots).\n const focusLinkList = (source.usePageLinks ?? noLinkQuery)(view === 'graph' ? selectedPageId : null).data;\n const linkEnds = useMemo(() => {\n const detail = selected.data;\n if (!detail || detail.page.id !== selectedPageId) return null;\n const known = new Map([...lazy.pages, ...detail.ancestors, ...detail.related].map(page => [page.id, page]));\n const index = knowledgePageRefIndex(known.values());\n const own = detail.page.id;\n const mentions = detail.notes.flatMap(note => note.mentions).filter(key => key && key !== own);\n const refs = bodyLinkRefs(detail.page.body ?? '')\n .map(ref => ref.trim())\n .filter(key => key && key !== own);\n const out = [...mentions, ...refs];\n // The page route resolves ids and `scope#path` refs, never a bare name: a `[[Name]]` the explorer does not hold\n // is not fetched (the link index supplies its edge), so it does not 404.\n const mentioned = new Set(mentions);\n const unaskable = new Set(\n refs.filter(ref => !ref.includes(':') && !PAGE_ID_SHAPE.test(ref) && !mentioned.has(ref)),\n );\n // Notes that mention this page, and (when the host lists links) bodies that link to it: a note edge is a\n // mention, a body edge a link, so a page that both links and mentions draws each once.\n const listed = (focusLinkList?.edges ?? []).filter(edge => edge.toPageId === own);\n const noteInto = [\n ...new Set([\n ...(detail.mentionedBy ?? []).map(note => note.pageId),\n ...listed.filter(edge => edge.kind === 'note').map(edge => edge.fromPageId),\n ]),\n ].filter(id => id !== own);\n const bodyInto = [...new Set(listed.filter(edge => edge.kind === 'body').map(edge => edge.fromPageId))].filter(\n id => id !== own,\n );\n const into = [...new Set([...noteInto, ...bodyInto])];\n const lookup = (key: string) => known.get(key) ?? index.resolve(key);\n const missing = (keys: string[]) => [...new Set(keys.filter(key => !lookup(key) && !unaskable.has(key)))];\n const resolvedCount = (keys: string[]) => new Set(keys.flatMap(key => lookup(key)?.id ?? [])).size;\n const room = (keys: string[]) => Math.max(0, FOCUS_LINK_FETCH_CAP - resolvedCount(keys));\n const wantOut = missing(out);\n const wantIn = missing(into);\n return {\n detail,\n known,\n mentions,\n refs,\n into,\n noteInto,\n bodyInto,\n lookup,\n fetchKeys: [...wantOut.slice(0, room(out)), ...wantIn.slice(0, room(into))],\n unfetched: {\n out: Math.max(0, wantOut.length - room(out)),\n in: Math.max(0, wantIn.length - room(into)),\n },\n };\n }, [selected.data, selectedPageId, lazy.pages, focusLinkList]);\n const fetchKeys = linkEnds?.fetchKeys ?? noKeys;\n const fetchedStates = (source.useLinkedPages ?? noLinkedPages)(fetchKeys);\n const fetchedSignature = fetchKeys\n .map((key, index) => `${key}=${fetchedStates[index]?.data?.page?.id ?? ''}`)\n .join('|');\n const fetchedPages = useMemo(() => {\n const byKey = new Map<string, KnowledgePagePayload>();\n fetchKeys.forEach((key, index) => {\n const page = fetchedStates[index]?.data?.page;\n if (page) byKey.set(key, page);\n });\n return byKey;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- states are new arrays each render; the signature names which pages arrived\n }, [fetchedSignature]);\n const focusLinks = useMemo(() => {\n if (!linkEnds) return { edges: [], pages: [], unfetched: { in: 0, out: 0 } };\n const { detail, lookup, mentions, refs, noteInto, bodyInto } = linkEnds;\n const resolve = (key: string) => lookup(key) ?? fetchedPages.get(key);\n const own = detail.page.id;\n const edges: KnowledgePageEdge[] = [];\n const pages = new Map<string, KnowledgePagePayload>();\n const reach = (key: string, kind: 'mention' | 'link', side: 'out' | 'in') => {\n const target = resolve(key);\n if (!target || target.id === own) {\n // An unfetched id still draws its edge, counted as not shown until its page arrives.\n if (!target && kind === 'mention' && side === 'out') edges.push({ source: own, target: key, kind });\n if (!target && side === 'in') edges.push({ source: key, target: own, kind });\n return;\n }\n pages.set(target.id, target);\n edges.push(side === 'out' ? { source: own, target: target.id, kind } : { source: target.id, target: own, kind });\n };\n for (const key of mentions) reach(key, 'mention', 'out');\n for (const key of refs) reach(key, 'link', 'out');\n for (const key of noteInto) reach(key, 'mention', 'in');\n for (const key of bodyInto) reach(key, 'link', 'in');\n return {\n edges: edges.filter(edge => edge.source !== edge.target),\n pages: [...pages.values()],\n unfetched: linkEnds.unfetched,\n };\n }, [linkEnds, fetchedPages]);\n\n const focusLinkIds = useMemo(() => new Set(focusLinks.pages.map(page => page.id)), [focusLinks.pages]);\n const drawn = useMemo(() => {\n const ids = new Set(drawnGraph.pages.map(page => page.id));\n const extra = focusLinks.pages.filter(page => !ids.has(page.id));\n return { ...drawnGraph, pages: extra.length ? [...drawnGraph.pages, ...extra] : drawnGraph.pages };\n }, [drawnGraph, focusLinks.pages]);\n const pagesById = useMemo(() => new Map(drawn.pages.map(page => [page.id, page])), [drawn.pages]);\n const previewParent = (parentId: string) =>\n // The last few only, so hovering around the graph never keeps an unbounded set of levels loading.\n setPreviewed(current => (current.includes(parentId) ? current : [...current, parentId].slice(-8)));\n // A scope picked in the tree narrows the tree and the graph to that scope and what sits under it.\n const [focusScopeId, setFocusScopeId] = useState<string | null>(null);\n // Every link the explorer knows of: mentions the host's graph found, `[[links]]` in loaded bodies,\n // and the selected page's own. Only the selected page's are drawn (capped) unless all links are on.\n const knownLinks = useMemo(() => {\n // A body link the loaded page shows and the link index lists is one line, not two.\n const seen = new Set<string>();\n return [\n ...graph.edges.filter(edge => edge.kind === 'mention'),\n ...bodyLinkEdges(drawn.pages),\n ...focusLinks.edges,\n ].filter(edge => {\n const key = `${edge.kind}:${edge.source}>${edge.target}`;\n return seen.has(key) ? false : (seen.add(key), true);\n });\n }, [graph.edges, drawn.pages, focusLinks.edges]);\n const linkView = useMemo(\n () => visibleLinks(knownLinks, pagesById, selectedPageId, allLinks),\n [knownLinks, pagesById, selectedPageId, allLinks],\n );\n const linkEdges = linkView.edges;\n // Exact counts for the pages the graph holds, in batches the host's route accepts; a failure (a\n // server with no link index) leaves the counts to what the loaded pages show.\n const countIds = useMemo(\n () =>\n drawn.pages\n .filter(page => !isChildPlaceholder(page) && !isRestCircle(page) && !isScopeGroup(page))\n .map(page => page.id)\n .sort(),\n [drawn.pages],\n );\n const counted = (source.useLinkCounts ?? noLinkQuery)(view === 'graph' ? countIds : []);\n const exactCounts = useMemo(() => (counted.data ? new Map(Object.entries(counted.data)) : undefined), [counted.data]);\n const hiddenLinks = useMemo(\n () => (exactCounts ? undrawnLinks(exactCounts, linkEdges) : linkView.hidden),\n [exactCounts, linkEdges, linkView.hidden],\n );\n // The page under the pointer: once it rests there its real links are fetched and drawn to whichever\n // ends are on screen; the rest are counted as not shown.\n // Only a pointer that rests re-renders the explorer: passing over pages sets and clears a timer.\n const [hoverFetchId, setHoverFetchId] = useState<string | null>(null);\n const hoverTimer = useRef<ReturnType<typeof setTimeout>>(undefined);\n const setHoveredId = useCallback((id: string | null) => {\n clearTimeout(hoverTimer.current);\n if (id) hoverTimer.current = setTimeout(() => setHoverFetchId(id), HOVER_FETCH_DELAY_MS);\n else setHoverFetchId(null);\n }, []);\n useEffect(() => () => clearTimeout(hoverTimer.current), []);\n const hovered = (source.usePageLinks ?? noLinkQuery)(hoverFetchId);\n const hoverEdges = useMemo<KnowledgePageEdge[]>(\n () =>\n hoverFetchId && hovered.data\n ? hovered.data.edges.map(edge => ({\n source: edge.fromPageId,\n target: edge.toPageId,\n kind: edge.kind === 'body' ? ('link' as const) : ('mention' as const),\n count: edge.count,\n }))\n : [],\n [hoverFetchId, hovered.data],\n );\n\n // A clicked mention line shows the notes that make the mention; opening the page from there marks them.\n const [mention, setMention] = useState<MentionSelection | null>(null);\n const [marked, setMarked] = useState<{ source: string; target: string } | null>(null);\n const closeMention = useCallback(() => setMention(null), []);\n // Below lg the graph shares its slot with the tree. Mount it only when it is showing: a graph mounted\n // into a hidden 0×0 pane has nothing to fit and was left unfitted when the toggle revealed it.\n const narrow = useIsMobile(1024);\n const graphShown = !narrow || view === 'graph';\n const highlightMentionOf = marked && marked.source === selectedPageId ? marked.target : undefined;\n const showPage = view === 'page' && !!selectedPageId;\n // The pages focused before this one, most recent last, so Back retraces a walk through the levels.\n const [history, setHistory] = useState<readonly string[]>([]);\n const lastSelected = useRef<string | null>(selectedPageId);\n const goingBackTo = useRef<string | null>(null);\n useEffect(() => {\n const previous = lastSelected.current;\n lastSelected.current = selectedPageId;\n const backTarget = goingBackTo.current;\n goingBackTo.current = null;\n // Arriving where Back pointed isn't a new step; any other selection is, even if Back's was ignored.\n if (backTarget && backTarget === selectedPageId) return;\n if (!previous || !selectedPageId || previous === selectedPageId) return;\n setHistory(current => [...current.filter(id => id !== selectedPageId), previous].slice(-FOCUS_HISTORY_CAP));\n }, [selectedPageId]);\n const backTo = history.length ? history[history.length - 1] : undefined;\n const goBack = () => {\n if (!backTo) return;\n goingBackTo.current = backTo;\n setHistory(current => current.slice(0, -1));\n onSelect(backTo);\n };\n const openPage = (pageId: string) => {\n onSelect(pageId);\n onViewChange('page');\n };\n // From the tree: in the graph, a first click frames the page there and a second click on the same\n // page opens it, like clicking a node. Elsewhere it opens. A lazily loaded graph loads around whatever\n // is focused; a host's fixed graph that lacks the page has nothing to frame, so it opens as a page.\n const selectFromTree = (page: KnowledgePagePayload) => {\n if (page.isScope) setFocusScopeId(page.id);\n if (view === 'graph' && (lazyMode || pagesById.has(page.id)) && page.id !== selectedPageId) onSelect(page.id);\n else openPage(page.id);\n };\n // Pages reached from outside the tree (search, links, mentions) clear a focus they fall outside of.\n const leaveScopeFocusFor = (pageId: string) => {\n if (focusScopeId && !withinScope([...lazy.pages, ...drawn.pages], focusScopeId).some(page => page.id === pageId)) {\n setFocusScopeId(null);\n }\n };\n const openAnywhere = (pageId: string) => {\n leaveScopeFocusFor(pageId);\n openPage(pageId);\n };\n // From search: in the graph, a first pick frames the page there and a second pick of the focused page opens\n // it, like the tree. A fixed graph that lacks the page has nothing to frame, so it opens as a page.\n const selectFromSearch = (pageId: string) => {\n if (view === 'graph' && (lazyMode || pagesById.has(pageId)) && pageId !== selectedPageId) {\n leaveScopeFocusFor(pageId);\n onSelect(pageId);\n } else openAnywhere(pageId);\n };\n const focusScope = focusScopeId\n ? (lazy.pages.find(page => page.id === focusScopeId) ?? pagesById.get(focusScopeId))\n : undefined;\n const treePages = withinScope(source.useTreeLevels ? lazy.pages : graph.pages, focusScope ? focusScopeId : null);\n const graphPages = useMemo(\n () => withinScope(drawn.pages, focusScope ? focusScopeId : null),\n [drawn.pages, focusScope, focusScopeId],\n );\n // With nothing selected the graph still centres on its first root scope, so that scope's \"more\" note shows.\n const focusedInGraph = view === 'graph' ? pagesById.get(selectedPageId ?? drawn.hub ?? '') : undefined;\n const children = focusedInGraph ? drawn.hiddenChildren.get(focusedInGraph.id) : undefined;\n const views: Array<{ value: KnowledgeExplorerView; label: string; narrowOnly?: boolean }> = [\n { value: 'tree', label: 'Tree', narrowOnly: true },\n { value: 'graph', label: 'Graph' },\n { value: 'page', label: 'Page' },\n ];\n\n return (\n <div className=\"flex min-h-0 flex-1 flex-col gap-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <SearchBox source={source} onSelect={selectFromSearch} />\n <div role=\"group\" aria-label=\"View\" className=\"flex overflow-hidden rounded border border-border\">\n {views.map(option => (\n <button\n key={option.value}\n type=\"button\"\n aria-pressed={\n option.value === 'page'\n ? showPage\n : option.value === 'graph'\n ? !showPage && view !== 'tree'\n : view === 'tree'\n }\n disabled={option.value === 'page' && !selectedPageId}\n className={`text-ui-md px-3 py-1 text-muted-foreground disabled:opacity-50 aria-pressed:bg-fill-inverse aria-pressed:text-background ${option.narrowOnly ? 'lg:hidden' : ''}`}\n onClick={() => onViewChange(option.value)}\n >\n {option.label}\n </button>\n ))}\n </div>\n </div>\n {!lazyMode && graph.truncated && !showPage ? (\n <p className=\"text-ui-sm text-muted-foreground\">\n The graph shows the first {graph.pages.length} pages. Open the tree or search to reach the rest.\n </p>\n ) : null}\n {selectedPageId && !showPage && isNotFound(selected.error) ? (\n <p role=\"alert\" className=\"text-ui-sm text-destructive-foreground\">\n Page not found. The linked page may have been deleted or merged.\n </p>\n ) : null}\n <div className=\"flex min-h-0 flex-1 flex-col gap-3 lg:flex-row\">\n <aside\n className={`min-h-0 w-full flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card lg:flex lg:w-72 lg:flex-none lg:shrink-0 ${view === 'tree' ? 'flex' : 'hidden'}`}\n >\n {focusScope ? (\n <div\n className=\"flex items-center gap-2 border-b border-border bg-fill-subtle px-3 py-2\"\n data-testid=\"knowledge-scope-focus\"\n >\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <Txt as=\"span\" variant=\"eyebrow\" tone=\"muted\" className=\"uppercase\">\n {focusScope.displayLabel ?? 'Scope'}\n </Txt>\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {focusScope.address ?? focusScope.name}\n </Txt>\n </div>\n <button\n type=\"button\"\n className=\"text-ui-sm shrink-0 rounded px-2 py-1 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={() => setFocusScopeId(null)}\n >\n All scopes\n </button>\n </div>\n ) : null}\n <div className=\"min-h-0 flex-1 overflow-auto\">\n {source.useTreeLevels && lazy.rootsPending ? (\n <p className=\"px-3 py-2 text-body text-muted-foreground\">Loading pages…</p>\n ) : (\n <KnowledgePageTree\n key={focusScope ? focusScope.id : 'all'}\n pages={treePages}\n pinnedIds={graph.pinnedIds}\n selectedPageId={selectedPageId}\n onSelect={selectFromTree}\n initiallyExpanded={focusScope ? [focusScope.id] : undefined}\n {...(source.useTreeLevels\n ? {\n mayHaveChildren: lazy.mayHaveChildren,\n onExpandedChange: lazy.onExpandedChange,\n loadMore: lazy.loadMore,\n }\n : {})}\n />\n )}\n </div>\n </aside>\n {showPage ? (\n <section\n aria-label=\"Selected page\"\n className=\"min-h-0 min-w-0 flex-1 overflow-auto rounded-lg border border-border bg-card\"\n >\n <SelectedPage\n source={source}\n pageId={selectedPageId}\n pagesById={pagesById}\n onSelect={openAnywhere}\n highlightMentionOf={highlightMentionOf}\n />\n </section>\n ) : (\n <div\n className={`relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-lg border border-border bg-background lg:block lg:h-full ${view === 'graph' ? 'block' : 'hidden'}`}\n data-testid=\"knowledge-graph-container\"\n >\n {graphShown ? (\n <div className=\"absolute top-3 right-3 z-10 flex flex-col gap-2\">\n <button\n type=\"button\"\n data-testid=\"knowledge-graph-back\"\n aria-label=\"Back\"\n title={backTo ? 'Back to the page you focused before this one' : 'Back (nothing to go back to yet)'}\n disabled={!backTo}\n className={FLOAT_BUTTON}\n onClick={goBack}\n >\n <ArrowLeft aria-hidden className=\"size-4\" />\n </button>\n <button\n type=\"button\"\n aria-label=\"All links\"\n aria-pressed={allLinks}\n data-testid=\"knowledge-graph-all-links\"\n title={`All links: ${allLinks ? 'on' : 'off'}. Draw every link between the pages in the graph, not only the selected page's`}\n className={FLOAT_BUTTON}\n onClick={() => setAllLinks(current => !current)}\n >\n <Link2 aria-hidden className=\"size-4\" />\n </button>\n <button\n type=\"button\"\n aria-label=\"Link counts\"\n aria-pressed={dotCounts}\n data-testid=\"knowledge-graph-dot-counts\"\n title={`Link counts: ${dotCounts ? 'on' : 'off'}. Write how many links go in and out of each dot inside it`}\n className={FLOAT_BUTTON}\n onClick={() => setDotCounts(current => !current)}\n >\n <Hash aria-hidden className=\"size-4\" />\n </button>\n </div>\n ) : null}\n {graphShown ? (\n <KnowledgePageGraph\n pages={graphPages}\n edges={linkEdges}\n pinnedIds={graph.pinnedIds}\n grants={graph.grants}\n selectedPageId={selectedPageId}\n centerId={drawn.hub}\n hiddenLinks={hiddenLinks}\n knownLinks={knownLinks}\n fetchedLinks={hoverEdges}\n exactLinkCounts={exactCounts}\n onHover={setHoveredId}\n nearIds={focusLinkIds}\n settled={graphSettled}\n showCounts={dotCounts}\n onPreview={page => {\n if (isChildPlaceholder(page) && page.parentId) previewParent(page.parentId);\n }}\n onSelect={page => {\n // A stand-in loads its parent's children; a scope group opens into its scopes.\n if (isChildPlaceholder(page)) return page.parentId ? previewParent(page.parentId) : undefined;\n if (isRestCircle(page)) {\n const parentId = page.parentId;\n if (!parentId) return undefined;\n setRevealed(current => new Map(current).set(parentId, (current.get(parentId) ?? 0) + REST_BATCH));\n // Past the children loaded so far, fetch the next chunk too.\n return lazy.loadMore.get(parentId)?.();\n }\n if (isScopeGroup(page)) return setOpenGroups(current => new Set(current).add(page.id));\n onSelect(page.id);\n // Hosts resolve a `?page=` with no view to the page view, so say graph outright.\n if (view !== 'graph') onViewChange('graph');\n }}\n onOpen={page => openPage(page.id)}\n onClearSelection={() => {\n setMention(null);\n if (selectedPageId) onSelect(null);\n }}\n onMentionSelect={setMention}\n />\n ) : null}\n {mention && graphShown ? (\n <MentionPopup\n source={source}\n mention={mention}\n pagesById={pagesById}\n onClose={closeMention}\n onOpen={pageId => {\n setMarked(\n pageId === mention.source.id ? { source: mention.source.id, target: mention.target.id } : null,\n );\n setMention(null);\n openAnywhere(pageId);\n }}\n />\n ) : null}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KnowledgePageExplorer.cjs.js","names":["Skeleton","SkeletonText","useState","useMemo","_Fragment","KnowledgeNoteItem","KnowledgeDetailSection","raisedSurfaceStyle","Tree","FileText","KnowledgeTooltip","Button","ArrowRight","Folder","Txt","mentionPopupPlacement","X","EmptyState","KnowledgePageDetail","SearchInput","overlaySurfaceStyle","ScrollArea","cn","menuItemButtonClass","useStableWhile","useCallback","useIsMobile","lazyGraph","knowledgePageRefIndex","bodyLinkRefs","bodyLinkEdges","isChildPlaceholder","isRestCircle","isScopeGroup","useRef","ListTree","Network","DataPanel","PanelLeftClose","KnowledgeSourceIcon","scopeTitle","KnowledgePageTree","KnowledgePagesByRef","ActionRow","Tabs","TabList","Tab","Icon","PanelLeftOpen","frameSurfaceStyle","ButtonsGroup","ArrowLeft","Link2","Hash","KnowledgePageGraph","SquareArrowOutUpRight"],"sources":["../../../../src/domains/knowledge/components/KnowledgePageExplorer.tsx"],"sourcesContent":["import {\n ArrowLeft,\n ArrowRight,\n FileText,\n Folder,\n Hash,\n Link2,\n ListTree,\n Network,\n PanelLeftClose,\n PanelLeftOpen,\n SquareArrowOutUpRight,\n X,\n} from 'lucide-react';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport { flushSync } from 'react-dom';\n\nimport { REST_BATCH, isChildPlaceholder, isRestCircle, isScopeGroup, lazyGraph } from '../lib/graphShape';\nimport { scopeTitle } from '../lib/pageAddress';\nimport { bodyLinkEdges, bodyLinkRefs, knowledgePageRefIndex } from '../lib/pageRefs';\nimport { KnowledgePagesByRef } from '../lib/pagesByRefContext';\nimport { childCountLabel } from '../lib/pageTree';\nimport { mentionPopupPlacement } from '../lib/popupPlacement';\nimport { useStableWhile } from '../lib/useStableWhile';\n\nimport type {\n KnowledgePageActivityPayload,\n KnowledgeNotePayload,\n KnowledgePageEdge,\n KnowledgePagePayload,\n KnowledgePinPayload,\n KnowledgeScopeGrantPayload,\n} from '../pageTypes';\nimport { KnowledgeDetailSection, KnowledgeNoteItem, KnowledgePageDetail } from './KnowledgePageDetail';\nimport { KnowledgePageGraph } from './KnowledgePageGraph';\nimport { KNOWLEDGE_TREE_ROOT, KnowledgePageTree } from './KnowledgePageTree';\nimport { KnowledgeSourceIcon } from './KnowledgeSourceIcon';\nimport { KnowledgeTooltip } from './KnowledgeTooltip';\n\nimport { ActionRow } from '@/ds/components/ActionRow';\nimport { Button } from '@/ds/components/Button';\nimport { ButtonsGroup } from '@/ds/components/ButtonsGroup';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { SearchInput } from '@/ds/components/SearchInput';\nimport { Skeleton, SkeletonText } from '@/ds/components/Skeleton';\nimport { Tab, TabList, Tabs } from '@/ds/components/Tabs';\nimport { Tree } from '@/ds/components/Tree';\nimport { Txt } from '@/ds/components/Txt';\nimport { Icon } from '@/ds/icons/Icon';\nimport { menuItemButtonClass } from '@/ds/primitives/menu-item';\nimport { frameSurfaceStyle, overlaySurfaceStyle, raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { useIsMobile } from '@/hooks/use-is-mobile';\nimport { cn } from '@/lib/utils';\n\n/** `tree` is only a choice below `lg`; wider screens always show the tree beside the graph or the page. */\nexport type KnowledgeExplorerView = 'tree' | 'graph' | 'page';\n\n/** The bounded page graph a host loads. Without `useTreeLevels`, its pages also feed the tree. */\nexport interface KnowledgeExplorerGraph {\n pages: KnowledgePagePayload[];\n edges: KnowledgePageEdge[];\n pinnedIds: string[];\n /** Access grants between scopes; hosts whose server doesn't send them leave this out. */\n grants?: KnowledgeScopeGrantPayload[];\n truncated: boolean;\n}\n\nexport interface KnowledgeExplorerPageDetail {\n page: KnowledgePagePayload;\n notes: KnowledgeNotePayload[];\n /** Cursor for the page's next notes. */\n notesNextCursor?: string;\n pin?: KnowledgePinPayload | null;\n /** Ancestors and referenced pages, which may sit outside the loaded graph. */\n ancestors: KnowledgePagePayload[];\n related: KnowledgePagePayload[];\n /** Notes on other pages that mention this one. */\n mentionedBy?: KnowledgeNotePayload[];\n}\n\n/** One level of the tree: a parent's child scopes then its child pages, paged. */\nexport interface KnowledgeExplorerTreeLevel {\n pages: KnowledgePagePayload[];\n nextCursor?: string;\n}\n\nexport interface KnowledgeExplorerActivity {\n events: KnowledgePageActivityPayload[];\n}\n\nexport interface KnowledgeExplorerQueryState<T> {\n data?: T;\n isPending: boolean;\n isError: boolean;\n error: Error | null;\n}\n\nexport interface KnowledgeExplorerPageLinks {\n edges: Array<{ fromPageId: string; toPageId: string; kind: 'body' | 'note'; count: number }>;\n pages: KnowledgePagePayload[];\n truncated: boolean;\n}\n\n/** One request for a tree level: `parentId: null` for the root scopes. */\nexport interface KnowledgeExplorerTreeRequest {\n parentId: string | null;\n cursor?: string;\n}\n\n/** Page ids are ULIDs; a bare `[[id]]` is askable, a bare `[[Name]]` is not. */\nconst PAGE_ID_SHAPE = /^[0-9A-Z]{26}$/;\nconst JUST_CREATED_MS = 60_000;\nconst isJustCreated = (page: KnowledgePagePayload) => Date.now() - Date.parse(page.createdAt) < JUST_CREATED_MS;\n\n/**\n * Host data hooks. Each host binds them to its own routes (Studio to the Mastra client, Factory to its\n * project-scoped routes), so the explorer never knows a URL or an id outside the page ids it shows.\n * Pass the same functions every render: they are called as hooks.\n */\nexport interface KnowledgeExplorerSource {\n /** One page; `noteCursor` fetches a later page of its notes. Disabled when `pageId` is null. */\n usePage: (pageId: string | null, noteCursor?: string) => KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>;\n useSearch: (query: string) => { data?: { results: Array<{ page: KnowledgePagePayload }> } };\n /** Tree levels, one result per request in order (e.g. `useQueries`). Enables the lazily loaded tree and child pages. */\n useTreeLevels?: (\n requests: KnowledgeExplorerTreeRequest[],\n ) => Array<KnowledgeExplorerQueryState<KnowledgeExplorerTreeLevel>>;\n /**\n * Pages a link reaches, by id or `[[ref]]` (`scope#path`), one result per entry in order (e.g.\n * `useQueries`). Lets the focused page draw links to pages the graph hasn't loaded; without it only\n * links to loaded pages are drawn. A key the host can't resolve should come back as an error.\n */\n useLinkedPages?: (keys: string[]) => Array<KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>>;\n /**\n * Exact links into and out of each page (by `[[ref]]` or note mention), counted over the whole store, for\n * the pages the graph draws. Without it, or when it errors (a server with no link index answers 501), the\n * graph counts only the links between pages it has loaded.\n */\n useLinkCounts?: (pageIds: string[]) => KnowledgeExplorerQueryState<Record<string, { in: number; out: number }>>;\n /** One page's links with the pages at their other ends; fetched for the page under the pointer. Null disables it. */\n usePageLinks?: (pageId: string | null) => KnowledgeExplorerQueryState<KnowledgeExplorerPageLinks>;\n /** A page's recent activity, newest first. */\n useActivity?: (pageId: string) => KnowledgeExplorerQueryState<KnowledgeExplorerActivity>;\n}\n\nexport interface KnowledgePageExplorerProps {\n graph: KnowledgeExplorerGraph;\n source: KnowledgeExplorerSource;\n selectedPageId: string | null;\n /** `null` clears the selection: a click on empty graph canvas. */\n onSelect: (pageId: string | null) => void;\n view: KnowledgeExplorerView;\n onViewChange: (view: KnowledgeExplorerView) => void;\n toolbarEnd?: ReactNode;\n flush?: boolean;\n}\n\nconst MIN_SEARCH_LENGTH = 2;\n/** Links of the selected page drawn at most in each direction; the rest are counted. */\nexport const FOCUS_LINK_CAP = 20;\n/** Keys fetched per direction: a page reached by a note and by the body is two keys but one link, so this is twice the cap. */\nconst FOCUS_LINK_FETCH_CAP = FOCUS_LINK_CAP * 2;\n\nfunction edgeKey(edge: KnowledgePageEdge) {\n return `${edge.kind}\\u0000${edge.source}\\u0000${edge.target}`;\n}\n\n/**\n * The links to draw, and per page how many of its links (into it, out of it) go undrawn. With all links\n * on, every link between drawn pages shows. Otherwise only the selected page's, up to\n * {@link FOCUS_LINK_CAP} each way; with nothing selected, none.\n */\nfunction visibleLinks(\n known: KnowledgePageEdge[],\n drawn: ReadonlyMap<string, KnowledgePagePayload>,\n selectedId: string | null,\n all: boolean,\n): { edges: KnowledgePageEdge[]; hidden: Map<string, { in: number; out: number }>; more: { in: number; out: number } } {\n const unique = new Map<string, KnowledgePageEdge>();\n for (const edge of known)\n if (edge.source !== edge.target && !unique.has(edgeKey(edge))) unique.set(edgeKey(edge), edge);\n // One link per pair and direction for counting, whether a note or a body makes it.\n const pairs = new Map<string, KnowledgePageEdge>();\n for (const edge of unique.values()) pairs.set(`${edge.source}\\u0000${edge.target}`, edge);\n const shown = new Set<string>();\n const more = { in: 0, out: 0 };\n if (all) {\n for (const [key, edge] of unique) if (drawn.has(edge.source) && drawn.has(edge.target)) shown.add(key);\n } else if (selectedId) {\n // The cap counts pages linked, not lines: a page reached by a note and by the body is one link.\n const admitted = new Set<string>();\n const over = new Set<string>();\n let ins = 0;\n let outs = 0;\n for (const [key, edge] of unique) {\n if (!drawn.has(edge.source) || !drawn.has(edge.target)) continue;\n const side = edge.source === selectedId ? 'out' : edge.target === selectedId ? 'in' : null;\n if (!side) continue;\n const pair = `${edge.source}\\u0000${edge.target}`;\n if (!admitted.has(pair) && !over.has(pair)) {\n if ((side === 'out' ? outs : ins) >= FOCUS_LINK_CAP) {\n over.add(pair);\n more[side]++;\n } else {\n admitted.add(pair);\n if (side === 'out') outs++;\n else ins++;\n }\n }\n if (admitted.has(pair)) shown.add(key);\n }\n }\n const drawnPairs = new Set(\n [...shown].map(key => {\n const edge = unique.get(key) as KnowledgePageEdge;\n return `${edge.source}\\u0000${edge.target}`;\n }),\n );\n const hidden = new Map<string, { in: number; out: number }>();\n const bump = (id: string, side: 'in' | 'out') => {\n if (!drawn.has(id)) return;\n const counts = hidden.get(id) ?? { in: 0, out: 0 };\n counts[side]++;\n hidden.set(id, counts);\n };\n for (const [pair, edge] of pairs) {\n if (drawnPairs.has(pair)) continue;\n bump(edge.source, 'out');\n bump(edge.target, 'in');\n }\n return { edges: [...unique.values()].filter(edge => shown.has(edgeKey(edge))), hidden, more };\n}\n/** The round buttons floating over the graph: muted when off or idle, a solid fill when pressed. */\n/** How many earlier focuses Back remembers. */\nconst FOCUS_HISTORY_CAP = 50;\nfunction explorerTab(view: KnowledgeExplorerView, showPage: boolean): KnowledgeExplorerView {\n if (showPage) return 'page';\n if (view === 'tree') return 'tree';\n return 'graph';\n}\n\nconst TREE_DRAWER_INSET = 296;\nconst TREE_TOGGLE_INSET = 44;\n\nfunction treeInset(overlay: boolean, treeOpen: boolean): number {\n if (!overlay) return 0;\n return treeOpen ? TREE_DRAWER_INSET : TREE_TOGGLE_INSET;\n}\nconst PAGE_DRAWER_INSET = 392;\ntype InsetStyle = CSSProperties & {\n '--knowledge-tree-inset': string;\n '--knowledge-tree-drawer-inset': string;\n '--knowledge-drawer-inset': string;\n};\nconst noTreeLevels = () => [];\nconst noKeys: string[] = [];\nconst noLinkedPages = (): Array<KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>> => [];\nconst noLinkQuery = <T,>(): KnowledgeExplorerQueryState<T> => ({ isPending: false, isError: false, error: null });\n/** Longest a pointer rests on a page before its links are fetched, so sweeping across the graph fetches none. */\nconst HOVER_FETCH_DELAY_MS = 150;\n\n/** Per page, the links into and out of it that none of `shown` draws, given the exact totals. */\nfunction undrawnLinks(\n exact: ReadonlyMap<string, { in: number; out: number }>,\n shown: readonly KnowledgePageEdge[],\n): Map<string, { in: number; out: number }> {\n const drawn = new Map<string, { in: number; out: number }>();\n const pairs = new Set<string>();\n for (const edge of shown) {\n if (edge.kind === 'parent' || pairs.has(`${edge.source}\\u0000${edge.target}`)) continue;\n pairs.add(`${edge.source}\\u0000${edge.target}`);\n const out = drawn.get(edge.source) ?? { in: 0, out: 0 };\n out.out++;\n drawn.set(edge.source, out);\n const into = drawn.get(edge.target) ?? { in: 0, out: 0 };\n into.in++;\n drawn.set(edge.target, into);\n }\n const hidden = new Map<string, { in: number; out: number }>();\n for (const [id, total] of exact) {\n const seen = drawn.get(id) ?? { in: 0, out: 0 };\n hidden.set(id, { in: Math.max(0, total.in - seen.in), out: Math.max(0, total.out - seen.out) });\n }\n return hidden;\n}\nconst noActivity = (): KnowledgeExplorerQueryState<KnowledgeExplorerActivity> => ({\n isPending: false,\n isError: false,\n error: null,\n});\n\nfunction isNotFound(error: unknown): boolean {\n return !!error && typeof error === 'object' && 'status' in error && error.status === 404;\n}\n\nfunction withPages(\n base: ReadonlyMap<string, KnowledgePagePayload>,\n pages: KnowledgePagePayload[],\n): ReadonlyMap<string, KnowledgePagePayload> {\n if (pages.length === 0) return base;\n const merged = new Map(base);\n for (const page of pages) merged.set(page.id, page);\n return merged;\n}\n\n/** `pages` narrowed to `scopeId` and everything below it, following parent links among the given pages. */\nfunction withinScope(pages: KnowledgePagePayload[], scopeId: string | null): KnowledgePagePayload[] {\n if (!scopeId) return pages;\n const byId = new Map(pages.map(page => [page.id, page]));\n const inside = new Map<string, boolean>([[scopeId, true]]);\n const isInside = (page: KnowledgePagePayload): boolean => {\n const known = inside.get(page.id);\n if (known !== undefined) return known;\n const parent = page.parentId ? byId.get(page.parentId) : undefined;\n inside.set(page.id, false);\n const result = !!parent && parent.id !== page.id && isInside(parent);\n inside.set(page.id, result);\n return result;\n };\n return pages.filter(isInside);\n}\n\nconst SKELETON_ROW_WIDTHS = ['w-32', 'w-24', 'w-40', 'w-28', 'w-36', 'w-20'];\n\nfunction TreeRowsSkeleton({ label, rows }: { label: string; rows: number }) {\n return (\n <div role=\"status\" aria-label={label} className=\"flex flex-col\">\n {SKELETON_ROW_WIDTHS.slice(0, rows).map((width, index) => (\n <div\n key={width}\n className=\"flex h-8 items-center gap-2 px-1\"\n style={{ paddingLeft: `${(index % 3) * 12 + 4}px` }}\n >\n <Skeleton className=\"size-3.5 shrink-0\" />\n <SkeletonText className={width} />\n </div>\n ))}\n </div>\n );\n}\n\nfunction NotesSkeleton() {\n return (\n <div role=\"status\" aria-label=\"Loading notes\" className=\"flex flex-col gap-2\">\n {[0, 1].map(index => (\n <div key={index} className=\"flex flex-col gap-2 rounded-lg border border-border p-3\">\n <SkeletonText className=\"w-24\" />\n <SkeletonText className=\"w-full\" />\n <SkeletonText className=\"w-2/3\" />\n </div>\n ))}\n </div>\n );\n}\n\nfunction PageSkeleton({ compact }: { compact?: boolean }) {\n return (\n <div role=\"status\" aria-label=\"Loading page\" className=\"flex flex-col\">\n <div\n className={`flex flex-col gap-2 border-b border-border ${compact ? 'px-4 pt-3 pb-4' : 'bg-fill-subtle px-6 pt-5 pb-4'}`}\n >\n <SkeletonText line=\"text-caption\" className=\"w-28\" />\n {compact ? null : <SkeletonText line=\"text-title\" className=\"h-5 w-56\" />}\n <SkeletonText className=\"w-72 max-w-full\" />\n <SkeletonText line=\"text-caption\" className=\"w-40\" />\n </div>\n <div className={`flex flex-col gap-3 ${compact ? 'p-4' : 'p-6'}`}>\n <SkeletonText className=\"w-full max-w-3xl\" />\n <SkeletonText className=\"w-5/6 max-w-2xl\" />\n <SkeletonText className=\"w-2/3 max-w-xl\" />\n </div>\n </div>\n );\n}\n\nfunction MoreButton({ onClick, label = 'Load more' }: { onClick: () => void; label?: string }) {\n return (\n <button\n type=\"button\"\n className=\"self-start text-caption text-muted-foreground hover:text-foreground\"\n onClick={onClick}\n >\n {label}\n </button>\n );\n}\n\n/** The next page of a page's notes, then a button for the one after. */\nfunction MoreNotes({\n source,\n pageId,\n cursor,\n pagesById,\n onPageClick,\n}: {\n source: KnowledgeExplorerSource;\n pageId: string;\n cursor: string;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n const chunk = source.usePage(pageId, cursor);\n const [showNext, setShowNext] = useState(false);\n const known = useMemo(() => withPages(pagesById, chunk.data?.related ?? []), [chunk.data, pagesById]);\n if (chunk.isPending) return <NotesSkeleton />;\n if (!chunk.data) return null;\n const next = chunk.data.notesNextCursor;\n return (\n <>\n <ul className=\"flex flex-col gap-3\">\n {chunk.data.notes.map(note => (\n <KnowledgeNoteItem key={note.id} note={note} pagesById={known} onPageClick={onPageClick} />\n ))}\n </ul>\n {next ? (\n showNext ? (\n <MoreNotes source={source} pageId={pageId} cursor={next} pagesById={pagesById} onPageClick={onPageClick} />\n ) : (\n <MoreButton label=\"Load more notes\" onClick={() => setShowNext(true)} />\n )\n ) : null}\n </>\n );\n}\n\n/** A page's children, a page at a time. */\nfunction ChildPages({\n useTreeLevels,\n parentId,\n onOpen,\n}: {\n useTreeLevels: NonNullable<KnowledgeExplorerSource['useTreeLevels']>;\n parentId: string;\n onOpen: (pageId: string) => void;\n}) {\n const [cursors, setCursors] = useState<string[]>([]);\n const requests = useMemo(() => [{ parentId }, ...cursors.map(cursor => ({ parentId, cursor }))], [parentId, cursors]);\n const levels = useTreeLevels(requests);\n const pages = levels.flatMap(level => level.data?.pages ?? []);\n const last = levels[levels.length - 1];\n if (levels[0]?.isPending) {\n return (\n <KnowledgeDetailSection label=\"Pages\">\n <TreeRowsSkeleton label=\"Loading pages\" rows={3} />\n </KnowledgeDetailSection>\n );\n }\n const next = last?.data?.nextCursor;\n if (pages.length === 0 && !next) return null;\n return (\n <KnowledgeDetailSection label=\"Pages\">\n <div className={`rounded-xl p-1 ${raisedSurfaceStyle}`}>\n <Tree className=\"rounded-lg bg-background p-1\" onSelect={onOpen}>\n <ChildPageItems pages={pages} useTreeLevels={useTreeLevels} onOpen={onOpen} />\n </Tree>\n </div>\n {next ? <MoreButton onClick={() => setCursors(current => [...current, next])} /> : null}\n </KnowledgeDetailSection>\n );\n}\n\nfunction ChildPageItems({\n pages,\n useTreeLevels,\n onOpen,\n}: {\n pages: KnowledgePagePayload[];\n useTreeLevels: NonNullable<KnowledgeExplorerSource['useTreeLevels']>;\n onOpen: (pageId: string) => void;\n}) {\n return pages.map(child =>\n child.childCount !== 0 ? (\n <ChildPageFolder key={child.id} page={child} useTreeLevels={useTreeLevels} onOpen={onOpen} />\n ) : (\n <Tree.File key={child.id} id={child.id}>\n <Tree.Icon className=\"text-muted-foreground\">\n <FileText />\n </Tree.Icon>\n <ChildPageLabel page={child} />\n </Tree.File>\n ),\n );\n}\n\nfunction ChildPageLabel({ page }: { page: KnowledgePagePayload }) {\n if (!page.description) return <Tree.Label>{page.name}</Tree.Label>;\n return (\n <KnowledgeTooltip label={page.description}>\n <Tree.Label>{page.name}</Tree.Label>\n </KnowledgeTooltip>\n );\n}\n\nfunction ChildPageFolder({\n page,\n useTreeLevels,\n onOpen,\n}: {\n page: KnowledgePagePayload;\n useTreeLevels: NonNullable<KnowledgeExplorerSource['useTreeLevels']>;\n onOpen: (pageId: string) => void;\n}) {\n const [open, setOpen] = useState(false);\n return (\n <Tree.Folder id={page.id} open={open} onOpenChange={setOpen}>\n <Tree.FolderTrigger\n actions={\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n tooltip={`Open ${page.name}`}\n aria-label={`Open ${page.name}`}\n onClick={() => onOpen(page.id)}\n >\n <ArrowRight />\n </Button>\n }\n >\n <Tree.Icon className=\"text-muted-foreground\">\n <Folder />\n </Tree.Icon>\n <ChildPageLabel page={page} />\n {page.childCount ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"ml-auto pl-2 tabular-nums\">\n {page.childCount}\n </Txt>\n ) : null}\n </Tree.FolderTrigger>\n <Tree.FolderContent>\n {open ? <ChildPageLevel parentId={page.id} useTreeLevels={useTreeLevels} onOpen={onOpen} /> : null}\n </Tree.FolderContent>\n </Tree.Folder>\n );\n}\n\nfunction ChildPageLevel({\n parentId,\n useTreeLevels,\n onOpen,\n}: {\n parentId: string;\n useTreeLevels: NonNullable<KnowledgeExplorerSource['useTreeLevels']>;\n onOpen: (pageId: string) => void;\n}) {\n const [cursors, setCursors] = useState<string[]>([]);\n const levels = useTreeLevels([{ parentId }, ...cursors.map(cursor => ({ parentId, cursor }))]);\n const pages = levels.flatMap(level => level.data?.pages ?? []);\n const next = levels[levels.length - 1]?.data?.nextCursor;\n if (levels[0]?.isPending) {\n return (\n <li role=\"none\" className=\"pl-6\">\n <TreeRowsSkeleton label=\"Loading pages\" rows={2} />\n </li>\n );\n }\n if (levels[0]?.isError) return <ChildPageLevelNote>Couldn’t load the pages under this one.</ChildPageLevelNote>;\n if (pages.length === 0 && !next) return <ChildPageLevelNote>No pages under this one.</ChildPageLevelNote>;\n return (\n <>\n <ChildPageItems pages={pages} useTreeLevels={useTreeLevels} onOpen={onOpen} />\n {next ? (\n <li role=\"none\" className=\"pl-9\">\n <MoreButton onClick={() => setCursors(current => [...current, next])} />\n </li>\n ) : null}\n </>\n );\n}\n\nfunction ChildPageLevelNote({ children }: { children: ReactNode }) {\n return (\n <li role=\"none\" className=\"flex h-8 items-center pl-9 text-caption text-muted-foreground\">\n {children}\n </li>\n );\n}\n\ninterface MentionSelection {\n source: KnowledgePagePayload;\n target: KnowledgePagePayload;\n point: { x: number; y: number };\n pane: { width: number; height: number };\n}\n\n/** What a clicked mention line stands for: the notes on one page that mention the other. */\nfunction MentionPopup({\n source,\n mention,\n pagesById,\n onOpen,\n onClose,\n}: {\n source: KnowledgeExplorerSource;\n mention: MentionSelection;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onOpen: (pageId: string) => void;\n onClose: () => void;\n}) {\n const detail = source.usePage(mention.source.id);\n const notes = (detail.data?.notes ?? []).filter(note => note.mentions.includes(mention.target.id));\n useEffect(() => {\n const onKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose();\n };\n window.addEventListener('keydown', onKey);\n return () => window.removeEventListener('keydown', onKey);\n }, [onClose]);\n return (\n <div\n role=\"dialog\"\n aria-label={`${mention.source.name} mentions ${mention.target.name}`}\n data-testid=\"knowledge-mention-popup\"\n className=\"absolute z-20 flex w-80 max-w-[calc(100%-1rem)] flex-col gap-2 overflow-hidden rounded-lg border border-border bg-card p-3 shadow-overlay\"\n style={mentionPopupPlacement(mention)}\n >\n <div className=\"flex items-start gap-2\">\n <Txt as=\"h3\" variant=\"card-title\" className=\"min-w-0 flex-1\">\n <button type=\"button\" className=\"hover:underline\" onClick={() => onOpen(mention.source.id)}>\n {mention.source.name}\n </button>\n <Txt as=\"span\" variant=\"card-title\" tone=\"muted\">\n {' '}\n mentions{' '}\n </Txt>\n <button type=\"button\" className=\"hover:underline\" onClick={() => onOpen(mention.target.id)}>\n {mention.target.name}\n </button>\n </Txt>\n <button\n type=\"button\"\n aria-label=\"Close\"\n className=\"rounded p-0.5 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={onClose}\n >\n <X size={14} aria-hidden />\n </button>\n </div>\n <div className=\"min-h-0 overflow-y-auto\">\n {detail.isPending ? (\n <NotesSkeleton />\n ) : notes.length === 0 ? (\n <Txt variant=\"caption\" tone=\"muted\">\n The notes that make this mention aren't in the first page of notes. Open {mention.source.name} to read them\n all.\n </Txt>\n ) : (\n <ul className=\"flex flex-col gap-2\">\n {notes.map(note => (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={withPages(\n pagesById,\n detail.data ? [...detail.data.related, ...detail.data.ancestors, detail.data.page] : [],\n )}\n onPageClick={page => onOpen(page.id)}\n compact\n />\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n}\n\nfunction SelectedPage({\n source,\n pageId,\n pagesById,\n onSelect,\n highlightMentionOf,\n compact,\n}: {\n source: KnowledgeExplorerSource;\n pageId: string;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onSelect: (pageId: string) => void;\n highlightMentionOf?: string;\n compact?: boolean;\n}) {\n const detail = source.usePage(pageId);\n const activity = (source.useActivity ?? noActivity)(pageId);\n const [moreNotes, setMoreNotes] = useState<{ pageId: string } | null>(null);\n const known = useMemo(\n () => (detail.data ? withPages(pagesById, [...detail.data.ancestors, ...detail.data.related]) : pagesById),\n [detail.data, pagesById],\n );\n\n if (detail.isPending) return <PageSkeleton compact={compact} />;\n if (detail.isError || !detail.data) {\n const notFound = isNotFound(detail.error);\n return (\n <EmptyState\n tone=\"error\"\n variant=\"fill\"\n titleSlot={notFound ? 'Page not found' : 'Failed to load the page'}\n descriptionSlot={notFound ? 'It may have been deleted or merged.' : (detail.error?.message ?? '')}\n />\n );\n }\n const onPageClick = (page: KnowledgePagePayload) => onSelect(page.id);\n const next = detail.data.notesNextCursor;\n return (\n <KnowledgePageDetail\n compact={compact}\n page={detail.data.page}\n notes={detail.data.notes}\n pin={detail.data.pin ?? undefined}\n pagesById={known}\n onPageClick={onPageClick}\n highlightMentionOf={highlightMentionOf}\n ancestors={detail.data.ancestors}\n mentionedBy={detail.data.mentionedBy}\n activity={activity.data?.events}\n childPages={\n source.useTreeLevels ? (\n <ChildPages key={pageId} useTreeLevels={source.useTreeLevels} parentId={pageId} onOpen={onSelect} />\n ) : undefined\n }\n notesMore={\n next ? (\n moreNotes?.pageId === pageId ? (\n <MoreNotes source={source} pageId={pageId} cursor={next} pagesById={known} onPageClick={onPageClick} />\n ) : (\n <MoreButton label=\"Load more notes\" onClick={() => setMoreNotes({ pageId })} />\n )\n ) : undefined\n }\n />\n );\n}\n\nfunction SearchBox({ source, onSelect }: { source: KnowledgeExplorerSource; onSelect: (pageId: string) => void }) {\n const [query, setQuery] = useState('');\n const search = source.useSearch(query);\n const results = query.trim().length >= MIN_SEARCH_LENGTH ? (search.data?.results ?? []) : [];\n const seen = new Set<string>();\n const pages = results\n .map(hit => hit.page)\n .filter(page => (seen.has(page.id) ? false : (seen.add(page.id), true)))\n .slice(0, 10);\n return (\n <div className=\"relative w-64 min-w-0\">\n <SearchInput\n label=\"Search knowledge\"\n placeholder=\"Search pages and notes\"\n size=\"sm\"\n value={query}\n onValueChange={setQuery}\n />\n {pages.length > 0 ? (\n <div className={`absolute z-20 mt-1 w-full overflow-hidden rounded-xl ${overlaySurfaceStyle}`}>\n <ScrollArea maxHeight=\"18rem\">\n <ul role=\"listbox\" aria-label=\"Search results\" className=\"p-1\">\n {pages.map(page => (\n <li key={page.id} role=\"option\" aria-selected={false}>\n <button\n type=\"button\"\n className={cn(menuItemButtonClass, 'whitespace-normal')}\n onClick={() => {\n onSelect(page.id);\n setQuery('');\n }}\n >\n <div className=\"line-clamp-2\">{page.name}</div>\n </button>\n </li>\n ))}\n </ul>\n </ScrollArea>\n </div>\n ) : null}\n </div>\n );\n}\n\ntype LevelResult = {\n pages: KnowledgePagePayload[];\n loaded: ReadonlySet<string>;\n failed: ReadonlySet<string>;\n nextCursor: ReadonlyMap<string, string>;\n};\n\n// Compares pages by identity, so a host must not mutate a page payload in place: a new page is a new object.\nfunction sameLevels(a: LevelResult, b: LevelResult) {\n const sameSet = (x: ReadonlySet<string>, y: ReadonlySet<string>) =>\n x.size === y.size && [...x].every(id => y.has(id));\n return (\n a.pages.length === b.pages.length &&\n a.pages.every((page, index) => page === b.pages[index]) &&\n sameSet(a.loaded, b.loaded) &&\n sameSet(a.failed, b.failed) &&\n a.nextCursor.size === b.nextCursor.size &&\n [...a.nextCursor].every(([id, cursor]) => b.nextCursor.get(id) === cursor)\n );\n}\n\n/**\n * The tree loaded a level at a time through `useTreeLevels`: the root scopes, then each level as it is\n * opened, plus the path to the selected page. Unloaded pages keep a chevron until opened.\n */\nfunction useLazyTree(\n source: KnowledgeExplorerSource,\n graph: KnowledgeExplorerGraph,\n selected: KnowledgeExplorerPageDetail | undefined,\n // Pages focused in the graph: their first level of children loads too, so the graph can draw them.\n graphOpened: readonly string[],\n) {\n const [expanded, setExpanded] = useState<ReadonlySet<string>>(() => new Set());\n const [more, setMore] = useState<ReadonlyMap<string, string[]>>(() => new Map());\n const requests = useMemo(() => {\n const list: KnowledgeExplorerTreeRequest[] = [{ parentId: null }];\n for (const id of expanded) {\n list.push({ parentId: id });\n for (const cursor of more.get(id) ?? []) list.push({ parentId: id, cursor });\n }\n for (const id of graphOpened) if (!expanded.has(id)) list.push({ parentId: id });\n return list;\n }, [expanded, more, graphOpened]);\n const levels = (source.useTreeLevels ?? noTreeLevels)(requests);\n\n const built = useMemo(() => {\n const failedIds = new Set<string>();\n const byId = new Map<string, KnowledgePagePayload>();\n const loadedIds = new Set<string>();\n const next = new Map<string, string>();\n levels.forEach((level, index) => {\n const request = requests[index];\n if (!request) return;\n const key = request.parentId ?? KNOWLEDGE_TREE_ROOT;\n if (level.isError) failedIds.add(key);\n if (!level.data) return;\n loadedIds.add(key);\n for (const page of level.data.pages) byId.set(page.id, page);\n if (level.data.nextCursor) next.set(key, level.data.nextCursor);\n else next.delete(key);\n });\n // The selected page and its path, so the tree can open down to a page outside the loaded levels.\n for (const page of [...(selected?.ancestors ?? []), ...(selected ? [selected.page] : [])]) {\n if (!byId.has(page.id)) byId.set(page.id, page);\n }\n return { pages: [...byId.values()], loaded: loadedIds, failed: failedIds, nextCursor: next };\n }, [levels, requests, selected]);\n // `levels` is a new array every render, so what is built from it is too: keep the previous result while\n // its pages are the same objects, or every render (a hover's, say) would lay the whole graph out again.\n const { pages, loaded, failed, nextCursor } = useStableWhile(built, sameLevels);\n\n // With the whole graph loaded, its structure is complete: only pages with children get a chevron.\n const graphParents = useMemo(\n () => (graph.truncated ? null : new Set(graph.pages.map(page => page.parentId).filter(id => id !== null))),\n [graph],\n );\n // A counted page has children exactly when its count says so. An uncounted one is guessed from the graph,\n // except a page created a moment ago, which has no children yet and shows no arrow while its level is counted.\n const mayHaveChildren = useCallback(\n (page: KnowledgePagePayload) =>\n !loaded.has(page.id) &&\n (page.childCountCapped ||\n (page.childCount !== undefined\n ? page.childCount > 0\n : !isJustCreated(page) && (graphParents ? graphParents.has(page.id) : true))),\n [loaded, graphParents],\n );\n const loadMore = useMemo(() => {\n const map = new Map<string, () => void>();\n for (const [parentId, cursor] of nextCursor) {\n map.set(parentId, () =>\n setMore(current => new Map(current).set(parentId, [...(current.get(parentId) ?? []), cursor])),\n );\n }\n return map;\n }, [nextCursor]);\n const onExpandedChange = useCallback((ids: ReadonlySet<string>) => setExpanded(new Set(ids)), []);\n\n return {\n pages,\n loaded,\n failed,\n mayHaveChildren,\n loadMore,\n onExpandedChange,\n rootsPending: levels[0]?.isPending ?? false,\n };\n}\n\n/**\n * Search, the page tree, and either the page graph or the selected page, kept in sync on one selection.\n * Wide screens show the tree beside the graph or the page; below `lg` one toggle picks tree, graph or page.\n * A first click on a page in the graph selects it; clicking it again opens it as a page. A search result\n * opens it as a page straight away. Selecting in the tree keeps the current view, so the graph frames the\n * page instead.\n */\nexport function KnowledgePageExplorer({\n graph,\n source,\n selectedPageId,\n onSelect,\n view: requestedView,\n onViewChange,\n toolbarEnd,\n flush = false,\n}: KnowledgePageExplorerProps) {\n const narrow = useIsMobile(1024);\n const view = !narrow && requestedView === 'tree' ? 'graph' : requestedView;\n const selected = source.usePage(selectedPageId);\n const lazyMode = !!source.useTreeLevels;\n // Parents whose next level the graph loads: the focus and its parent (or the root scopes), plus any\n // page whose stand-in dots the pointer rested on.\n const [graphOpened, setGraphOpened] = useState<readonly string[]>([]);\n const [previewed, setPreviewed] = useState<readonly string[]>([]);\n const [openGroups, setOpenGroups] = useState<ReadonlySet<string>>(() => new Set());\n // Children drawn past the cap, per parent, as its \"+N more\" circle is clicked.\n const [revealed, setRevealed] = useState<ReadonlyMap<string, number>>(() => new Map());\n const [allLinks, setAllLinks] = useState(false);\n const [dotCounts, setDotCounts] = useState(true);\n const lazy = useLazyTree(source, graph, selected.data, graphOpened);\n // With tree levels the graph loads like the tree: the focus (or the root scopes) and what sits around\n // it, never the whole instance. Without them it draws the host's bounded graph as it is.\n const drawnGraph = useMemo(\n () =>\n lazyMode\n ? lazyGraph({\n // The host's bounded graph fills in pages a level's first chunk didn't reach; tree levels win.\n pages: [...new Map([...graph.pages, ...lazy.pages].map(page => [page.id, page])).values()],\n loadedParents: lazy.loaded,\n rootKey: KNOWLEDGE_TREE_ROOT,\n focusId: selectedPageId,\n openGroups,\n revealed,\n })\n : {\n pages: graph.pages,\n hiddenChildren: new Map<string, { hidden: number; drawn: number }>(),\n wanted: [],\n hub: null,\n },\n [lazyMode, lazy.pages, lazy.loaded, selectedPageId, openGroups, revealed, graph.pages],\n );\n // The pages the focus needs are in (or failed to load): only then does the graph move to the new focus.\n const graphSettled = !lazyMode || drawnGraph.wanted.every(id => lazy.loaded.has(id) || lazy.failed.has(id));\n useEffect(() => {\n if (!lazyMode || view === 'page') return;\n const next = [...new Set([...drawnGraph.wanted, ...previewed])];\n setGraphOpened(current =>\n current.length === next.length && current.every((id, index) => id === next[index]) ? current : next,\n );\n }, [lazyMode, view, drawnGraph.wanted, previewed]);\n\n // The selected page's own links: its notes' mentions and `[[links]]` in its body going out, notes\n // elsewhere that mention it coming in. Each end is a page id or a ref; the ends the explorer holds\n // resolve at once, the rest are fetched (up to twice FOCUS_LINK_CAP keys each way, outranking sibling dots).\n const focusLinkList = (source.usePageLinks ?? noLinkQuery)(view === 'graph' ? selectedPageId : null).data;\n const linkEnds = useMemo(() => {\n const detail = selected.data;\n if (!detail || detail.page.id !== selectedPageId) return null;\n const known = new Map([...lazy.pages, ...detail.ancestors, ...detail.related].map(page => [page.id, page]));\n const index = knowledgePageRefIndex(known.values());\n const own = detail.page.id;\n const mentions = detail.notes.flatMap(note => note.mentions).filter(key => key && key !== own);\n const refs = bodyLinkRefs(detail.page.body ?? '')\n .map(ref => ref.trim())\n .filter(key => key && key !== own);\n const out = [...mentions, ...refs];\n // The page route resolves ids and `scope#path` refs, never a bare name: a `[[Name]]` the explorer does not hold\n // is not fetched (the link index supplies its edge), so it does not 404.\n const mentioned = new Set(mentions);\n const unaskable = new Set(\n refs.filter(ref => !ref.includes(':') && !PAGE_ID_SHAPE.test(ref) && !mentioned.has(ref)),\n );\n // Notes that mention this page, and (when the host lists links) bodies that link to it: a note edge is a\n // mention, a body edge a link, so a page that both links and mentions draws each once.\n const listed = (focusLinkList?.edges ?? []).filter(edge => edge.toPageId === own);\n const noteInto = [\n ...new Set([\n ...(detail.mentionedBy ?? []).map(note => note.pageId),\n ...listed.filter(edge => edge.kind === 'note').map(edge => edge.fromPageId),\n ]),\n ].filter(id => id !== own);\n const bodyInto = [...new Set(listed.filter(edge => edge.kind === 'body').map(edge => edge.fromPageId))].filter(\n id => id !== own,\n );\n const into = [...new Set([...noteInto, ...bodyInto])];\n const lookup = (key: string) => known.get(key) ?? index.resolve(key);\n const missing = (keys: string[]) => [...new Set(keys.filter(key => !lookup(key) && !unaskable.has(key)))];\n const resolvedCount = (keys: string[]) => new Set(keys.flatMap(key => lookup(key)?.id ?? [])).size;\n const room = (keys: string[]) => Math.max(0, FOCUS_LINK_FETCH_CAP - resolvedCount(keys));\n const wantOut = missing(out);\n const wantIn = missing(into);\n return {\n detail,\n known,\n mentions,\n refs,\n into,\n noteInto,\n bodyInto,\n lookup,\n fetchKeys: [...wantOut.slice(0, room(out)), ...wantIn.slice(0, room(into))],\n unfetched: {\n out: Math.max(0, wantOut.length - room(out)),\n in: Math.max(0, wantIn.length - room(into)),\n },\n };\n }, [selected.data, selectedPageId, lazy.pages, focusLinkList]);\n const fetchKeys = linkEnds?.fetchKeys ?? noKeys;\n const fetchedStates = (source.useLinkedPages ?? noLinkedPages)(fetchKeys);\n const fetchedSignature = fetchKeys\n .map((key, index) => `${key}=${fetchedStates[index]?.data?.page?.id ?? ''}`)\n .join('|');\n const fetchedPages = useMemo(() => {\n const byKey = new Map<string, KnowledgePagePayload>();\n fetchKeys.forEach((key, index) => {\n const page = fetchedStates[index]?.data?.page;\n if (page) byKey.set(key, page);\n });\n return byKey;\n // eslint-disable-next-line react-hooks/exhaustive-deps -- states are new arrays each render; the signature names which pages arrived\n }, [fetchedSignature]);\n const focusLinks = useMemo(() => {\n if (!linkEnds) return { edges: [], pages: [], unfetched: { in: 0, out: 0 } };\n const { detail, lookup, mentions, refs, noteInto, bodyInto } = linkEnds;\n const resolve = (key: string) => lookup(key) ?? fetchedPages.get(key);\n const own = detail.page.id;\n const edges: KnowledgePageEdge[] = [];\n const pages = new Map<string, KnowledgePagePayload>();\n const reach = (key: string, kind: 'mention' | 'link', side: 'out' | 'in') => {\n const target = resolve(key);\n if (!target || target.id === own) {\n // An unfetched id still draws its edge, counted as not shown until its page arrives.\n if (!target && kind === 'mention' && side === 'out') edges.push({ source: own, target: key, kind });\n if (!target && side === 'in') edges.push({ source: key, target: own, kind });\n return;\n }\n pages.set(target.id, target);\n edges.push(side === 'out' ? { source: own, target: target.id, kind } : { source: target.id, target: own, kind });\n };\n for (const key of mentions) reach(key, 'mention', 'out');\n for (const key of refs) reach(key, 'link', 'out');\n for (const key of noteInto) reach(key, 'mention', 'in');\n for (const key of bodyInto) reach(key, 'link', 'in');\n return {\n edges: edges.filter(edge => edge.source !== edge.target),\n pages: [...pages.values()],\n unfetched: linkEnds.unfetched,\n };\n }, [linkEnds, fetchedPages]);\n\n const focusLinkIds = useMemo(() => new Set(focusLinks.pages.map(page => page.id)), [focusLinks.pages]);\n const drawn = useMemo(() => {\n const ids = new Set(drawnGraph.pages.map(page => page.id));\n const extra = focusLinks.pages.filter(page => !ids.has(page.id));\n return { ...drawnGraph, pages: extra.length ? [...drawnGraph.pages, ...extra] : drawnGraph.pages };\n }, [drawnGraph, focusLinks.pages]);\n const pagesById = useMemo(() => new Map(drawn.pages.map(page => [page.id, page])), [drawn.pages]);\n const previewParent = (parentId: string) =>\n // The last few only, so hovering around the graph never keeps an unbounded set of levels loading.\n setPreviewed(current => (current.includes(parentId) ? current : [...current, parentId].slice(-8)));\n // A scope picked in the tree narrows the tree and the graph to that scope and what sits under it.\n const [focusScopeId, setFocusScopeId] = useState<string | null>(null);\n // Every link the explorer knows of: mentions the host's graph found, `[[links]]` in loaded bodies,\n // and the selected page's own. Only the selected page's are drawn (capped) unless all links are on.\n const knownLinks = useMemo(() => {\n // A body link the loaded page shows and the link index lists is one line, not two.\n const seen = new Set<string>();\n return [\n ...graph.edges.filter(edge => edge.kind === 'mention'),\n ...bodyLinkEdges(drawn.pages),\n ...focusLinks.edges,\n ].filter(edge => {\n const key = `${edge.kind}:${edge.source}>${edge.target}`;\n return seen.has(key) ? false : (seen.add(key), true);\n });\n }, [graph.edges, drawn.pages, focusLinks.edges]);\n const linkView = useMemo(\n () => visibleLinks(knownLinks, pagesById, selectedPageId, allLinks),\n [knownLinks, pagesById, selectedPageId, allLinks],\n );\n const linkEdges = linkView.edges;\n // Exact counts for the pages the graph holds, in batches the host's route accepts; a failure (a\n // server with no link index) leaves the counts to what the loaded pages show.\n const countIds = useMemo(\n () =>\n drawn.pages\n .filter(page => !isChildPlaceholder(page) && !isRestCircle(page) && !isScopeGroup(page))\n .map(page => page.id)\n .sort(),\n [drawn.pages],\n );\n const counted = (source.useLinkCounts ?? noLinkQuery)(view === 'graph' ? countIds : []);\n const exactCounts = useMemo(() => (counted.data ? new Map(Object.entries(counted.data)) : undefined), [counted.data]);\n const hiddenLinks = useMemo(\n () => (exactCounts ? undrawnLinks(exactCounts, linkEdges) : linkView.hidden),\n [exactCounts, linkEdges, linkView.hidden],\n );\n // The page under the pointer: once it rests there its real links are fetched and drawn to whichever\n // ends are on screen; the rest are counted as not shown.\n // Only a pointer that rests re-renders the explorer: passing over pages sets and clears a timer.\n const [hoverFetchId, setHoverFetchId] = useState<string | null>(null);\n const hoverTimer = useRef<ReturnType<typeof setTimeout>>(undefined);\n const setHoveredId = useCallback((id: string | null) => {\n clearTimeout(hoverTimer.current);\n if (id) hoverTimer.current = setTimeout(() => setHoverFetchId(id), HOVER_FETCH_DELAY_MS);\n else setHoverFetchId(null);\n }, []);\n useEffect(() => () => clearTimeout(hoverTimer.current), []);\n const hovered = (source.usePageLinks ?? noLinkQuery)(hoverFetchId);\n const hoverEdges = useMemo<KnowledgePageEdge[]>(\n () =>\n hoverFetchId && hovered.data\n ? hovered.data.edges.map(edge => ({\n source: edge.fromPageId,\n target: edge.toPageId,\n kind: edge.kind === 'body' ? ('link' as const) : ('mention' as const),\n count: edge.count,\n }))\n : [],\n [hoverFetchId, hovered.data],\n );\n\n // A clicked mention line shows the notes that make the mention; opening the page from there marks them.\n const [mention, setMention] = useState<MentionSelection | null>(null);\n const [marked, setMarked] = useState<{ source: string; target: string } | null>(null);\n const closeMention = useCallback(() => setMention(null), []);\n // Below lg the graph shares its slot with the tree. Mount it only when it is showing: a graph mounted\n // into a hidden 0×0 pane has nothing to fit and was left unfitted when the toggle revealed it.\n const graphShown = !narrow || view === 'graph';\n const overlay = !narrow;\n const [treeOpen, setTreeOpen] = useState(true);\n const [drawerLastId, setDrawerLastId] = useState<string>();\n const viewTabs = useRef<HTMLDivElement>(null);\n const showPagesButton = useRef<HTMLElement>(null);\n const hidePagesButton = useRef<HTMLElement>(null);\n const focusTabOnPageOpen = useRef(false);\n const highlightMentionOf = marked && marked.source === selectedPageId ? marked.target : undefined;\n const showPage = view === 'page' && !!selectedPageId;\n // The pages focused before this one, most recent last, so Back retraces a walk through the levels.\n const [history, setHistory] = useState<readonly string[]>([]);\n const lastSelected = useRef<string | null>(selectedPageId);\n const goingBackTo = useRef<string | null>(null);\n useEffect(() => {\n const previous = lastSelected.current;\n lastSelected.current = selectedPageId;\n const backTarget = goingBackTo.current;\n goingBackTo.current = null;\n // Arriving where Back pointed isn't a new step; any other selection is, even if Back's was ignored.\n if (backTarget && backTarget === selectedPageId) return;\n if (!previous || !selectedPageId || previous === selectedPageId) return;\n setHistory(current => [...current.filter(id => id !== selectedPageId), previous].slice(-FOCUS_HISTORY_CAP));\n }, [selectedPageId]);\n const backTo = history.length ? history[history.length - 1] : undefined;\n const goBack = () => {\n if (!backTo) return;\n goingBackTo.current = backTo;\n setHistory(current => current.slice(0, -1));\n onSelect(backTo);\n };\n const openPage = (pageId: string) => {\n onSelect(pageId);\n onViewChange('page');\n };\n const frameInGraph = (pageId: string) => {\n onSelect(pageId);\n if (requestedView !== 'graph') onViewChange('graph');\n };\n // From the tree: in the graph, a first click frames the page there and a second click on the same\n // page opens it, like clicking a node. Elsewhere it opens. A lazily loaded graph loads around whatever\n // is focused; a host's fixed graph that lacks the page has nothing to frame, so it opens as a page.\n const selectFromTree = (page: KnowledgePagePayload) => {\n if (page.isScope) setFocusScopeId(page.id);\n if (view === 'graph' && (lazyMode || pagesById.has(page.id)) && page.id !== selectedPageId) frameInGraph(page.id);\n else openPage(page.id);\n };\n // Pages reached from outside the tree (search, links, mentions) clear a focus they fall outside of.\n const leaveScopeFocusFor = (pageId: string) => {\n if (focusScopeId && !withinScope([...lazy.pages, ...drawn.pages], focusScopeId).some(page => page.id === pageId)) {\n setFocusScopeId(null);\n }\n };\n const openAnywhere = (pageId: string) => {\n leaveScopeFocusFor(pageId);\n openPage(pageId);\n };\n // From search: in the graph, a first pick frames the page there and a second pick of the focused page opens\n // it, like the tree. A fixed graph that lacks the page has nothing to frame, so it opens as a page.\n const selectFromSearch = (pageId: string) => {\n if (view === 'graph' && (lazyMode || pagesById.has(pageId)) && pageId !== selectedPageId) {\n leaveScopeFocusFor(pageId);\n frameInGraph(pageId);\n } else openAnywhere(pageId);\n };\n const focusScope = focusScopeId\n ? (lazy.pages.find(page => page.id === focusScopeId) ?? pagesById.get(focusScopeId))\n : undefined;\n const treePages = withinScope(source.useTreeLevels ? lazy.pages : graph.pages, focusScope ? focusScopeId : null);\n const graphPages = useMemo(\n () => withinScope(drawn.pages, focusScope ? focusScopeId : null),\n [drawn.pages, focusScope, focusScopeId],\n );\n // With nothing selected the graph still centres on its first root scope, so that scope's \"more\" note shows.\n const focusedInGraph = view === 'graph' ? pagesById.get(selectedPageId ?? drawn.hub ?? '') : undefined;\n const children = focusedInGraph ? drawn.hiddenChildren.get(focusedInGraph.id) : undefined;\n const views: Array<{ value: KnowledgeExplorerView; label: string; icon: ReactNode; narrowOnly?: boolean }> = [\n { value: 'tree', label: 'Tree', icon: <ListTree />, narrowOnly: true },\n { value: 'graph', label: 'Graph', icon: <Network />, narrowOnly: false },\n { value: 'page', label: 'Page', icon: <FileText />, narrowOnly: false },\n ];\n\n const tabValue = explorerTab(view, showPage);\n const drawerOpen = overlay && !showPage && !!selectedPageId && !isNotFound(selected.error);\n const drawerPageId = drawerOpen && selectedPageId ? selectedPageId : undefined;\n if (drawerPageId && drawerPageId !== drawerLastId) setDrawerLastId(drawerPageId);\n const drawerShownId = drawerPageId ?? drawerLastId;\n const graphInsets = {\n left: treeInset(overlay, treeOpen),\n right: drawerPageId ? PAGE_DRAWER_INSET : 0,\n };\n const insetStyle: InsetStyle = {\n '--knowledge-tree-inset': `${graphInsets.left}px`,\n '--knowledge-tree-drawer-inset': `${overlay && treeOpen ? TREE_DRAWER_INSET : 0}px`,\n '--knowledge-drawer-inset': `${graphInsets.right}px`,\n };\n const focusViewTab = () =>\n viewTabs.current?.querySelector<HTMLElement>('[role=\"tab\"][aria-selected=\"true\"]')?.focus();\n const focusPageTabOnMount = (section: HTMLElement | null) => {\n if (!section || !focusTabOnPageOpen.current) return;\n focusTabOnPageOpen.current = false;\n focusViewTab();\n };\n const toggleTree = (open: boolean) => {\n flushSync(() => setTreeOpen(open));\n (open ? hidePagesButton : showPagesButton).current?.focus();\n };\n\n const treeClosed = overlay && !treeOpen;\n const treeHeader = overlay ? (\n <DataPanel.Header>\n <DataPanel.Heading>Pages</DataPanel.Heading>\n <DataPanel.HeaderActions>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n tooltip=\"Hide pages\"\n aria-label=\"Hide pages\"\n ref={hidePagesButton}\n onClick={() => toggleTree(false)}\n >\n <PanelLeftClose />\n </Button>\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n ) : null;\n const treeBody = (\n <>\n {focusScope ? (\n <div\n className=\"flex items-center gap-2 border-b border-surface-rim bg-fill-subtle px-3 py-2\"\n data-testid=\"knowledge-scope-focus\"\n >\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <Txt as=\"span\" variant=\"eyebrow\" tone=\"muted\" className=\"uppercase\">\n {focusScope.displayLabel ?? 'Scope'}\n </Txt>\n <span className=\"flex min-w-0 items-center gap-1.5\">\n <KnowledgeSourceIcon page={focusScope} className=\"size-3.5\" />\n <KnowledgeTooltip label={focusScope.address ?? focusScope.name}>\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {scopeTitle(focusScope)}\n </Txt>\n </KnowledgeTooltip>\n </span>\n </div>\n <Button variant=\"ghost\" size=\"sm\" onClick={() => setFocusScopeId(null)}>\n All scopes\n </Button>\n </div>\n ) : null}\n <div className=\"min-h-0 flex-1 overflow-auto\">\n {source.useTreeLevels && lazy.rootsPending ? (\n <div className=\"p-2\">\n <TreeRowsSkeleton label=\"Loading pages\" rows={6} />\n </div>\n ) : (\n <KnowledgePageTree\n key={focusScope ? focusScope.id : 'all'}\n pages={treePages}\n pinnedIds={graph.pinnedIds}\n selectedPageId={selectedPageId}\n onSelect={selectFromTree}\n initiallyExpanded={focusScope ? [focusScope.id] : undefined}\n {...(source.useTreeLevels\n ? {\n mayHaveChildren: lazy.mayHaveChildren,\n onExpandedChange: lazy.onExpandedChange,\n loadMore: lazy.loadMore,\n }\n : {})}\n />\n )}\n </div>\n </>\n );\n const drawerPage = drawerShownId\n ? (pagesById.get(drawerShownId) ?? lazy.pages.find(page => page.id === drawerShownId))\n : undefined;\n\n return (\n <KnowledgePagesByRef.Provider value={fetchedPages}>\n <div className={`flex min-h-0 flex-1 flex-col ${flush ? '' : 'gap-2'}`}>\n <ActionRow className={flush ? 'shrink-0 border-b border-surface-rim px-3 py-2' : undefined}>\n <ActionRow.Start>\n <Tabs<KnowledgeExplorerView>\n ref={viewTabs}\n value={tabValue}\n defaultTab={tabValue}\n onValueChange={next => onViewChange(next)}\n aria-label=\"View\"\n >\n <TabList variant=\"pill-ghost\" size=\"sm\">\n {views.map(option => (\n <Tab\n key={option.value}\n value={option.value}\n disabled={option.value === 'page' && !selectedPageId}\n className={option.narrowOnly ? 'lg:hidden' : undefined}\n >\n <Icon size=\"xs\">{option.icon}</Icon>\n <Txt variant=\"caption\" className=\"text-inherit\">\n {option.label}\n </Txt>\n </Tab>\n ))}\n </TabList>\n </Tabs>\n <SearchBox source={source} onSelect={selectFromSearch} />\n </ActionRow.Start>\n {toolbarEnd ? <ActionRow.End>{toolbarEnd}</ActionRow.End> : null}\n </ActionRow>\n {!lazyMode && graph.truncated && !showPage ? (\n <Txt variant=\"caption\" tone=\"muted\" className={flush ? 'px-3 pt-2' : undefined}>\n The graph shows the first {graph.pages.length} pages. Open the tree or search to reach the rest.\n </Txt>\n ) : null}\n {selectedPageId && !showPage && isNotFound(selected.error) ? (\n <Txt role=\"alert\" variant=\"caption\" className={`text-destructive-foreground ${flush ? 'px-3 pt-2' : ''}`}>\n Page not found. The linked page may have been deleted or merged.\n </Txt>\n ) : null}\n <div style={insetStyle} className=\"relative flex min-h-0 flex-1 flex-col gap-3 lg:flex-row\">\n {overlay ? (\n <div\n inert={treeClosed}\n aria-hidden={treeClosed || undefined}\n data-state={treeClosed ? 'closed' : 'open'}\n className={`absolute inset-y-2 left-2 z-10 flex w-72 transition duration-slow ease-out-custom motion-reduce:transition-none ${treeClosed ? 'pointer-events-none -translate-x-4 opacity-0' : 'translate-x-0 opacity-100'}`}\n >\n <DataPanel variant=\"inline\" title=\"Pages\" className=\"shadow-overlay\">\n {treeHeader}\n {treeBody}\n </DataPanel>\n </div>\n ) : (\n <aside\n aria-label=\"Pages\"\n className={`min-h-0 w-full flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card lg:w-72 lg:flex-none lg:shrink-0 ${view === 'tree' ? 'flex' : 'hidden'}`}\n >\n {treeBody}\n </aside>\n )}\n {overlay ? (\n <Button\n tooltip=\"Show pages\"\n aria-label=\"Show pages\"\n size=\"icon-sm\"\n inert={!treeClosed}\n aria-hidden={!treeClosed || undefined}\n className={`absolute top-3 left-3 z-10 shadow-overlay transition-opacity duration-slow ease-out-custom motion-reduce:transition-none ${treeClosed ? 'opacity-100' : 'pointer-events-none opacity-0'}`}\n ref={showPagesButton}\n onClick={() => toggleTree(true)}\n >\n <PanelLeftOpen />\n </Button>\n ) : null}\n {showPage ? (\n <section\n ref={focusPageTabOnMount}\n aria-label=\"Selected page\"\n className={`flex min-h-0 min-w-0 flex-1 flex-col ${overlay ? `bg-background p-2 pl-[calc(var(--knowledge-tree-inset)+0.5rem)] transition-[padding] duration-slow ease-out-custom motion-reduce:transition-none ${flush ? '' : 'rounded-xl border border-border'}` : 'overflow-hidden rounded-lg border border-border bg-card'}`}\n >\n <div\n className={\n overlay\n ? `flex min-h-0 flex-1 flex-col overflow-hidden rounded-studio-frame ${frameSurfaceStyle}`\n : 'contents'\n }\n >\n <SelectedPage\n source={source}\n pageId={selectedPageId}\n pagesById={pagesById}\n onSelect={openAnywhere}\n highlightMentionOf={highlightMentionOf}\n />\n </div>\n </section>\n ) : (\n <div\n className={`relative min-h-0 min-w-0 flex-1 overflow-hidden bg-background lg:block lg:h-full ${flush ? '' : 'rounded-xl border border-border'} ${view === 'graph' ? 'block' : 'hidden'}`}\n data-testid=\"knowledge-graph-container\"\n >\n {graphShown ? (\n <div className=\"absolute top-3 right-3 z-10 -translate-x-(--knowledge-drawer-inset) transition-transform duration-slow ease-out-custom motion-reduce:transition-none\">\n <ButtonsGroup\n orientation=\"vertical\"\n size=\"sm\"\n aria-label=\"Graph options\"\n className=\"rounded-xl shadow-overlay\"\n >\n <Button\n data-testid=\"knowledge-graph-back\"\n aria-label=\"Back\"\n tooltip={backTo ? 'Back to the previous page' : 'Nothing to go back to yet'}\n tooltipPosition=\"left\"\n size=\"icon-sm\"\n disabled={!backTo}\n onClick={goBack}\n >\n <ArrowLeft />\n </Button>\n <Button\n aria-label=\"All links\"\n aria-pressed={allLinks}\n data-testid=\"knowledge-graph-all-links\"\n tooltip={allLinks ? 'Show only the selected page’s links' : 'Show every link between pages'}\n tooltipPosition=\"left\"\n size=\"icon-sm\"\n className={allLinks ? '[--control-icon:var(--foreground)]' : undefined}\n onClick={() => setAllLinks(current => !current)}\n >\n <Link2 />\n </Button>\n <Button\n aria-label=\"Link counts\"\n aria-pressed={dotCounts}\n data-testid=\"knowledge-graph-dot-counts\"\n tooltip={dotCounts ? 'Hide link counts' : 'Show link counts on each dot'}\n tooltipPosition=\"left\"\n size=\"icon-sm\"\n className={dotCounts ? '[--control-icon:var(--foreground)]' : undefined}\n onClick={() => setDotCounts(current => !current)}\n >\n <Hash />\n </Button>\n </ButtonsGroup>\n </div>\n ) : null}\n {graphShown ? (\n <KnowledgePageGraph\n pages={graphPages}\n edges={linkEdges}\n pinnedIds={graph.pinnedIds}\n grants={graph.grants}\n selectedPageId={selectedPageId}\n centerId={drawn.hub}\n hiddenLinks={hiddenLinks}\n knownLinks={knownLinks}\n fetchedLinks={hoverEdges}\n exactLinkCounts={exactCounts}\n onHover={setHoveredId}\n nearIds={focusLinkIds}\n settled={graphSettled}\n insets={graphInsets}\n collapsibleLegend={overlay}\n showCounts={dotCounts}\n onPreview={page => {\n if (isChildPlaceholder(page) && page.parentId) previewParent(page.parentId);\n }}\n onSelect={page => {\n // A stand-in loads its parent's children; a scope group opens into its scopes.\n if (isChildPlaceholder(page)) return page.parentId ? previewParent(page.parentId) : undefined;\n if (isRestCircle(page)) {\n const parentId = page.parentId;\n if (!parentId) return undefined;\n setRevealed(current => new Map(current).set(parentId, (current.get(parentId) ?? 0) + REST_BATCH));\n // Past the children loaded so far, fetch the next chunk too.\n return lazy.loadMore.get(parentId)?.();\n }\n if (isScopeGroup(page)) return setOpenGroups(current => new Set(current).add(page.id));\n // Hosts resolve a `?page=` with no view to the page view, so say graph outright.\n frameInGraph(page.id);\n }}\n onOpen={page => openPage(page.id)}\n onClearSelection={() => {\n setMention(null);\n if (selectedPageId) onSelect(null);\n }}\n onMentionSelect={setMention}\n />\n ) : null}\n {overlay ? (\n <div\n inert={!drawerPageId}\n aria-hidden={!drawerPageId || undefined}\n data-state={drawerPageId ? 'open' : 'closed'}\n onTransitionEnd={event => {\n if (!drawerPageId && event.target === event.currentTarget) setDrawerLastId(undefined);\n }}\n className={`absolute inset-y-2 right-2 z-10 flex w-96 transition duration-slow ease-out-custom motion-reduce:transition-none ${drawerPageId ? 'translate-x-0 opacity-100' : 'pointer-events-none translate-x-4 opacity-0'}`}\n >\n {drawerShownId ? (\n <DataPanel variant=\"inline\" title=\"Page details\" className=\"shadow-overlay\">\n <DataPanel.Header>\n <DataPanel.Heading className=\"min-w-0 flex-1 shrink\">\n <span className=\"truncate\">{drawerPage?.name ?? 'Page'}</span>\n </DataPanel.Heading>\n <DataPanel.HeaderActions>\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n tooltip=\"Open page\"\n aria-label=\"Open page\"\n onClick={() => {\n focusTabOnPageOpen.current = true;\n openPage(drawerShownId);\n }}\n >\n <SquareArrowOutUpRight />\n </Button>\n <DataPanel.CloseButton\n icon=\"x\"\n label=\"Close page details\"\n tooltip=\"Close\"\n onClick={() => {\n focusViewTab();\n onSelect(null);\n }}\n />\n </DataPanel.HeaderActions>\n </DataPanel.Header>\n <div className=\"flex min-h-0 flex-1 flex-col overflow-hidden\">\n <SelectedPage\n source={source}\n pageId={drawerShownId}\n pagesById={pagesById}\n onSelect={selectFromSearch}\n highlightMentionOf={highlightMentionOf}\n compact\n />\n </div>\n </DataPanel>\n ) : null}\n </div>\n ) : null}\n\n {mention && graphShown ? (\n <MentionPopup\n source={source}\n mention={mention}\n pagesById={pagesById}\n onClose={closeMention}\n onOpen={pageId => {\n setMarked(\n pageId === mention.source.id ? { source: mention.source.id, target: mention.target.id } : null,\n );\n setMention(null);\n openAnywhere(pageId);\n }}\n />\n ) : null}\n </div>\n )}\n </div>\n </div>\n </KnowledgePagesByRef.Provider>\n );\n}\n"],"mappings":"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"}
|