@mastra/playground-ui 68.0.0-alpha.2 → 68.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{FilterBar-CQl04O6t.cjs → FilterBar-BSP2UTjc.cjs} +2 -2
- package/dist/{FilterBar-CQl04O6t.cjs.map → FilterBar-BSP2UTjc.cjs.map} +1 -1
- package/dist/{FilterBar-BgW2dqRQ.js → FilterBar-PSQ1OwqH.js} +2 -2
- package/dist/{FilterBar-BgW2dqRQ.js.map → FilterBar-PSQ1OwqH.js.map} +1 -1
- package/dist/KnowledgePageGraph.css +55 -0
- package/dist/{MarkdownRenderer-2GOXQJEv.js → MarkdownRenderer-CI30RqdB.js} +19 -6
- package/dist/MarkdownRenderer-CI30RqdB.js.map +1 -0
- package/dist/{MarkdownRenderer-CB8Z_CHc.cjs → MarkdownRenderer-y65WGBhC.cjs} +19 -6
- package/dist/MarkdownRenderer-y65WGBhC.cjs.map +1 -0
- package/dist/{MetricsCard-CEB-f2sv.cjs → MetricsCard-BEwiS7Pe.cjs} +8 -8
- package/dist/MetricsCard-BEwiS7Pe.cjs.map +1 -0
- package/dist/{MetricsCard-M8awJ2B_.js → MetricsCard-ua6C6b8a.js} +10 -10
- package/dist/MetricsCard-ua6C6b8a.js.map +1 -0
- package/dist/{MetricsLineChart-BhHoduO0.js → MetricsLineChart-4SwxBbQx.js} +14 -3
- package/dist/MetricsLineChart-4SwxBbQx.js.map +1 -0
- package/dist/{MetricsLineChart-CjBm4IXu.cjs → MetricsLineChart-tZxsauau.cjs} +13 -2
- package/dist/MetricsLineChart-tZxsauau.cjs.map +1 -0
- package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs → MetricsStackedBarChart-CDLE76IB.cjs} +2 -2
- package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs.map → MetricsStackedBarChart-CDLE76IB.cjs.map} +1 -1
- package/dist/{MetricsStackedBarChart-BRuA6MTE.js → MetricsStackedBarChart-D2QyS4-z.js} +2 -2
- package/dist/{MetricsStackedBarChart-BRuA6MTE.js.map → MetricsStackedBarChart-D2QyS4-z.js.map} +1 -1
- package/dist/{activity-rJ1NQl_2.js → activity-C8Ql81WM.js} +2 -2
- package/dist/{activity-rJ1NQl_2.js.map → activity-C8Ql81WM.js.map} +1 -1
- package/dist/{activity-DyB5H3gF.cjs → activity-CcQZeDYi.cjs} +2 -2
- package/dist/{activity-DyB5H3gF.cjs.map → activity-CcQZeDYi.cjs.map} +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/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/SavedViews.cjs.js +1 -1
- package/dist/components/SavedViews.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/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +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 +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/{date-time-range-picker-CTt7Od0P.cjs → date-time-range-picker-CWGjoR3j.cjs} +40 -13
- package/dist/date-time-range-picker-CWGjoR3j.cjs.map +1 -0
- package/dist/{date-time-range-picker-DKh1K9Iy.js → date-time-range-picker-CdSiXwB4.js} +40 -13
- package/dist/date-time-range-picker-CdSiXwB4.js.map +1 -0
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
- 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 +2 -2
- package/dist/domains/chat/activity/model/activity-words.es.js +2 -2
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js +52 -6
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/knowledge-links.es.js +53 -9
- package/dist/domains/chat/knowledge/knowledge-links.es.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js +10 -3
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js +10 -3
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +8 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js.map +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +8 -3
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js.map +1 -1
- package/dist/domains/chat/knowledge.cjs.js +2 -0
- package/dist/domains/chat/knowledge.es.js +2 -2
- package/dist/domains/chat/messages/message-row.cjs.js +3 -3
- package/dist/domains/chat/messages/message-row.es.js +3 -3
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +35 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +36 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
- 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/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
- package/dist/domains/chat/messages/skill-message.es.js +2 -2
- 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/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/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +80 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.d.ts +1 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +78 -0
- package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +163 -13
- 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 +165 -15
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js +51 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.d.ts +1 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js +49 -0
- package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +7 -2
- 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 +7 -2
- 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 +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
- 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 +9 -4
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +9 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js +81 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.d.ts +1 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js +77 -0
- package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +11 -2
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +11 -2
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +79 -4
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js.map +1 -1
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +79 -4
- package/dist/domains/chat/tools/connect-prompt-tool.es.js.map +1 -1
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +238 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.d.ts +1 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js +237 -0
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request.cjs.js +40 -0
- package/dist/domains/chat/tools/mcp-input-request.cjs.js.map +1 -0
- package/dist/domains/chat/tools/mcp-input-request.d.ts +1 -0
- package/dist/domains/chat/tools/mcp-input-request.es.js +33 -0
- package/dist/domains/chat/tools/mcp-input-request.es.js.map +1 -0
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +9 -4
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +9 -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 +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -1
- package/dist/domains/chat.cjs.js +5 -3
- package/dist/domains/chat.es.js +4 -4
- package/dist/domains/connect/types.cjs.js.map +1 -1
- package/dist/domains/connect/types.es.js.map +1 -1
- package/dist/domains/connect/use-user-connect.cjs.js +19 -2
- package/dist/domains/connect/use-user-connect.cjs.js.map +1 -1
- package/dist/domains/connect/use-user-connect.es.js +19 -2
- package/dist/domains/connect/use-user-connect.es.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +4 -3
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +4 -3
- package/dist/domains/dashboards/components/dashboard-renderer.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-error.cjs.js +1 -1
- package/dist/domains/dashboards/components/widget-error.es.js +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +4 -3
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
- package/dist/domains/dashboards/hooks/use-widget-views.es.js +4 -3
- package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +9 -6
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +9 -6
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +2 -2
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +2 -2
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +6 -5
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +6 -5
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.cjs.js +9 -2
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/chrome.es.js +9 -2
- package/dist/domains/dashboards/lib/chrome.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/knowledge/components/KnowledgePageCard.cjs.js +48 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js +47 -0
- package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +63 -5
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +64 -6
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +485 -47
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +487 -50
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +1051 -123
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +1054 -126
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +75 -3
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +76 -4
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
- package/dist/domains/knowledge/lib/circleText.cjs.js +9 -0
- package/dist/domains/knowledge/lib/circleText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/circleText.d.ts +1 -0
- package/dist/domains/knowledge/lib/circleText.es.js +8 -0
- package/dist/domains/knowledge/lib/circleText.es.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js +82 -0
- package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/fitViewport.d.ts +1 -0
- package/dist/domains/knowledge/lib/fitViewport.es.js +73 -0
- package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -0
- package/dist/domains/knowledge/lib/graphShape.cjs.js +524 -0
- package/dist/domains/knowledge/lib/graphShape.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/graphShape.d.ts +1 -0
- package/dist/domains/knowledge/lib/graphShape.es.js +499 -0
- package/dist/domains/knowledge/lib/graphShape.es.js.map +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.cjs.js +11 -0
- package/dist/domains/knowledge/lib/linkCountsText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.d.ts +1 -0
- package/dist/domains/knowledge/lib/linkCountsText.es.js +10 -0
- package/dist/domains/knowledge/lib/linkCountsText.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js +29 -0
- package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageAddress.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageAddress.es.js +27 -0
- package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js +11 -11
- package/dist/domains/knowledge/lib/pageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageGraph.es.js +11 -11
- package/dist/domains/knowledge/lib/pageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/lib/pageRefs.cjs.js +69 -0
- package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageRefs.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageRefs.es.js +66 -0
- package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js +5 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/lib/pageTree.es.js +5 -1
- package/dist/domains/knowledge/lib/pageTree.es.js.map +1 -1
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js +82 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +1 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js +78 -0
- package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js.map +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.cjs.js +77 -0
- package/dist/domains/knowledge/lib/tooltipSide.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.d.ts +1 -0
- package/dist/domains/knowledge/lib/tooltipSide.es.js +75 -0
- package/dist/domains/knowledge/lib/tooltipSide.es.js.map +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js +65 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.d.ts +1 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.es.js +62 -0
- package/dist/domains/knowledge/lib/useLeavingNodes.es.js.map +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.cjs.js +15 -0
- package/dist/domains/knowledge/lib/useStableWhile.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.d.ts +1 -0
- package/dist/domains/knowledge/lib/useStableWhile.es.js +14 -0
- package/dist/domains/knowledge/lib/useStableWhile.es.js.map +1 -0
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +3 -3
- package/dist/domains/metrics/components/agent-runs-card.es.js +3 -3
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
- package/dist/domains/metrics/components/breakdown-card.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown-card.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 +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +3 -2
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +3 -2
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +3 -2
- package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +3 -2
- package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +3 -2
- package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +3 -2
- package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +2 -1
- package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +2 -1
- package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +3 -3
- package/dist/domains/metrics/components/token-usage-card.es.js +3 -3
- 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/observability/components/observability-histogram.cjs.js +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
- package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
- package/dist/domains/skills/skill-simple-form.cjs.js +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +1 -1
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +2 -2
- package/dist/domains/spans/components/spans-filter-bar.es.js +2 -2
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +1 -1
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +2 -2
- package/dist/domains/threads/components/threads-filter-bar.es.js +2 -2
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +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 +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.cjs.js +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +8 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +8 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-cell.es.js +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/use-traces-filter-bar.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
- 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/workflow-input-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
- package/dist/{filter-bar-time-range-mg9JeYue.js → filter-bar-time-range-qlV8p7hp.js} +2 -2
- package/dist/{filter-bar-time-range-mg9JeYue.js.map → filter-bar-time-range-qlV8p7hp.js.map} +1 -1
- package/dist/{filter-bar-time-range-BA-pXMlo.cjs → filter-bar-time-range-zdM024JD.cjs} +2 -2
- package/dist/{filter-bar-time-range-BA-pXMlo.cjs.map → filter-bar-time-range-zdM024JD.cjs.map} +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/lib/form/json-draft.cjs.js +1 -1
- package/dist/lib/form/json-draft.es.js +1 -1
- package/dist/lib/form/zod-provider.cjs.js +1 -1
- package/dist/lib/form/zod-provider.es.js +1 -1
- package/dist/{span-payload-primitives-B3RdahsC.js → span-payload-primitives-CKKIAVPJ.js} +4 -4
- package/dist/{span-payload-primitives-B3RdahsC.js.map → span-payload-primitives-CKKIAVPJ.js.map} +1 -1
- package/dist/{span-payload-primitives-_2d-pAOD.cjs → span-payload-primitives-D4tHWN2W.cjs} +4 -4
- package/dist/{span-payload-primitives-_2d-pAOD.cjs.map → span-payload-primitives-D4tHWN2W.cjs.map} +1 -1
- package/dist/src/domains/chat/knowledge/knowledge-links.d.ts +32 -4
- package/dist/src/domains/chat/knowledge/pinned-knowledge-data.d.ts +2 -0
- package/dist/src/domains/chat/tools/badges/knowledge-body-range.d.ts +12 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +5 -2
- package/dist/src/domains/chat/tools/badges/mcp-input-request-badge.d.ts +18 -0
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +4 -1
- package/dist/src/domains/chat/tools/badges/use-deferred-input-request.d.ts +44 -0
- package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +6 -1
- package/dist/src/domains/chat/tools/connect-prompt-tool.d.ts +10 -1
- package/dist/src/domains/chat/tools/mcp-input-request-tool.d.ts +18 -0
- package/dist/src/domains/chat/tools/mcp-input-request.d.ts +40 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +4 -2
- package/dist/src/domains/chat/tools/tool-card.d.ts +1 -1
- package/dist/src/domains/connect/types.d.ts +16 -0
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +4 -2
- package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +4 -3
- package/dist/src/domains/dashboards/index.d.ts +1 -1
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
- package/dist/src/domains/dashboards/lib/chrome.d.ts +6 -4
- package/dist/src/domains/dashboards/widget-kind.d.ts +12 -0
- package/dist/src/domains/knowledge/components/KnowledgePageCard.d.ts +23 -0
- package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +29 -0
- package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +27 -1
- package/dist/src/domains/knowledge/components/KnowledgePageTree.d.ts +2 -1
- package/dist/src/domains/knowledge/lib/circleText.d.ts +2 -0
- package/dist/src/domains/knowledge/lib/fitViewport.d.ts +67 -0
- package/dist/src/domains/knowledge/lib/graphShape.d.ts +131 -0
- package/dist/src/domains/knowledge/lib/linkCountsText.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/pageAddress.d.ts +5 -0
- package/dist/src/domains/knowledge/lib/pageGraph.d.ts +4 -4
- package/dist/src/domains/knowledge/lib/pageRefs.d.ts +15 -0
- package/dist/src/domains/knowledge/lib/pageTree.d.ts +2 -0
- package/dist/src/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +13 -0
- package/dist/src/domains/knowledge/lib/tooltipSide.d.ts +40 -0
- package/dist/src/domains/knowledge/lib/useLeavingNodes.d.ts +14 -0
- package/dist/src/domains/knowledge/lib/useStableWhile.d.ts +5 -0
- package/dist/src/domains/knowledge/pageTypes.d.ts +6 -1
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -1
- package/dist/src/ds/components/MarkdownRenderer/markdown-renderer.d.ts +8 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +1 -1
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +8 -0
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +6 -0
- package/dist/style.css +73 -2
- package/dist/{tool-approval-1qiB4hhG.cjs → tool-approval-CJvPDL7D.cjs} +4 -4
- package/dist/{tool-approval-1qiB4hhG.cjs.map → tool-approval-CJvPDL7D.cjs.map} +1 -1
- package/dist/{tool-approval-B6MFcaKV.js → tool-approval-DyN11vFA.js} +4 -4
- package/dist/{tool-approval-B6MFcaKV.js.map → tool-approval-DyN11vFA.js.map} +1 -1
- package/dist/{tool-call-Bu66PkD-.cjs → tool-call-DBn14X-3.cjs} +9 -3
- package/dist/{tool-call-Bu66PkD-.cjs.map → tool-call-DBn14X-3.cjs.map} +1 -1
- package/dist/{tool-call-Ch9-jjXU.js → tool-call-Dsj43lvJ.js} +9 -3
- package/dist/{tool-call-Ch9-jjXU.js.map → tool-call-Dsj43lvJ.js.map} +1 -1
- package/dist/{tool-card-DrqPZfPQ.cjs → tool-card-BOLXeKIp.cjs} +167 -126
- package/dist/tool-card-BOLXeKIp.cjs.map +1 -0
- package/dist/{tool-card-sO6P2Qj4.js → tool-card-HZ5bm7ue.js} +168 -127
- package/dist/tool-card-HZ5bm7ue.js.map +1 -0
- package/dist/{tool-presentation-DvCsb_kz.js → tool-presentation-CvibOP1J.js} +6 -1
- package/dist/tool-presentation-CvibOP1J.js.map +1 -0
- package/dist/{tool-presentation-CQlDEwgS.cjs → tool-presentation-D6nzVruN.cjs} +6 -1
- package/dist/tool-presentation-D6nzVruN.cjs.map +1 -0
- package/package.json +11 -11
- package/dist/MarkdownRenderer-2GOXQJEv.js.map +0 -1
- package/dist/MarkdownRenderer-CB8Z_CHc.cjs.map +0 -1
- package/dist/MetricsCard-CEB-f2sv.cjs.map +0 -1
- package/dist/MetricsCard-M8awJ2B_.js.map +0 -1
- package/dist/MetricsLineChart-BhHoduO0.js.map +0 -1
- package/dist/MetricsLineChart-CjBm4IXu.cjs.map +0 -1
- package/dist/date-time-range-picker-CTt7Od0P.cjs.map +0 -1
- package/dist/date-time-range-picker-DKh1K9Iy.js.map +0 -1
- package/dist/domains/knowledge/lib/pageLayout.cjs.js +0 -49
- package/dist/domains/knowledge/lib/pageLayout.cjs.js.map +0 -1
- package/dist/domains/knowledge/lib/pageLayout.d.ts +0 -1
- package/dist/domains/knowledge/lib/pageLayout.es.js +0 -48
- package/dist/domains/knowledge/lib/pageLayout.es.js.map +0 -1
- package/dist/src/domains/knowledge/lib/pageLayout.d.ts +0 -24
- package/dist/tool-card-DrqPZfPQ.cjs.map +0 -1
- package/dist/tool-card-sO6P2Qj4.js.map +0 -1
- package/dist/tool-presentation-CQlDEwgS.cjs.map +0 -1
- package/dist/tool-presentation-DvCsb_kz.js.map +0 -1
|
@@ -1,16 +1,139 @@
|
|
|
1
1
|
import { t as Txt } from "../../../Txt-BM6TVV_c.js";
|
|
2
2
|
import { n as EmptyState } from "../../../EmptyState-P-Gy898T.js";
|
|
3
3
|
import { useIsMobile } from "../../../hooks/use-is-mobile.es.js";
|
|
4
|
+
import { bodyLinkEdges, bodyLinkRefs, knowledgePageRefIndex } from "../lib/pageRefs.es.js";
|
|
4
5
|
import { KnowledgeNoteItem, KnowledgePageDetail } from "./KnowledgePageDetail.es.js";
|
|
6
|
+
import { isChildPlaceholder, isRestCircle, isScopeGroup, lazyGraph } from "../lib/graphShape.es.js";
|
|
5
7
|
import { mentionPopupPlacement } from "../lib/popupPlacement.es.js";
|
|
8
|
+
import { useStableWhile } from "../lib/useStableWhile.es.js";
|
|
6
9
|
import { KnowledgePageGraph } from "./KnowledgePageGraph.es.js";
|
|
7
10
|
import { KnowledgePageTree } from "./KnowledgePageTree.es.js";
|
|
8
|
-
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
11
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
9
12
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
-
import { X } from "lucide-react";
|
|
13
|
+
import { ArrowLeft, Hash, Link2, X } from "lucide-react";
|
|
11
14
|
// src/domains/knowledge/components/KnowledgePageExplorer.tsx
|
|
15
|
+
/** Page ids are ULIDs; a bare `[[id]]` is askable, a bare `[[Name]]` is not. */
|
|
16
|
+
var PAGE_ID_SHAPE = /^[0-9A-Z]{26}$/;
|
|
17
|
+
var JUST_CREATED_MS = 6e4;
|
|
18
|
+
var isJustCreated = (page) => Date.now() - Date.parse(page.createdAt) < JUST_CREATED_MS;
|
|
12
19
|
var MIN_SEARCH_LENGTH = 2;
|
|
20
|
+
/** Links of the selected page drawn at most in each direction; the rest are counted. */
|
|
21
|
+
var FOCUS_LINK_CAP = 20;
|
|
22
|
+
/** 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. */
|
|
23
|
+
var FOCUS_LINK_FETCH_CAP = 40;
|
|
24
|
+
function edgeKey(edge) {
|
|
25
|
+
return `${edge.kind}\u0000${edge.source}\u0000${edge.target}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The links to draw, and per page how many of its links (into it, out of it) go undrawn. With all links
|
|
29
|
+
* on, every link between drawn pages shows. Otherwise only the selected page's, up to
|
|
30
|
+
* {@link FOCUS_LINK_CAP} each way; with nothing selected, none.
|
|
31
|
+
*/
|
|
32
|
+
function visibleLinks(known, drawn, selectedId, all) {
|
|
33
|
+
const unique = /* @__PURE__ */ new Map();
|
|
34
|
+
for (const edge of known) if (edge.source !== edge.target && !unique.has(edgeKey(edge))) unique.set(edgeKey(edge), edge);
|
|
35
|
+
const pairs = /* @__PURE__ */ new Map();
|
|
36
|
+
for (const edge of unique.values()) pairs.set(`${edge.source}\u0000${edge.target}`, edge);
|
|
37
|
+
const shown = /* @__PURE__ */ new Set();
|
|
38
|
+
const more = {
|
|
39
|
+
in: 0,
|
|
40
|
+
out: 0
|
|
41
|
+
};
|
|
42
|
+
if (all) {
|
|
43
|
+
for (const [key, edge] of unique) if (drawn.has(edge.source) && drawn.has(edge.target)) shown.add(key);
|
|
44
|
+
} else if (selectedId) {
|
|
45
|
+
const admitted = /* @__PURE__ */ new Set();
|
|
46
|
+
const over = /* @__PURE__ */ new Set();
|
|
47
|
+
let ins = 0;
|
|
48
|
+
let outs = 0;
|
|
49
|
+
for (const [key, edge] of unique) {
|
|
50
|
+
if (!drawn.has(edge.source) || !drawn.has(edge.target)) continue;
|
|
51
|
+
const side = edge.source === selectedId ? "out" : edge.target === selectedId ? "in" : null;
|
|
52
|
+
if (!side) continue;
|
|
53
|
+
const pair = `${edge.source}\u0000${edge.target}`;
|
|
54
|
+
if (!admitted.has(pair) && !over.has(pair)) {
|
|
55
|
+
if ((side === "out" ? outs : ins) >= 20) {
|
|
56
|
+
over.add(pair);
|
|
57
|
+
more[side]++;
|
|
58
|
+
} else {
|
|
59
|
+
admitted.add(pair);
|
|
60
|
+
if (side === "out") outs++;
|
|
61
|
+
else ins++;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (admitted.has(pair)) shown.add(key);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const drawnPairs = new Set([...shown].map((key) => {
|
|
68
|
+
const edge = unique.get(key);
|
|
69
|
+
return `${edge.source}\u0000${edge.target}`;
|
|
70
|
+
}));
|
|
71
|
+
const hidden = /* @__PURE__ */ new Map();
|
|
72
|
+
const bump = (id, side) => {
|
|
73
|
+
if (!drawn.has(id)) return;
|
|
74
|
+
const counts = hidden.get(id) ?? {
|
|
75
|
+
in: 0,
|
|
76
|
+
out: 0
|
|
77
|
+
};
|
|
78
|
+
counts[side]++;
|
|
79
|
+
hidden.set(id, counts);
|
|
80
|
+
};
|
|
81
|
+
for (const [pair, edge] of pairs) {
|
|
82
|
+
if (drawnPairs.has(pair)) continue;
|
|
83
|
+
bump(edge.source, "out");
|
|
84
|
+
bump(edge.target, "in");
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
edges: [...unique.values()].filter((edge) => shown.has(edgeKey(edge))),
|
|
88
|
+
hidden,
|
|
89
|
+
more
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** The round buttons floating over the graph: muted when off or idle, a solid fill when pressed. */
|
|
93
|
+
var FLOAT_BUTTON = "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";
|
|
13
94
|
var noTreeLevels = () => [];
|
|
95
|
+
var noKeys = [];
|
|
96
|
+
var noLinkedPages = () => [];
|
|
97
|
+
var noLinkQuery = () => ({
|
|
98
|
+
isPending: false,
|
|
99
|
+
isError: false,
|
|
100
|
+
error: null
|
|
101
|
+
});
|
|
102
|
+
/** Longest a pointer rests on a page before its links are fetched, so sweeping across the graph fetches none. */
|
|
103
|
+
var HOVER_FETCH_DELAY_MS = 150;
|
|
104
|
+
/** Per page, the links into and out of it that none of `shown` draws, given the exact totals. */
|
|
105
|
+
function undrawnLinks(exact, shown) {
|
|
106
|
+
const drawn = /* @__PURE__ */ new Map();
|
|
107
|
+
const pairs = /* @__PURE__ */ new Set();
|
|
108
|
+
for (const edge of shown) {
|
|
109
|
+
if (edge.kind === "parent" || pairs.has(`${edge.source}\u0000${edge.target}`)) continue;
|
|
110
|
+
pairs.add(`${edge.source}\u0000${edge.target}`);
|
|
111
|
+
const out = drawn.get(edge.source) ?? {
|
|
112
|
+
in: 0,
|
|
113
|
+
out: 0
|
|
114
|
+
};
|
|
115
|
+
out.out++;
|
|
116
|
+
drawn.set(edge.source, out);
|
|
117
|
+
const into = drawn.get(edge.target) ?? {
|
|
118
|
+
in: 0,
|
|
119
|
+
out: 0
|
|
120
|
+
};
|
|
121
|
+
into.in++;
|
|
122
|
+
drawn.set(edge.target, into);
|
|
123
|
+
}
|
|
124
|
+
const hidden = /* @__PURE__ */ new Map();
|
|
125
|
+
for (const [id, total] of exact) {
|
|
126
|
+
const seen = drawn.get(id) ?? {
|
|
127
|
+
in: 0,
|
|
128
|
+
out: 0
|
|
129
|
+
};
|
|
130
|
+
hidden.set(id, {
|
|
131
|
+
in: Math.max(0, total.in - seen.in),
|
|
132
|
+
out: Math.max(0, total.out - seen.out)
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
return hidden;
|
|
136
|
+
}
|
|
14
137
|
var noActivity = () => ({
|
|
15
138
|
isPending: false,
|
|
16
139
|
isError: false,
|
|
@@ -277,11 +400,15 @@ function SearchBox({ source, onSelect }) {
|
|
|
277
400
|
}) : null]
|
|
278
401
|
});
|
|
279
402
|
}
|
|
403
|
+
function sameLevels(a, b) {
|
|
404
|
+
const sameSet = (x, y) => x.size === y.size && [...x].every((id) => y.has(id));
|
|
405
|
+
return a.pages.length === b.pages.length && a.pages.every((page, index) => page === b.pages[index]) && sameSet(a.loaded, b.loaded) && sameSet(a.failed, b.failed) && a.nextCursor.size === b.nextCursor.size && [...a.nextCursor].every(([id, cursor]) => b.nextCursor.get(id) === cursor);
|
|
406
|
+
}
|
|
280
407
|
/**
|
|
281
408
|
* The tree loaded a level at a time through `useTreeLevels`: the root scopes, then each level as it is
|
|
282
409
|
* opened, plus the path to the selected page. Unloaded pages keep a chevron until opened.
|
|
283
410
|
*/
|
|
284
|
-
function useLazyTree(source, graph, selected) {
|
|
411
|
+
function useLazyTree(source, graph, selected, graphOpened) {
|
|
285
412
|
const [expanded, setExpanded] = useState(() => /* @__PURE__ */ new Set());
|
|
286
413
|
const [more, setMore] = useState(() => /* @__PURE__ */ new Map());
|
|
287
414
|
const requests = useMemo(() => {
|
|
@@ -293,17 +420,25 @@ function useLazyTree(source, graph, selected) {
|
|
|
293
420
|
cursor
|
|
294
421
|
});
|
|
295
422
|
}
|
|
423
|
+
for (const id of graphOpened) if (!expanded.has(id)) list.push({ parentId: id });
|
|
296
424
|
return list;
|
|
297
|
-
}, [
|
|
425
|
+
}, [
|
|
426
|
+
expanded,
|
|
427
|
+
more,
|
|
428
|
+
graphOpened
|
|
429
|
+
]);
|
|
298
430
|
const levels = (source.useTreeLevels ?? noTreeLevels)(requests);
|
|
299
|
-
const
|
|
431
|
+
const built = useMemo(() => {
|
|
432
|
+
const failedIds = /* @__PURE__ */ new Set();
|
|
300
433
|
const byId = /* @__PURE__ */ new Map();
|
|
301
434
|
const loadedIds = /* @__PURE__ */ new Set();
|
|
302
435
|
const next = /* @__PURE__ */ new Map();
|
|
303
436
|
levels.forEach((level, index) => {
|
|
304
437
|
const request = requests[index];
|
|
305
|
-
if (!request
|
|
438
|
+
if (!request) return;
|
|
306
439
|
const key = request.parentId ?? "";
|
|
440
|
+
if (level.isError) failedIds.add(key);
|
|
441
|
+
if (!level.data) return;
|
|
307
442
|
loadedIds.add(key);
|
|
308
443
|
for (const page of level.data.pages) byId.set(page.id, page);
|
|
309
444
|
if (level.data.nextCursor) next.set(key, level.data.nextCursor);
|
|
@@ -313,6 +448,7 @@ function useLazyTree(source, graph, selected) {
|
|
|
313
448
|
return {
|
|
314
449
|
pages: [...byId.values()],
|
|
315
450
|
loaded: loadedIds,
|
|
451
|
+
failed: failedIds,
|
|
316
452
|
nextCursor: next
|
|
317
453
|
};
|
|
318
454
|
}, [
|
|
@@ -320,10 +456,13 @@ function useLazyTree(source, graph, selected) {
|
|
|
320
456
|
requests,
|
|
321
457
|
selected
|
|
322
458
|
]);
|
|
459
|
+
const { pages, loaded, failed, nextCursor } = useStableWhile(built, sameLevels);
|
|
323
460
|
const graphParents = useMemo(() => graph.truncated ? null : new Set(graph.pages.map((page) => page.parentId).filter((id) => id !== null)), [graph]);
|
|
324
461
|
return {
|
|
325
462
|
pages,
|
|
326
|
-
|
|
463
|
+
loaded,
|
|
464
|
+
failed,
|
|
465
|
+
mayHaveChildren: useCallback((page) => !loaded.has(page.id) && (page.childCountCapped || (page.childCount !== void 0 ? page.childCount > 0 : !isJustCreated(page) && (graphParents ? graphParents.has(page.id) : true))), [loaded, graphParents]),
|
|
327
466
|
loadMore: useMemo(() => {
|
|
328
467
|
const map = /* @__PURE__ */ new Map();
|
|
329
468
|
for (const [parentId, cursor] of nextCursor) map.set(parentId, () => setMore((current) => new Map(current).set(parentId, [...current.get(parentId) ?? [], cursor])));
|
|
@@ -341,37 +480,268 @@ function useLazyTree(source, graph, selected) {
|
|
|
341
480
|
* page instead.
|
|
342
481
|
*/
|
|
343
482
|
function KnowledgePageExplorer({ graph, source, selectedPageId, onSelect, view, onViewChange }) {
|
|
344
|
-
const
|
|
483
|
+
const selected = source.usePage(selectedPageId);
|
|
484
|
+
const lazyMode = !!source.useTreeLevels;
|
|
485
|
+
const [graphOpened, setGraphOpened] = useState([]);
|
|
486
|
+
const [previewed, setPreviewed] = useState([]);
|
|
487
|
+
const [openGroups, setOpenGroups] = useState(() => /* @__PURE__ */ new Set());
|
|
488
|
+
const [revealed, setRevealed] = useState(() => /* @__PURE__ */ new Map());
|
|
489
|
+
const [allLinks, setAllLinks] = useState(false);
|
|
490
|
+
const [dotCounts, setDotCounts] = useState(true);
|
|
491
|
+
const lazy = useLazyTree(source, graph, selected.data, graphOpened);
|
|
492
|
+
const drawnGraph = useMemo(() => lazyMode ? lazyGraph({
|
|
493
|
+
pages: [...new Map([...graph.pages, ...lazy.pages].map((page) => [page.id, page])).values()],
|
|
494
|
+
loadedParents: lazy.loaded,
|
|
495
|
+
rootKey: "",
|
|
496
|
+
focusId: selectedPageId,
|
|
497
|
+
openGroups,
|
|
498
|
+
revealed
|
|
499
|
+
}) : {
|
|
500
|
+
pages: graph.pages,
|
|
501
|
+
hiddenChildren: /* @__PURE__ */ new Map(),
|
|
502
|
+
wanted: [],
|
|
503
|
+
hub: null
|
|
504
|
+
}, [
|
|
505
|
+
lazyMode,
|
|
506
|
+
lazy.pages,
|
|
507
|
+
lazy.loaded,
|
|
508
|
+
selectedPageId,
|
|
509
|
+
openGroups,
|
|
510
|
+
revealed,
|
|
511
|
+
graph.pages
|
|
512
|
+
]);
|
|
513
|
+
const graphSettled = !lazyMode || drawnGraph.wanted.every((id) => lazy.loaded.has(id) || lazy.failed.has(id));
|
|
514
|
+
useEffect(() => {
|
|
515
|
+
if (!lazyMode || view === "page") return;
|
|
516
|
+
const next = [.../* @__PURE__ */ new Set([...drawnGraph.wanted, ...previewed])];
|
|
517
|
+
setGraphOpened((current) => current.length === next.length && current.every((id, index) => id === next[index]) ? current : next);
|
|
518
|
+
}, [
|
|
519
|
+
lazyMode,
|
|
520
|
+
view,
|
|
521
|
+
drawnGraph.wanted,
|
|
522
|
+
previewed
|
|
523
|
+
]);
|
|
524
|
+
const focusLinkList = (source.usePageLinks ?? noLinkQuery)(view === "graph" ? selectedPageId : null).data;
|
|
525
|
+
const linkEnds = useMemo(() => {
|
|
526
|
+
const detail = selected.data;
|
|
527
|
+
if (!detail || detail.page.id !== selectedPageId) return null;
|
|
528
|
+
const known = new Map([
|
|
529
|
+
...lazy.pages,
|
|
530
|
+
...detail.ancestors,
|
|
531
|
+
...detail.related
|
|
532
|
+
].map((page) => [page.id, page]));
|
|
533
|
+
const index = knowledgePageRefIndex(known.values());
|
|
534
|
+
const own = detail.page.id;
|
|
535
|
+
const mentions = detail.notes.flatMap((note) => note.mentions).filter((key) => key && key !== own);
|
|
536
|
+
const refs = bodyLinkRefs(detail.page.body ?? "").map((ref) => ref.trim()).filter((key) => key && key !== own);
|
|
537
|
+
const out = [...mentions, ...refs];
|
|
538
|
+
const mentioned = new Set(mentions);
|
|
539
|
+
const unaskable = new Set(refs.filter((ref) => !ref.includes(":") && !PAGE_ID_SHAPE.test(ref) && !mentioned.has(ref)));
|
|
540
|
+
const listed = (focusLinkList?.edges ?? []).filter((edge) => edge.toPageId === own);
|
|
541
|
+
const noteInto = [.../* @__PURE__ */ new Set([...(detail.mentionedBy ?? []).map((note) => note.pageId), ...listed.filter((edge) => edge.kind === "note").map((edge) => edge.fromPageId)])].filter((id) => id !== own);
|
|
542
|
+
const bodyInto = [...new Set(listed.filter((edge) => edge.kind === "body").map((edge) => edge.fromPageId))].filter((id) => id !== own);
|
|
543
|
+
const into = [.../* @__PURE__ */ new Set([...noteInto, ...bodyInto])];
|
|
544
|
+
const lookup = (key) => known.get(key) ?? index.resolve(key);
|
|
545
|
+
const missing = (keys) => [...new Set(keys.filter((key) => !lookup(key) && !unaskable.has(key)))];
|
|
546
|
+
const resolvedCount = (keys) => new Set(keys.flatMap((key) => lookup(key)?.id ?? [])).size;
|
|
547
|
+
const room = (keys) => Math.max(0, FOCUS_LINK_FETCH_CAP - resolvedCount(keys));
|
|
548
|
+
const wantOut = missing(out);
|
|
549
|
+
const wantIn = missing(into);
|
|
550
|
+
return {
|
|
551
|
+
detail,
|
|
552
|
+
known,
|
|
553
|
+
mentions,
|
|
554
|
+
refs,
|
|
555
|
+
into,
|
|
556
|
+
noteInto,
|
|
557
|
+
bodyInto,
|
|
558
|
+
lookup,
|
|
559
|
+
fetchKeys: [...wantOut.slice(0, room(out)), ...wantIn.slice(0, room(into))],
|
|
560
|
+
unfetched: {
|
|
561
|
+
out: Math.max(0, wantOut.length - room(out)),
|
|
562
|
+
in: Math.max(0, wantIn.length - room(into))
|
|
563
|
+
}
|
|
564
|
+
};
|
|
565
|
+
}, [
|
|
566
|
+
selected.data,
|
|
567
|
+
selectedPageId,
|
|
568
|
+
lazy.pages,
|
|
569
|
+
focusLinkList
|
|
570
|
+
]);
|
|
571
|
+
const fetchKeys = linkEnds?.fetchKeys ?? noKeys;
|
|
572
|
+
const fetchedStates = (source.useLinkedPages ?? noLinkedPages)(fetchKeys);
|
|
573
|
+
const fetchedSignature = fetchKeys.map((key, index) => `${key}=${fetchedStates[index]?.data?.page?.id ?? ""}`).join("|");
|
|
574
|
+
const fetchedPages = useMemo(() => {
|
|
575
|
+
const byKey = /* @__PURE__ */ new Map();
|
|
576
|
+
fetchKeys.forEach((key, index) => {
|
|
577
|
+
const page = fetchedStates[index]?.data?.page;
|
|
578
|
+
if (page) byKey.set(key, page);
|
|
579
|
+
});
|
|
580
|
+
return byKey;
|
|
581
|
+
}, [fetchedSignature]);
|
|
582
|
+
const focusLinks = useMemo(() => {
|
|
583
|
+
if (!linkEnds) return {
|
|
584
|
+
edges: [],
|
|
585
|
+
pages: [],
|
|
586
|
+
unfetched: {
|
|
587
|
+
in: 0,
|
|
588
|
+
out: 0
|
|
589
|
+
}
|
|
590
|
+
};
|
|
591
|
+
const { detail, lookup, mentions, refs, noteInto, bodyInto } = linkEnds;
|
|
592
|
+
const resolve = (key) => lookup(key) ?? fetchedPages.get(key);
|
|
593
|
+
const own = detail.page.id;
|
|
594
|
+
const edges = [];
|
|
595
|
+
const pages = /* @__PURE__ */ new Map();
|
|
596
|
+
const reach = (key, kind, side) => {
|
|
597
|
+
const target = resolve(key);
|
|
598
|
+
if (!target || target.id === own) {
|
|
599
|
+
if (!target && kind === "mention" && side === "out") edges.push({
|
|
600
|
+
source: own,
|
|
601
|
+
target: key,
|
|
602
|
+
kind
|
|
603
|
+
});
|
|
604
|
+
if (!target && side === "in") edges.push({
|
|
605
|
+
source: key,
|
|
606
|
+
target: own,
|
|
607
|
+
kind
|
|
608
|
+
});
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
pages.set(target.id, target);
|
|
612
|
+
edges.push(side === "out" ? {
|
|
613
|
+
source: own,
|
|
614
|
+
target: target.id,
|
|
615
|
+
kind
|
|
616
|
+
} : {
|
|
617
|
+
source: target.id,
|
|
618
|
+
target: own,
|
|
619
|
+
kind
|
|
620
|
+
});
|
|
621
|
+
};
|
|
622
|
+
for (const key of mentions) reach(key, "mention", "out");
|
|
623
|
+
for (const key of refs) reach(key, "link", "out");
|
|
624
|
+
for (const key of noteInto) reach(key, "mention", "in");
|
|
625
|
+
for (const key of bodyInto) reach(key, "link", "in");
|
|
626
|
+
return {
|
|
627
|
+
edges: edges.filter((edge) => edge.source !== edge.target),
|
|
628
|
+
pages: [...pages.values()],
|
|
629
|
+
unfetched: linkEnds.unfetched
|
|
630
|
+
};
|
|
631
|
+
}, [linkEnds, fetchedPages]);
|
|
632
|
+
const focusLinkIds = useMemo(() => new Set(focusLinks.pages.map((page) => page.id)), [focusLinks.pages]);
|
|
633
|
+
const drawn = useMemo(() => {
|
|
634
|
+
const ids = new Set(drawnGraph.pages.map((page) => page.id));
|
|
635
|
+
const extra = focusLinks.pages.filter((page) => !ids.has(page.id));
|
|
636
|
+
return {
|
|
637
|
+
...drawnGraph,
|
|
638
|
+
pages: extra.length ? [...drawnGraph.pages, ...extra] : drawnGraph.pages
|
|
639
|
+
};
|
|
640
|
+
}, [drawnGraph, focusLinks.pages]);
|
|
641
|
+
const pagesById = useMemo(() => new Map(drawn.pages.map((page) => [page.id, page])), [drawn.pages]);
|
|
642
|
+
const previewParent = (parentId) => setPreviewed((current) => current.includes(parentId) ? current : [...current, parentId].slice(-8));
|
|
345
643
|
const [focusScopeId, setFocusScopeId] = useState(null);
|
|
346
|
-
const
|
|
644
|
+
const knownLinks = useMemo(() => {
|
|
645
|
+
const seen = /* @__PURE__ */ new Set();
|
|
646
|
+
return [
|
|
647
|
+
...graph.edges.filter((edge) => edge.kind === "mention"),
|
|
648
|
+
...bodyLinkEdges(drawn.pages),
|
|
649
|
+
...focusLinks.edges
|
|
650
|
+
].filter((edge) => {
|
|
651
|
+
const key = `${edge.kind}:${edge.source}>${edge.target}`;
|
|
652
|
+
return seen.has(key) ? false : (seen.add(key), true);
|
|
653
|
+
});
|
|
654
|
+
}, [
|
|
655
|
+
graph.edges,
|
|
656
|
+
drawn.pages,
|
|
657
|
+
focusLinks.edges
|
|
658
|
+
]);
|
|
659
|
+
const linkView = useMemo(() => visibleLinks(knownLinks, pagesById, selectedPageId, allLinks), [
|
|
660
|
+
knownLinks,
|
|
661
|
+
pagesById,
|
|
662
|
+
selectedPageId,
|
|
663
|
+
allLinks
|
|
664
|
+
]);
|
|
665
|
+
const linkEdges = linkView.edges;
|
|
666
|
+
const countIds = useMemo(() => drawn.pages.filter((page) => !isChildPlaceholder(page) && !isRestCircle(page) && !isScopeGroup(page)).map((page) => page.id).sort(), [drawn.pages]);
|
|
667
|
+
const counted = (source.useLinkCounts ?? noLinkQuery)(view === "graph" ? countIds : []);
|
|
668
|
+
const exactCounts = useMemo(() => counted.data ? new Map(Object.entries(counted.data)) : void 0, [counted.data]);
|
|
669
|
+
const hiddenLinks = useMemo(() => exactCounts ? undrawnLinks(exactCounts, linkEdges) : linkView.hidden, [
|
|
670
|
+
exactCounts,
|
|
671
|
+
linkEdges,
|
|
672
|
+
linkView.hidden
|
|
673
|
+
]);
|
|
674
|
+
const [hoverFetchId, setHoverFetchId] = useState(null);
|
|
675
|
+
const hoverTimer = useRef(void 0);
|
|
676
|
+
const setHoveredId = useCallback((id) => {
|
|
677
|
+
clearTimeout(hoverTimer.current);
|
|
678
|
+
if (id) hoverTimer.current = setTimeout(() => setHoverFetchId(id), HOVER_FETCH_DELAY_MS);
|
|
679
|
+
else setHoverFetchId(null);
|
|
680
|
+
}, []);
|
|
681
|
+
useEffect(() => () => clearTimeout(hoverTimer.current), []);
|
|
682
|
+
const hovered = (source.usePageLinks ?? noLinkQuery)(hoverFetchId);
|
|
683
|
+
const hoverEdges = useMemo(() => hoverFetchId && hovered.data ? hovered.data.edges.map((edge) => ({
|
|
684
|
+
source: edge.fromPageId,
|
|
685
|
+
target: edge.toPageId,
|
|
686
|
+
kind: edge.kind === "body" ? "link" : "mention",
|
|
687
|
+
count: edge.count
|
|
688
|
+
})) : [], [hoverFetchId, hovered.data]);
|
|
347
689
|
const [mention, setMention] = useState(null);
|
|
348
690
|
const [marked, setMarked] = useState(null);
|
|
349
691
|
const closeMention = useCallback(() => setMention(null), []);
|
|
350
692
|
const graphShown = !useIsMobile(1024) || view === "graph";
|
|
351
693
|
const highlightMentionOf = marked && marked.source === selectedPageId ? marked.target : void 0;
|
|
352
|
-
const selected = source.usePage(selectedPageId);
|
|
353
|
-
const lazy = useLazyTree(source, graph, selected.data);
|
|
354
694
|
const showPage = view === "page" && !!selectedPageId;
|
|
695
|
+
const [history, setHistory] = useState([]);
|
|
696
|
+
const lastSelected = useRef(selectedPageId);
|
|
697
|
+
const goingBackTo = useRef(null);
|
|
698
|
+
useEffect(() => {
|
|
699
|
+
const previous = lastSelected.current;
|
|
700
|
+
lastSelected.current = selectedPageId;
|
|
701
|
+
const backTarget = goingBackTo.current;
|
|
702
|
+
goingBackTo.current = null;
|
|
703
|
+
if (backTarget && backTarget === selectedPageId) return;
|
|
704
|
+
if (!previous || !selectedPageId || previous === selectedPageId) return;
|
|
705
|
+
setHistory((current) => [...current.filter((id) => id !== selectedPageId), previous].slice(-50));
|
|
706
|
+
}, [selectedPageId]);
|
|
707
|
+
const backTo = history.length ? history[history.length - 1] : void 0;
|
|
708
|
+
const goBack = () => {
|
|
709
|
+
if (!backTo) return;
|
|
710
|
+
goingBackTo.current = backTo;
|
|
711
|
+
setHistory((current) => current.slice(0, -1));
|
|
712
|
+
onSelect(backTo);
|
|
713
|
+
};
|
|
355
714
|
const openPage = (pageId) => {
|
|
356
715
|
onSelect(pageId);
|
|
357
716
|
onViewChange("page");
|
|
358
717
|
};
|
|
359
718
|
const selectFromTree = (page) => {
|
|
360
719
|
if (page.isScope) setFocusScopeId(page.id);
|
|
361
|
-
if (view === "graph") onSelect(page.id);
|
|
720
|
+
if (view === "graph" && (lazyMode || pagesById.has(page.id)) && page.id !== selectedPageId) onSelect(page.id);
|
|
362
721
|
else openPage(page.id);
|
|
363
722
|
};
|
|
723
|
+
const leaveScopeFocusFor = (pageId) => {
|
|
724
|
+
if (focusScopeId && !withinScope([...lazy.pages, ...drawn.pages], focusScopeId).some((page) => page.id === pageId)) setFocusScopeId(null);
|
|
725
|
+
};
|
|
364
726
|
const openAnywhere = (pageId) => {
|
|
365
|
-
|
|
727
|
+
leaveScopeFocusFor(pageId);
|
|
366
728
|
openPage(pageId);
|
|
367
729
|
};
|
|
730
|
+
const selectFromSearch = (pageId) => {
|
|
731
|
+
if (view === "graph" && (lazyMode || pagesById.has(pageId)) && pageId !== selectedPageId) {
|
|
732
|
+
leaveScopeFocusFor(pageId);
|
|
733
|
+
onSelect(pageId);
|
|
734
|
+
} else openAnywhere(pageId);
|
|
735
|
+
};
|
|
368
736
|
const focusScope = focusScopeId ? lazy.pages.find((page) => page.id === focusScopeId) ?? pagesById.get(focusScopeId) : void 0;
|
|
369
737
|
const treePages = withinScope(source.useTreeLevels ? lazy.pages : graph.pages, focusScope ? focusScopeId : null);
|
|
370
|
-
const graphPages = useMemo(() => withinScope(
|
|
371
|
-
|
|
738
|
+
const graphPages = useMemo(() => withinScope(drawn.pages, focusScope ? focusScopeId : null), [
|
|
739
|
+
drawn.pages,
|
|
372
740
|
focusScope,
|
|
373
741
|
focusScopeId
|
|
374
742
|
]);
|
|
743
|
+
const focusedInGraph = view === "graph" ? pagesById.get(selectedPageId ?? drawn.hub ?? "") : void 0;
|
|
744
|
+
focusedInGraph && drawn.hiddenChildren.get(focusedInGraph.id);
|
|
375
745
|
return /* @__PURE__ */ jsxs("div", {
|
|
376
746
|
className: "flex min-h-0 flex-1 flex-col gap-3",
|
|
377
747
|
children: [
|
|
@@ -379,11 +749,11 @@ function KnowledgePageExplorer({ graph, source, selectedPageId, onSelect, view,
|
|
|
379
749
|
className: "flex flex-wrap items-center gap-2",
|
|
380
750
|
children: [/* @__PURE__ */ jsx(SearchBox, {
|
|
381
751
|
source,
|
|
382
|
-
onSelect:
|
|
752
|
+
onSelect: selectFromSearch
|
|
383
753
|
}), /* @__PURE__ */ jsx("div", {
|
|
384
754
|
role: "group",
|
|
385
755
|
"aria-label": "View",
|
|
386
|
-
className: "flex rounded border border-border",
|
|
756
|
+
className: "flex overflow-hidden rounded border border-border",
|
|
387
757
|
children: [
|
|
388
758
|
{
|
|
389
759
|
value: "tree",
|
|
@@ -402,13 +772,13 @@ function KnowledgePageExplorer({ graph, source, selectedPageId, onSelect, view,
|
|
|
402
772
|
type: "button",
|
|
403
773
|
"aria-pressed": option.value === "page" ? showPage : option.value === "graph" ? !showPage && view !== "tree" : view === "tree",
|
|
404
774
|
disabled: option.value === "page" && !selectedPageId,
|
|
405
|
-
className: `text-ui-md px-3 py-1 disabled:opacity-50 aria-pressed:bg-
|
|
775
|
+
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" : ""}`,
|
|
406
776
|
onClick: () => onViewChange(option.value),
|
|
407
777
|
children: option.label
|
|
408
778
|
}, option.value))
|
|
409
779
|
})]
|
|
410
780
|
}),
|
|
411
|
-
graph.truncated && !showPage ? /* @__PURE__ */ jsxs("p", {
|
|
781
|
+
!lazyMode && graph.truncated && !showPage ? /* @__PURE__ */ jsxs("p", {
|
|
412
782
|
className: "text-ui-sm text-muted-foreground",
|
|
413
783
|
children: [
|
|
414
784
|
"The graph shows the first ",
|
|
@@ -480,41 +850,108 @@ function KnowledgePageExplorer({ graph, source, selectedPageId, onSelect, view,
|
|
|
480
850
|
}) : /* @__PURE__ */ jsxs("div", {
|
|
481
851
|
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"}`,
|
|
482
852
|
"data-testid": "knowledge-graph-container",
|
|
483
|
-
children: [
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
853
|
+
children: [
|
|
854
|
+
graphShown ? /* @__PURE__ */ jsxs("div", {
|
|
855
|
+
className: "absolute top-3 right-3 z-10 flex flex-col gap-2",
|
|
856
|
+
children: [
|
|
857
|
+
/* @__PURE__ */ jsx("button", {
|
|
858
|
+
type: "button",
|
|
859
|
+
"data-testid": "knowledge-graph-back",
|
|
860
|
+
"aria-label": "Back",
|
|
861
|
+
title: backTo ? "Back to the page you focused before this one" : "Back (nothing to go back to yet)",
|
|
862
|
+
disabled: !backTo,
|
|
863
|
+
className: FLOAT_BUTTON,
|
|
864
|
+
onClick: goBack,
|
|
865
|
+
children: /* @__PURE__ */ jsx(ArrowLeft, {
|
|
866
|
+
"aria-hidden": true,
|
|
867
|
+
className: "size-4"
|
|
868
|
+
})
|
|
869
|
+
}),
|
|
870
|
+
/* @__PURE__ */ jsx("button", {
|
|
871
|
+
type: "button",
|
|
872
|
+
"aria-label": "All links",
|
|
873
|
+
"aria-pressed": allLinks,
|
|
874
|
+
"data-testid": "knowledge-graph-all-links",
|
|
875
|
+
title: `All links: ${allLinks ? "on" : "off"}. Draw every link between the pages in the graph, not only the selected page's`,
|
|
876
|
+
className: FLOAT_BUTTON,
|
|
877
|
+
onClick: () => setAllLinks((current) => !current),
|
|
878
|
+
children: /* @__PURE__ */ jsx(Link2, {
|
|
879
|
+
"aria-hidden": true,
|
|
880
|
+
className: "size-4"
|
|
881
|
+
})
|
|
882
|
+
}),
|
|
883
|
+
/* @__PURE__ */ jsx("button", {
|
|
884
|
+
type: "button",
|
|
885
|
+
"aria-label": "Link counts",
|
|
886
|
+
"aria-pressed": dotCounts,
|
|
887
|
+
"data-testid": "knowledge-graph-dot-counts",
|
|
888
|
+
title: `Link counts: ${dotCounts ? "on" : "off"}. Write how many links go in and out of each dot inside it`,
|
|
889
|
+
className: FLOAT_BUTTON,
|
|
890
|
+
onClick: () => setDotCounts((current) => !current),
|
|
891
|
+
children: /* @__PURE__ */ jsx(Hash, {
|
|
892
|
+
"aria-hidden": true,
|
|
893
|
+
className: "size-4"
|
|
894
|
+
})
|
|
895
|
+
})
|
|
896
|
+
]
|
|
897
|
+
}) : null,
|
|
898
|
+
graphShown ? /* @__PURE__ */ jsx(KnowledgePageGraph, {
|
|
899
|
+
pages: graphPages,
|
|
900
|
+
edges: linkEdges,
|
|
901
|
+
pinnedIds: graph.pinnedIds,
|
|
902
|
+
grants: graph.grants,
|
|
903
|
+
selectedPageId,
|
|
904
|
+
centerId: drawn.hub,
|
|
905
|
+
hiddenLinks,
|
|
906
|
+
knownLinks,
|
|
907
|
+
fetchedLinks: hoverEdges,
|
|
908
|
+
exactLinkCounts: exactCounts,
|
|
909
|
+
onHover: setHoveredId,
|
|
910
|
+
nearIds: focusLinkIds,
|
|
911
|
+
settled: graphSettled,
|
|
912
|
+
showCounts: dotCounts,
|
|
913
|
+
onPreview: (page) => {
|
|
914
|
+
if (isChildPlaceholder(page) && page.parentId) previewParent(page.parentId);
|
|
915
|
+
},
|
|
916
|
+
onSelect: (page) => {
|
|
917
|
+
if (isChildPlaceholder(page)) return page.parentId ? previewParent(page.parentId) : void 0;
|
|
918
|
+
if (isRestCircle(page)) {
|
|
919
|
+
const parentId = page.parentId;
|
|
920
|
+
if (!parentId) return void 0;
|
|
921
|
+
setRevealed((current) => new Map(current).set(parentId, (current.get(parentId) ?? 0) + 12));
|
|
922
|
+
return lazy.loadMore.get(parentId)?.();
|
|
923
|
+
}
|
|
924
|
+
if (isScopeGroup(page)) return setOpenGroups((current) => new Set(current).add(page.id));
|
|
925
|
+
onSelect(page.id);
|
|
926
|
+
if (view !== "graph") onViewChange("graph");
|
|
927
|
+
},
|
|
928
|
+
onOpen: (page) => openPage(page.id),
|
|
929
|
+
onClearSelection: () => {
|
|
930
|
+
setMention(null);
|
|
931
|
+
if (selectedPageId) onSelect(null);
|
|
932
|
+
},
|
|
933
|
+
onMentionSelect: setMention
|
|
934
|
+
}) : null,
|
|
935
|
+
mention && graphShown ? /* @__PURE__ */ jsx(MentionPopup, {
|
|
936
|
+
source,
|
|
937
|
+
mention,
|
|
938
|
+
pagesById,
|
|
939
|
+
onClose: closeMention,
|
|
940
|
+
onOpen: (pageId) => {
|
|
941
|
+
setMarked(pageId === mention.source.id ? {
|
|
942
|
+
source: mention.source.id,
|
|
943
|
+
target: mention.target.id
|
|
944
|
+
} : null);
|
|
945
|
+
setMention(null);
|
|
946
|
+
openAnywhere(pageId);
|
|
947
|
+
}
|
|
948
|
+
}) : null
|
|
949
|
+
]
|
|
513
950
|
})]
|
|
514
951
|
})
|
|
515
952
|
]
|
|
516
953
|
});
|
|
517
954
|
}
|
|
518
|
-
export { KnowledgePageExplorer };
|
|
955
|
+
export { FOCUS_LINK_CAP, KnowledgePageExplorer };
|
|
519
956
|
|
|
520
957
|
//# sourceMappingURL=KnowledgePageExplorer.es.js.map
|