@mastra/playground-ui 67.0.0 → 68.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ActionRow-BfK77pCT.cjs → ActionRow-BlC9GAef.cjs} +4 -4
- package/dist/ActionRow-BlC9GAef.cjs.map +1 -0
- package/dist/{ActionRow-Cd6tOC2K.js → ActionRow-DCrRCvBq.js} +4 -4
- package/dist/ActionRow-DCrRCvBq.js.map +1 -0
- package/dist/{Button-Bw1e3ONi.js → Button-CLXTbAY8.js} +42 -13
- package/dist/Button-CLXTbAY8.js.map +1 -0
- package/dist/{Button-YQRflC47.cjs → Button-DLcMcuUL.cjs} +58 -11
- package/dist/Button-DLcMcuUL.cjs.map +1 -0
- package/dist/{CodeEditor-CJ9jC9lu.cjs → CodeEditor-CLzs0yVc.cjs} +4 -4
- package/dist/{CodeEditor-CJ9jC9lu.cjs.map → CodeEditor-CLzs0yVc.cjs.map} +1 -1
- package/dist/{CodeEditor-CPVxj7WS.js → CodeEditor-COnz9c6B.js} +4 -4
- package/dist/{CodeEditor-CPVxj7WS.js.map → CodeEditor-COnz9c6B.js.map} +1 -1
- package/dist/{Comment-VFJq2wRp.js → Comment-0n98b_f_.js} +3 -3
- package/dist/{Comment-VFJq2wRp.js.map → Comment-0n98b_f_.js.map} +1 -1
- package/dist/{Comment-KYUQzeSu.cjs → Comment-Cg0f7eLa.cjs} +3 -3
- package/dist/{Comment-KYUQzeSu.cjs.map → Comment-Cg0f7eLa.cjs.map} +1 -1
- package/dist/{DataCodeSection-CZRPsStI.cjs → DataCodeSection-CcPmJPTp.cjs} +8 -8
- package/dist/{DataCodeSection-CZRPsStI.cjs.map → DataCodeSection-CcPmJPTp.cjs.map} +1 -1
- package/dist/{DataCodeSection-Ckd47p_S.js → DataCodeSection-KJRyRD1Q.js} +6 -6
- package/dist/{DataCodeSection-Ckd47p_S.js.map → DataCodeSection-KJRyRD1Q.js.map} +1 -1
- package/dist/{DataDetailsPanel-_CK0Huk6.js → DataDetailsPanel-CohEKPm4.js} +5 -5
- package/dist/{DataDetailsPanel-_CK0Huk6.js.map → DataDetailsPanel-CohEKPm4.js.map} +1 -1
- package/dist/{DataDetailsPanel-DFhM9H5D.cjs → DataDetailsPanel-DiyjEXqK.cjs} +6 -6
- package/dist/{DataDetailsPanel-DFhM9H5D.cjs.map → DataDetailsPanel-DiyjEXqK.cjs.map} +1 -1
- package/dist/{DataList-2tIlQsLc.js → DataList-CUhRQAv6.js} +2 -2
- package/dist/{DataList-2tIlQsLc.js.map → DataList-CUhRQAv6.js.map} +1 -1
- package/dist/{DataList-Czwmwyvp.cjs → DataList-Cj0mfk19.cjs} +2 -2
- package/dist/{DataList-Czwmwyvp.cjs.map → DataList-Cj0mfk19.cjs.map} +1 -1
- package/dist/{DataPanel-CY1W5LHJ.js → DataPanel-Bv4M17xO.js} +3 -3
- package/dist/{DataPanel-CY1W5LHJ.js.map → DataPanel-Bv4M17xO.js.map} +1 -1
- package/dist/{DataPanel-C0Ll76Ne.cjs → DataPanel-BwB1Oifd.cjs} +3 -3
- package/dist/{DataPanel-C0Ll76Ne.cjs.map → DataPanel-BwB1Oifd.cjs.map} +1 -1
- package/dist/{Dialog-CjaiCrkv.cjs → Dialog-BvWF9HE-.cjs} +2 -2
- package/dist/{Dialog-CjaiCrkv.cjs.map → Dialog-BvWF9HE-.cjs.map} +1 -1
- package/dist/{Dialog-CKtTR8h3.js → Dialog-DaWtxwd9.js} +2 -2
- package/dist/{Dialog-CKtTR8h3.js.map → Dialog-DaWtxwd9.js.map} +1 -1
- package/dist/{ErrorBoundary-Bm0LL_b7.cjs → ErrorBoundary-B5GjmA6V.cjs} +2 -2
- package/dist/{ErrorBoundary-Bm0LL_b7.cjs.map → ErrorBoundary-B5GjmA6V.cjs.map} +1 -1
- package/dist/{ErrorBoundary-95_6A77S.js → ErrorBoundary-Cat3KU86.js} +2 -2
- package/dist/{ErrorBoundary-95_6A77S.js.map → ErrorBoundary-Cat3KU86.js.map} +1 -1
- package/dist/{FilterBar--4oguuVe.js → FilterBar-BO-vvvyq.js} +18 -22
- package/dist/FilterBar-BO-vvvyq.js.map +1 -0
- package/dist/{FilterBar-BUd4f7oi.cjs → FilterBar-Buw0tv51.cjs} +18 -22
- package/dist/FilterBar-Buw0tv51.cjs.map +1 -0
- package/dist/KnowledgePageGraph.css +11 -0
- package/dist/{LogsDataList-Cslabh8K.js → LogsDataList-BI2C5OJz.js} +2 -2
- package/dist/{LogsDataList-Cslabh8K.js.map → LogsDataList-BI2C5OJz.js.map} +1 -1
- package/dist/{LogsDataList-DMmxAt_t.cjs → LogsDataList-CCIfUPGo.cjs} +2 -2
- package/dist/{LogsDataList-DMmxAt_t.cjs.map → LogsDataList-CCIfUPGo.cjs.map} +1 -1
- package/dist/{MarkdownRenderer-DME2xKTk.js → MarkdownRenderer-2GOXQJEv.js} +3 -3
- package/dist/{MarkdownRenderer-DME2xKTk.js.map → MarkdownRenderer-2GOXQJEv.js.map} +1 -1
- package/dist/{MarkdownRenderer-CS6u5drO.cjs → MarkdownRenderer-CB8Z_CHc.cjs} +4 -4
- package/dist/{MarkdownRenderer-CS6u5drO.cjs.map → MarkdownRenderer-CB8Z_CHc.cjs.map} +1 -1
- package/dist/{Message-nVI6tMS3.js → Message-CWzi5F_Q.js} +2 -2
- package/dist/{Message-nVI6tMS3.js.map → Message-CWzi5F_Q.js.map} +1 -1
- package/dist/{Message-DsCNQpou.cjs → Message-jj56lxNL.cjs} +2 -2
- package/dist/{Message-DsCNQpou.cjs.map → Message-jj56lxNL.cjs.map} +1 -1
- package/dist/{Notice-CyKngbbv.js → Notice-C-8oOZZF.js} +2 -2
- package/dist/{Notice-CyKngbbv.js.map → Notice-C-8oOZZF.js.map} +1 -1
- package/dist/{Notice-DWNeCe-t.cjs → Notice-JZ7SW7q6.cjs} +2 -2
- package/dist/{Notice-DWNeCe-t.cjs.map → Notice-JZ7SW7q6.cjs.map} +1 -1
- package/dist/{Workflow-BVWvgDmI.js → Workflow-C3SlEdP-.js} +5 -5
- package/dist/{Workflow-BVWvgDmI.js.map → Workflow-C3SlEdP-.js.map} +1 -1
- package/dist/{Workflow-BeF6pIO9.cjs → Workflow-DSWQ-ROz.cjs} +5 -5
- package/dist/{Workflow-BeF6pIO9.cjs.map → Workflow-DSWQ-ROz.cjs.map} +1 -1
- package/dist/{activity-DAK8tj7r.cjs → activity-DyB5H3gF.cjs} +2 -2
- package/dist/{activity-DAK8tj7r.cjs.map → activity-DyB5H3gF.cjs.map} +1 -1
- package/dist/{activity-CM34JyW-.js → activity-rJ1NQl_2.js} +2 -2
- package/dist/{activity-CM34JyW-.js.map → activity-rJ1NQl_2.js.map} +1 -1
- package/dist/{ask-user-BdjH9F7G.js → ask-user-B225wzWc.js} +2 -2
- package/dist/{ask-user-BdjH9F7G.js.map → ask-user-B225wzWc.js.map} +1 -1
- package/dist/{ask-user-C82m_G9W.cjs → ask-user-DdYz56qH.cjs} +2 -2
- package/dist/{ask-user-C82m_G9W.cjs.map → ask-user-DdYz56qH.cjs.map} +1 -1
- package/dist/buttons-group-Dc6R7YSs.cjs +48 -0
- package/dist/buttons-group-Dc6R7YSs.cjs.map +1 -0
- package/dist/buttons-group-DkFlnMiL.js +35 -0
- package/dist/buttons-group-DkFlnMiL.js.map +1 -0
- package/dist/{ButtonsGroup.css → buttons-group.css} +2 -0
- package/dist/clear-filters-button-Buc973vw.cjs +27 -0
- package/dist/clear-filters-button-Buc973vw.cjs.map +1 -0
- package/dist/clear-filters-button-CNrRuHOY.js +22 -0
- package/dist/clear-filters-button-CNrRuHOY.js.map +1 -0
- package/dist/{combobox-8kNAJFlj.cjs → combobox-CMx2ayFN.cjs} +3 -3
- package/dist/{combobox-8kNAJFlj.cjs.map → combobox-CMx2ayFN.cjs.map} +1 -1
- package/dist/{combobox-wFudhN8F.js → combobox-CtCK0mNx.js} +3 -3
- package/dist/{combobox-wFudhN8F.js.map → combobox-CtCK0mNx.js.map} +1 -1
- package/dist/{combobox-parts-W7KRQUsV.js → combobox-parts-C1CugUAU.js} +11 -19
- package/dist/combobox-parts-C1CugUAU.js.map +1 -0
- package/dist/{combobox-parts-BZVXwbG7.cjs → combobox-parts-ScKcYjMR.cjs} +10 -18
- package/dist/combobox-parts-ScKcYjMR.cjs.map +1 -0
- package/dist/components/ActionRow.cjs.js +1 -1
- package/dist/components/ActionRow.es.js +1 -1
- package/dist/components/AlertDialog.cjs.js +2 -2
- package/dist/components/AlertDialog.es.js +2 -2
- package/dist/components/Button.cjs.js +4 -1
- package/dist/components/Button.es.js +2 -2
- package/dist/components/ButtonsGroup.cjs.js +3 -38
- package/dist/components/ButtonsGroup.es.js +1 -35
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/ClearFiltersButton.cjs.js +3 -0
- package/dist/components/ClearFiltersButton.d.ts +1 -0
- package/dist/components/ClearFiltersButton.es.js +1 -0
- package/dist/components/CodeBlock.cjs.js +3 -3
- package/dist/components/CodeBlock.es.js +3 -3
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/CollapsibleBox.cjs.js +1 -1
- package/dist/components/CollapsibleBox.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +3 -2
- package/dist/components/Command.cjs.js.map +1 -1
- package/dist/components/Command.es.js +3 -2
- 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/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +1 -1
- package/dist/components/DataDetailsPanel.es.js +1 -1
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +2 -2
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
- package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +7 -2
- package/dist/components/FilterBar.es.js +4 -3
- package/dist/components/FormFieldBlocks.cjs.js +2 -2
- package/dist/components/FormFieldBlocks.es.js +2 -2
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/InputNumber.cjs.js +2 -2
- package/dist/components/InputNumber.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +2 -2
- package/dist/components/JSONSchemaForm.es.js +2 -2
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +3 -3
- package/dist/components/PropertyFilter.es.js +3 -3
- package/dist/components/RuleBuilder.cjs.js +2 -2
- package/dist/components/RuleBuilder.es.js +2 -2
- package/dist/components/SavedViews.cjs.js +4 -3
- package/dist/components/SavedViews.cjs.js.map +1 -1
- package/dist/components/SavedViews.es.js +4 -3
- package/dist/components/SavedViews.es.js.map +1 -1
- package/dist/components/SearchInput.cjs.js +5 -2
- package/dist/components/SearchInput.cjs.js.map +1 -1
- package/dist/components/SearchInput.es.js +5 -2
- package/dist/components/SearchInput.es.js.map +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +5 -5
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +4 -4
- package/dist/components/Sidebar.cjs.js +3 -3
- package/dist/components/Sidebar.es.js +3 -3
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Toaster.cjs.js +2 -2
- package/dist/components/Toaster.es.js +2 -2
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.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 +2 -2
- package/dist/components/ai/plan.es.js +2 -2
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/{copy-button-CF-X4iDj.js → copy-button-BXrbevLn.js} +2 -2
- package/dist/{copy-button-CF-X4iDj.js.map → copy-button-BXrbevLn.js.map} +1 -1
- package/dist/{copy-button-BYEFKNpo.cjs → copy-button-DJAQ6_3o.cjs} +2 -2
- package/dist/{copy-button-BYEFKNpo.cjs.map → copy-button-DJAQ6_3o.cjs.map} +1 -1
- package/dist/{data-list-BkimqE_P.cjs → data-list-C4Vmq5HA.cjs} +2 -2
- package/dist/{data-list-BkimqE_P.cjs.map → data-list-C4Vmq5HA.cjs.map} +1 -1
- package/dist/{data-list-evmf5xWI.js → data-list-DHCOoLmj.js} +2 -2
- package/dist/{data-list-evmf5xWI.js.map → data-list-DHCOoLmj.js.map} +1 -1
- package/dist/{DateTimeRangePicker-HmPOHwAQ.cjs → date-time-range-picker-CTt7Od0P.cjs} +71 -57
- package/dist/date-time-range-picker-CTt7Od0P.cjs.map +1 -0
- package/dist/{DateTimeRangePicker-C_Lie_2P.js → date-time-range-picker-DKh1K9Iy.js} +72 -58
- package/dist/date-time-range-picker-DKh1K9Iy.js.map +1 -0
- package/dist/domains/auth/components/session-expired.cjs.js +2 -2
- package/dist/domains/auth/components/session-expired.es.js +2 -2
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.cjs.js +2 -2
- package/dist/domains/chat/activity/model/activity-words.es.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +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 +3 -3
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js +40 -0
- package/dist/domains/chat/knowledge/knowledge-links.cjs.js.map +1 -0
- package/dist/domains/chat/knowledge/knowledge-links.d.ts +1 -0
- package/dist/domains/chat/knowledge/knowledge-links.es.js +38 -0
- package/dist/domains/chat/knowledge/knowledge-links.es.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js +79 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.d.ts +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js +77 -0
- package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +124 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js.map +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.d.ts +1 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js +123 -0
- package/dist/domains/chat/knowledge/pinned-knowledge.es.js.map +1 -0
- package/dist/domains/chat/knowledge.cjs.js +12 -0
- package/dist/domains/chat/knowledge.d.ts +1 -0
- package/dist/domains/chat/knowledge.es.js +5 -0
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
- package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
- package/dist/domains/chat/messages/message-row.cjs.js +4 -4
- package/dist/domains/chat/messages/message-row.es.js +4 -4
- 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 +2 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +8 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +8 -1
- package/dist/domains/chat/messages/signal-badge.es.js.map +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 +2 -2
- package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
- 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 +3 -3
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
- 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 +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +273 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.d.ts +1 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +270 -0
- package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +4 -4
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +4 -4
- package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +3 -3
- package/dist/domains/chat/tools/connect-prompt-tool.es.js +3 -3
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.es.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +4 -2
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +4 -2
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +3 -2
- package/dist/domains/chat/tools/tool-groups.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +3 -2
- package/dist/domains/chat/tools/tool-groups.es.js.map +1 -1
- package/dist/domains/chat.cjs.js +11 -0
- package/dist/domains/chat.es.js +5 -1
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +1 -1
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +4 -4
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +4 -4
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +3 -3
- package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +3 -3
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +5 -5
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +5 -5
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +438 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +436 -0
- package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +521 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +520 -0
- package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +626 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +625 -0
- package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +170 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.d.ts +1 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js +168 -0
- package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.cjs.js +37 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.cjs.js.map +1 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.d.ts +1 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.es.js +35 -0
- package/dist/domains/knowledge/hooks/useInteractionIdle.es.js.map +1 -0
- package/dist/domains/knowledge/lib/layout.cjs.js +93 -0
- package/dist/domains/knowledge/lib/layout.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/layout.d.ts +1 -0
- package/dist/domains/knowledge/lib/layout.es.js +92 -0
- package/dist/domains/knowledge/lib/layout.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js +135 -0
- package/dist/domains/knowledge/lib/pageGraph.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageGraph.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageGraph.es.js +128 -0
- package/dist/domains/knowledge/lib/pageGraph.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageLayout.cjs.js +49 -0
- package/dist/domains/knowledge/lib/pageLayout.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageLayout.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageLayout.es.js +48 -0
- package/dist/domains/knowledge/lib/pageLayout.es.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js +98 -0
- package/dist/domains/knowledge/lib/pageTree.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/pageTree.d.ts +1 -0
- package/dist/domains/knowledge/lib/pageTree.es.js +94 -0
- package/dist/domains/knowledge/lib/pageTree.es.js.map +1 -0
- package/dist/domains/knowledge/lib/popupPlacement.cjs.js +22 -0
- package/dist/domains/knowledge/lib/popupPlacement.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/popupPlacement.d.ts +1 -0
- package/dist/domains/knowledge/lib/popupPlacement.es.js +21 -0
- package/dist/domains/knowledge/lib/popupPlacement.es.js.map +1 -0
- package/dist/domains/knowledge/lib/recordText.cjs.js +26 -0
- package/dist/domains/knowledge/lib/recordText.cjs.js.map +1 -0
- package/dist/domains/knowledge/lib/recordText.d.ts +1 -0
- package/dist/domains/knowledge/lib/recordText.es.js +25 -0
- package/dist/domains/knowledge/lib/recordText.es.js.map +1 -0
- package/dist/domains/knowledge/pageTypes.cjs.js +0 -0
- package/dist/domains/knowledge/pageTypes.d.ts +1 -0
- package/dist/domains/knowledge/pageTypes.es.js +0 -0
- package/dist/domains/logs/components/log-data-panel.cjs.js +6 -6
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +4 -4
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +2 -2
- package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +4 -4
- package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js.map +1 -1
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js +4 -4
- package/dist/domains/metrics/components/metrics-time-range-chip.es.js.map +1 -1
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
- package/dist/domains/metrics/metrics-filters.es.js +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js +1 -1
- package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
- package/dist/domains/observability/observability-list-url-state.es.js +1 -1
- package/dist/domains/observability/saved-view-state.cjs.js +1 -1
- package/dist/domains/observability/saved-view-state.es.js +1 -1
- 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/saved-views-provider.cjs.js +3 -2
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js.map +1 -1
- package/dist/domains/observability/saved-views/saved-views-provider.es.js +3 -2
- package/dist/domains/observability/saved-views/saved-views-provider.es.js.map +1 -1
- package/dist/domains/observability/saved-views/saved-views-source.cjs.js.map +1 -1
- package/dist/domains/observability/saved-views/saved-views-source.es.js.map +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +3 -2
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js.map +1 -1
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +3 -2
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js.map +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 +2 -2
- package/dist/domains/scores/components/score-data-panel.es.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
- package/dist/domains/scores/components/span-scoring.es.js +4 -4
- package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
- package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +4 -4
- package/dist/domains/skills/skill-simple-form.cjs.js.map +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +4 -4
- package/dist/domains/skills/skill-simple-form.es.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +8 -8
- package/dist/domains/spans/components/spans-explorer-body.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.es.js +8 -8
- package/dist/domains/spans/components/spans-explorer-body.es.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +5 -5
- package/dist/domains/spans/components/spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.es.js +5 -5
- package/dist/domains/spans/components/spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +5 -5
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +5 -5
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/span-filters.cjs.js +2 -2
- package/dist/domains/spans/span-filters.cjs.js.map +1 -1
- package/dist/domains/spans/span-filters.es.js +2 -2
- package/dist/domains/spans/span-filters.es.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +8 -8
- package/dist/domains/threads/components/threads-explorer-body.cjs.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.es.js +8 -8
- package/dist/domains/threads/components/threads-explorer-body.es.js.map +1 -1
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +5 -5
- package/dist/domains/threads/components/threads-filter-bar.cjs.js.map +1 -1
- package/dist/domains/threads/components/threads-filter-bar.es.js +5 -5
- package/dist/domains/threads/components/threads-filter-bar.es.js.map +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +5 -5
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js.map +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +5 -5
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js.map +1 -1
- package/dist/domains/threads/thread-filters.cjs.js +2 -2
- package/dist/domains/threads/thread-filters.cjs.js.map +1 -1
- package/dist/domains/threads/thread-filters.es.js +2 -2
- package/dist/domains/threads/thread-filters.es.js.map +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
- package/dist/domains/traces/components/feedback-thread.es.js +3 -3
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +5 -5
- package/dist/domains/traces/components/span-data-panel-view.es.js +5 -5
- 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-outcome.cjs.js +1 -1
- package/dist/domains/traces/components/span-outcome.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
- 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 +3 -3
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
- 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 +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
- 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-section.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
- 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-trace/thread-trace-spans.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +3 -4
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +3 -4
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +4 -4
- package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -4
- package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +1 -1
- 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-error-cell.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-cell.es.js +1 -1
- package/dist/domains/traces/components/trace-error-summary.cjs.js +1 -1
- package/dist/domains/traces/components/trace-error-summary.es.js +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +5 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +5 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +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 +5 -5
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +5 -5
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.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 +2 -2
- package/dist/domains/traces/components/traces-list-view.es.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +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/traces/hooks/use-download-trace-json.cjs.js +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-filters.es.js +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +1 -1
- package/dist/domains/traces.cjs.js +1 -1
- package/dist/domains/traces.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-combobox.es.js +2 -2
- package/dist/domains/workflows/components/workflow-information.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-information.es.js +2 -2
- 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/components/workflows-list/no-workflows-info.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
- package/dist/domains/workflows/workflow/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 +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-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/use-workflow-trigger.cjs.js +2 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +2 -1
- package/dist/domains/workflows/workflow/use-workflow-trigger.es.js.map +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-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.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-boundary.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
- 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 +3 -3
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- 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 +2 -2
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +3 -3
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +3 -3
- package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
- package/dist/domains/workspace/components/workspace-create-directory.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-create-directory.es.js +2 -2
- package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +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/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -6
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -5
- package/dist/ee/signals/examples-pager.cjs.js +1 -1
- package/dist/ee/signals/examples-pager.es.js +1 -1
- 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 +2 -2
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
- package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
- package/dist/ee/signals/trace-insight-view.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/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
- package/dist/{filter-bar-chip-7O02P9Vk.js → filter-bar-chip-B4sV4gDm.js} +86 -71
- package/dist/filter-bar-chip-B4sV4gDm.js.map +1 -0
- package/dist/{filter-bar-chip-BUyMf8XQ.cjs → filter-bar-chip-CIEsWcEw.cjs} +88 -79
- package/dist/filter-bar-chip-CIEsWcEw.cjs.map +1 -0
- package/dist/filter-bar-chip.css +22 -0
- package/dist/filter-bar-time-range-CXQMBgpz.js +60 -0
- package/dist/filter-bar-time-range-CXQMBgpz.js.map +1 -0
- package/dist/filter-bar-time-range-DvuaFnkI.cjs +83 -0
- package/dist/filter-bar-time-range-DvuaFnkI.cjs.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
- package/dist/{input-group-uDpFNnSW.cjs → input-group-DVJLZDBL.cjs} +6 -4
- package/dist/input-group-DVJLZDBL.cjs.map +1 -0
- package/dist/{input-group-g85FYfze.js → input-group-QKKV_ouF.js} +7 -5
- package/dist/input-group-QKKV_ouF.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
- package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-wrapper.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +1 -1
- package/dist/lib/form/components/date-field.es.js +1 -1
- package/dist/lib/form/components/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
- package/dist/lib/form/components/form-submit-row.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/lib/form/components/select-field.cjs.js +1 -1
- package/dist/lib/form/components/select-field.es.js +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/lib/form/dynamic-form.cjs.js +2 -2
- package/dist/lib/form/dynamic-form.cjs.js.map +1 -1
- package/dist/lib/form/dynamic-form.es.js +2 -2
- package/dist/lib/form/dynamic-form.es.js.map +1 -1
- package/dist/lib/form/json-draft.cjs.js +1 -1
- package/dist/lib/form/json-draft.es.js +1 -1
- package/dist/lib/form/zod-provider/compat.cjs.js +8 -0
- package/dist/lib/form/zod-provider/compat.cjs.js.map +1 -1
- package/dist/lib/form/zod-provider/compat.es.js +8 -1
- package/dist/lib/form/zod-provider/compat.es.js.map +1 -1
- package/dist/lib/form/zod-provider.cjs.js +1 -1
- package/dist/lib/form/zod-provider.es.js +1 -1
- package/dist/{list-search-BEJmYa9a.cjs → list-search-BtRno5As.cjs} +2 -2
- package/dist/list-search-BtRno5As.cjs.map +1 -0
- package/dist/{list-search-bg7WzULj.js → list-search-CkhsTFdG.js} +2 -2
- package/dist/list-search-CkhsTFdG.js.map +1 -0
- package/dist/{observability-saved-views-CwCii7hh.cjs → observability-saved-views-BAzxxoAr.cjs} +10 -8
- package/dist/observability-saved-views-BAzxxoAr.cjs.map +1 -0
- package/dist/{observability-saved-views-Bo5kLN20.js → observability-saved-views-BBam8Fr5.js} +10 -8
- package/dist/observability-saved-views-BBam8Fr5.js.map +1 -0
- package/dist/primitives/control-icon.cjs.js +9 -0
- package/dist/primitives/control-icon.cjs.js.map +1 -0
- package/dist/primitives/control-icon.d.ts +1 -0
- package/dist/primitives/control-icon.es.js +8 -0
- package/dist/primitives/control-icon.es.js.map +1 -0
- package/dist/primitives/control-size.cjs.js +6 -0
- package/dist/primitives/control-size.cjs.js.map +1 -1
- package/dist/primitives/control-size.es.js +6 -1
- package/dist/primitives/control-size.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +3 -3
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +3 -3
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/{property-filter-applied-DqsPFbYM.cjs → property-filter-applied-BCeRLcXb.cjs} +18 -18
- package/dist/{property-filter-applied-DqsPFbYM.cjs.map → property-filter-applied-BCeRLcXb.cjs.map} +1 -1
- package/dist/{property-filter-applied-DRglaEj-.js → property-filter-applied-p3dTTDdb.js} +3 -3
- package/dist/{property-filter-applied-DRglaEj-.js.map → property-filter-applied-p3dTTDdb.js.map} +1 -1
- package/dist/{select-BbFpEBAY.js → select-BdIZEdcy.js} +4 -8
- package/dist/select-BdIZEdcy.js.map +1 -0
- package/dist/{select-NySY9Men.cjs → select-Dg8L5ROX.cjs} +3 -7
- package/dist/select-Dg8L5ROX.cjs.map +1 -0
- package/dist/{span-payload-primitives-Dyhbqaa7.js → span-payload-primitives-B3RdahsC.js} +4 -4
- package/dist/{span-payload-primitives-Dyhbqaa7.js.map → span-payload-primitives-B3RdahsC.js.map} +1 -1
- package/dist/{span-payload-primitives-B10Xxmx7.cjs → span-payload-primitives-_2d-pAOD.cjs} +4 -4
- package/dist/{span-payload-primitives-B10Xxmx7.cjs.map → span-payload-primitives-_2d-pAOD.cjs.map} +1 -1
- package/dist/src/domains/chat/index.d.ts +1 -0
- package/dist/src/domains/chat/knowledge/index.d.ts +5 -0
- package/dist/src/domains/chat/knowledge/knowledge-links.d.ts +21 -0
- package/dist/src/domains/chat/knowledge/pinned-knowledge-data.d.ts +22 -0
- package/dist/src/domains/chat/knowledge/pinned-knowledge.d.ts +9 -0
- package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +19 -0
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +2 -2
- package/dist/src/domains/knowledge/components/KnowledgePageDetail.d.ts +42 -0
- package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +80 -0
- package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +35 -0
- package/dist/src/domains/knowledge/components/KnowledgePageTree.d.ts +27 -0
- package/dist/src/domains/knowledge/hooks/useInteractionIdle.d.ts +12 -0
- package/dist/src/domains/knowledge/lib/layout.d.ts +35 -0
- package/dist/src/domains/knowledge/lib/pageGraph.d.ts +45 -0
- package/dist/src/domains/knowledge/lib/pageLayout.d.ts +24 -0
- package/dist/src/domains/knowledge/lib/pageTree.d.ts +28 -0
- package/dist/src/domains/knowledge/lib/popupPlacement.d.ts +12 -0
- package/dist/src/domains/knowledge/lib/recordText.d.ts +9 -0
- package/dist/src/domains/knowledge/pageTypes.d.ts +96 -0
- package/dist/src/domains/metrics/components/metrics-time-range-chip.d.ts +2 -2
- package/dist/src/domains/observability/saved-views/saved-views-provider.d.ts +6 -1
- package/dist/src/domains/observability/saved-views/saved-views-source.d.ts +1 -0
- package/dist/src/domains/observability/saved-views/use-hosted-saved-views.d.ts +1 -1
- package/dist/src/domains/skills/skill-simple-form.d.ts +3 -1
- package/dist/src/domains/spans/components/spans-filter-bar.d.ts +1 -1
- package/dist/src/domains/spans/hooks/use-spans-filter-bar.d.ts +1 -1
- package/dist/src/domains/spans/span-filters.d.ts +1 -1
- package/dist/src/domains/threads/components/threads-filter-bar.d.ts +1 -1
- package/dist/src/domains/threads/hooks/use-threads-filter-bar.d.ts +1 -1
- package/dist/src/domains/threads/thread-filters.d.ts +1 -1
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.d.ts +3 -3
- package/dist/src/domains/traces/components/traces-page-skeleton.d.ts +1 -1
- package/dist/src/ds/components/Button/Button.d.ts +15 -0
- package/dist/src/ds/components/ClearFiltersButton/clear-filters-button.d.ts +12 -0
- package/dist/src/ds/components/ClearFiltersButton/index.d.ts +1 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +0 -1
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -11
- package/dist/src/ds/components/FilterBar/filter-bar-chip.d.ts +10 -7
- package/dist/src/ds/components/FilterBar/filter-bar-time-range.d.ts +19 -0
- package/dist/src/ds/components/FilterBar/filter-bar.d.ts +2 -0
- package/dist/src/ds/components/FilterBar/index.d.ts +2 -0
- package/dist/src/ds/components/FilterBar/use-filter-bar-item-keys.d.ts +23 -0
- package/dist/src/ds/components/ListSearch/list-search.d.ts +1 -0
- package/dist/src/ds/components/SavedViews/saved-view-picker.d.ts +3 -1
- package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +30 -0
- package/dist/src/ds/primitives/control-icon.d.ts +3 -0
- package/dist/src/ds/primitives/control-size.d.ts +1 -0
- package/dist/src/lib/form/zod-provider/compat.d.ts +5 -0
- package/dist/style.css +181 -66
- package/dist/{tabbed-container-BKUqfEKy.js → tabbed-container-5j6dhoRX.js} +6 -6
- package/dist/{tabbed-container-BKUqfEKy.js.map → tabbed-container-5j6dhoRX.js.map} +1 -1
- package/dist/{tabbed-container-CFEImJOK.cjs → tabbed-container-DQU7pVio.cjs} +6 -6
- package/dist/{tabbed-container-CFEImJOK.cjs.map → tabbed-container-DQU7pVio.cjs.map} +1 -1
- package/dist/{tabs-content-DgR3Hik1.cjs → tabs-content-CmXe5ML0.cjs} +2 -2
- package/dist/{tabs-content-DgR3Hik1.cjs.map → tabs-content-CmXe5ML0.cjs.map} +1 -1
- package/dist/{tabs-content-cpV6A9c3.js → tabs-content-D__B9hd-.js} +2 -2
- package/dist/{tabs-content-cpV6A9c3.js.map → tabs-content-D__B9hd-.js.map} +1 -1
- package/dist/{tabs-tab-UT1JliwK.js → tabs-tab-CYTZevdV.js} +2 -2
- package/dist/{tabs-tab-UT1JliwK.js.map → tabs-tab-CYTZevdV.js.map} +1 -1
- package/dist/{tabs-tab-Qp3RJ17z.cjs → tabs-tab-DGwfHVDr.cjs} +2 -2
- package/dist/{tabs-tab-Qp3RJ17z.cjs.map → tabs-tab-DGwfHVDr.cjs.map} +1 -1
- package/dist/{toast-api-WhxnAT9F.js → toast-api-D_rrRhNG.js} +2 -2
- package/dist/{toast-api-WhxnAT9F.js.map → toast-api-D_rrRhNG.js.map} +1 -1
- package/dist/{toast-api-Bv87KHu_.cjs → toast-api-qtkOucy2.cjs} +2 -2
- package/dist/{toast-api-Bv87KHu_.cjs.map → toast-api-qtkOucy2.cjs.map} +1 -1
- package/dist/{tool-approval-BfjoSNOC.cjs → tool-approval-1qiB4hhG.cjs} +5 -5
- package/dist/{tool-approval-BfjoSNOC.cjs.map → tool-approval-1qiB4hhG.cjs.map} +1 -1
- package/dist/{tool-approval-FeuyUUcL.js → tool-approval-B6MFcaKV.js} +5 -5
- package/dist/{tool-approval-FeuyUUcL.js.map → tool-approval-B6MFcaKV.js.map} +1 -1
- package/dist/{tool-call-CvilN9ti.cjs → tool-call-Bu66PkD-.cjs} +34 -4
- package/dist/{tool-call-CvilN9ti.cjs.map → tool-call-Bu66PkD-.cjs.map} +1 -1
- package/dist/{tool-call-BxYXs9w0.js → tool-call-Ch9-jjXU.js} +34 -4
- package/dist/{tool-call-BxYXs9w0.js.map → tool-call-Ch9-jjXU.js.map} +1 -1
- package/dist/{tool-card-B7O8AsRl.cjs → tool-card-DrqPZfPQ.cjs} +20 -6
- package/dist/tool-card-DrqPZfPQ.cjs.map +1 -0
- package/dist/{tool-card-ELW898uw.js → tool-card-sO6P2Qj4.js} +20 -6
- package/dist/tool-card-sO6P2Qj4.js.map +1 -0
- package/dist/{tool-presentation-BLErsb7c.cjs → tool-presentation-CQlDEwgS.cjs} +26 -1
- package/dist/tool-presentation-CQlDEwgS.cjs.map +1 -0
- package/dist/{tool-presentation-BSZYIWx2.js → tool-presentation-DvCsb_kz.js} +26 -1
- package/dist/tool-presentation-DvCsb_kz.js.map +1 -0
- package/dist/{trace-filters-BJaebsxJ.js → trace-filters-CaWkw779.js} +2 -3
- package/dist/trace-filters-CaWkw779.js.map +1 -0
- package/dist/{trace-filters-BNEZ31HX.cjs → trace-filters-a0N9bf52.cjs} +1 -2
- package/dist/trace-filters-a0N9bf52.cjs.map +1 -0
- package/dist/{use-workflow-graph-runtime-deTN_q_G.js → use-workflow-graph-runtime-BKNhOKsH.js} +3 -3
- package/dist/{use-workflow-graph-runtime-deTN_q_G.js.map → use-workflow-graph-runtime-BKNhOKsH.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-DkwQjMEV.cjs → use-workflow-graph-runtime-DYao-08R.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-DkwQjMEV.cjs.map → use-workflow-graph-runtime-DYao-08R.cjs.map} +1 -1
- package/dist/utils/toast.cjs.js +1 -1
- package/dist/utils/toast.es.js +1 -1
- package/package.json +12 -10
- package/theme.css +4 -0
- package/dist/ActionRow-BfK77pCT.cjs.map +0 -1
- package/dist/ActionRow-Cd6tOC2K.js.map +0 -1
- package/dist/Button-Bw1e3ONi.js.map +0 -1
- package/dist/Button-YQRflC47.cjs.map +0 -1
- package/dist/DateTimeRangePicker-C_Lie_2P.js.map +0 -1
- package/dist/DateTimeRangePicker-HmPOHwAQ.cjs.map +0 -1
- package/dist/FilterBar--4oguuVe.js.map +0 -1
- package/dist/FilterBar-BUd4f7oi.cjs.map +0 -1
- package/dist/combobox-parts-BZVXwbG7.cjs.map +0 -1
- package/dist/combobox-parts-W7KRQUsV.js.map +0 -1
- package/dist/components/ButtonsGroup.cjs.js.map +0 -1
- package/dist/components/ButtonsGroup.es.js.map +0 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +0 -90
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +0 -1
- package/dist/domains/traces/components/trace-time-range-chip.d.ts +0 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +0 -86
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +0 -1
- package/dist/filter-bar-chip-7O02P9Vk.js.map +0 -1
- package/dist/filter-bar-chip-BUyMf8XQ.cjs.map +0 -1
- package/dist/input-group-g85FYfze.js.map +0 -1
- package/dist/input-group-uDpFNnSW.cjs.map +0 -1
- package/dist/list-search-BEJmYa9a.cjs.map +0 -1
- package/dist/list-search-bg7WzULj.js.map +0 -1
- package/dist/observability-saved-views-Bo5kLN20.js.map +0 -1
- package/dist/observability-saved-views-CwCii7hh.cjs.map +0 -1
- package/dist/select-BbFpEBAY.js.map +0 -1
- package/dist/select-NySY9Men.cjs.map +0 -1
- package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +0 -22
- package/dist/tool-card-B7O8AsRl.cjs.map +0 -1
- package/dist/tool-card-ELW898uw.js.map +0 -1
- package/dist/tool-presentation-BLErsb7c.cjs.map +0 -1
- package/dist/tool-presentation-BSZYIWx2.js.map +0 -1
- package/dist/trace-filters-BJaebsxJ.js.map +0 -1
- package/dist/trace-filters-BNEZ31HX.cjs.map +0 -1
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_Txt = require("../../../Txt-BnoSqxKE.cjs");
|
|
3
|
+
const require_EmptyState = require("../../../EmptyState-DxDHlYqD.cjs");
|
|
4
|
+
const require_hooks_use_is_mobile = require("../../../hooks/use-is-mobile.cjs.js");
|
|
5
|
+
const require_domains_knowledge_components_KnowledgePageDetail = require("./KnowledgePageDetail.cjs.js");
|
|
6
|
+
const require_domains_knowledge_lib_popupPlacement = require("../lib/popupPlacement.cjs.js");
|
|
7
|
+
const require_domains_knowledge_components_KnowledgePageGraph = require("./KnowledgePageGraph.cjs.js");
|
|
8
|
+
const require_domains_knowledge_components_KnowledgePageTree = require("./KnowledgePageTree.cjs.js");
|
|
9
|
+
let react = require("react");
|
|
10
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
11
|
+
let lucide_react = require("lucide-react");
|
|
12
|
+
// src/domains/knowledge/components/KnowledgePageExplorer.tsx
|
|
13
|
+
var MIN_SEARCH_LENGTH = 2;
|
|
14
|
+
var noTreeLevels = () => [];
|
|
15
|
+
var noActivity = () => ({
|
|
16
|
+
isPending: false,
|
|
17
|
+
isError: false,
|
|
18
|
+
error: null
|
|
19
|
+
});
|
|
20
|
+
function isNotFound(error) {
|
|
21
|
+
return !!error && typeof error === "object" && "status" in error && error.status === 404;
|
|
22
|
+
}
|
|
23
|
+
function withPages(base, pages) {
|
|
24
|
+
if (pages.length === 0) return base;
|
|
25
|
+
const merged = new Map(base);
|
|
26
|
+
for (const page of pages) merged.set(page.id, page);
|
|
27
|
+
return merged;
|
|
28
|
+
}
|
|
29
|
+
/** `pages` narrowed to `scopeId` and everything below it, following parent links among the given pages. */
|
|
30
|
+
function withinScope(pages, scopeId) {
|
|
31
|
+
if (!scopeId) return pages;
|
|
32
|
+
const byId = new Map(pages.map((page) => [page.id, page]));
|
|
33
|
+
const inside = /* @__PURE__ */ new Map([[scopeId, true]]);
|
|
34
|
+
const isInside = (page) => {
|
|
35
|
+
const known = inside.get(page.id);
|
|
36
|
+
if (known !== void 0) return known;
|
|
37
|
+
const parent = page.parentId ? byId.get(page.parentId) : void 0;
|
|
38
|
+
inside.set(page.id, false);
|
|
39
|
+
const result = !!parent && parent.id !== page.id && isInside(parent);
|
|
40
|
+
inside.set(page.id, result);
|
|
41
|
+
return result;
|
|
42
|
+
};
|
|
43
|
+
return pages.filter(isInside);
|
|
44
|
+
}
|
|
45
|
+
function MoreButton({ onClick, label = "Load more" }) {
|
|
46
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
47
|
+
type: "button",
|
|
48
|
+
className: "self-start text-caption text-muted-foreground hover:text-foreground",
|
|
49
|
+
onClick,
|
|
50
|
+
children: label
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/** The next page of a page's notes, then a button for the one after. */
|
|
54
|
+
function MoreNotes({ source, pageId, cursor, pagesById, onPageClick }) {
|
|
55
|
+
const chunk = source.usePage(pageId, cursor);
|
|
56
|
+
const [showNext, setShowNext] = (0, react.useState)(false);
|
|
57
|
+
const known = (0, react.useMemo)(() => withPages(pagesById, chunk.data?.related ?? []), [chunk.data, pagesById]);
|
|
58
|
+
if (chunk.isPending) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
59
|
+
className: "text-caption text-muted-foreground",
|
|
60
|
+
children: "Loading notes…"
|
|
61
|
+
});
|
|
62
|
+
if (!chunk.data) return null;
|
|
63
|
+
const next = chunk.data.notesNextCursor;
|
|
64
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
65
|
+
className: "flex flex-col gap-3",
|
|
66
|
+
children: chunk.data.notes.map((note) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_knowledge_components_KnowledgePageDetail.KnowledgeNoteItem, {
|
|
67
|
+
note,
|
|
68
|
+
pagesById: known,
|
|
69
|
+
onPageClick
|
|
70
|
+
}, note.id))
|
|
71
|
+
}), next ? showNext ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MoreNotes, {
|
|
72
|
+
source,
|
|
73
|
+
pageId,
|
|
74
|
+
cursor: next,
|
|
75
|
+
pagesById,
|
|
76
|
+
onPageClick
|
|
77
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MoreButton, {
|
|
78
|
+
label: "Load more notes",
|
|
79
|
+
onClick: () => setShowNext(true)
|
|
80
|
+
}) : null] });
|
|
81
|
+
}
|
|
82
|
+
/** A page's children, a page at a time. */
|
|
83
|
+
function ChildPages({ useTreeLevels, parentId, onPageClick }) {
|
|
84
|
+
const [cursors, setCursors] = (0, react.useState)([]);
|
|
85
|
+
const levels = useTreeLevels((0, react.useMemo)(() => [{ parentId }, ...cursors.map((cursor) => ({
|
|
86
|
+
parentId,
|
|
87
|
+
cursor
|
|
88
|
+
}))], [parentId, cursors]));
|
|
89
|
+
const pages = levels.flatMap((level) => level.data?.pages ?? []);
|
|
90
|
+
const last = levels[levels.length - 1];
|
|
91
|
+
if (levels[0]?.isPending) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
92
|
+
className: "text-caption text-muted-foreground",
|
|
93
|
+
children: "Loading pages…"
|
|
94
|
+
});
|
|
95
|
+
if (pages.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
96
|
+
className: "text-body text-muted-foreground",
|
|
97
|
+
"data-testid": "knowledge-no-child-pages",
|
|
98
|
+
children: "No pages under this one."
|
|
99
|
+
});
|
|
100
|
+
const next = last?.data?.nextCursor;
|
|
101
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
102
|
+
className: "flex flex-col gap-1",
|
|
103
|
+
children: pages.map((child) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
104
|
+
className: "flex flex-col",
|
|
105
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
106
|
+
type: "button",
|
|
107
|
+
className: "text-left text-body font-medium text-info-indicator hover:underline",
|
|
108
|
+
onClick: () => onPageClick(child),
|
|
109
|
+
children: child.name
|
|
110
|
+
}), child.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
111
|
+
className: "truncate text-caption text-muted-foreground",
|
|
112
|
+
children: child.description
|
|
113
|
+
}) : null]
|
|
114
|
+
}, child.id))
|
|
115
|
+
}), next ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MoreButton, { onClick: () => setCursors((current) => [...current, next]) }) : null] });
|
|
116
|
+
}
|
|
117
|
+
/** What a clicked mention line stands for: the notes on one page that mention the other. */
|
|
118
|
+
function MentionPopup({ source, mention, pagesById, onOpen, onClose }) {
|
|
119
|
+
const detail = source.usePage(mention.source.id);
|
|
120
|
+
const notes = (detail.data?.notes ?? []).filter((note) => note.mentions.includes(mention.target.id));
|
|
121
|
+
(0, react.useEffect)(() => {
|
|
122
|
+
const onKey = (event) => {
|
|
123
|
+
if (event.key === "Escape") onClose();
|
|
124
|
+
};
|
|
125
|
+
window.addEventListener("keydown", onKey);
|
|
126
|
+
return () => window.removeEventListener("keydown", onKey);
|
|
127
|
+
}, [onClose]);
|
|
128
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
129
|
+
role: "dialog",
|
|
130
|
+
"aria-label": `${mention.source.name} mentions ${mention.target.name}`,
|
|
131
|
+
"data-testid": "knowledge-mention-popup",
|
|
132
|
+
className: "absolute z-20 flex w-80 max-w-[calc(100%-1rem)] flex-col gap-2 overflow-hidden rounded-lg border border-border bg-card p-3 shadow-overlay",
|
|
133
|
+
style: require_domains_knowledge_lib_popupPlacement.mentionPopupPlacement(mention),
|
|
134
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
135
|
+
className: "flex items-start gap-2",
|
|
136
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Txt.Txt, {
|
|
137
|
+
as: "h3",
|
|
138
|
+
variant: "card-title",
|
|
139
|
+
className: "min-w-0 flex-1",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
142
|
+
type: "button",
|
|
143
|
+
className: "hover:underline",
|
|
144
|
+
onClick: () => onOpen(mention.source.id),
|
|
145
|
+
children: mention.source.name
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Txt.Txt, {
|
|
148
|
+
as: "span",
|
|
149
|
+
variant: "card-title",
|
|
150
|
+
tone: "muted",
|
|
151
|
+
children: [
|
|
152
|
+
" ",
|
|
153
|
+
"mentions",
|
|
154
|
+
" "
|
|
155
|
+
]
|
|
156
|
+
}),
|
|
157
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
158
|
+
type: "button",
|
|
159
|
+
className: "hover:underline",
|
|
160
|
+
onClick: () => onOpen(mention.target.id),
|
|
161
|
+
children: mention.target.name
|
|
162
|
+
})
|
|
163
|
+
]
|
|
164
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
165
|
+
type: "button",
|
|
166
|
+
"aria-label": "Close",
|
|
167
|
+
className: "rounded p-0.5 text-muted-foreground hover:bg-fill hover:text-foreground",
|
|
168
|
+
onClick: onClose,
|
|
169
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.X, {
|
|
170
|
+
size: 14,
|
|
171
|
+
"aria-hidden": true
|
|
172
|
+
})
|
|
173
|
+
})]
|
|
174
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
175
|
+
className: "min-h-0 overflow-y-auto",
|
|
176
|
+
children: detail.isPending ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
177
|
+
variant: "caption",
|
|
178
|
+
tone: "muted",
|
|
179
|
+
children: "Loading notes…"
|
|
180
|
+
}) : notes.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Txt.Txt, {
|
|
181
|
+
variant: "caption",
|
|
182
|
+
tone: "muted",
|
|
183
|
+
children: [
|
|
184
|
+
"The notes that make this mention aren't in the first page of notes. Open ",
|
|
185
|
+
mention.source.name,
|
|
186
|
+
" to read them all."
|
|
187
|
+
]
|
|
188
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
189
|
+
className: "flex flex-col gap-2",
|
|
190
|
+
children: notes.map((note) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_knowledge_components_KnowledgePageDetail.KnowledgeNoteItem, {
|
|
191
|
+
note,
|
|
192
|
+
pagesById: withPages(pagesById, detail.data?.related ?? []),
|
|
193
|
+
onPageClick: (page) => onOpen(page.id),
|
|
194
|
+
compact: true
|
|
195
|
+
}, note.id))
|
|
196
|
+
})
|
|
197
|
+
})]
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
function SelectedPage({ source, pageId, pagesById, onSelect, highlightMentionOf }) {
|
|
201
|
+
const detail = source.usePage(pageId);
|
|
202
|
+
const activity = (source.useActivity ?? noActivity)(pageId);
|
|
203
|
+
const [moreNotes, setMoreNotes] = (0, react.useState)(null);
|
|
204
|
+
const known = (0, react.useMemo)(() => detail.data ? withPages(pagesById, [...detail.data.ancestors, ...detail.data.related]) : pagesById, [detail.data, pagesById]);
|
|
205
|
+
if (detail.isPending) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
206
|
+
className: "text-ui-md p-4 text-muted-foreground",
|
|
207
|
+
children: "Loading page…"
|
|
208
|
+
});
|
|
209
|
+
if (detail.isError || !detail.data) {
|
|
210
|
+
const notFound = isNotFound(detail.error);
|
|
211
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_EmptyState.EmptyState, {
|
|
212
|
+
tone: "error",
|
|
213
|
+
variant: "fill",
|
|
214
|
+
titleSlot: notFound ? "Page not found" : "Failed to load the page",
|
|
215
|
+
descriptionSlot: notFound ? "It may have been deleted or merged." : detail.error?.message ?? ""
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
const onPageClick = (page) => onSelect(page.id);
|
|
219
|
+
const next = detail.data.notesNextCursor;
|
|
220
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_knowledge_components_KnowledgePageDetail.KnowledgePageDetail, {
|
|
221
|
+
page: detail.data.page,
|
|
222
|
+
notes: detail.data.notes,
|
|
223
|
+
pin: detail.data.pin ?? void 0,
|
|
224
|
+
pagesById: known,
|
|
225
|
+
onPageClick,
|
|
226
|
+
highlightMentionOf,
|
|
227
|
+
ancestors: detail.data.ancestors,
|
|
228
|
+
mentionedBy: detail.data.mentionedBy,
|
|
229
|
+
activity: activity.data?.events,
|
|
230
|
+
childPages: source.useTreeLevels ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChildPages, {
|
|
231
|
+
useTreeLevels: source.useTreeLevels,
|
|
232
|
+
parentId: pageId,
|
|
233
|
+
onPageClick
|
|
234
|
+
}, pageId) : void 0,
|
|
235
|
+
notesMore: next ? moreNotes?.pageId === pageId ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MoreNotes, {
|
|
236
|
+
source,
|
|
237
|
+
pageId,
|
|
238
|
+
cursor: next,
|
|
239
|
+
pagesById: known,
|
|
240
|
+
onPageClick
|
|
241
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MoreButton, {
|
|
242
|
+
label: "Load more notes",
|
|
243
|
+
onClick: () => setMoreNotes({ pageId })
|
|
244
|
+
}) : void 0
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
function SearchBox({ source, onSelect }) {
|
|
248
|
+
const [query, setQuery] = (0, react.useState)("");
|
|
249
|
+
const search = source.useSearch(query);
|
|
250
|
+
const results = query.trim().length >= MIN_SEARCH_LENGTH ? search.data?.results ?? [] : [];
|
|
251
|
+
const seen = /* @__PURE__ */ new Set();
|
|
252
|
+
const pages = results.map((hit) => hit.page).filter((page) => seen.has(page.id) ? false : (seen.add(page.id), true)).slice(0, 10);
|
|
253
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
254
|
+
className: "relative min-w-60 flex-1",
|
|
255
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
256
|
+
"aria-label": "Search knowledge",
|
|
257
|
+
placeholder: "Search pages and notes",
|
|
258
|
+
className: "text-ui-md h-8 w-full rounded border border-border bg-card px-2",
|
|
259
|
+
value: query,
|
|
260
|
+
onChange: (event) => setQuery(event.target.value)
|
|
261
|
+
}), pages.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
262
|
+
role: "listbox",
|
|
263
|
+
"aria-label": "Search results",
|
|
264
|
+
className: "absolute z-20 mt-1 max-h-72 w-full overflow-auto rounded border border-border bg-card shadow-raised",
|
|
265
|
+
children: pages.map((page) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
266
|
+
role: "option",
|
|
267
|
+
"aria-selected": false,
|
|
268
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
269
|
+
type: "button",
|
|
270
|
+
className: "text-ui-md w-full px-2 py-1.5 text-left hover:bg-muted",
|
|
271
|
+
onClick: () => {
|
|
272
|
+
onSelect(page.id);
|
|
273
|
+
setQuery("");
|
|
274
|
+
},
|
|
275
|
+
children: page.name
|
|
276
|
+
})
|
|
277
|
+
}, page.id))
|
|
278
|
+
}) : null]
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* The tree loaded a level at a time through `useTreeLevels`: the root scopes, then each level as it is
|
|
283
|
+
* opened, plus the path to the selected page. Unloaded pages keep a chevron until opened.
|
|
284
|
+
*/
|
|
285
|
+
function useLazyTree(source, graph, selected) {
|
|
286
|
+
const [expanded, setExpanded] = (0, react.useState)(() => /* @__PURE__ */ new Set());
|
|
287
|
+
const [more, setMore] = (0, react.useState)(() => /* @__PURE__ */ new Map());
|
|
288
|
+
const requests = (0, react.useMemo)(() => {
|
|
289
|
+
const list = [{ parentId: null }];
|
|
290
|
+
for (const id of expanded) {
|
|
291
|
+
list.push({ parentId: id });
|
|
292
|
+
for (const cursor of more.get(id) ?? []) list.push({
|
|
293
|
+
parentId: id,
|
|
294
|
+
cursor
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
return list;
|
|
298
|
+
}, [expanded, more]);
|
|
299
|
+
const levels = (source.useTreeLevels ?? noTreeLevels)(requests);
|
|
300
|
+
const { pages, loaded, nextCursor } = (0, react.useMemo)(() => {
|
|
301
|
+
const byId = /* @__PURE__ */ new Map();
|
|
302
|
+
const loadedIds = /* @__PURE__ */ new Set();
|
|
303
|
+
const next = /* @__PURE__ */ new Map();
|
|
304
|
+
levels.forEach((level, index) => {
|
|
305
|
+
const request = requests[index];
|
|
306
|
+
if (!request || !level.data) return;
|
|
307
|
+
const key = request.parentId ?? "";
|
|
308
|
+
loadedIds.add(key);
|
|
309
|
+
for (const page of level.data.pages) byId.set(page.id, page);
|
|
310
|
+
if (level.data.nextCursor) next.set(key, level.data.nextCursor);
|
|
311
|
+
else next.delete(key);
|
|
312
|
+
});
|
|
313
|
+
for (const page of [...selected?.ancestors ?? [], ...selected ? [selected.page] : []]) if (!byId.has(page.id)) byId.set(page.id, page);
|
|
314
|
+
return {
|
|
315
|
+
pages: [...byId.values()],
|
|
316
|
+
loaded: loadedIds,
|
|
317
|
+
nextCursor: next
|
|
318
|
+
};
|
|
319
|
+
}, [
|
|
320
|
+
levels,
|
|
321
|
+
requests,
|
|
322
|
+
selected
|
|
323
|
+
]);
|
|
324
|
+
const graphParents = (0, react.useMemo)(() => graph.truncated ? null : new Set(graph.pages.map((page) => page.parentId).filter((id) => id !== null)), [graph]);
|
|
325
|
+
return {
|
|
326
|
+
pages,
|
|
327
|
+
mayHaveChildren: (0, react.useCallback)((page) => !loaded.has(page.id) && (graphParents ? graphParents.has(page.id) : true), [loaded, graphParents]),
|
|
328
|
+
loadMore: (0, react.useMemo)(() => {
|
|
329
|
+
const map = /* @__PURE__ */ new Map();
|
|
330
|
+
for (const [parentId, cursor] of nextCursor) map.set(parentId, () => setMore((current) => new Map(current).set(parentId, [...current.get(parentId) ?? [], cursor])));
|
|
331
|
+
return map;
|
|
332
|
+
}, [nextCursor]),
|
|
333
|
+
onExpandedChange: (0, react.useCallback)((ids) => setExpanded(new Set(ids)), []),
|
|
334
|
+
rootsPending: levels[0]?.isPending ?? false
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Search, the page tree, and either the page graph or the selected page, kept in sync on one selection.
|
|
339
|
+
* Wide screens show the tree beside the graph or the page; below `lg` one toggle picks tree, graph or page.
|
|
340
|
+
* A first click on a page in the graph selects it; clicking it again opens it as a page. A search result
|
|
341
|
+
* opens it as a page straight away. Selecting in the tree keeps the current view, so the graph frames the
|
|
342
|
+
* page instead.
|
|
343
|
+
*/
|
|
344
|
+
function KnowledgePageExplorer({ graph, source, selectedPageId, onSelect, view, onViewChange }) {
|
|
345
|
+
const pagesById = (0, react.useMemo)(() => new Map(graph.pages.map((page) => [page.id, page])), [graph.pages]);
|
|
346
|
+
const [focusScopeId, setFocusScopeId] = (0, react.useState)(null);
|
|
347
|
+
const mentionEdges = (0, react.useMemo)(() => graph.edges.filter((edge) => edge.kind === "mention"), [graph.edges]);
|
|
348
|
+
const [mention, setMention] = (0, react.useState)(null);
|
|
349
|
+
const [marked, setMarked] = (0, react.useState)(null);
|
|
350
|
+
const closeMention = (0, react.useCallback)(() => setMention(null), []);
|
|
351
|
+
const graphShown = !require_hooks_use_is_mobile.useIsMobile(1024) || view === "graph";
|
|
352
|
+
const highlightMentionOf = marked && marked.source === selectedPageId ? marked.target : void 0;
|
|
353
|
+
const selected = source.usePage(selectedPageId);
|
|
354
|
+
const lazy = useLazyTree(source, graph, selected.data);
|
|
355
|
+
const showPage = view === "page" && !!selectedPageId;
|
|
356
|
+
const openPage = (pageId) => {
|
|
357
|
+
onSelect(pageId);
|
|
358
|
+
onViewChange("page");
|
|
359
|
+
};
|
|
360
|
+
const selectFromTree = (page) => {
|
|
361
|
+
if (page.isScope) setFocusScopeId(page.id);
|
|
362
|
+
if (view === "graph") onSelect(page.id);
|
|
363
|
+
else openPage(page.id);
|
|
364
|
+
};
|
|
365
|
+
const openAnywhere = (pageId) => {
|
|
366
|
+
if (focusScopeId && !withinScope([...lazy.pages, ...graph.pages], focusScopeId).some((page) => page.id === pageId)) setFocusScopeId(null);
|
|
367
|
+
openPage(pageId);
|
|
368
|
+
};
|
|
369
|
+
const focusScope = focusScopeId ? lazy.pages.find((page) => page.id === focusScopeId) ?? pagesById.get(focusScopeId) : void 0;
|
|
370
|
+
const treePages = withinScope(source.useTreeLevels ? lazy.pages : graph.pages, focusScope ? focusScopeId : null);
|
|
371
|
+
const graphPages = (0, react.useMemo)(() => withinScope(graph.pages, focusScope ? focusScopeId : null), [
|
|
372
|
+
graph.pages,
|
|
373
|
+
focusScope,
|
|
374
|
+
focusScopeId
|
|
375
|
+
]);
|
|
376
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
377
|
+
className: "flex min-h-0 flex-1 flex-col gap-3",
|
|
378
|
+
children: [
|
|
379
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
380
|
+
className: "flex flex-wrap items-center gap-2",
|
|
381
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchBox, {
|
|
382
|
+
source,
|
|
383
|
+
onSelect: openAnywhere
|
|
384
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
385
|
+
role: "group",
|
|
386
|
+
"aria-label": "View",
|
|
387
|
+
className: "flex rounded border border-border",
|
|
388
|
+
children: [
|
|
389
|
+
{
|
|
390
|
+
value: "tree",
|
|
391
|
+
label: "Tree",
|
|
392
|
+
narrowOnly: true
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
value: "graph",
|
|
396
|
+
label: "Graph"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
value: "page",
|
|
400
|
+
label: "Page"
|
|
401
|
+
}
|
|
402
|
+
].map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
403
|
+
type: "button",
|
|
404
|
+
"aria-pressed": option.value === "page" ? showPage : option.value === "graph" ? !showPage && view !== "tree" : view === "tree",
|
|
405
|
+
disabled: option.value === "page" && !selectedPageId,
|
|
406
|
+
className: `text-ui-md px-3 py-1 disabled:opacity-50 aria-pressed:bg-muted ${option.narrowOnly ? "lg:hidden" : ""}`,
|
|
407
|
+
onClick: () => onViewChange(option.value),
|
|
408
|
+
children: option.label
|
|
409
|
+
}, option.value))
|
|
410
|
+
})]
|
|
411
|
+
}),
|
|
412
|
+
graph.truncated && !showPage ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
413
|
+
className: "text-ui-sm text-muted-foreground",
|
|
414
|
+
children: [
|
|
415
|
+
"The graph shows the first ",
|
|
416
|
+
graph.pages.length,
|
|
417
|
+
" pages. Open the tree or search to reach the rest."
|
|
418
|
+
]
|
|
419
|
+
}) : null,
|
|
420
|
+
selectedPageId && !showPage && isNotFound(selected.error) ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
421
|
+
role: "alert",
|
|
422
|
+
className: "text-ui-sm text-destructive-foreground",
|
|
423
|
+
children: "Page not found. The linked page may have been deleted or merged."
|
|
424
|
+
}) : null,
|
|
425
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
426
|
+
className: "flex min-h-0 flex-1 flex-col gap-3 lg:flex-row",
|
|
427
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("aside", {
|
|
428
|
+
className: `min-h-0 w-full flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card lg:flex lg:w-72 lg:flex-none lg:shrink-0 ${view === "tree" ? "flex" : "hidden"}`,
|
|
429
|
+
children: [focusScope ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
430
|
+
className: "flex items-center gap-2 border-b border-border bg-fill-subtle px-3 py-2",
|
|
431
|
+
"data-testid": "knowledge-scope-focus",
|
|
432
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
433
|
+
className: "flex min-w-0 flex-1 flex-col",
|
|
434
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
435
|
+
as: "span",
|
|
436
|
+
variant: "eyebrow",
|
|
437
|
+
tone: "muted",
|
|
438
|
+
className: "uppercase",
|
|
439
|
+
children: focusScope.displayLabel ?? "Scope"
|
|
440
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Txt.Txt, {
|
|
441
|
+
as: "span",
|
|
442
|
+
variant: "label",
|
|
443
|
+
tone: "ink",
|
|
444
|
+
className: "truncate",
|
|
445
|
+
children: focusScope.address ?? focusScope.name
|
|
446
|
+
})]
|
|
447
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
448
|
+
type: "button",
|
|
449
|
+
className: "text-ui-sm shrink-0 rounded px-2 py-1 text-muted-foreground hover:bg-fill hover:text-foreground",
|
|
450
|
+
onClick: () => setFocusScopeId(null),
|
|
451
|
+
children: "All scopes"
|
|
452
|
+
})]
|
|
453
|
+
}) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
454
|
+
className: "min-h-0 flex-1 overflow-auto",
|
|
455
|
+
children: source.useTreeLevels && lazy.rootsPending ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
456
|
+
className: "px-3 py-2 text-body text-muted-foreground",
|
|
457
|
+
children: "Loading pages…"
|
|
458
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_knowledge_components_KnowledgePageTree.KnowledgePageTree, {
|
|
459
|
+
pages: treePages,
|
|
460
|
+
pinnedIds: graph.pinnedIds,
|
|
461
|
+
selectedPageId,
|
|
462
|
+
onSelect: selectFromTree,
|
|
463
|
+
initiallyExpanded: focusScope ? [focusScope.id] : void 0,
|
|
464
|
+
...source.useTreeLevels ? {
|
|
465
|
+
mayHaveChildren: lazy.mayHaveChildren,
|
|
466
|
+
onExpandedChange: lazy.onExpandedChange,
|
|
467
|
+
loadMore: lazy.loadMore
|
|
468
|
+
} : {}
|
|
469
|
+
}, focusScope ? focusScope.id : "all")
|
|
470
|
+
})]
|
|
471
|
+
}), showPage ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("section", {
|
|
472
|
+
"aria-label": "Selected page",
|
|
473
|
+
className: "min-h-0 min-w-0 flex-1 overflow-auto rounded-lg border border-border bg-card",
|
|
474
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectedPage, {
|
|
475
|
+
source,
|
|
476
|
+
pageId: selectedPageId,
|
|
477
|
+
pagesById,
|
|
478
|
+
onSelect: openAnywhere,
|
|
479
|
+
highlightMentionOf
|
|
480
|
+
})
|
|
481
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
482
|
+
className: `relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-lg border border-border bg-background lg:block lg:h-full ${view === "graph" ? "block" : "hidden"}`,
|
|
483
|
+
"data-testid": "knowledge-graph-container",
|
|
484
|
+
children: [graphShown ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_knowledge_components_KnowledgePageGraph.KnowledgePageGraph, {
|
|
485
|
+
pages: graphPages,
|
|
486
|
+
edges: mentionEdges,
|
|
487
|
+
pinnedIds: graph.pinnedIds,
|
|
488
|
+
grants: graph.grants,
|
|
489
|
+
selectedPageId,
|
|
490
|
+
onSelect: (page) => {
|
|
491
|
+
onSelect(page.id);
|
|
492
|
+
if (view !== "graph") onViewChange("graph");
|
|
493
|
+
},
|
|
494
|
+
onOpen: (page) => openPage(page.id),
|
|
495
|
+
onClearSelection: () => {
|
|
496
|
+
setMention(null);
|
|
497
|
+
if (selectedPageId) onSelect(null);
|
|
498
|
+
},
|
|
499
|
+
onMentionSelect: setMention
|
|
500
|
+
}) : null, mention && graphShown ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MentionPopup, {
|
|
501
|
+
source,
|
|
502
|
+
mention,
|
|
503
|
+
pagesById,
|
|
504
|
+
onClose: closeMention,
|
|
505
|
+
onOpen: (pageId) => {
|
|
506
|
+
setMarked(pageId === mention.source.id ? {
|
|
507
|
+
source: mention.source.id,
|
|
508
|
+
target: mention.target.id
|
|
509
|
+
} : null);
|
|
510
|
+
setMention(null);
|
|
511
|
+
openAnywhere(pageId);
|
|
512
|
+
}
|
|
513
|
+
}) : null]
|
|
514
|
+
})]
|
|
515
|
+
})
|
|
516
|
+
]
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
exports.KnowledgePageExplorer = KnowledgePageExplorer;
|
|
520
|
+
|
|
521
|
+
//# sourceMappingURL=KnowledgePageExplorer.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KnowledgePageExplorer.cjs.js","names":["useState","useMemo","_Fragment","KnowledgeNoteItem","mentionPopupPlacement","Txt","X","EmptyState","KnowledgePageDetail","useCallback","useIsMobile","KnowledgePageTree","KnowledgePageGraph"],"sources":["../../../../src/domains/knowledge/components/KnowledgePageExplorer.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { mentionPopupPlacement } from '../lib/popupPlacement';\n\nimport type {\n KnowledgePageActivityPayload,\n KnowledgeNotePayload,\n KnowledgePageEdge,\n KnowledgePagePayload,\n KnowledgePinPayload,\n KnowledgeScopeGrantPayload,\n} from '../pageTypes';\nimport { KnowledgeNoteItem, KnowledgePageDetail } from './KnowledgePageDetail';\nimport { KnowledgePageGraph } from './KnowledgePageGraph';\nimport { KNOWLEDGE_TREE_ROOT, KnowledgePageTree } from './KnowledgePageTree';\n\nimport { EmptyState } from '@/ds/components/EmptyState';\nimport { Txt } from '@/ds/components/Txt';\nimport { useIsMobile } from '@/hooks/use-is-mobile';\n\n/** `tree` is only a choice below `lg`; wider screens always show the tree beside the graph or the page. */\nexport type KnowledgeExplorerView = 'tree' | 'graph' | 'page';\n\n/** The bounded page graph a host loads. Without `useTreeLevels`, its pages also feed the tree. */\nexport interface KnowledgeExplorerGraph {\n pages: KnowledgePagePayload[];\n edges: KnowledgePageEdge[];\n pinnedIds: string[];\n /** Access grants between scopes; hosts whose server doesn't send them leave this out. */\n grants?: KnowledgeScopeGrantPayload[];\n truncated: boolean;\n}\n\nexport interface KnowledgeExplorerPageDetail {\n page: KnowledgePagePayload;\n notes: KnowledgeNotePayload[];\n /** Cursor for the page's next notes. */\n notesNextCursor?: string;\n pin?: KnowledgePinPayload | null;\n /** Ancestors and referenced pages, which may sit outside the loaded graph. */\n ancestors: KnowledgePagePayload[];\n related: KnowledgePagePayload[];\n /** Notes on other pages that mention this one. */\n mentionedBy?: KnowledgeNotePayload[];\n}\n\n/** One level of the tree: a parent's child scopes then its child pages, paged. */\nexport interface KnowledgeExplorerTreeLevel {\n pages: KnowledgePagePayload[];\n nextCursor?: string;\n}\n\nexport interface KnowledgeExplorerActivity {\n events: KnowledgePageActivityPayload[];\n}\n\nexport interface KnowledgeExplorerQueryState<T> {\n data?: T;\n isPending: boolean;\n isError: boolean;\n error: Error | null;\n}\n\n/** One request for a tree level: `parentId: null` for the root scopes. */\nexport interface KnowledgeExplorerTreeRequest {\n parentId: string | null;\n cursor?: string;\n}\n\n/**\n * Host data hooks. Each host binds them to its own routes (Studio to the Mastra client, Factory to its\n * project-scoped routes), so the explorer never knows a URL or an id outside the page ids it shows.\n * Pass the same functions every render: they are called as hooks.\n */\nexport interface KnowledgeExplorerSource {\n /** One page; `noteCursor` fetches a later page of its notes. Disabled when `pageId` is null. */\n usePage: (pageId: string | null, noteCursor?: string) => KnowledgeExplorerQueryState<KnowledgeExplorerPageDetail>;\n useSearch: (query: string) => { data?: { results: Array<{ page: KnowledgePagePayload }> } };\n /** Tree levels, one result per request in order (e.g. `useQueries`). Enables the lazily loaded tree and child pages. */\n useTreeLevels?: (\n requests: KnowledgeExplorerTreeRequest[],\n ) => Array<KnowledgeExplorerQueryState<KnowledgeExplorerTreeLevel>>;\n /** A page's recent activity, newest first. */\n useActivity?: (pageId: string) => KnowledgeExplorerQueryState<KnowledgeExplorerActivity>;\n}\n\nexport interface KnowledgePageExplorerProps {\n graph: KnowledgeExplorerGraph;\n source: KnowledgeExplorerSource;\n selectedPageId: string | null;\n /** `null` clears the selection: a click on empty graph canvas. */\n onSelect: (pageId: string | null) => void;\n view: KnowledgeExplorerView;\n onViewChange: (view: KnowledgeExplorerView) => void;\n}\n\nconst MIN_SEARCH_LENGTH = 2;\nconst noTreeLevels = () => [];\nconst noActivity = (): KnowledgeExplorerQueryState<KnowledgeExplorerActivity> => ({\n isPending: false,\n isError: false,\n error: null,\n});\n\nfunction isNotFound(error: unknown): boolean {\n return !!error && typeof error === 'object' && 'status' in error && error.status === 404;\n}\n\nfunction withPages(\n base: ReadonlyMap<string, KnowledgePagePayload>,\n pages: KnowledgePagePayload[],\n): ReadonlyMap<string, KnowledgePagePayload> {\n if (pages.length === 0) return base;\n const merged = new Map(base);\n for (const page of pages) merged.set(page.id, page);\n return merged;\n}\n\n/** `pages` narrowed to `scopeId` and everything below it, following parent links among the given pages. */\nfunction withinScope(pages: KnowledgePagePayload[], scopeId: string | null): KnowledgePagePayload[] {\n if (!scopeId) return pages;\n const byId = new Map(pages.map(page => [page.id, page]));\n const inside = new Map<string, boolean>([[scopeId, true]]);\n const isInside = (page: KnowledgePagePayload): boolean => {\n const known = inside.get(page.id);\n if (known !== undefined) return known;\n const parent = page.parentId ? byId.get(page.parentId) : undefined;\n inside.set(page.id, false);\n const result = !!parent && parent.id !== page.id && isInside(parent);\n inside.set(page.id, result);\n return result;\n };\n return pages.filter(isInside);\n}\n\nfunction MoreButton({ onClick, label = 'Load more' }: { onClick: () => void; label?: string }) {\n return (\n <button\n type=\"button\"\n className=\"self-start text-caption text-muted-foreground hover:text-foreground\"\n onClick={onClick}\n >\n {label}\n </button>\n );\n}\n\n/** The next page of a page's notes, then a button for the one after. */\nfunction MoreNotes({\n source,\n pageId,\n cursor,\n pagesById,\n onPageClick,\n}: {\n source: KnowledgeExplorerSource;\n pageId: string;\n cursor: string;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n const chunk = source.usePage(pageId, cursor);\n const [showNext, setShowNext] = useState(false);\n const known = useMemo(() => withPages(pagesById, chunk.data?.related ?? []), [chunk.data, pagesById]);\n if (chunk.isPending) return <p className=\"text-caption text-muted-foreground\">Loading notes…</p>;\n if (!chunk.data) return null;\n const next = chunk.data.notesNextCursor;\n return (\n <>\n <ul className=\"flex flex-col gap-3\">\n {chunk.data.notes.map(note => (\n <KnowledgeNoteItem key={note.id} note={note} pagesById={known} onPageClick={onPageClick} />\n ))}\n </ul>\n {next ? (\n showNext ? (\n <MoreNotes source={source} pageId={pageId} cursor={next} pagesById={pagesById} onPageClick={onPageClick} />\n ) : (\n <MoreButton label=\"Load more notes\" onClick={() => setShowNext(true)} />\n )\n ) : null}\n </>\n );\n}\n\n/** A page's children, a page at a time. */\nfunction ChildPages({\n useTreeLevels,\n parentId,\n onPageClick,\n}: {\n useTreeLevels: NonNullable<KnowledgeExplorerSource['useTreeLevels']>;\n parentId: string;\n onPageClick: (page: KnowledgePagePayload) => void;\n}) {\n const [cursors, setCursors] = useState<string[]>([]);\n const requests = useMemo(() => [{ parentId }, ...cursors.map(cursor => ({ parentId, cursor }))], [parentId, cursors]);\n const levels = useTreeLevels(requests);\n const pages = levels.flatMap(level => level.data?.pages ?? []);\n const last = levels[levels.length - 1];\n if (levels[0]?.isPending) return <p className=\"text-caption text-muted-foreground\">Loading pages…</p>;\n if (pages.length === 0) {\n return (\n <p className=\"text-body text-muted-foreground\" data-testid=\"knowledge-no-child-pages\">\n No pages under this one.\n </p>\n );\n }\n const next = last?.data?.nextCursor;\n return (\n <>\n <ul className=\"flex flex-col gap-1\">\n {pages.map(child => (\n <li key={child.id} className=\"flex flex-col\">\n <button\n type=\"button\"\n className=\"text-left text-body font-medium text-info-indicator hover:underline\"\n onClick={() => onPageClick(child)}\n >\n {child.name}\n </button>\n {child.description ? (\n <span className=\"truncate text-caption text-muted-foreground\">{child.description}</span>\n ) : null}\n </li>\n ))}\n </ul>\n {next ? <MoreButton onClick={() => setCursors(current => [...current, next])} /> : null}\n </>\n );\n}\n\ninterface MentionSelection {\n source: KnowledgePagePayload;\n target: KnowledgePagePayload;\n point: { x: number; y: number };\n pane: { width: number; height: number };\n}\n\n/** What a clicked mention line stands for: the notes on one page that mention the other. */\nfunction MentionPopup({\n source,\n mention,\n pagesById,\n onOpen,\n onClose,\n}: {\n source: KnowledgeExplorerSource;\n mention: MentionSelection;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onOpen: (pageId: string) => void;\n onClose: () => void;\n}) {\n const detail = source.usePage(mention.source.id);\n const notes = (detail.data?.notes ?? []).filter(note => note.mentions.includes(mention.target.id));\n useEffect(() => {\n const onKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose();\n };\n window.addEventListener('keydown', onKey);\n return () => window.removeEventListener('keydown', onKey);\n }, [onClose]);\n return (\n <div\n role=\"dialog\"\n aria-label={`${mention.source.name} mentions ${mention.target.name}`}\n data-testid=\"knowledge-mention-popup\"\n className=\"absolute z-20 flex w-80 max-w-[calc(100%-1rem)] flex-col gap-2 overflow-hidden rounded-lg border border-border bg-card p-3 shadow-overlay\"\n style={mentionPopupPlacement(mention)}\n >\n <div className=\"flex items-start gap-2\">\n <Txt as=\"h3\" variant=\"card-title\" className=\"min-w-0 flex-1\">\n <button type=\"button\" className=\"hover:underline\" onClick={() => onOpen(mention.source.id)}>\n {mention.source.name}\n </button>\n <Txt as=\"span\" variant=\"card-title\" tone=\"muted\">\n {' '}\n mentions{' '}\n </Txt>\n <button type=\"button\" className=\"hover:underline\" onClick={() => onOpen(mention.target.id)}>\n {mention.target.name}\n </button>\n </Txt>\n <button\n type=\"button\"\n aria-label=\"Close\"\n className=\"rounded p-0.5 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={onClose}\n >\n <X size={14} aria-hidden />\n </button>\n </div>\n <div className=\"min-h-0 overflow-y-auto\">\n {detail.isPending ? (\n <Txt variant=\"caption\" tone=\"muted\">\n Loading notes…\n </Txt>\n ) : notes.length === 0 ? (\n <Txt variant=\"caption\" tone=\"muted\">\n The notes that make this mention aren't in the first page of notes. Open {mention.source.name} to read them\n all.\n </Txt>\n ) : (\n <ul className=\"flex flex-col gap-2\">\n {notes.map(note => (\n <KnowledgeNoteItem\n key={note.id}\n note={note}\n pagesById={withPages(pagesById, detail.data?.related ?? [])}\n onPageClick={page => onOpen(page.id)}\n compact\n />\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n}\n\nfunction SelectedPage({\n source,\n pageId,\n pagesById,\n onSelect,\n highlightMentionOf,\n}: {\n source: KnowledgeExplorerSource;\n pageId: string;\n pagesById: ReadonlyMap<string, KnowledgePagePayload>;\n onSelect: (pageId: string) => void;\n highlightMentionOf?: string;\n}) {\n const detail = source.usePage(pageId);\n const activity = (source.useActivity ?? noActivity)(pageId);\n const [moreNotes, setMoreNotes] = useState<{ pageId: string } | null>(null);\n const known = useMemo(\n () => (detail.data ? withPages(pagesById, [...detail.data.ancestors, ...detail.data.related]) : pagesById),\n [detail.data, pagesById],\n );\n\n if (detail.isPending) return <p className=\"text-ui-md p-4 text-muted-foreground\">Loading page…</p>;\n if (detail.isError || !detail.data) {\n const notFound = isNotFound(detail.error);\n return (\n <EmptyState\n tone=\"error\"\n variant=\"fill\"\n titleSlot={notFound ? 'Page not found' : 'Failed to load the page'}\n descriptionSlot={notFound ? 'It may have been deleted or merged.' : (detail.error?.message ?? '')}\n />\n );\n }\n const onPageClick = (page: KnowledgePagePayload) => onSelect(page.id);\n const next = detail.data.notesNextCursor;\n return (\n <KnowledgePageDetail\n page={detail.data.page}\n notes={detail.data.notes}\n pin={detail.data.pin ?? undefined}\n pagesById={known}\n onPageClick={onPageClick}\n highlightMentionOf={highlightMentionOf}\n ancestors={detail.data.ancestors}\n mentionedBy={detail.data.mentionedBy}\n activity={activity.data?.events}\n childPages={\n source.useTreeLevels ? (\n <ChildPages key={pageId} useTreeLevels={source.useTreeLevels} parentId={pageId} onPageClick={onPageClick} />\n ) : undefined\n }\n notesMore={\n next ? (\n moreNotes?.pageId === pageId ? (\n <MoreNotes source={source} pageId={pageId} cursor={next} pagesById={known} onPageClick={onPageClick} />\n ) : (\n <MoreButton label=\"Load more notes\" onClick={() => setMoreNotes({ pageId })} />\n )\n ) : undefined\n }\n />\n );\n}\n\nfunction SearchBox({ source, onSelect }: { source: KnowledgeExplorerSource; onSelect: (pageId: string) => void }) {\n const [query, setQuery] = useState('');\n const search = source.useSearch(query);\n const results = query.trim().length >= MIN_SEARCH_LENGTH ? (search.data?.results ?? []) : [];\n const seen = new Set<string>();\n const pages = results\n .map(hit => hit.page)\n .filter(page => (seen.has(page.id) ? false : (seen.add(page.id), true)))\n .slice(0, 10);\n return (\n <div className=\"relative min-w-60 flex-1\">\n <input\n aria-label=\"Search knowledge\"\n placeholder=\"Search pages and notes\"\n className=\"text-ui-md h-8 w-full rounded border border-border bg-card px-2\"\n value={query}\n onChange={event => setQuery(event.target.value)}\n />\n {pages.length > 0 ? (\n <ul\n role=\"listbox\"\n aria-label=\"Search results\"\n className=\"absolute z-20 mt-1 max-h-72 w-full overflow-auto rounded border border-border bg-card shadow-raised\"\n >\n {pages.map(page => (\n <li key={page.id} role=\"option\" aria-selected={false}>\n <button\n type=\"button\"\n className=\"text-ui-md w-full px-2 py-1.5 text-left hover:bg-muted\"\n onClick={() => {\n onSelect(page.id);\n setQuery('');\n }}\n >\n {page.name}\n </button>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n );\n}\n\n/**\n * The tree loaded a level at a time through `useTreeLevels`: the root scopes, then each level as it is\n * opened, plus the path to the selected page. Unloaded pages keep a chevron until opened.\n */\nfunction useLazyTree(\n source: KnowledgeExplorerSource,\n graph: KnowledgeExplorerGraph,\n selected: KnowledgeExplorerPageDetail | undefined,\n) {\n const [expanded, setExpanded] = useState<ReadonlySet<string>>(() => new Set());\n const [more, setMore] = useState<ReadonlyMap<string, string[]>>(() => new Map());\n const requests = useMemo(() => {\n const list: KnowledgeExplorerTreeRequest[] = [{ parentId: null }];\n for (const id of expanded) {\n list.push({ parentId: id });\n for (const cursor of more.get(id) ?? []) list.push({ parentId: id, cursor });\n }\n return list;\n }, [expanded, more]);\n const levels = (source.useTreeLevels ?? noTreeLevels)(requests);\n\n const { pages, loaded, nextCursor } = useMemo(() => {\n const byId = new Map<string, KnowledgePagePayload>();\n const loadedIds = new Set<string>();\n const next = new Map<string, string>();\n levels.forEach((level, index) => {\n const request = requests[index];\n if (!request || !level.data) return;\n const key = request.parentId ?? KNOWLEDGE_TREE_ROOT;\n loadedIds.add(key);\n for (const page of level.data.pages) byId.set(page.id, page);\n if (level.data.nextCursor) next.set(key, level.data.nextCursor);\n else next.delete(key);\n });\n // The selected page and its path, so the tree can open down to a page outside the loaded levels.\n for (const page of [...(selected?.ancestors ?? []), ...(selected ? [selected.page] : [])]) {\n if (!byId.has(page.id)) byId.set(page.id, page);\n }\n return { pages: [...byId.values()], loaded: loadedIds, nextCursor: next };\n }, [levels, requests, selected]);\n\n // With the whole graph loaded, its structure is complete: only pages with children get a chevron.\n const graphParents = useMemo(\n () => (graph.truncated ? null : new Set(graph.pages.map(page => page.parentId).filter(id => id !== null))),\n [graph],\n );\n const mayHaveChildren = useCallback(\n (page: KnowledgePagePayload) => !loaded.has(page.id) && (graphParents ? graphParents.has(page.id) : true),\n [loaded, graphParents],\n );\n const loadMore = useMemo(() => {\n const map = new Map<string, () => void>();\n for (const [parentId, cursor] of nextCursor) {\n map.set(parentId, () =>\n setMore(current => new Map(current).set(parentId, [...(current.get(parentId) ?? []), cursor])),\n );\n }\n return map;\n }, [nextCursor]);\n const onExpandedChange = useCallback((ids: ReadonlySet<string>) => setExpanded(new Set(ids)), []);\n\n return { pages, mayHaveChildren, loadMore, onExpandedChange, rootsPending: levels[0]?.isPending ?? false };\n}\n\n/**\n * Search, the page tree, and either the page graph or the selected page, kept in sync on one selection.\n * Wide screens show the tree beside the graph or the page; below `lg` one toggle picks tree, graph or page.\n * A first click on a page in the graph selects it; clicking it again opens it as a page. A search result\n * opens it as a page straight away. Selecting in the tree keeps the current view, so the graph frames the\n * page instead.\n */\nexport function KnowledgePageExplorer({\n graph,\n source,\n selectedPageId,\n onSelect,\n view,\n onViewChange,\n}: KnowledgePageExplorerProps) {\n const pagesById = useMemo(() => new Map(graph.pages.map(page => [page.id, page])), [graph.pages]);\n // A scope picked in the tree narrows the tree and the graph to that scope and what sits under it.\n const [focusScopeId, setFocusScopeId] = useState<string | null>(null);\n const mentionEdges = useMemo(() => graph.edges.filter(edge => edge.kind === 'mention'), [graph.edges]);\n // A clicked mention line shows the notes that make the mention; opening the page from there marks them.\n const [mention, setMention] = useState<MentionSelection | null>(null);\n const [marked, setMarked] = useState<{ source: string; target: string } | null>(null);\n const closeMention = useCallback(() => setMention(null), []);\n // Below lg the graph shares its slot with the tree. Mount it only when it is showing: a graph mounted\n // into a hidden 0×0 pane has nothing to fit and was left unfitted when the toggle revealed it.\n const narrow = useIsMobile(1024);\n const graphShown = !narrow || view === 'graph';\n const highlightMentionOf = marked && marked.source === selectedPageId ? marked.target : undefined;\n const selected = source.usePage(selectedPageId);\n const lazy = useLazyTree(source, graph, selected.data);\n const showPage = view === 'page' && !!selectedPageId;\n const openPage = (pageId: string) => {\n onSelect(pageId);\n onViewChange('page');\n };\n // From the tree: frame the page in the graph when the graph is up, otherwise open it.\n const selectFromTree = (page: KnowledgePagePayload) => {\n if (page.isScope) setFocusScopeId(page.id);\n if (view === 'graph') onSelect(page.id);\n else openPage(page.id);\n };\n // Pages reached from outside the tree (search, links, mentions) clear a focus they fall outside of.\n const openAnywhere = (pageId: string) => {\n if (focusScopeId && !withinScope([...lazy.pages, ...graph.pages], focusScopeId).some(page => page.id === pageId)) {\n setFocusScopeId(null);\n }\n openPage(pageId);\n };\n const focusScope = focusScopeId\n ? (lazy.pages.find(page => page.id === focusScopeId) ?? pagesById.get(focusScopeId))\n : undefined;\n const treePages = withinScope(source.useTreeLevels ? lazy.pages : graph.pages, focusScope ? focusScopeId : null);\n const graphPages = useMemo(\n () => withinScope(graph.pages, focusScope ? focusScopeId : null),\n [graph.pages, focusScope, focusScopeId],\n );\n const views: Array<{ value: KnowledgeExplorerView; label: string; narrowOnly?: boolean }> = [\n { value: 'tree', label: 'Tree', narrowOnly: true },\n { value: 'graph', label: 'Graph' },\n { value: 'page', label: 'Page' },\n ];\n\n return (\n <div className=\"flex min-h-0 flex-1 flex-col gap-3\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <SearchBox source={source} onSelect={openAnywhere} />\n <div role=\"group\" aria-label=\"View\" className=\"flex rounded border border-border\">\n {views.map(option => (\n <button\n key={option.value}\n type=\"button\"\n aria-pressed={\n option.value === 'page'\n ? showPage\n : option.value === 'graph'\n ? !showPage && view !== 'tree'\n : view === 'tree'\n }\n disabled={option.value === 'page' && !selectedPageId}\n className={`text-ui-md px-3 py-1 disabled:opacity-50 aria-pressed:bg-muted ${option.narrowOnly ? 'lg:hidden' : ''}`}\n onClick={() => onViewChange(option.value)}\n >\n {option.label}\n </button>\n ))}\n </div>\n </div>\n {graph.truncated && !showPage ? (\n <p className=\"text-ui-sm text-muted-foreground\">\n The graph shows the first {graph.pages.length} pages. Open the tree or search to reach the rest.\n </p>\n ) : null}\n {selectedPageId && !showPage && isNotFound(selected.error) ? (\n <p role=\"alert\" className=\"text-ui-sm text-destructive-foreground\">\n Page not found. The linked page may have been deleted or merged.\n </p>\n ) : null}\n <div className=\"flex min-h-0 flex-1 flex-col gap-3 lg:flex-row\">\n <aside\n className={`min-h-0 w-full flex-1 flex-col overflow-hidden rounded-lg border border-border bg-card lg:flex lg:w-72 lg:flex-none lg:shrink-0 ${view === 'tree' ? 'flex' : 'hidden'}`}\n >\n {focusScope ? (\n <div\n className=\"flex items-center gap-2 border-b border-border bg-fill-subtle px-3 py-2\"\n data-testid=\"knowledge-scope-focus\"\n >\n <div className=\"flex min-w-0 flex-1 flex-col\">\n <Txt as=\"span\" variant=\"eyebrow\" tone=\"muted\" className=\"uppercase\">\n {focusScope.displayLabel ?? 'Scope'}\n </Txt>\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {focusScope.address ?? focusScope.name}\n </Txt>\n </div>\n <button\n type=\"button\"\n className=\"text-ui-sm shrink-0 rounded px-2 py-1 text-muted-foreground hover:bg-fill hover:text-foreground\"\n onClick={() => setFocusScopeId(null)}\n >\n All scopes\n </button>\n </div>\n ) : null}\n <div className=\"min-h-0 flex-1 overflow-auto\">\n {source.useTreeLevels && lazy.rootsPending ? (\n <p className=\"px-3 py-2 text-body text-muted-foreground\">Loading pages…</p>\n ) : (\n <KnowledgePageTree\n key={focusScope ? focusScope.id : 'all'}\n pages={treePages}\n pinnedIds={graph.pinnedIds}\n selectedPageId={selectedPageId}\n onSelect={selectFromTree}\n initiallyExpanded={focusScope ? [focusScope.id] : undefined}\n {...(source.useTreeLevels\n ? {\n mayHaveChildren: lazy.mayHaveChildren,\n onExpandedChange: lazy.onExpandedChange,\n loadMore: lazy.loadMore,\n }\n : {})}\n />\n )}\n </div>\n </aside>\n {showPage ? (\n <section\n aria-label=\"Selected page\"\n className=\"min-h-0 min-w-0 flex-1 overflow-auto rounded-lg border border-border bg-card\"\n >\n <SelectedPage\n source={source}\n pageId={selectedPageId}\n pagesById={pagesById}\n onSelect={openAnywhere}\n highlightMentionOf={highlightMentionOf}\n />\n </section>\n ) : (\n <div\n className={`relative min-h-0 min-w-0 flex-1 overflow-hidden rounded-lg border border-border bg-background lg:block lg:h-full ${view === 'graph' ? 'block' : 'hidden'}`}\n data-testid=\"knowledge-graph-container\"\n >\n {graphShown ? (\n <KnowledgePageGraph\n pages={graphPages}\n edges={mentionEdges}\n pinnedIds={graph.pinnedIds}\n grants={graph.grants}\n selectedPageId={selectedPageId}\n onSelect={page => {\n onSelect(page.id);\n // Hosts resolve a `?page=` with no view to the page view, so say graph outright.\n if (view !== 'graph') onViewChange('graph');\n }}\n onOpen={page => openPage(page.id)}\n onClearSelection={() => {\n setMention(null);\n if (selectedPageId) onSelect(null);\n }}\n onMentionSelect={setMention}\n />\n ) : null}\n {mention && graphShown ? (\n <MentionPopup\n source={source}\n mention={mention}\n pagesById={pagesById}\n onClose={closeMention}\n onOpen={pageId => {\n setMarked(\n pageId === mention.source.id ? { source: mention.source.id, target: mention.target.id } : null,\n );\n setMention(null);\n openAnywhere(pageId);\n }}\n />\n ) : null}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../../src/domains/knowledge/components/KnowledgePageExplorer';
|