@mastra/playground-ui 69.0.0-alpha.0 → 69.0.0-alpha.2
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/components.css +6 -0
- package/dist/{CodeEditor-ZoBu3Gjw.js → CodeEditor-BqAM9L7t.js} +5 -2
- package/dist/{CodeEditor-ZoBu3Gjw.js.map → CodeEditor-BqAM9L7t.js.map} +1 -1
- package/dist/{CodeEditor-DHIDfP5g.cjs → CodeEditor-zMSUzPdX.cjs} +5 -2
- package/dist/{CodeEditor-DHIDfP5g.cjs.map → CodeEditor-zMSUzPdX.cjs.map} +1 -1
- package/dist/{Comment-rQxuMDQv.cjs → Comment-A07IvOt2.cjs} +3 -3
- package/dist/{Comment-rQxuMDQv.cjs.map → Comment-A07IvOt2.cjs.map} +1 -1
- package/dist/{Comment-2q9SomE2.js → Comment-D_gSx7oM.js} +3 -3
- package/dist/{Comment-2q9SomE2.js.map → Comment-D_gSx7oM.js.map} +1 -1
- package/dist/{Composer-u1K6edoZ.cjs → Composer-D2BqRyb5.cjs} +2 -2
- package/dist/Composer-D2BqRyb5.cjs.map +1 -0
- package/dist/{Composer-bVE8qK52.js → Composer-kjwmlIgL.js} +2 -2
- package/dist/Composer-kjwmlIgL.js.map +1 -0
- package/dist/{DataCodeSection-CTodi9wg.js → DataCodeSection-CcX8Z68Y.js} +2 -2
- package/dist/{DataCodeSection-CTodi9wg.js.map → DataCodeSection-CcX8Z68Y.js.map} +1 -1
- package/dist/{DataCodeSection-7SvRJj6f.cjs → DataCodeSection-JPGTWLcL.cjs} +2 -2
- package/dist/{DataCodeSection-7SvRJj6f.cjs.map → DataCodeSection-JPGTWLcL.cjs.map} +1 -1
- package/dist/{DataDetailsPanel-BDoD6pxx.cjs → DataDetailsPanel-DCMlaG7j.cjs} +2 -2
- package/dist/{DataDetailsPanel-BDoD6pxx.cjs.map → DataDetailsPanel-DCMlaG7j.cjs.map} +1 -1
- package/dist/{DataDetailsPanel-BU05psHL.js → DataDetailsPanel-mTfbbQho.js} +2 -2
- package/dist/{DataDetailsPanel-BU05psHL.js.map → DataDetailsPanel-mTfbbQho.js.map} +1 -1
- package/dist/{DataPanel-BRRAvWYQ.cjs → DataPanel-LfExjFpP.cjs} +2 -2
- package/dist/{DataPanel-BRRAvWYQ.cjs.map → DataPanel-LfExjFpP.cjs.map} +1 -1
- package/dist/{DataPanel-pVr5LVaK.js → DataPanel-Rv5Mb_pf.js} +2 -2
- package/dist/{DataPanel-pVr5LVaK.js.map → DataPanel-Rv5Mb_pf.js.map} +1 -1
- package/dist/{FilterBar-Kmn6gMgO.js → FilterBar-DgHNtsDI.js} +5 -5
- package/dist/FilterBar-DgHNtsDI.js.map +1 -0
- package/dist/{FilterBar-jBz6yaNu.cjs → FilterBar-O8SYau_Q.cjs} +5 -5
- package/dist/FilterBar-O8SYau_Q.cjs.map +1 -0
- package/dist/KnowledgePageGraph.css +1 -3
- package/dist/{MarkdownRenderer-CY8LGt-l.js → MarkdownRenderer-BSGb65Ze.js} +2 -2
- package/dist/{MarkdownRenderer-CY8LGt-l.js.map → MarkdownRenderer-BSGb65Ze.js.map} +1 -1
- package/dist/{MarkdownRenderer-CUYpmuPh.cjs → MarkdownRenderer-CDwlvw0Y.cjs} +2 -2
- package/dist/{MarkdownRenderer-CUYpmuPh.cjs.map → MarkdownRenderer-CDwlvw0Y.cjs.map} +1 -1
- package/dist/{MetricsCard-DojbLiEx.cjs → MetricsCard-CSJ4TsNq.cjs} +3 -3
- package/dist/MetricsCard-CSJ4TsNq.cjs.map +1 -0
- package/dist/{MetricsCard-kAqSCPPe.js → MetricsCard-D6bQfynP.js} +3 -3
- package/dist/MetricsCard-D6bQfynP.js.map +1 -0
- package/dist/{Tree-Caz4FTCU.cjs → Tree-6pubDJLQ.cjs} +4 -3
- package/dist/Tree-6pubDJLQ.cjs.map +1 -0
- package/dist/{Tree-od43gLMO.js → Tree-DpRLmis3.js} +4 -3
- package/dist/Tree-DpRLmis3.js.map +1 -0
- package/dist/{Workflow-mIbUYdv0.js → Workflow-BVVYys0W.js} +3 -3
- package/dist/{Workflow-mIbUYdv0.js.map → Workflow-BVVYys0W.js.map} +1 -1
- package/dist/{Workflow-XR5L-3cJ.cjs → Workflow-CwIjxwC6.cjs} +3 -3
- package/dist/{Workflow-XR5L-3cJ.cjs.map → Workflow-CwIjxwC6.cjs.map} +1 -1
- package/dist/{activity-ClFChYfl.js → activity-BH_eegMA.js} +2 -2
- package/dist/{activity-ClFChYfl.js.map → activity-BH_eegMA.js.map} +1 -1
- package/dist/{activity-BprmG6yH.cjs → activity-Ciolopq8.cjs} +2 -2
- package/dist/{activity-BprmG6yH.cjs.map → activity-Ciolopq8.cjs.map} +1 -1
- package/dist/{ask-user-D4ezQ6pt.js → ask-user-CqzPUD9E.js} +2 -2
- package/dist/{ask-user-D4ezQ6pt.js.map → ask-user-CqzPUD9E.js.map} +1 -1
- package/dist/{ask-user-DcnUNMM5.cjs → ask-user-DIYcPkoX.cjs} +2 -2
- package/dist/{ask-user-DcnUNMM5.cjs.map → ask-user-DIYcPkoX.cjs.map} +1 -1
- package/dist/{combobox-lbSxWRMl.js → combobox-DLdInLYm.js} +2 -2
- package/dist/{combobox-lbSxWRMl.js.map → combobox-DLdInLYm.js.map} +1 -1
- package/dist/{combobox-i723LxeC.cjs → combobox-DU2jsrGa.cjs} +2 -2
- package/dist/{combobox-i723LxeC.cjs.map → combobox-DU2jsrGa.cjs.map} +1 -1
- package/dist/{combobox-parts-BeNqgCbj.cjs → combobox-parts-C236ZHtn.cjs} +2 -2
- package/dist/combobox-parts-C236ZHtn.cjs.map +1 -0
- package/dist/{combobox-parts-C9o4UfH_.js → combobox-parts-_m3Qgmci.js} +2 -2
- package/dist/combobox-parts-_m3Qgmci.js.map +1 -0
- package/dist/components/Breadcrumb.cjs.js.map +1 -1
- package/dist/components/Breadcrumb.es.js.map +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.cjs.js.map +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/Command.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/Composer.cjs.js +1 -1
- package/dist/components/Composer.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/DataList.cjs.js +1 -1
- package/dist/components/DataList.es.js +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +1 -1
- package/dist/components/DateTimePicker.es.js +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.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 +1 -1
- package/dist/components/FormFieldBlocks.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 +1 -1
- package/dist/components/InputNumber.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +1 -1
- package/dist/components/JSONSchemaForm.es.js +1 -1
- 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/PropertyFilter.cjs.js +2 -2
- package/dist/components/PropertyFilter.es.js +2 -2
- package/dist/components/RuleBuilder.cjs.js +1 -1
- package/dist/components/RuleBuilder.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +3 -3
- package/dist/components/SavedViews.cjs.js.map +1 -1
- package/dist/components/SavedViews.es.js +3 -3
- package/dist/components/SavedViews.es.js.map +1 -1
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Sidebar.cjs.js +1 -1
- package/dist/components/Sidebar.es.js +1 -1
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/Textarea.cjs.js +1 -1
- package/dist/components/Textarea.cjs.js.map +1 -1
- package/dist/components/Textarea.es.js +1 -1
- package/dist/components/Textarea.es.js.map +1 -1
- package/dist/components/ThreadRail.cjs.js +2 -0
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +2 -0
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Tree.cjs.js +1 -1
- package/dist/components/Tree.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/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.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 +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/{date-time-range-picker-DdNgKD87.js → date-time-range-picker-CJyhcug7.js} +3 -3
- package/dist/{date-time-range-picker-DdNgKD87.js.map → date-time-range-picker-CJyhcug7.js.map} +1 -1
- package/dist/{date-time-range-picker-Bq-8IPtS.cjs → date-time-range-picker-Dhnuwa-U.cjs} +3 -3
- package/dist/{date-time-range-picker-Bq-8IPtS.cjs.map → date-time-range-picker-Dhnuwa-U.cjs.map} +1 -1
- 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/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 +1 -1
- package/dist/domains/chat/activity/model/activity-words.es.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
- package/dist/domains/chat/attachments/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 +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +1 -1
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +2 -2
- package/dist/domains/chat/messages/message-row.es.js +2 -2
- 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 +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +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/messages/tripwire-notice.cjs.js +5 -10
- package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +5 -10
- 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 +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +2 -2
- 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 +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +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 +2 -2
- package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +2 -2
- package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +2 -2
- package/dist/domains/chat/tools/mcp-input-request-tool.es.js +2 -2
- 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/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-renderer.cjs.js +13 -8
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +13 -8
- 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 +106 -0
- package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
- package/dist/domains/dashboards/components/widget-controls.es.js +107 -3
- package/dist/domains/dashboards/components/widget-controls.es.js.map +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-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 +18 -19
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +18 -19
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis.cjs.js +3 -0
- package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/kpis.es.js +3 -0
- 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 +25 -32
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +26 -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 +2 -6
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-cells.es.js +2 -6
- 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 +20 -26
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +22 -28
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js +13 -13
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-view.es.js +14 -14
- package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +13 -17
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +13 -17
- package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/table.cjs.js +4 -0
- package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/table.es.js +4 -0
- 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 +22 -22
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +25 -25
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries.cjs.js +3 -0
- package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -1
- package/dist/domains/dashboards/kinds/timeseries.es.js +3 -0
- 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/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/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 +47 -0
- package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -1
- package/dist/domains/dashboards/lib/requests.es.js +46 -1
- 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 +19 -2
- package/dist/domains/dashboards.es.js +9 -5
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +2 -2
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +2 -2
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +2 -2
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +2 -2
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +186 -212
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +188 -215
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +620 -268
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +622 -270
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +544 -454
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +548 -458
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +21 -12
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +22 -13
- 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/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- 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/mcps/components/mcp-app-tool-result.cjs.js +28 -3
- 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 +27 -2
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +163 -2
- package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -0
- package/dist/domains/mcps/components/mcp-app-viewer.es.js +163 -1
- package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -0
- 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 +2 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +2 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -1
- 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/metrics/components/agent-runs-card.cjs.js +1 -1
- package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
- 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 +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +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/token-usage-card.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
- 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.cjs.js +3 -3
- package/dist/domains/metrics.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.cjs.js +1 -1
- package/dist/domains/observability/saved-views.es.js +1 -1
- package/dist/domains/observability.cjs.js +1 -1
- package/dist/domains/observability.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +3 -3
- package/dist/domains/skills/skill-simple-form.es.js +3 -3
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +1 -1
- package/dist/domains/spans/components/spans-explorer-body.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-explorer-body.cjs.js +1 -1
- package/dist/domains/threads/components/threads-explorer-body.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/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 +10 -4
- package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +10 -4
- package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-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-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-json.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +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-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +5 -3
- 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 +5 -3
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -2
- package/dist/domains/traces/components/trace-columns-menu.es.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/trace-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-details-view.es.js +1 -1
- 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-span-panel.cjs.js +2 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +2 -1
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-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/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-panel.cjs.js +8 -3
- 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 +8 -3
- 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 +14 -1
- 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 +14 -1
- 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 +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +1 -1
- package/dist/domains/traces/components/traces-spans-switch.cjs.js +1 -1
- package/dist/domains/traces/components/traces-spans-switch.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-layout.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-layout.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
- 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 +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +1 -1
- 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/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/utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/utils.es.js +1 -1
- 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-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-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-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- 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 +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
- 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 +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
- 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-suspended-steps.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
- 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-create-directory.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.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/domains/workspace/components/workspace-search.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
- package/dist/{dropdown-menu-Dx-jCOIv.cjs → dropdown-menu-D3D8USIY.cjs} +9 -1
- package/dist/dropdown-menu-D3D8USIY.cjs.map +1 -0
- package/dist/{dropdown-menu-DKoWI8kD.js → dropdown-menu-jsf9D-J_.js} +9 -1
- package/dist/dropdown-menu-jsf9D-J_.js.map +1 -0
- package/dist/ee/signals/sankey-signals.cjs.js +1 -1
- package/dist/ee/signals/sankey-signals.es.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/{filter-bar-chip-NBtfDca9.js → filter-bar-chip-Cz5GYBWP.js} +2 -2
- package/dist/{filter-bar-chip-NBtfDca9.js.map → filter-bar-chip-Cz5GYBWP.js.map} +1 -1
- package/dist/{filter-bar-chip-DFsbUZ-V.cjs → filter-bar-chip-q2Zr-cnY.cjs} +2 -2
- package/dist/{filter-bar-chip-DFsbUZ-V.cjs.map → filter-bar-chip-q2Zr-cnY.cjs.map} +1 -1
- package/dist/{filter-bar-time-range-DlVNjw43.cjs → filter-bar-time-range-D4C3kU0J.cjs} +3 -3
- package/dist/{filter-bar-time-range-DlVNjw43.cjs.map → filter-bar-time-range-D4C3kU0J.cjs.map} +1 -1
- package/dist/{filter-bar-time-range-D9SnzR2J.js → filter-bar-time-range-ao2YiYEJ.js} +3 -3
- package/dist/{filter-bar-time-range-D9SnzR2J.js.map → filter-bar-time-range-ao2YiYEJ.js.map} +1 -1
- 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/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/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-Cyit5ZSc.js → input-BNykbvOz.js} +2 -2
- package/dist/input-BNykbvOz.js.map +1 -0
- package/dist/{input-BpnUsQSt.cjs → input-D_V0m95F.cjs} +2 -2
- package/dist/input-D_V0m95F.cjs.map +1 -0
- package/dist/{input-group-NV4ZzKOk.js → input-group-CCSyY4J5.js} +3 -3
- package/dist/{input-group-NV4ZzKOk.js.map → input-group-CCSyY4J5.js.map} +1 -1
- package/dist/{input-group-DBCilXjT.cjs → input-group-Da8HBo30.cjs} +3 -3
- package/dist/{input-group-DBCilXjT.cjs.map → input-group-Da8HBo30.cjs.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- 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/record-field.cjs.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/{observability-saved-views-DgABvgat.cjs → observability-saved-views-CzRPN_9m.cjs} +4 -4
- package/dist/{observability-saved-views-DgABvgat.cjs.map → observability-saved-views-CzRPN_9m.cjs.map} +1 -1
- package/dist/{observability-saved-views-Ch53fh5_.js → observability-saved-views-hu_hkXVY.js} +4 -4
- package/dist/{observability-saved-views-Ch53fh5_.js.map → observability-saved-views-hu_hkXVY.js.map} +1 -1
- package/dist/primitives/menu-item.cjs.js +1 -1
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +1 -1
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/{property-filter-applied-DuyL4S_K.cjs → property-filter-applied-ML84st6J.cjs} +3 -3
- package/dist/{property-filter-applied-DuyL4S_K.cjs.map → property-filter-applied-ML84st6J.cjs.map} +1 -1
- package/dist/{property-filter-applied-DoxQHG09.js → property-filter-applied-PaJ7sLsM.js} +3 -3
- package/dist/{property-filter-applied-DoxQHG09.js.map → property-filter-applied-PaJ7sLsM.js.map} +1 -1
- package/dist/{span-payload-primitives-D2NWznGy.cjs → span-payload-primitives-CL3hlirm.cjs} +3 -3
- package/dist/{span-payload-primitives-D2NWznGy.cjs.map → span-payload-primitives-CL3hlirm.cjs.map} +1 -1
- package/dist/{span-payload-primitives-BKkRpVVO.js → span-payload-primitives-KxqoXspn.js} +3 -3
- package/dist/{span-payload-primitives-BKkRpVVO.js.map → span-payload-primitives-KxqoXspn.js.map} +1 -1
- package/dist/src/domains/dashboards/components/connected-widget.d.ts +9 -0
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +9 -2
- 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 +25 -1
- 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/gate.d.ts +65 -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 +105 -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/mcps/components/mcp-app-tool-result.d.ts +3 -1
- package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +6 -1
- 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/index.d.ts +3 -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/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/ds/components/Breadcrumb/Breadcrumb.d.ts +2 -0
- package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +3 -0
- package/dist/src/ds/components/Tree/tree-label.d.ts +1 -1
- package/dist/src/ds/icons/ConfluenceIcon.d.ts +2 -0
- package/dist/src/ds/icons/NotionIcon.d.ts +2 -0
- package/dist/src/ds/icons/ZendeskIcon.d.ts +2 -0
- package/dist/src/ds/icons/index.d.ts +3 -0
- package/dist/src/utils/mcp-app-context.d.ts +6 -0
- package/dist/style.css +85 -35
- package/dist/{tabbed-container-Bhfi-DWr.cjs → tabbed-container-BMLD6mvc.cjs} +4 -4
- package/dist/{tabbed-container-Bhfi-DWr.cjs.map → tabbed-container-BMLD6mvc.cjs.map} +1 -1
- package/dist/{tabbed-container-DOkHshha.js → tabbed-container-CaS8cZCS.js} +4 -4
- package/dist/{tabbed-container-DOkHshha.js.map → tabbed-container-CaS8cZCS.js.map} +1 -1
- package/dist/{tabs-content-DwU_eA-a.js → tabs-content-BGkPZ5EQ.js} +2 -2
- package/dist/{tabs-content-DwU_eA-a.js.map → tabs-content-BGkPZ5EQ.js.map} +1 -1
- package/dist/{tabs-content-BACwMrMG.cjs → tabs-content-D_ic2ZqI.cjs} +2 -2
- package/dist/{tabs-content-BACwMrMG.cjs.map → tabs-content-D_ic2ZqI.cjs.map} +1 -1
- package/dist/{tabs-tab-BHs639jL.js → tabs-tab-CJVS0WED.js} +2 -2
- package/dist/{tabs-tab-BHs639jL.js.map → tabs-tab-CJVS0WED.js.map} +1 -1
- package/dist/{tabs-tab-CANh2eAD.cjs → tabs-tab-Dj2huH5T.cjs} +2 -2
- package/dist/{tabs-tab-CANh2eAD.cjs.map → tabs-tab-Dj2huH5T.cjs.map} +1 -1
- package/dist/{tool-approval-CguPaikn.cjs → tool-approval-C4WNL8VD.cjs} +3 -3
- package/dist/{tool-approval-CguPaikn.cjs.map → tool-approval-C4WNL8VD.cjs.map} +1 -1
- package/dist/{tool-approval-Cjz0yAzw.js → tool-approval-ZfL3-Vvi.js} +3 -3
- package/dist/{tool-approval-Cjz0yAzw.js.map → tool-approval-ZfL3-Vvi.js.map} +1 -1
- package/dist/{tool-call-ChJKYCfu.js → tool-call-BLzYTI-x.js} +2 -2
- package/dist/{tool-call-ChJKYCfu.js.map → tool-call-BLzYTI-x.js.map} +1 -1
- package/dist/{tool-call-BqDI9mrY.cjs → tool-call-C4TBpJ6Y.cjs} +2 -2
- package/dist/{tool-call-BqDI9mrY.cjs.map → tool-call-C4TBpJ6Y.cjs.map} +1 -1
- package/dist/{tool-card-GSiCfxMz.js → tool-card-CM0aHG3p.js} +4 -3
- package/dist/{tool-card-GSiCfxMz.js.map → tool-card-CM0aHG3p.js.map} +1 -1
- package/dist/{tool-card-Dg4VOYV6.cjs → tool-card-xDlCD0m6.cjs} +4 -3
- package/dist/{tool-card-Dg4VOYV6.cjs.map → tool-card-xDlCD0m6.cjs.map} +1 -1
- package/dist/{mcp-app-viewer-BV7FI498.js → types-BwdKiX24.js} +2 -144
- package/dist/types-BwdKiX24.js.map +1 -0
- package/dist/{mcp-app-viewer-M3-pqAlo.cjs → types-KjLUPShK.cjs} +8 -144
- package/dist/types-KjLUPShK.cjs.map +1 -0
- package/dist/{use-workflow-graph-runtime-BfCL6nd4.cjs → use-workflow-graph-runtime-DEJA9rk4.cjs} +2 -2
- package/dist/{use-workflow-graph-runtime-BfCL6nd4.cjs.map → use-workflow-graph-runtime-DEJA9rk4.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-B3VUuhUE.js → use-workflow-graph-runtime-DHOsA1DM.js} +2 -2
- package/dist/{use-workflow-graph-runtime-B3VUuhUE.js.map → use-workflow-graph-runtime-DHOsA1DM.js.map} +1 -1
- 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/package.json +8 -8
- package/dist/Composer-bVE8qK52.js.map +0 -1
- package/dist/Composer-u1K6edoZ.cjs.map +0 -1
- package/dist/FilterBar-Kmn6gMgO.js.map +0 -1
- package/dist/FilterBar-jBz6yaNu.cjs.map +0 -1
- package/dist/MetricsCard-DojbLiEx.cjs.map +0 -1
- package/dist/MetricsCard-kAqSCPPe.js.map +0 -1
- package/dist/Tree-Caz4FTCU.cjs.map +0 -1
- package/dist/Tree-od43gLMO.js.map +0 -1
- package/dist/combobox-parts-BeNqgCbj.cjs.map +0 -1
- package/dist/combobox-parts-C9o4UfH_.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-DKoWI8kD.js.map +0 -1
- package/dist/dropdown-menu-Dx-jCOIv.cjs.map +0 -1
- package/dist/input-BpnUsQSt.cjs.map +0 -1
- package/dist/input-Cyit5ZSc.js.map +0 -1
- package/dist/mcp-app-viewer-BV7FI498.js.map +0 -1
- package/dist/mcp-app-viewer-M3-pqAlo.cjs.map +0 -1
- package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +0 -66
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgePageDetail.es.js","names":[],"sources":["../../../../src/domains/knowledge/components/KnowledgePageDetail.tsx"],"sourcesContent":["import { ChevronRight, Pin } from 'lucide-react';\nimport { createContext, useContext, useEffect, useMemo, useRef } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport type { Components, ExtraProps } from 'react-markdown';\n\nimport { knowledgePageRefIndex } from '../lib/pageRefs';\nimport type { KnowledgePageRefIndex } from '../lib/pageRefs';\nimport { parseRecordSegments } from '../lib/recordText';\nimport { KNOWLEDGE_REF_PROPERTY, remarkKnowledgeLinks } from '../lib/remarkKnowledgeLinks';\nimport type {\n KnowledgeActivityAction,\n KnowledgePageActivityPayload,\n KnowledgeNotePayload,\n KnowledgePagePayload,\n KnowledgePinPayload,\n} from '../pageTypes';\n\nimport { Badge } from '@/ds/components/Badge';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Metadata } from '@/ds/components/Metadata';\nimport { Txt } from '@/ds/components/Txt';\n\nconst ACTIVITY_LABELS: Record<KnowledgeActivityAction, string> = {\n 'scope-created': 'Scope created',\n 'page-created': 'Page created',\n 'page-updated': 'Page edited',\n 'page-moved': 'Page moved',\n 'page-merged': 'Page merged',\n 'page-deleted': 'Page deleted',\n 'note-added': 'Note added',\n 'note-restamped': 'Note restamped',\n 'note-removed': 'Note removed',\n 'note-restored': 'Note restored',\n 'pin-added': 'Pinned',\n 'pin-removed': 'Unpinned',\n};\n\nfunction formatWhen(iso: string): string {\n const date = new Date(iso);\n return Number.isNaN(date.getTime())\n ? iso\n : date.toLocaleString(undefined, { dateStyle: 'medium', timeStyle: 'short' });\n}\n\nconst RELATIVE_STEPS: Array<[Intl.RelativeTimeFormatUnit, number]> = [\n ['second', 60],\n ['minute', 60],\n ['hour', 24],\n ['day', 7],\n ['week', 4.35],\n ['month', 12],\n ['year', Infinity],\n];\n\n/** \"3 minutes ago\", with the exact time left to a tooltip. */\nfunction formatAgo(iso: string, now = Date.now()): string {\n const time = new Date(iso).getTime();\n if (Number.isNaN(time)) return iso;\n let value = (time - now) / 1000;\n const format = new Intl.RelativeTimeFormat(undefined, { numeric: 'auto' });\n for (const [unit, size] of RELATIVE_STEPS) {\n if (Math.abs(value) < size) return format.format(Math.round(value), unit);\n value /= size;\n }\n return formatWhen(iso);\n}\n\nfunction When({ iso }: { iso: string }) {\n return (\n <time dateTime={iso} title={formatWhen(iso)}>\n {formatAgo(iso)}\n </time>\n );\n}\n\n/** A small round mark with the author's initial, tinted per author so a page's writers tell apart. */\nfunction AuthorMark({ author }: { author: string }) {\n const name = author.includes(':') ? author.slice(author.indexOf(':') + 1) : author;\n let hash = 0;\n for (const char of author) hash = (hash * 31 + char.charCodeAt(0)) | 0;\n const hues = ['--chart-blue', '--chart-purple', '--chart-green', '--chart-orange', '--chart-pink'];\n const hue = hues[Math.abs(hash) % hues.length];\n return (\n <span\n aria-hidden\n className=\"flex size-6 shrink-0 items-center justify-center rounded-full border border-border\"\n style={{ background: `color-mix(in oklab, var(${hue}) 28%, var(--card))` }}\n >\n <Txt as=\"span\" variant=\"meta\" tone=\"ink\">\n {(name.trim()[0] ?? '?').toUpperCase()}\n </Txt>\n </span>\n );\n}\n\n/**\n * The page's address: its home scope, then the keys from that scope down to it\n * (`org:acme#policies/refund`). Null when a page on the way has no key.\n */\nfunction knowledgePagePath(page: KnowledgePagePayload, ancestors: KnowledgePagePayload[]): string | null {\n if (page.isScope) return page.address ?? null;\n const scope = ancestors.find(candidate => candidate.id === page.scopeId);\n if (!scope?.address) return null;\n const below = ancestors.slice(ancestors.indexOf(scope) + 1).filter(candidate => !candidate.isScope);\n const keys = [...below, page].map(candidate => candidate.key);\n if (keys.some(key => !key)) return null;\n return `${scope.address}#${keys.join('/')}`;\n}\n\nconst BodyLinks = createContext<{\n index: KnowledgePageRefIndex;\n onPageClick: (page: KnowledgePagePayload) => void;\n} | null>(null);\n\n/**\n * A `[[ref]]` from a page body: the page's name as a link when a loaded page answers to the ref, the ref\n * itself in a quiet style when none does. Every other `<span>` the markdown makes passes through.\n */\nfunction BodySpan({ node, ...props }: ComponentProps<'span'> & ExtraProps) {\n const links = useContext(BodyLinks);\n const ref = node?.properties[KNOWLEDGE_REF_PROPERTY];\n if (typeof ref !== 'string' || !links) return <span {...props} />;\n const target = links.index.resolve(ref);\n return target ? (\n <button\n type=\"button\"\n data-testid=\"knowledge-body-link\"\n title={ref}\n className=\"rounded bg-badge-blue-subtle px-1 font-medium text-badge-blue-foreground hover:underline\"\n onClick={() => links.onPageClick(target)}\n >\n {target.name}\n </button>\n ) : (\n <span\n data-testid=\"knowledge-body-link-unresolved\"\n title=\"No loaded page has this address\"\n className=\"rounded border border-dashed border-border px-1 text-muted-foreground\"\n >\n {ref}\n </span>\n );\n}\n\nconst BODY_REMARK_PLUGINS = [remarkKnowledgeLinks];\nconst BODY_COMPONENTS: Components = { span: BodySpan };\n\nfunction Section({ label, count, children }: { label: string; count?: number; children: ReactNode }) {\n return (\n <section aria-label={label} className=\"flex flex-col gap-3\">\n <div className=\"flex items-center gap-2 border-b border-border pb-2\">\n <Txt as=\"h3\" variant=\"eyebrow\" tone=\"muted\" className=\"uppercase\">\n {label}\n </Txt>\n {count !== undefined ? (\n <Badge variant=\"neutral\" size=\"xs\">\n {count}\n </Badge>\n ) : null}\n </div>\n {children}\n </section>\n );\n}\n\nfunction PageLink({\n page,\n onPageClick,\n}: {\n page: KnowledgePagePayload;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n return (\n <button\n type=\"button\"\n className=\"text-left font-medium text-info-indicator hover:underline\"\n onClick={() => onPageClick(page)}\n >\n {page.name}\n </button>\n );\n}\n\nconst refIndexes = new WeakMap<ReadonlyMap<string, KnowledgePagePayload>, KnowledgePageRefIndex>();\n\n/** One ref index per loaded-pages map, shared by every note drawn from it. */\nfunction loadedRefIndex(pagesById: ReadonlyMap<string, KnowledgePagePayload>): KnowledgePageRefIndex {\n let index = refIndexes.get(pagesById);\n if (!index) refIndexes.set(pagesById, (index = knowledgePageRefIndex(pagesById.values())));\n return index;\n}\n\n/** One note: who wrote it and when, its text with `[[mentions]]` linked when the page is known, and the scopes it is stamped to. */\nexport function KnowledgeNoteItem({\n note,\n pagesById,\n onPageClick,\n highlighted,\n itemRef,\n showPage,\n compact,\n}: {\n note: KnowledgeNotePayload;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n highlighted?: boolean;\n itemRef?: (element: HTMLLIElement | null) => void;\n /** Name the page the note sits on, for notes listed away from it. */\n showPage?: boolean;\n /** A tighter layout for popups. */\n compact?: boolean;\n}) {\n const refIndex = loadedRefIndex(pagesById);\n // Only a page the server resolved the mention to is linked, however the ref is written.\n const mentionTarget = (ref: string) => {\n const target = refIndex.resolve(ref);\n return target && note.mentions.includes(target.id) ? target : undefined;\n };\n const scopeLabel = (id: string) => {\n const scopePage = pagesById.get(id);\n return scopePage?.address ?? scopePage?.name ?? id;\n };\n const onPage = showPage ? pagesById.get(note.pageId) : undefined;\n return (\n <li\n ref={itemRef}\n data-highlighted={highlighted || undefined}\n className={`flex gap-3 rounded-lg border border-border bg-card ${compact ? 'p-2' : 'p-3'}`}\n style={highlighted ? { borderColor: 'var(--chart-blue)', boxShadow: '0 0 0 1px var(--chart-blue)' } : undefined}\n >\n {compact ? null : <AuthorMark author={note.provenance.author} />}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n <div className=\"flex flex-wrap items-baseline gap-x-2 gap-y-0.5\">\n <Txt as=\"span\" variant=\"label\" tone=\"ink\">\n {note.provenance.author}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n <When iso={note.updatedAt} />\n </Txt>\n {onPage ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n on <PageLink page={onPage} onPageClick={onPageClick} />\n </Txt>\n ) : null}\n </div>\n <p className=\"text-ui-md break-words text-foreground\">\n {parseRecordSegments(note.text).map((segment, index) => {\n if (segment.type === 'text') return <span key={index}>{segment.value}</span>;\n const target = mentionTarget(segment.value);\n return target ? (\n <button\n key={index}\n type=\"button\"\n className=\"rounded bg-badge-blue-subtle px-1 font-medium text-badge-blue-foreground hover:underline\"\n onClick={() => onPageClick(target)}\n >\n {segment.value}\n </button>\n ) : (\n <span key={index} className=\"font-medium\">\n {segment.value}\n </span>\n );\n })}\n </p>\n {note.stampScopeIds.length > 0 ? (\n <div className=\"flex flex-wrap gap-1\" aria-label=\"Stamped to\">\n {note.stampScopeIds.map(id => (\n <Badge key={id} variant=\"neutral\" size=\"xs\">\n {scopeLabel(id)}\n </Badge>\n ))}\n </div>\n ) : null}\n </div>\n </li>\n );\n}\n\n/**\n * The selected page as a page: where it sits, its body as markdown, its child\n * pages, its notes (each with the scopes it is stamped to and who wrote it),\n * the notes elsewhere that mention it, and its recent activity. Bodies are\n * agent-written, so they render through {@link MarkdownRenderer}, which escapes\n * raw HTML and drops unsafe link schemes.\n *\n * Paged lists take a `…More` slot the host fills with the next page's loader.\n */\nexport function KnowledgePageDetail({\n page,\n notes,\n pin,\n pagesById,\n onPageClick,\n highlightMentionOf,\n ancestors = [],\n mentionedBy = [],\n notesMore,\n childPages,\n activity,\n}: {\n page: KnowledgePagePayload;\n notes: KnowledgeNotePayload[];\n pin?: KnowledgePinPayload;\n /** Loaded pages, for scope names and mention links. */\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n /** Marks the notes that mention this page, e.g. after a mention line in the graph was clicked. */\n highlightMentionOf?: string;\n /** Readable ancestors, root first: a breadcrumb and the page's path. */\n ancestors?: KnowledgePagePayload[];\n /** Notes on other pages that mention this one. */\n mentionedBy?: KnowledgeNotePayload[];\n /** Rendered after the notes: the host's loader for the next page of notes. */\n notesMore?: ReactNode;\n /** The page's children, when the host can list them. */\n childPages?: ReactNode;\n activity?: KnowledgePageActivityPayload[];\n}) {\n const firstHighlighted = useRef<HTMLLIElement | null>(null);\n useEffect(() => {\n firstHighlighted.current?.scrollIntoView?.({ block: 'nearest' });\n }, [highlightMentionOf, notes]);\n let highlightRefSet = false;\n const scope = page.isScope\n ? page\n : (ancestors.find(candidate => candidate.id === page.scopeId) ?? pagesById.get(page.scopeId));\n const path = knowledgePagePath(page, ancestors);\n\n const kind = page.isScope ? (page.displayLabel ?? 'Scope') : 'Page';\n const refIndex = useMemo(\n () => knowledgePageRefIndex([...pagesById.values(), ...ancestors, page]),\n [pagesById, ancestors, page],\n );\n const bodyLinks = useMemo(() => ({ index: refIndex, onPageClick }), [refIndex, onPageClick]);\n\n return (\n <article aria-label={page.name} className=\"flex min-h-0 flex-col overflow-y-auto\">\n <header className=\"flex flex-col gap-3 border-b border-border bg-fill-subtle px-6 pt-5 pb-4\">\n {ancestors.length > 0 ? (\n <nav aria-label=\"Breadcrumb\">\n <ol className=\"flex flex-wrap items-center gap-1\">\n {ancestors.map(ancestor => (\n <li key={ancestor.id} className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n className=\"text-ui-sm rounded px-1 py-0.5 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={() => onPageClick(ancestor)}\n >\n {ancestor.name}\n </button>\n <ChevronRight size={12} className=\"text-muted-foreground\" aria-hidden />\n </li>\n ))}\n </ol>\n </nav>\n ) : null}\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <Badge variant={page.isScope ? 'info' : 'neutral'} size=\"sm\">\n {kind}\n </Badge>\n {page.isScope ? null : (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n in {scope?.address ?? scope?.name ?? page.scopeId}\n </Txt>\n )}\n {pin ? (\n <Badge variant=\"warning\" size=\"sm\" icon={<Pin size={10} aria-hidden />}>\n {pin.audience.length > 0 ? `Pinned for ${pin.audience.join(', ')}` : 'Pinned'}\n </Badge>\n ) : null}\n </div>\n <Txt as=\"h2\" variant=\"title\" className=\"break-words\">\n {page.name}\n </Txt>\n {page.description ? (\n <Txt variant=\"body\" tone=\"muted\">\n {page.description}\n </Txt>\n ) : null}\n </div>\n <dl className=\"flex flex-wrap items-center gap-x-4 gap-y-1\">\n {page.isScope && page.address ? (\n <div className=\"flex items-center gap-1.5\">\n <dt className=\"sr-only\">Address</dt>\n <dd>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\">\n {page.address}\n </Txt>\n </dd>\n </div>\n ) : null}\n {path && !page.isScope ? (\n <div className=\"flex items-center gap-1.5\">\n <dt className=\"sr-only\">Path</dt>\n <dd>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" font=\"mono\" data-testid=\"knowledge-page-path\">\n {path}\n </Txt>\n </dd>\n </div>\n ) : null}\n <div className=\"flex items-center gap-1.5\">\n <dt className=\"sr-only\">Version</dt>\n <dd>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" data-testid=\"knowledge-page-version\">\n <Metadata>\n <Metadata.Item>Version {page.version}</Metadata.Item>\n <Metadata.Item>\n Updated <When iso={page.updatedAt} /> by {page.updatedBy.author}\n </Metadata.Item>\n </Metadata>\n </Txt>\n </dd>\n </div>\n </dl>\n </header>\n\n <div className=\"grid gap-8 p-6 xl:grid-cols-[minmax(0,1fr)_18rem]\">\n <div className=\"flex min-w-0 flex-col gap-8\">\n {page.body ? (\n <div data-testid=\"knowledge-page-body\" className=\"max-w-3xl\">\n <BodyLinks.Provider value={bodyLinks}>\n <MarkdownRenderer remarkPlugins={BODY_REMARK_PLUGINS} components={BODY_COMPONENTS}>\n {page.body}\n </MarkdownRenderer>\n </BodyLinks.Provider>\n </div>\n ) : (\n <Txt variant=\"body\" tone=\"muted\" className=\"italic\">\n This {page.isScope ? 'scope' : 'page'} has no body yet.\n </Txt>\n )}\n\n <Section label=\"Notes\" count={notesMore ? undefined : notes.length}>\n {notes.length === 0 ? (\n <Txt variant=\"body\" tone=\"muted\">\n No notes on this page.\n </Txt>\n ) : (\n <ul className=\"flex flex-col gap-2\">\n {notes.map(note => {\n const highlighted = !!highlightMentionOf && note.mentions.includes(highlightMentionOf);\n const takeRef = highlighted && !highlightRefSet;\n if (takeRef) highlightRefSet = true;\n return (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={pagesById}\n onPageClick={onPageClick}\n highlighted={highlighted}\n itemRef={\n takeRef\n ? element => {\n firstHighlighted.current = element;\n }\n : undefined\n }\n />\n );\n })}\n </ul>\n )}\n {notesMore}\n </Section>\n </div>\n\n <aside className=\"flex min-w-0 flex-col gap-8\">\n {childPages ? <Section label=\"Pages\">{childPages}</Section> : null}\n\n {mentionedBy.length > 0 ? (\n <Section label=\"Mentioned in\" count={mentionedBy.length}>\n <ul className=\"flex flex-col gap-2\">\n {mentionedBy.map(note => (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={pagesById}\n onPageClick={onPageClick}\n showPage\n compact\n />\n ))}\n </ul>\n </Section>\n ) : null}\n\n {activity && activity.length > 0 ? (\n <Section label=\"Activity\">\n <ol className=\"relative flex flex-col gap-3 border-l border-border pl-4\">\n {activity.map(event => (\n <li key={event.id} className=\"relative flex flex-col\">\n <span\n aria-hidden\n className=\"absolute top-1.5 -left-5 size-2 rounded-full border border-border bg-card\"\n />\n <Txt as=\"span\" variant=\"body-sm\" tone=\"ink\">\n {ACTIVITY_LABELS[event.action] ?? event.action}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n <Metadata>\n <Metadata.Item>{event.provenance.author}</Metadata.Item>\n <Metadata.Item>\n <When iso={event.createdAt} />\n </Metadata.Item>\n </Metadata>\n </Txt>\n </li>\n ))}\n </ol>\n </Section>\n ) : null}\n </aside>\n </div>\n </article>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KnowledgePageDetail.es.js","names":[],"sources":["../../../../src/domains/knowledge/components/KnowledgePageDetail.tsx"],"sourcesContent":["import { Pin } from 'lucide-react';\nimport { createContext, useContext, useEffect, useMemo, useRef } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport type { Components, ExtraProps } from 'react-markdown';\n\nimport { scopeTitle } from '../lib/pageAddress';\nimport { knowledgePageRefIndex, noteMentionTarget } from '../lib/pageRefs';\nimport type { KnowledgePageRefIndex } from '../lib/pageRefs';\nimport { KnowledgePagesByRef } from '../lib/pagesByRefContext';\nimport { parseRecordSegments } from '../lib/recordText';\nimport { KNOWLEDGE_REF_PROPERTY, remarkKnowledgeLinks } from '../lib/remarkKnowledgeLinks';\nimport type {\n KnowledgeActivityAction,\n KnowledgePageActivityPayload,\n KnowledgeNotePayload,\n KnowledgePagePayload,\n KnowledgePinPayload,\n} from '../pageTypes';\nimport { KnowledgeSourceIcon } from './KnowledgeSourceIcon';\nimport { KnowledgeTooltip } from './KnowledgeTooltip';\n\nimport { Badge } from '@/ds/components/Badge';\nimport { Breadcrumb, Crumb } from '@/ds/components/Breadcrumb';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { Metadata } from '@/ds/components/Metadata';\nimport { RelativeTimestamp } from '@/ds/components/RelativeTimestamp';\nimport { Txt } from '@/ds/components/Txt';\n\nconst ACTIVITY_LABELS: Record<KnowledgeActivityAction, string> = {\n 'scope-created': 'Scope created',\n 'page-created': 'Page created',\n 'page-updated': 'Page edited',\n 'page-moved': 'Page moved',\n 'page-merged': 'Page merged',\n 'page-deleted': 'Page deleted',\n 'note-added': 'Note added',\n 'note-restamped': 'Note restamped',\n 'note-removed': 'Note removed',\n 'note-restored': 'Note restored',\n 'pin-added': 'Pinned',\n 'pin-removed': 'Unpinned',\n};\n\n/** Who wrote something, readably: an importer's run id reads as \"Importer\". */\nfunction authorName(author: string): string {\n return author.startsWith('importer:') ? 'Importer' : author;\n}\n\n/** A small round mark with the author's initial, tinted per author so a page's writers tell apart. */\nfunction AuthorMark({ author }: { author: string }) {\n const name = author.includes(':') ? author.slice(author.indexOf(':') + 1) : author;\n let hash = 0;\n for (const char of author) hash = (hash * 31 + char.charCodeAt(0)) | 0;\n const hues = ['--chart-blue', '--chart-purple', '--chart-green', '--chart-orange', '--chart-pink'];\n const hue = hues[Math.abs(hash) % hues.length];\n return (\n <span\n aria-hidden\n className=\"flex size-6 shrink-0 items-center justify-center rounded-full border border-border\"\n style={{ background: `color-mix(in oklab, var(${hue}) 28%, var(--card))` }}\n >\n <Txt as=\"span\" variant=\"meta\" tone=\"ink\">\n {(name.trim()[0] ?? '?').toUpperCase()}\n </Txt>\n </span>\n );\n}\n\n/**\n * The page's address: its home scope, then the keys from that scope down to it\n * (`org:acme#policies/refund`). Null when a page on the way has no key.\n */\nfunction knowledgePagePath(page: KnowledgePagePayload, ancestors: KnowledgePagePayload[]): string | null {\n if (page.isScope) return page.address ?? null;\n const scope = ancestors.find(candidate => candidate.id === page.scopeId);\n if (!scope?.address) return null;\n const below = ancestors.slice(ancestors.indexOf(scope) + 1).filter(candidate => !candidate.isScope);\n const keys = [...below, page].map(candidate => candidate.key);\n if (keys.some(key => !key)) return null;\n return `${scope.address}#${keys.join('/')}`;\n}\n\nconst BodyLinks = createContext<{\n index: KnowledgePageRefIndex;\n onPageClick: (page: KnowledgePagePayload) => void;\n} | null>(null);\n\n/**\n * A `[[ref]]` from a page body: the page's name as a link when a loaded page answers to the ref, the ref\n * itself in a quiet style when none does. Every other `<span>` the markdown makes passes through.\n */\nfunction BodySpan({ node, ...props }: ComponentProps<'span'> & ExtraProps) {\n const links = useContext(BodyLinks);\n const ref = node?.properties[KNOWLEDGE_REF_PROPERTY];\n if (typeof ref !== 'string' || !links) return <span {...props} />;\n const target = links.index.resolve(ref);\n return target ? (\n <KnowledgeTooltip label={ref}>\n <button\n type=\"button\"\n data-testid=\"knowledge-body-link\"\n className=\"rounded bg-badge-blue-subtle px-1 text-left font-medium wrap-anywhere text-badge-blue-foreground hover:underline\"\n onClick={() => links.onPageClick(target)}\n >\n {target.name}\n </button>\n </KnowledgeTooltip>\n ) : (\n <KnowledgeTooltip label=\"No loaded page has this address\">\n <span\n data-testid=\"knowledge-body-link-unresolved\"\n className=\"rounded border border-dashed border-border px-1 wrap-anywhere text-muted-foreground\"\n >\n {ref}\n </span>\n </KnowledgeTooltip>\n );\n}\n\nconst BODY_REMARK_PLUGINS = [remarkKnowledgeLinks];\nconst BODY_COMPONENTS: Components = { span: BodySpan };\n\nexport function KnowledgeDetailSection({\n label,\n count,\n children,\n}: {\n label: string;\n count?: number;\n children: ReactNode;\n}) {\n return (\n <section aria-label={label} className=\"flex flex-col gap-2\">\n <Txt as=\"h3\" variant=\"label\" tone=\"ink\" className=\"flex items-center gap-1.5\">\n {label}\n {count ? (\n <Txt as=\"span\" variant=\"label\" tone=\"muted\" className=\"tabular-nums\">\n {count}\n </Txt>\n ) : null}\n </Txt>\n {children}\n </section>\n );\n}\n\nfunction PageLink({\n page,\n onPageClick,\n}: {\n page: KnowledgePagePayload;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n return (\n <button\n type=\"button\"\n className=\"text-left font-medium text-info-indicator hover:underline\"\n onClick={() => onPageClick(page)}\n >\n {page.name}\n </button>\n );\n}\n\ntype PageMap = ReadonlyMap<string, KnowledgePagePayload>;\nconst refIndexes = new WeakMap<PageMap, WeakMap<PageMap, KnowledgePageRefIndex>>();\n\n/** One ref index per loaded-pages map (and pages fetched by ref), shared by every note drawn from it. */\nfunction loadedRefIndex(pagesById: PageMap, byRef: PageMap): KnowledgePageRefIndex {\n let forPages = refIndexes.get(pagesById);\n if (!forPages) refIndexes.set(pagesById, (forPages = new WeakMap()));\n let index = forPages.get(byRef);\n if (!index) forPages.set(byRef, (index = knowledgePageRefIndex(pagesById.values(), byRef)));\n return index;\n}\n\n/** One note: who wrote it and when, its text with `[[mentions]]` linked when the page is known, and the scopes it is stamped to. */\nexport function KnowledgeNoteItem({\n note,\n pagesById,\n onPageClick,\n highlighted,\n itemRef,\n showPage,\n compact,\n}: {\n note: KnowledgeNotePayload;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n highlighted?: boolean;\n itemRef?: (element: HTMLLIElement | null) => void;\n /** Name the page the note sits on, for notes listed away from it. */\n showPage?: boolean;\n /** A tighter layout for popups. */\n compact?: boolean;\n}) {\n const refIndex = loadedRefIndex(pagesById, useContext(KnowledgePagesByRef));\n // Only a page the server resolved the mention to is linked, however the ref is written.\n const mentionTarget = (ref: string) => noteMentionTarget(refIndex, pagesById, note.mentions, ref);\n const scopeLabel = (id: string) => {\n const scopePage = pagesById.get(id);\n return scopePage?.address ?? scopePage?.name ?? id;\n };\n const onPage = showPage ? pagesById.get(note.pageId) : undefined;\n return (\n <li\n ref={itemRef}\n data-highlighted={highlighted || undefined}\n className={`flex gap-3 rounded-lg border border-border bg-card ${compact ? 'p-2' : 'p-3'}`}\n style={highlighted ? { borderColor: 'var(--chart-blue)', boxShadow: '0 0 0 1px var(--chart-blue)' } : undefined}\n >\n {compact ? null : <AuthorMark author={note.provenance.author} />}\n <div className=\"flex min-w-0 flex-1 flex-col gap-1.5\">\n <div className=\"flex flex-wrap items-baseline gap-x-2 gap-y-0.5\">\n <Txt as=\"span\" variant=\"label\" tone=\"ink\">\n {authorName(note.provenance.author)}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n <RelativeTimestamp value={note.updatedAt} />\n </Txt>\n {onPage ? (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n on <PageLink page={onPage} onPageClick={onPageClick} />\n </Txt>\n ) : null}\n </div>\n <p className=\"text-ui-md wrap-anywhere text-foreground\">\n {parseRecordSegments(note.text).map((segment, index) => {\n if (segment.type === 'text') return <span key={index}>{segment.value}</span>;\n const target = mentionTarget(segment.value);\n return target ? (\n <KnowledgeTooltip key={index} label={segment.value}>\n <button\n type=\"button\"\n data-testid=\"knowledge-note-link\"\n className=\"rounded bg-badge-blue-subtle px-1 text-left font-medium wrap-anywhere text-badge-blue-foreground hover:underline\"\n onClick={() => onPageClick(target)}\n >\n {target.name}\n </button>\n </KnowledgeTooltip>\n ) : (\n <span key={index} className=\"font-medium wrap-anywhere\">\n {segment.value}\n </span>\n );\n })}\n </p>\n {note.stampScopeIds.length > 0 ? (\n <div className=\"flex min-w-0 flex-wrap gap-1\" aria-label=\"Stamped to\">\n {note.stampScopeIds.map(id => (\n <Badge key={id} variant=\"neutral\" size=\"xs\" title={scopeLabel(id)}>\n <span className=\"truncate\">{scopeLabel(id)}</span>\n </Badge>\n ))}\n </div>\n ) : null}\n </div>\n </li>\n );\n}\n\n/**\n * The selected page as a page: where it sits, its body as markdown, its child\n * pages, its notes (each with the scopes it is stamped to and who wrote it),\n * the notes elsewhere that mention it, and its recent activity. Bodies are\n * agent-written, so they render through {@link MarkdownRenderer}, which escapes\n * raw HTML and drops unsafe link schemes.\n *\n * Paged lists take a `…More` slot the host fills with the next page's loader.\n */\nexport function KnowledgePageDetail({\n page,\n notes,\n pin,\n pagesById,\n onPageClick,\n highlightMentionOf,\n ancestors = [],\n mentionedBy = [],\n notesMore,\n childPages,\n activity,\n compact = false,\n}: {\n compact?: boolean;\n page: KnowledgePagePayload;\n notes: KnowledgeNotePayload[];\n pin?: KnowledgePinPayload;\n /** Loaded pages, for scope names and mention links. */\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n /** Marks the notes that mention this page, e.g. after a mention line in the graph was clicked. */\n highlightMentionOf?: string;\n /** Readable ancestors, root first: a breadcrumb and the page's path. */\n ancestors?: KnowledgePagePayload[];\n /** Notes on other pages that mention this one. */\n mentionedBy?: KnowledgeNotePayload[];\n /** Rendered after the notes: the host's loader for the next page of notes. */\n notesMore?: ReactNode;\n /** The page's children, when the host can list them. */\n childPages?: ReactNode;\n activity?: KnowledgePageActivityPayload[];\n}) {\n const firstHighlighted = useRef<HTMLLIElement | null>(null);\n useEffect(() => {\n firstHighlighted.current?.scrollIntoView?.({ block: 'nearest' });\n }, [highlightMentionOf, notes]);\n let highlightRefSet = false;\n const scope = page.isScope\n ? page\n : (ancestors.find(candidate => candidate.id === page.scopeId) ?? pagesById.get(page.scopeId));\n const path = knowledgePagePath(page, ancestors);\n\n const kind = page.isScope ? (page.displayLabel ?? 'Scope') : 'Page';\n // Core's `related` leaves out the page and its ancestors, so notes mentioning them resolve against these too.\n const notePages = useMemo(\n () => new Map([...pagesById, ...[...ancestors, page].map(entry => [entry.id, entry] as const)]),\n [pagesById, ancestors, page],\n );\n const pagesByRef = useContext(KnowledgePagesByRef);\n const refIndex = useMemo(\n () => knowledgePageRefIndex([...pagesById.values(), ...ancestors, page], pagesByRef),\n [pagesById, ancestors, page, pagesByRef],\n );\n const bodyLinks = useMemo(() => ({ index: refIndex, onPageClick }), [refIndex, onPageClick]);\n\n return (\n <article\n key={page.id}\n aria-label={page.name}\n className=\"@container flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain\"\n >\n <header\n className={\n compact\n ? 'flex flex-col gap-3 border-b border-surface-rim px-4 pt-3 pb-4'\n : 'flex flex-col gap-3 border-b border-border bg-fill-subtle px-6 pt-5 pb-4'\n }\n >\n <Breadcrumb label=\"Breadcrumb\" className=\"ml-[-.9em] min-w-0\" listClassName=\"overflow-hidden\">\n {ancestors.map(ancestor => (\n <Crumb key={ancestor.id} as=\"button\" onClick={() => onPageClick(ancestor)}>\n {scopeTitle(ancestor)}\n </Crumb>\n ))}\n <Crumb as=\"span\" isCurrent>\n {scopeTitle(page)}\n </Crumb>\n </Breadcrumb>\n <div className=\"flex flex-col gap-2\">\n {compact ? null : (\n <div className=\"flex min-w-0 items-center gap-2\">\n <KnowledgeSourceIcon page={page} className=\"size-icon-lg\" />\n <KnowledgeTooltip label={(page.isScope ? page.address : path) ?? page.name}>\n <Txt as=\"h2\" variant=\"title\" className=\"min-w-0 break-words\" data-testid=\"knowledge-page-title\">\n {scopeTitle(page)}\n </Txt>\n </KnowledgeTooltip>\n <Badge variant=\"neutral\" size=\"sm\" className=\"shrink-0 tabular-nums\">\n v{page.version}\n </Badge>\n </div>\n )}\n {page.description ? (\n <Txt variant=\"body\" tone=\"muted\">\n {page.description}\n </Txt>\n ) : null}\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n <Badge variant={page.isScope ? 'info' : 'neutral'} size=\"sm\">\n {kind}\n </Badge>\n {pin ? (\n <Badge variant=\"warning\" size=\"sm\" icon={<Pin size={10} aria-hidden />}>\n {pin.audience.length > 0 ? `Pinned for ${pin.audience.join(', ')}` : 'Pinned'}\n </Badge>\n ) : null}\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" data-testid=\"knowledge-page-version\">\n <Metadata>\n {page.isScope ? null : <Metadata.Item>In {scope ? scopeTitle(scope) : page.scopeId}</Metadata.Item>}\n {compact ? <Metadata.Item>v{page.version}</Metadata.Item> : null}\n <Metadata.Item>\n Updated{' '}\n <RelativeTimestamp value={page.updatedAt} label={`Updated by ${authorName(page.updatedBy.author)}`} />\n </Metadata.Item>\n </Metadata>\n </Txt>\n </div>\n </div>\n </header>\n\n <div className={`flex flex-col gap-8 ${compact ? 'p-4' : 'p-6'} @4xl:flex-row`}>\n <div className=\"flex min-w-0 flex-col gap-8 @4xl:flex-1\">\n {page.body ? (\n <div data-testid=\"knowledge-page-body\" className=\"max-w-3xl\">\n <BodyLinks.Provider value={bodyLinks}>\n <MarkdownRenderer remarkPlugins={BODY_REMARK_PLUGINS} components={BODY_COMPONENTS}>\n {page.body}\n </MarkdownRenderer>\n </BodyLinks.Provider>\n </div>\n ) : (\n <Txt variant=\"body\" tone=\"muted\">\n This {page.isScope ? 'scope' : 'page'} has no body yet.\n </Txt>\n )}\n\n {notes.length > 0 || notesMore ? (\n <KnowledgeDetailSection label=\"Notes\" count={notesMore ? undefined : notes.length}>\n <ul className=\"flex flex-col gap-2\">\n {notes.map(note => {\n const highlighted = !!highlightMentionOf && note.mentions.includes(highlightMentionOf);\n const takeRef = highlighted && !highlightRefSet;\n if (takeRef) highlightRefSet = true;\n return (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={notePages}\n onPageClick={onPageClick}\n highlighted={highlighted}\n itemRef={\n takeRef\n ? element => {\n firstHighlighted.current = element;\n }\n : undefined\n }\n />\n );\n })}\n </ul>\n {notesMore}\n </KnowledgeDetailSection>\n ) : null}\n </div>\n\n <aside className=\"flex min-w-0 flex-col divide-y divide-border border-t border-border *:py-6 *:last:pb-0 @4xl:w-72 @4xl:shrink-0 @4xl:border-t-0 @4xl:border-l @4xl:pl-8 @4xl:*:first:pt-0\">\n {childPages}\n\n {mentionedBy.length > 0 ? (\n <KnowledgeDetailSection label=\"Mentioned in\" count={mentionedBy.length}>\n <ul className=\"flex flex-col gap-2\">\n {mentionedBy.map(note => (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={notePages}\n onPageClick={onPageClick}\n showPage\n compact\n />\n ))}\n </ul>\n </KnowledgeDetailSection>\n ) : null}\n\n {activity && activity.length > 0 ? (\n <KnowledgeDetailSection label=\"Activity\">\n <ol className=\"relative flex flex-col gap-3 border-l border-border pl-4\">\n {activity.map(event => (\n <li key={event.id} className=\"relative flex flex-col\">\n <span\n aria-hidden\n className=\"absolute top-1.5 -left-5 size-2 rounded-full border border-border bg-card\"\n />\n <Txt as=\"span\" variant=\"body-sm\" tone=\"ink\">\n {ACTIVITY_LABELS[event.action] ?? event.action}\n </Txt>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"min-w-0\">\n <Metadata singleLine>\n <Metadata.Item className=\"min-w-0\">\n <KnowledgeTooltip label={event.provenance.author}>\n <span className=\"truncate\">{authorName(event.provenance.author)}</span>\n </KnowledgeTooltip>\n </Metadata.Item>\n <Metadata.Item className=\"shrink-0\">\n <RelativeTimestamp value={event.createdAt} />\n </Metadata.Item>\n </Metadata>\n </Txt>\n </li>\n ))}\n </ol>\n </KnowledgeDetailSection>\n ) : null}\n </aside>\n </div>\n </article>\n );\n}\n"],"mappings":"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"}
|