n8n-editor-ui 1.99.0 → 1.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/assets/{AnimatedSpinner-DBpZ0Yu1.js → AnimatedSpinner-CmnLqX1g.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DosAuCu3.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-LialmjU-.js} +1 -1
  3. package/dist/assets/{AuthView-BiOFaV2S.js → AuthView-BBEIdfYQ.js} +2 -2
  4. package/dist/assets/{ChangePasswordView-mtQwZyOO.js → ChangePasswordView-F2YljaHC.js} +3 -3
  5. package/dist/assets/CollectionParameter-_4aFNEaG.js +4 -0
  6. package/dist/assets/{CredentialsView-DQNwlIXT.js → CredentialsView-_HiqTMnI.js} +7 -7
  7. package/dist/assets/{DemoFooter-BwAxjuTl.js → DemoFooter-BWGzoS_I.js} +6 -6
  8. package/dist/assets/{EntityNotFound-ZFryE1o_.js → EntityNotFound-Cy9wp8En.js} +1 -1
  9. package/dist/assets/{EntityUnAuthorised-CKWCBHud.js → EntityUnAuthorised-CqJIbUWK.js} +1 -1
  10. package/dist/assets/{ErrorView-BY6sewiA.js → ErrorView-Kpuz8zoT.js} +1 -1
  11. package/dist/assets/{EvaluationsRootView-xOuJQWay.js → EvaluationsRootView-HfYQYHAD.js} +1 -1
  12. package/dist/assets/{EvaluationsView-BROhBSOp.js → EvaluationsView-i9O4Pq6o.js} +3 -3
  13. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-D9G_v1Ab.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-BHONBvt7.js} +2 -2
  14. package/dist/assets/{ExecutionsView-CbnzvSxS.js → ExecutionsView-BY23VFik.js} +8 -8
  15. package/dist/assets/{FileSaver.min-DfMUUVIo.js → FileSaver.min-CxOI-Vgx.js} +1 -1
  16. package/dist/assets/{FixedCollectionParameter-9OU9Hss8.js → FixedCollectionParameter-Dj0393fQ.js} +1 -1
  17. package/dist/assets/{ForgotMyPasswordView-BeBiaa7k.js → ForgotMyPasswordView-yMWlCT90.js} +3 -3
  18. package/dist/assets/{InsightsChartAverageRuntime-BoOlfupR.js → InsightsChartAverageRuntime-CAzHGVRl.js} +4 -4
  19. package/dist/assets/{InsightsChartFailed-EkxSJRC_.js → InsightsChartFailed-DQ9ntBQJ.js} +4 -4
  20. package/dist/assets/{InsightsChartFailureRate-DILuKQgW.js → InsightsChartFailureRate-DVZarv-u.js} +4 -4
  21. package/dist/assets/{InsightsChartTimeSaved-B8zQ-H8f.js → InsightsChartTimeSaved-CAhRkqgH.js} +4 -4
  22. package/dist/assets/{InsightsChartTotal-CYSe4Yf4.js → InsightsChartTotal-C60cS-Xa.js} +4 -4
  23. package/dist/assets/{InsightsDashboard-CBcgJvYC.js → InsightsDashboard-DM-I5QbW.js} +10 -10
  24. package/dist/assets/{InsightsPaywall-Bjz5a_10.js → InsightsPaywall-BLHoSCNL.js} +1 -1
  25. package/dist/assets/{InsightsSummary-GXzzw2Bl.js → InsightsSummary-JPw9kN4a.js} +1 -1
  26. package/dist/assets/{InsightsTableWorkflows-DkgxvIv4.js → InsightsTableWorkflows-Cs0bf9Y9.js} +2 -2
  27. package/dist/assets/{Logo-CHeW0pXf.js → Logo-C699HbA_.js} +1 -1
  28. package/dist/assets/{LogsPanel-D9HhJ7ms.js → LogsPanel-BWnaJuFj.js} +164 -114
  29. package/dist/assets/{LogsPanel-BkEQ0mgk.css → LogsPanel-D5R6F35L.css} +39 -39
  30. package/dist/assets/{MainHeader-BRl77CT3.css → MainHeader--6ITU977.css} +18 -18
  31. package/dist/assets/{MainHeader-obfyYKSJ.js → MainHeader-Ce0GAh6o.js} +57 -11
  32. package/dist/assets/{MainSidebar-CEQGuBhs.js → MainSidebar-CooH0xuY.js} +4 -4
  33. package/dist/assets/{NodeCreation-DPp19Ka9.js → NodeCreation-T5AfZVS1.js} +3 -3
  34. package/dist/assets/{NodeCreator-nnCPbD1c.js → NodeCreator-4g3-zQj6.js} +4 -4
  35. package/dist/assets/{NodeDetailsView-DNJ33kVZ.js → NodeDetailsView-BvClCeyF.js} +12 -12
  36. package/dist/assets/{NodeView-5Dx7iByY.js → NodeView-DWCMsw1d.js} +480 -433
  37. package/dist/assets/{NodeView-Cpu1z_ye.css → NodeView-RurRbUaI.css} +265 -132
  38. package/dist/assets/{ProjectCardBadge-BWKFpStx.js → ProjectCardBadge-saH09Hgi.js} +1 -1
  39. package/dist/assets/{ProjectHeader-fFNmvvkD.js → ProjectHeader-C7A20kgK.js} +2 -2
  40. package/dist/assets/{ProjectSettings-DoNg30_j.js → ProjectSettings-DVNR9FN4.js} +3 -3
  41. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CI5PGbAh.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-D-uuE-zX.js} +1 -1
  42. package/dist/assets/{ResourcesListLayout-BU62R_hh.js → ResourcesListLayout-D0WMvHN_.js} +3 -3
  43. package/dist/assets/{ResourcesListLayout-CPwJc792.css → ResourcesListLayout-D6zDTXm4.css} +8 -8
  44. package/dist/assets/{RunData-CeKn3olP.js → RunData-C-tqFRZO.js} +9 -9
  45. package/dist/assets/{RunDataJson-C_rW7mc7.js → RunDataJson-pe7NZQoH.js} +6 -6
  46. package/dist/assets/{RunDataJsonActions-DRAOfb9H.js → RunDataJsonActions-3CT6wqXW.js} +2 -2
  47. package/dist/assets/{RunDataParsedAiContent-DXoyZ0Lo.js → RunDataParsedAiContent-CGCVmkuV.js} +4 -4
  48. package/dist/assets/{RunDataSearch-C4MgXtFK.js → RunDataSearch-jkQ60p9j.js} +1 -1
  49. package/dist/assets/{RunDataTable-DSs4rVYS.js → RunDataTable-BqU63PyF.js} +2 -2
  50. package/dist/assets/{SamlOnboarding-lKrgxGB0.js → SamlOnboarding-tGJha_9t.js} +3 -3
  51. package/dist/assets/{SettingsApiView-C6KULaro.js → SettingsApiView-DkeogFEJ.js} +1 -1
  52. package/dist/assets/{SettingsCommunityNodesView-CyDP25oX.js → SettingsCommunityNodesView-DdKQ7Jg5.js} +3 -3
  53. package/dist/assets/{SettingsExternalSecrets-BZf4KEM4.js → SettingsExternalSecrets-CIvPLpaR.js} +1 -1
  54. package/dist/assets/{SettingsLdapView-DZLtSs77.js → SettingsLdapView-u9uiXIG8.js} +1 -1
  55. package/dist/assets/{SettingsLogStreamingView-CUwQjHKl.js → SettingsLogStreamingView-CQDEQGxK.js} +1 -1
  56. package/dist/assets/{SettingsPersonalView-Cp7H3KfM.js → SettingsPersonalView-ta7XbuCV.js} +1 -1
  57. package/dist/assets/{SettingsSourceControl-B0qExx0z.js → SettingsSourceControl-DxbBCbMO.js} +1 -1
  58. package/dist/assets/{SettingsSso-DuBpfB81.js → SettingsSso-Bp4pf_0a.js} +102 -63
  59. package/dist/assets/{SettingsUsageAndPlan-Xyw8eMqN.js → SettingsUsageAndPlan-D680YlPQ.js} +1 -1
  60. package/dist/assets/{SettingsUsersView-Db12aUQP.js → SettingsUsersView-DP2nppP6.js} +7 -7
  61. package/dist/assets/{SettingsView-BYuw6sXO.js → SettingsView-BUpTI--W.js} +1 -1
  62. package/dist/assets/{SetupView-cDcX6bMh.js → SetupView-Bocro878.js} +3 -3
  63. package/dist/assets/{SetupWorkflowCredentialsButton-B87oaiGh.js → SetupWorkflowCredentialsButton-DODNIDNV.js} +1 -1
  64. package/dist/assets/{SetupWorkflowFromTemplateView-DfDdLi-i.js → SetupWorkflowFromTemplateView-BLzrIJTt.js} +3 -3
  65. package/dist/assets/{SigninView-Dqmccr9v.js → SigninView-2_f1aXTx.js} +6 -3
  66. package/dist/assets/{SignoutView-xmtpMMVt.js → SignoutView-oMETilwl.js} +1 -1
  67. package/dist/assets/{SignupView-imMHiv-n.js → SignupView-CYMsjH_L.js} +3 -3
  68. package/dist/assets/{TemplateDetails-67i7kfJq.js → TemplateDetails-CmL1Gj71.js} +1 -1
  69. package/dist/assets/{TemplateList-BsUj3ieO.js → TemplateList-DpqrSF2u.js} +1 -1
  70. package/dist/assets/{TemplatesCollectionView-D0_oPDB3.js → TemplatesCollectionView-DVlz-_MJ.js} +5 -5
  71. package/dist/assets/{TemplatesSearchView-4ryz7-XG.js → TemplatesSearchView-CcToWnkG.js} +3 -3
  72. package/dist/assets/{TemplatesView-ByYt4Ep8.js → TemplatesView-CXH6dh9Y.js} +1 -1
  73. package/dist/assets/{TemplatesWorkflowView-DxiKHsgJ.js → TemplatesWorkflowView-DL9rIrAK.js} +5 -5
  74. package/dist/assets/{VariablesView-B8wkOWyp.js → VariablesView-CX3umLhX.js} +4 -4
  75. package/dist/assets/{WorkerView-CAiaTkll.js → WorkerView-C5XLf-D-.js} +5 -5
  76. package/dist/assets/{WorkflowActivator-CErBRTtp.js → WorkflowActivator-Bzz5eOg4.js} +2 -2
  77. package/dist/assets/{WorkflowExecutionsInfoAccordion-BjT3fJFQ.js → WorkflowExecutionsInfoAccordion-UVslt3c0.js} +1 -1
  78. package/dist/assets/{WorkflowExecutionsLandingPage-CrTI4sZL.js → WorkflowExecutionsLandingPage-C1xNEQ3_.js} +2 -2
  79. package/dist/assets/{WorkflowExecutionsPreview-i0p45Sej.js → WorkflowExecutionsPreview--Vn3C-sa.js} +5 -5
  80. package/dist/assets/{WorkflowExecutionsView-CV9YDOwL.js → WorkflowExecutionsView-B_Pvn_mZ.js} +8 -5
  81. package/dist/assets/{WorkflowHistory-BIwUopWh.js → WorkflowHistory-CQLQcsG4.js} +3 -3
  82. package/dist/assets/{WorkflowOnboardingView-BfxIhcjn.js → WorkflowOnboardingView-DJZD6lcQ.js} +1 -1
  83. package/dist/assets/{WorkflowPreview-kynBnKdp.js → WorkflowPreview-CAv2jWEf.js} +1 -1
  84. package/dist/assets/{WorkflowsView-mZNl15yj.js → WorkflowsView-9oLDmGMf.js} +8 -8
  85. package/dist/assets/{chartjs.utils-C3jZQPP3.js → chartjs.utils-D3bkyfMC.js} +2 -2
  86. package/dist/assets/{en-gSl4aEB-.js → en-BUHUsdZz.js} +4 -1
  87. package/dist/assets/{global-link-actions-CW1V4kFI.js → global-link-actions-CudV1inR.js} +1 -1
  88. package/dist/assets/{import-curl-CF2r_L9J.js → import-curl-Q2R3Aa93.js} +1 -1
  89. package/dist/assets/{index-C1XlnjOl.css → index-CeLskvTy.css} +56 -25
  90. package/dist/assets/{index-CQa0Jv2S.js → index-Cjj5DRsU.js} +1 -1
  91. package/dist/assets/{index-Q8IZ0Cou.js → index-ZImlcrmd.js} +22301 -22399
  92. package/dist/assets/{pickBy-Biy2pl7T.js → pickBy-C61vriIY.js} +1 -1
  93. package/dist/assets/{templateActions-DaSXNJXL.js → templateActions-DgE3PfYi.js} +1 -1
  94. package/dist/assets/{useBeforeUnload-C71vlfPw.js → useBeforeUnload-CX6OL9lX.js} +1 -1
  95. package/dist/assets/{useExecutionDebugging-DbaExLsv.js → useExecutionDebugging-Bw29Xcz_.js} +1 -1
  96. package/dist/assets/{useExecutionHelpers-A5rsPx0e.js → useExecutionHelpers-DfJOrkT9.js} +1 -1
  97. package/dist/assets/{useImportCurlCommand-oVnUvrp_.js → useImportCurlCommand-BtBYH8AF.js} +2 -2
  98. package/dist/assets/useKeybindings-Dl2fatxs.js +84 -0
  99. package/dist/assets/{useProjectPages-DV4j_y25.js → useProjectPages-wyiRSAYY.js} +1 -1
  100. package/dist/assets/{usePushConnection-CAxPjJ8k.js → usePushConnection-DbNbVMYT.js} +2 -2
  101. package/dist/assets/{useWorkflowActivate-BTOkypU2.js → useWorkflowActivate-CnaSqjqM.js} +1 -1
  102. package/dist/index.html +2 -2
  103. package/package.json +1 -1
  104. package/dist/assets/CollectionParameter-c94uS8bu.js +0 -4
  105. package/dist/assets/canvas-BstTJOpX.js +0 -5
@@ -1,8 +1,8 @@
1
- import { b4 as isArrayLike, b5 as isArray, b6 as isBuffer, b7 as isTypedArray, b8 as isArguments, b9 as getTag, ba as isPrototype, bb as baseKeys, bc as addTokenUsageData, bd as emptyTokenUsageData, be as isChatNode, bf as NodeConnectionTypes, bg as v4, bh as get, bi as isRef, bj as isReactive, bk as isProxy, bl as toRaw, bm as AGENT_LANGCHAIN_NODE_TYPE, bn as MANUAL_CHAT_TRIGGER_NODE_TYPE, bo as CHAT_TRIGGER_NODE_TYPE, a as useToast, r as ref, x as computed, c as useI18n$1, bp as usePinnedData, ao as useMessage, ap as MODAL_CONFIRM, T as useWorkflowsStore, bq as useLogsStore, b as useRouter, br as useNodeHelpers, bs as useRunWorkflow, V as VIEWS, bt as chatEventBus, $ as watch, bu as provide, d as defineComponent, i as createElementBlock, g as openBlock, n as normalizeClass, j as createVNode, k as createBaseVNode, m as unref, p as N8nText, w as withCtx, A as renderSlot, l as createTextVNode, t as toDisplayString, _ as _export_sfc, U as useRoute, a3 as useSourceControlStore, bv as useCanvasOperations, bw as useNodeTypesStore, bx as START_NODE_TYPE, e as createBlock, f as createCommentVNode, aZ as N8nTooltip, by as formatTokenUsageCount, bz as getDefaultExportFromCjs, bA as requireUpperFirst, ag as useTemplateRef, bB as useTimestamp, bC as toTime, bD as toDayMonth, bE as withModifiers, F as Fragment, G as renderList, D as normalizeStyle, bF as _sfc_main$j, bG as I18nT, bH as N8nIcon, a$ as _sfc_main$k, q as N8nButton, B as nextTick, bI as useVirtualList, bJ as toRef, bK as mergeProps, bL as N8nRadioButtons, bM as inject, bN as toRefs, o as onMounted, bO as normalizeProps, bP as guardReactiveProps, bQ as resolveDynamicComponent, bR as markdownLink, bS as useFileDialog, bT as onUnmounted, aI as withDirectives, bU as vModelText, bV as withKeys, h as resolveComponent, bW as useClipboard, b1 as createSlots, aA as useNDVStore, bX as resolveDirective, a_ as N8nLink, bY as waitingNodeTooltip, aD as useLocalStorage, bZ as LOG_DETAILS_PANEL_STATE, b_ as KeyboardShortcutTooltip, b$ as N8nResizeWrapper, c0 as useStyles, c1 as N8nActionDropdown, c2 as Workflow, c3 as useThrottleFn, c4 as parse, J as useUIStore, a2 as useCanvasStore, am as useTelemetry, z as onBeforeUnmount, c5 as useProvideTooltipAppendTo, c6 as IsInPiPWindowSymbol, c7 as LOGS_PANEL_STATE, c8 as LOCAL_STORAGE_PANEL_HEIGHT, c9 as LOCAL_STORAGE_OVERVIEW_PANEL_WIDTH, ca as LOCAL_STORAGE_PANEL_WIDTH, cb as ndvEventBus } from "./index-Q8IZ0Cou.js";
2
- import { p as parseErrorMetadata, _ as _sfc_main$i, H as HighlightJS, V as VueMarkdown, R as RunData } from "./RunData-CeKn3olP.js";
3
- import { c as canvasEventBus } from "./canvas-BstTJOpX.js";
4
- import "./FileSaver.min-DfMUUVIo.js";
5
- import "./useExecutionHelpers-A5rsPx0e.js";
1
+ import { b4 as isArrayLike, b5 as isArray, b6 as isBuffer, b7 as isTypedArray, b8 as isArguments, b9 as getTag, ba as isPrototype, bb as baseKeys, bc as addTokenUsageData, bd as emptyTokenUsageData, be as isChatNode, bf as NodeConnectionTypes, bg as v4, bh as get, bi as isRef, bj as isReactive, bk as isProxy, bl as toRaw, bm as AGENT_LANGCHAIN_NODE_TYPE, bn as MANUAL_CHAT_TRIGGER_NODE_TYPE, bo as CHAT_TRIGGER_NODE_TYPE, a as useToast, r as ref, x as computed, c as useI18n$1, bp as usePinnedData, ao as useMessage, ap as MODAL_CONFIRM, T as useWorkflowsStore, bq as useLogsStore, b as useRouter, br as useNodeHelpers, bs as useRunWorkflow, V as VIEWS, bt as chatEventBus, $ as watch, bu as provide, d as defineComponent, i as createElementBlock, g as openBlock, n as normalizeClass, j as createVNode, k as createBaseVNode, m as unref, p as N8nText, w as withCtx, A as renderSlot, l as createTextVNode, t as toDisplayString, _ as _export_sfc, U as useRoute, a3 as useSourceControlStore, bv as useCanvasOperations, bw as useNodeTypesStore, bx as START_NODE_TYPE, e as createBlock, f as createCommentVNode, aZ as N8nTooltip, by as formatTokenUsageCount, bz as getDefaultExportFromCjs, bA as requireUpperFirst, ag as useTemplateRef, bB as useTimestamp, bC as toTime, bD as toDayMonth, bE as withModifiers, F as Fragment, G as renderList, D as normalizeStyle, bF as _sfc_main$k, bG as I18nT, bH as N8nIcon, a$ as _sfc_main$l, q as N8nButton, B as nextTick, bI as useVirtualList, bJ as toRef, bK as mergeProps, bL as N8nRadioButtons, bM as inject, bN as toRefs, o as onMounted, bO as normalizeProps, bP as guardReactiveProps, bQ as resolveDynamicComponent, bR as markdownLink, bS as useFileDialog, bT as onUnmounted, aI as withDirectives, bU as vModelText, bV as withKeys, h as resolveComponent, bW as useClipboard, b1 as createSlots, aA as useNDVStore, bX as PiPWindowSymbol, bY as resolveDirective, a_ as N8nLink, bZ as waitingNodeTooltip, aD as useLocalStorage, b_ as LOG_DETAILS_PANEL_STATE, b$ as KeyboardShortcutTooltip, c0 as N8nResizeWrapper, c1 as useStyles, c2 as N8nActionDropdown, c3 as Workflow, c4 as useThrottleFn, c5 as parse, J as useUIStore, a2 as useCanvasStore, am as useTelemetry, c6 as onScopeDispose, z as onBeforeUnmount, c7 as applyThemeToBody, c8 as useProvideTooltipAppendTo, c9 as LOGS_PANEL_STATE, ca as LOCAL_STORAGE_PANEL_HEIGHT, cb as LOCAL_STORAGE_OVERVIEW_PANEL_WIDTH, cc as LOCAL_STORAGE_PANEL_WIDTH, cd as useActiveElement, ce as ndvEventBus } from "./index-ZImlcrmd.js";
2
+ import { p as parseErrorMetadata, _ as _sfc_main$j, H as HighlightJS, V as VueMarkdown, R as RunData } from "./RunData-C-tqFRZO.js";
3
+ import { c as canvasEventBus, u as useKeybindings } from "./useKeybindings-Dl2fatxs.js";
4
+ import "./FileSaver.min-CxOI-Vgx.js";
5
+ import "./useExecutionHelpers-DfJOrkT9.js";
6
6
  const TOOL_EXECUTOR_NODE_NAME = "PartialExecutionToolExecutor";
7
7
  var mapTag = "[object Map]", setTag = "[object Set]";
8
8
  var objectProto = Object.prototype;
@@ -75,13 +75,12 @@ function getChildNodes(treeNode, node, runIndex, context) {
75
75
  });
76
76
  }
77
77
  const connectedSubNodes = context.workflow.getParentNodes(node.name, "ALL_NON_MAIN", 1);
78
- const isExecutionRoot = !isSubNodeLog(treeNode);
79
78
  function isMatchedSource(source) {
80
79
  return (source?.previousNode === node.name || isPlaceholderLog(treeNode) && source?.previousNode === TOOL_EXECUTOR_NODE_NAME) && (runIndex === void 0 || source.previousNodeRun === runIndex);
81
80
  }
82
81
  return connectedSubNodes.flatMap(
83
82
  (subNodeName) => (context.data.resultData.runData[subNodeName] ?? []).flatMap((t, index) => {
84
- const isMatched = isExecutionRoot && t.source.some((source) => source !== null) ? t.source.some(isMatchedSource) : runIndex === void 0 || index === runIndex;
83
+ const isMatched = t.source.some((source) => source !== null) ? t.source.some(isMatchedSource) : runIndex === void 0 || index === runIndex;
85
84
  if (!isMatched) {
86
85
  return [];
87
86
  }
@@ -663,7 +662,7 @@ function useChatState(isReadOnly) {
663
662
  displayExecution
664
663
  };
665
664
  }
666
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
665
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
667
666
  __name: "LogsPanelHeader",
668
667
  props: {
669
668
  title: {}
@@ -708,7 +707,7 @@ const style0$b = {
708
707
  const cssModules$b = {
709
708
  "$style": style0$b
710
709
  };
711
- const LogsPanelHeader = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__cssModules", cssModules$b]]);
710
+ const LogsPanelHeader = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__cssModules", cssModules$b]]);
712
711
  function useClearExecutionButtonVisible() {
713
712
  const route = useRoute();
714
713
  const sourceControlStore = useSourceControlStore();
@@ -726,7 +725,7 @@ function useClearExecutionButtonVisible() {
726
725
  () => !isReadOnlyRoute.value && !isReadOnlyEnvironment.value && !isWorkflowRunning.value && !allTriggerNodesDisabled.value && !!workflowExecutionData.value
727
726
  );
728
727
  }
729
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
728
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
730
729
  __name: "LogsViewConsumedTokenCountText",
731
730
  props: {
732
731
  consumedTokens: {}
@@ -734,7 +733,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
734
733
  setup(__props) {
735
734
  const locale = useI18n$1();
736
735
  return (_ctx, _cache) => {
737
- const _component_ConsumedTokensDetails = _sfc_main$i;
736
+ const _component_ConsumedTokensDetails = _sfc_main$j;
738
737
  return _ctx.consumedTokens !== void 0 ? (openBlock(), createBlock(unref(N8nTooltip), {
739
738
  key: 0,
740
739
  enterable: false
@@ -758,7 +757,7 @@ var upperFirstExports = requireUpperFirst();
758
757
  const upperFirst = /* @__PURE__ */ getDefaultExportFromCjs(upperFirstExports);
759
758
  const _hoisted_1$e = { key: 0 };
760
759
  const _hoisted_2$3 = { key: 1 };
761
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
760
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
762
761
  __name: "LogsViewNodeName",
763
762
  props: {
764
763
  name: {},
@@ -791,9 +790,9 @@ const style0$a = {
791
790
  const cssModules$a = {
792
791
  "$style": style0$a
793
792
  };
794
- const LogsViewNodeName = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__cssModules", cssModules$a]]);
793
+ const LogsViewNodeName = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__cssModules", cssModules$a]]);
795
794
  const _hoisted_1$d = ["aria-expanded", "aria-selected"];
796
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
795
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
797
796
  __name: "LogsOverviewRow",
798
797
  props: {
799
798
  data: {},
@@ -863,7 +862,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
863
862
  { immediate: true }
864
863
  );
865
864
  return (_ctx, _cache) => {
866
- const _component_NodeIcon = _sfc_main$j;
865
+ const _component_NodeIcon = _sfc_main$k;
867
866
  return openBlock(), createElementBlock("div", {
868
867
  ref: "containerRef",
869
868
  role: "treeitem",
@@ -969,7 +968,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
969
968
  class: normalizeClass(_ctx.$style.consumedTokens)
970
969
  }, {
971
970
  default: withCtx(() => [
972
- subtreeConsumedTokens.value.totalTokens > 0 && (props.data.children.length === 0 || !props.expanded) ? (openBlock(), createBlock(_sfc_main$g, {
971
+ subtreeConsumedTokens.value.totalTokens > 0 && (props.data.children.length === 0 || !props.expanded) ? (openBlock(), createBlock(_sfc_main$h, {
973
972
  key: 0,
974
973
  "consumed-tokens": subtreeConsumedTokens.value
975
974
  }, null, 8, ["consumed-tokens"])) : createCommentVNode("", true)
@@ -983,11 +982,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
983
982
  icon: "exclamation-triangle",
984
983
  class: normalizeClass(_ctx.$style.compactErrorIcon)
985
984
  }, null, 8, ["class"])) : createCommentVNode("", true),
986
- !_ctx.isCompact || !props.latestInfo?.deleted ? (openBlock(), createBlock(unref(_sfc_main$k), {
985
+ !_ctx.isCompact || !props.latestInfo?.deleted ? (openBlock(), createBlock(unref(_sfc_main$l), {
987
986
  key: 4,
988
987
  type: "secondary",
989
- size: "medium",
988
+ size: "small",
990
989
  icon: "edit",
990
+ "icon-size": "medium",
991
991
  style: normalizeStyle([{ "color": "var(--color-text-base)" }, {
992
992
  visibility: props.canOpenNdv ? "" : "hidden",
993
993
  color: "var(--color-text-base)"
@@ -997,7 +997,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
997
997
  "aria-label": unref(locale).baseText("logs.overview.body.open"),
998
998
  onClick: _cache[0] || (_cache[0] = withModifiers(($event) => emit("openNdv"), ["stop"]))
999
999
  }, null, 8, ["style", "disabled", "class", "aria-label"])) : createCommentVNode("", true),
1000
- !_ctx.isCompact || !props.isReadOnly && !props.latestInfo?.deleted && !props.latestInfo?.disabled ? (openBlock(), createBlock(unref(_sfc_main$k), {
1000
+ !_ctx.isCompact || !props.isReadOnly && !props.latestInfo?.deleted && !props.latestInfo?.disabled ? (openBlock(), createBlock(unref(_sfc_main$l), {
1001
1001
  key: 5,
1002
1002
  type: "secondary",
1003
1003
  size: "small",
@@ -1012,6 +1012,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1012
1012
  key: 6,
1013
1013
  type: "secondary",
1014
1014
  size: "small",
1015
+ icon: props.expanded ? "chevron-down" : "chevron-up",
1016
+ "icon-size": "medium",
1015
1017
  square: true,
1016
1018
  style: normalizeStyle({
1017
1019
  visibility: hasChildren.value ? "" : "hidden",
@@ -1021,38 +1023,30 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1021
1023
  class: normalizeClass(_ctx.$style.toggleButton),
1022
1024
  "aria-label": unref(locale).baseText("logs.overview.body.toggleRow"),
1023
1025
  onClick: _cache[2] || (_cache[2] = withModifiers(($event) => emit("toggleExpanded"), ["stop"]))
1024
- }, {
1025
- default: withCtx(() => [
1026
- createVNode(unref(N8nIcon), {
1027
- size: "medium",
1028
- icon: props.expanded ? "chevron-down" : "chevron-up"
1029
- }, null, 8, ["icon"])
1030
- ]),
1031
- _: 1
1032
- }, 8, ["style", "class", "aria-label"])) : createCommentVNode("", true)
1026
+ }, null, 8, ["icon", "style", "class", "aria-label"])) : createCommentVNode("", true)
1033
1027
  ], 10, _hoisted_1$d);
1034
1028
  };
1035
1029
  }
1036
1030
  });
1037
- const container$7 = "_container_1ohan_123";
1038
- const background = "_background_1ohan_138";
1039
- const selected = "_selected_1ohan_147";
1040
- const error = "_error_1ohan_153";
1041
- const indent = "_indent_1ohan_157";
1042
- const connectorCurved = "_connectorCurved_1ohan_166";
1043
- const connectorStraight = "_connectorStraight_1ohan_176";
1044
- const icon$3 = "_icon_1ohan_185";
1045
- const name = "_name_1ohan_191";
1046
- const timeTook = "_timeTook_1ohan_197";
1047
- const errorIcon = "_errorIcon_1ohan_202";
1048
- const startedAt = "_startedAt_1ohan_207";
1049
- const consumedTokens = "_consumedTokens_1ohan_213";
1050
- const compactErrorIcon = "_compactErrorIcon_1ohan_220";
1051
- const partialExecutionButton = "_partialExecutionButton_1ohan_228";
1052
- const openNdvButton = "_openNdvButton_1ohan_229";
1053
- const compact = "_compact_1ohan_220";
1054
- const unavailable = "_unavailable_1ohan_239";
1055
- const toggleButton = "_toggleButton_1ohan_247";
1031
+ const container$7 = "_container_yoz1w_123";
1032
+ const background = "_background_yoz1w_139";
1033
+ const selected = "_selected_yoz1w_148";
1034
+ const error = "_error_yoz1w_154";
1035
+ const indent = "_indent_yoz1w_158";
1036
+ const connectorCurved = "_connectorCurved_yoz1w_167";
1037
+ const connectorStraight = "_connectorStraight_yoz1w_177";
1038
+ const icon$3 = "_icon_yoz1w_186";
1039
+ const name = "_name_yoz1w_192";
1040
+ const timeTook = "_timeTook_yoz1w_198";
1041
+ const errorIcon = "_errorIcon_yoz1w_203";
1042
+ const startedAt = "_startedAt_yoz1w_208";
1043
+ const consumedTokens = "_consumedTokens_yoz1w_214";
1044
+ const compactErrorIcon = "_compactErrorIcon_yoz1w_221";
1045
+ const partialExecutionButton = "_partialExecutionButton_yoz1w_233";
1046
+ const openNdvButton = "_openNdvButton_yoz1w_234";
1047
+ const compact = "_compact_yoz1w_221";
1048
+ const unavailable = "_unavailable_yoz1w_244";
1049
+ const toggleButton = "_toggleButton_yoz1w_252";
1056
1050
  const style0$9 = {
1057
1051
  container: container$7,
1058
1052
  background,
@@ -1077,8 +1071,8 @@ const style0$9 = {
1077
1071
  const cssModules$9 = {
1078
1072
  "$style": style0$9
1079
1073
  };
1080
- const LogsOverviewRow = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__cssModules", cssModules$9]]);
1081
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
1074
+ const LogsOverviewRow = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__cssModules", cssModules$9]]);
1075
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1082
1076
  __name: "LogsViewExecutionSummary",
1083
1077
  props: {
1084
1078
  status: {},
@@ -1111,7 +1105,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1111
1105
  }, {
1112
1106
  default: withCtx(() => [
1113
1107
  createBaseVNode("span", null, toDisplayString(executionStatusText.value), 1),
1114
- _ctx.consumedTokens.totalTokens > 0 ? (openBlock(), createBlock(_sfc_main$g, {
1108
+ _ctx.consumedTokens.totalTokens > 0 ? (openBlock(), createBlock(_sfc_main$h, {
1115
1109
  key: 0,
1116
1110
  "consumed-tokens": _ctx.consumedTokens
1117
1111
  }, null, 8, ["consumed-tokens"])) : createCommentVNode("", true)
@@ -1128,8 +1122,8 @@ const style0$8 = {
1128
1122
  const cssModules$8 = {
1129
1123
  "$style": style0$8
1130
1124
  };
1131
- const LogsViewExecutionSummary = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__cssModules", cssModules$8]]);
1132
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
1125
+ const LogsViewExecutionSummary = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__cssModules", cssModules$8]]);
1126
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1133
1127
  __name: "LogsOverviewPanel",
1134
1128
  props: {
1135
1129
  isOpen: { type: Boolean },
@@ -1319,7 +1313,7 @@ const style0$7 = {
1319
1313
  const cssModules$7 = {
1320
1314
  "$style": style0$7
1321
1315
  };
1322
- const LogsOverviewPanel = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__cssModules", cssModules$7]]);
1316
+ const LogsOverviewPanel = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__cssModules", cssModules$7]]);
1323
1317
  function bash(hljs) {
1324
1318
  const regex = hljs.regex;
1325
1319
  const VAR = {};
@@ -3918,7 +3912,7 @@ function render$2(_ctx, _cache) {
3918
3912
  }
3919
3913
  const IconPreview = { name: "mdi-openInNew", render: render$2 };
3920
3914
  const _hoisted_1$6 = { class: "chat-file-name" };
3921
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
3915
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3922
3916
  __name: "ChatFile",
3923
3917
  props: {
3924
3918
  file: {},
@@ -3968,7 +3962,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
3968
3962
  };
3969
3963
  }
3970
3964
  });
3971
- const ChatFile = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-70b9370d"]]);
3965
+ const ChatFile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-70b9370d"]]);
3972
3966
  const _hoisted_1$5 = {
3973
3967
  key: 0,
3974
3968
  class: "chat-message-actions"
@@ -3977,7 +3971,7 @@ const _hoisted_2$2 = {
3977
3971
  key: 2,
3978
3972
  class: "chat-message-files"
3979
3973
  };
3980
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
3974
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
3981
3975
  __name: "Message",
3982
3976
  props: {
3983
3977
  message: {}
@@ -4126,7 +4120,7 @@ const _hoisted_7 = {
4126
4120
  key: 0,
4127
4121
  class: "chat-files"
4128
4122
  };
4129
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4123
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
4130
4124
  __name: "Input",
4131
4125
  props: {
4132
4126
  placeholder: { default: "inputPlaceholder" }
@@ -4332,8 +4326,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4332
4326
  };
4333
4327
  }
4334
4328
  });
4335
- const ChatInput = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-f0e5731e"]]);
4336
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4329
+ const ChatInput = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f0e5731e"]]);
4330
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4337
4331
  __name: "MessageTyping",
4338
4332
  props: {
4339
4333
  animation: { default: "bouncing" }
@@ -4357,7 +4351,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4357
4351
  messageContainer.value?.scrollToView();
4358
4352
  });
4359
4353
  return (_ctx, _cache) => {
4360
- return openBlock(), createBlock(unref(_sfc_main$a), {
4354
+ return openBlock(), createBlock(unref(_sfc_main$b), {
4361
4355
  ref_key: "messageContainer",
4362
4356
  ref: messageContainer,
4363
4357
  class: normalizeClass(classes.value),
@@ -4388,7 +4382,7 @@ const _hoisted_3 = {
4388
4382
  key: 1,
4389
4383
  class: "chat-messages-list"
4390
4384
  };
4391
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
4385
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4392
4386
  __name: "MessagesList",
4393
4387
  props: {
4394
4388
  messages: {},
@@ -4430,13 +4424,13 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
4430
4424
  ])
4431
4425
  ])) : (openBlock(), createElementBlock("div", _hoisted_3, [
4432
4426
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(initialMessages), (initialMessage) => {
4433
- return openBlock(), createBlock(_sfc_main$a, {
4427
+ return openBlock(), createBlock(_sfc_main$b, {
4434
4428
  key: initialMessage.id,
4435
4429
  message: initialMessage
4436
4430
  }, null, 8, ["message"]);
4437
4431
  }), 128)),
4438
4432
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.messages, (message) => {
4439
- return openBlock(), createBlock(_sfc_main$a, {
4433
+ return openBlock(), createBlock(_sfc_main$b, {
4440
4434
  key: message.id,
4441
4435
  ref_for: true,
4442
4436
  ref_key: "messageComponents",
@@ -4449,12 +4443,12 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
4449
4443
  _: 2
4450
4444
  }, 1032, ["message"]);
4451
4445
  }), 128)),
4452
- unref(waitingForResponse) ? (openBlock(), createBlock(_sfc_main$8, { key: 0 })) : createCommentVNode("", true)
4446
+ unref(waitingForResponse) ? (openBlock(), createBlock(_sfc_main$9, { key: 0 })) : createCommentVNode("", true)
4453
4447
  ]));
4454
4448
  };
4455
4449
  }
4456
4450
  });
4457
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
4451
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
4458
4452
  __name: "MessageOptionTooltip",
4459
4453
  props: {
4460
4454
  placement: {
@@ -4498,8 +4492,8 @@ const style0$6 = {
4498
4492
  const cssModules$6 = {
4499
4493
  "$style": style0$6
4500
4494
  };
4501
- const MessageOptionTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$6]]);
4502
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
4495
+ const MessageOptionTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$6]]);
4496
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
4503
4497
  __name: "MessageOptionAction",
4504
4498
  props: {
4505
4499
  label: {
@@ -4549,9 +4543,9 @@ const style0$5 = {
4549
4543
  const cssModules$5 = {
4550
4544
  "$style": style0$5
4551
4545
  };
4552
- const MessageOptionAction = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$5]]);
4546
+ const MessageOptionAction = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$5]]);
4553
4547
  const _hoisted_1 = ["onClick"];
4554
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4548
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
4555
4549
  __name: "ChatMessagesPanel",
4556
4550
  props: {
4557
4551
  pastChatMessages: {},
@@ -4643,7 +4637,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4643
4637
  onClick: _cache[0] || (_cache[0] = ($event) => emit("clickHeader"))
4644
4638
  }, {
4645
4639
  actions: withCtx(() => [
4646
- unref(clipboard).isSupported.value && !_ctx.isReadOnly ? (openBlock(), createBlock(unref(N8nTooltip), { key: 0 }, {
4640
+ unref(clipboard).isSupported && !_ctx.isReadOnly ? (openBlock(), createBlock(unref(N8nTooltip), { key: 0 }, {
4647
4641
  content: withCtx(() => [
4648
4642
  createTextVNode(toDisplayString(_ctx.sessionId) + " ", 1),
4649
4643
  _cache[3] || (_cache[3] = createBaseVNode("br", null, null, -1)),
@@ -4670,7 +4664,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4670
4664
  content: unref(locale).baseText("chat.window.session.resetSession")
4671
4665
  }, {
4672
4666
  default: withCtx(() => [
4673
- createVNode(unref(_sfc_main$k), {
4667
+ createVNode(unref(_sfc_main$l), {
4674
4668
  class: normalizeClass(_ctx.$style.newHeaderButton),
4675
4669
  "data-test-id": "refresh-session-button",
4676
4670
  outline: "",
@@ -4692,7 +4686,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4692
4686
  class: normalizeClass(_ctx.$style.chatBody),
4693
4687
  "data-test-id": "canvas-chat-body"
4694
4688
  }, [
4695
- createVNode(_sfc_main$7, {
4689
+ createVNode(_sfc_main$8, {
4696
4690
  messages: _ctx.messages,
4697
4691
  class: normalizeClass(_ctx.$style.messages),
4698
4692
  "empty-text": unref(locale).baseText("chat.window.chat.emptyChatMessage.v2")
@@ -4800,8 +4794,8 @@ const style0$4 = {
4800
4794
  const cssModules$4 = {
4801
4795
  "$style": style0$4
4802
4796
  };
4803
- const ChatMessagesPanel = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$4]]);
4804
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4797
+ const ChatMessagesPanel = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__cssModules", cssModules$4]]);
4798
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4805
4799
  __name: "LogsViewRunData",
4806
4800
  props: {
4807
4801
  title: {},
@@ -4811,6 +4805,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4811
4805
  setup(__props) {
4812
4806
  const locale = useI18n$1();
4813
4807
  const ndvStore = useNDVStore();
4808
+ const pipWindow = inject(PiPWindowSymbol, ref());
4814
4809
  const displayMode = ref(__props.paneType === "input" ? "schema" : "table");
4815
4810
  const isMultipleInput = computed(
4816
4811
  () => __props.paneType === "input" && (__props.logEntry.runData?.source.length ?? 0) > 1
@@ -4846,6 +4841,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
4846
4841
  return (_ctx, _cache) => {
4847
4842
  const _directive_n8n_html = resolveDirective("n8n-html");
4848
4843
  return runDataProps.value ? (openBlock(), createBlock(RunData, mergeProps({ key: 0 }, runDataProps.value, {
4844
+ key: `run-data${unref(pipWindow) ? "-pip" : ""}`,
4849
4845
  workflow: _ctx.logEntry.workflow,
4850
4846
  "workflow-execution": _ctx.logEntry.execution,
4851
4847
  "too-much-data-title": unref(locale).baseText("ndv.output.tooMuchData.title"),
@@ -4941,7 +4937,7 @@ const style0$3 = {
4941
4937
  const cssModules$3 = {
4942
4938
  "$style": style0$3
4943
4939
  };
4944
- const LogsViewRunData = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
4940
+ const LogsViewRunData = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__cssModules", cssModules$3]]);
4945
4941
  function useResizablePanel(localStorageKey, {
4946
4942
  container: container2,
4947
4943
  defaultSize,
@@ -5034,7 +5030,7 @@ function useResizablePanel(localStorageKey, {
5034
5030
  };
5035
5031
  }
5036
5032
  const MIN_IO_PANEL_WIDTH = 200;
5037
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5033
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
5038
5034
  __name: "LogDetailsPanel",
5039
5035
  props: {
5040
5036
  isOpen: { type: Boolean },
@@ -5086,7 +5082,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5086
5082
  createBaseVNode("div", {
5087
5083
  class: normalizeClass(_ctx.$style.title)
5088
5084
  }, [
5089
- createVNode(_sfc_main$j, {
5085
+ createVNode(_sfc_main$k, {
5090
5086
  "node-type": type.value,
5091
5087
  size: 16,
5092
5088
  class: normalizeClass(_ctx.$style.icon)
@@ -5240,8 +5236,8 @@ const style0$2 = {
5240
5236
  const cssModules$2 = {
5241
5237
  "$style": style0$2
5242
5238
  };
5243
- const LogsDetailsPanel = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
5244
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
5239
+ const LogsDetailsPanel = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$2]]);
5240
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5245
5241
  __name: "LogsPanelActions",
5246
5242
  props: {
5247
5243
  isOpen: { type: Boolean },
@@ -5288,7 +5284,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
5288
5284
  content: popOutButtonText.value
5289
5285
  }, {
5290
5286
  default: withCtx(() => [
5291
- createVNode(unref(_sfc_main$k), {
5287
+ createVNode(unref(_sfc_main$l), {
5292
5288
  icon: "pop-out",
5293
5289
  type: "tertiary",
5294
5290
  text: "",
@@ -5316,7 +5312,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
5316
5312
  "z-index": tooltipZIndex.value
5317
5313
  }, {
5318
5314
  default: withCtx(() => [
5319
- createVNode(unref(_sfc_main$k), {
5315
+ createVNode(unref(_sfc_main$l), {
5320
5316
  type: "tertiary",
5321
5317
  text: "",
5322
5318
  size: "small",
@@ -5339,7 +5335,7 @@ const style0$1 = {
5339
5335
  const cssModules$1 = {
5340
5336
  "$style": style0$1
5341
5337
  };
5342
- const LogsPanelActions = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
5338
+ const LogsPanelActions = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$1]]);
5343
5339
  function useLogsExecutionData() {
5344
5340
  const nodeHelpers = useNodeHelpers();
5345
5341
  const workflowsStore = useWorkflowsStore();
@@ -5525,6 +5521,28 @@ function useLogsTreeExpand(entries) {
5525
5521
  toggleExpanded
5526
5522
  };
5527
5523
  }
5524
+ function isStyle(node) {
5525
+ return node instanceof HTMLStyleElement || node instanceof HTMLLinkElement && node.rel === "stylesheet";
5526
+ }
5527
+ function syncStyleMutations(destination, mutations) {
5528
+ const currentStyles = destination.document.head.querySelectorAll('style, link[rel="stylesheet"]');
5529
+ for (const mutation of mutations) {
5530
+ for (const node of mutation.addedNodes) {
5531
+ if (isStyle(node)) {
5532
+ destination.document.head.appendChild(node.cloneNode(true));
5533
+ }
5534
+ }
5535
+ for (const node of mutation.removedNodes) {
5536
+ if (isStyle(node)) {
5537
+ for (const found of currentStyles) {
5538
+ if (found.isEqualNode(node)) {
5539
+ found.remove();
5540
+ }
5541
+ }
5542
+ }
5543
+ }
5544
+ }
5545
+ }
5528
5546
  function usePiPWindow({
5529
5547
  container: container2,
5530
5548
  content: content2,
@@ -5542,7 +5560,14 @@ function usePiPWindow({
5542
5560
  const tooltipContainer = computed(
5543
5561
  () => isPoppedOut.value ? content2.value ?? void 0 : void 0
5544
5562
  );
5545
- provide(IsInPiPWindowSymbol, isPoppedOut);
5563
+ const uiStore = useUIStore();
5564
+ const observer = new MutationObserver((mutations) => {
5565
+ if (pipWindow.value) {
5566
+ syncStyleMutations(pipWindow.value, mutations);
5567
+ }
5568
+ });
5569
+ observer.observe(document.head, { childList: true, subtree: true });
5570
+ provide(PiPWindowSymbol, pipWindow);
5546
5571
  useProvideTooltipAppendTo(tooltipContainer);
5547
5572
  async function showPip() {
5548
5573
  if (!content2.value) {
@@ -5581,6 +5606,18 @@ function usePiPWindow({
5581
5606
  watch(shouldPopOut, (value) => value ? requestAnimationFrame(showPip) : hidePiP(), {
5582
5607
  immediate: true
5583
5608
  });
5609
+ watch(
5610
+ [() => uiStore.appliedTheme, pipWindow],
5611
+ ([theme, pip]) => {
5612
+ if (pip) {
5613
+ applyThemeToBody(theme, pip);
5614
+ }
5615
+ },
5616
+ { immediate: true }
5617
+ );
5618
+ onScopeDispose(() => {
5619
+ observer.disconnect();
5620
+ });
5584
5621
  onBeforeUnmount(() => {
5585
5622
  isUnmounting.value = true;
5586
5623
  pipWindow.value?.close();
@@ -5683,6 +5720,29 @@ function useLogsPanelLayout(pipContainer, pipContent2, container2, logsContainer
5683
5720
  onOverviewPanelResizeEnd: overviewPanelResizer.onResizeEnd
5684
5721
  };
5685
5722
  }
5723
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
5724
+ __name: "LogsViewKeyboardEventListener",
5725
+ props: {
5726
+ keyMap: {},
5727
+ container: {}
5728
+ },
5729
+ setup(__props) {
5730
+ const pipWindow = inject(PiPWindowSymbol);
5731
+ const activeElement = useActiveElement({ window: pipWindow?.value });
5732
+ const isBlurred = computed(() => {
5733
+ if (pipWindow?.value) {
5734
+ return pipWindow.value.document.activeElement === null;
5735
+ }
5736
+ return !activeElement.value || !__props.container || !__props.container.contains(activeElement.value) && __props.container !== activeElement.value;
5737
+ });
5738
+ useKeybindings(
5739
+ toRef(() => __props.keyMap),
5740
+ { disabled: isBlurred }
5741
+ );
5742
+ return () => {
5743
+ };
5744
+ }
5745
+ });
5686
5746
  const _sfc_main = /* @__PURE__ */ defineComponent({
5687
5747
  __name: "LogsPanel",
5688
5748
  props: {
@@ -5744,15 +5804,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5744
5804
  onToggleOpen,
5745
5805
  onToggleSyncSelection: logsStore.toggleLogSelectionSync
5746
5806
  }));
5807
+ const keyMap = computed(() => ({
5808
+ j: selectNext,
5809
+ k: selectPrev,
5810
+ Escape: () => select(void 0),
5811
+ ArrowDown: selectNext,
5812
+ ArrowUp: selectPrev,
5813
+ Space: () => selected2.value && toggleExpanded(selected2.value),
5814
+ Enter: () => selected2.value && handleOpenNdv(selected2.value)
5815
+ }));
5747
5816
  function handleResizeOverviewPanelEnd() {
5748
5817
  if (isOverviewPanelFullWidth.value) {
5749
5818
  select(void 0);
5750
5819
  }
5751
5820
  onOverviewPanelResizeEnd();
5752
5821
  }
5753
- async function handleOpenNdv(treeNode) {
5822
+ function handleOpenNdv(treeNode) {
5754
5823
  ndvStore.setActiveNodeName(treeNode.node.name);
5755
- await nextTick(() => {
5824
+ void nextTick(() => {
5756
5825
  const source = treeNode.runData?.source[0];
5757
5826
  const inputBranch = source?.previousNodeOutput ?? 0;
5758
5827
  ndvEventBus.emit("updateInputNodeName", source?.previousNode);
@@ -5765,6 +5834,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5765
5834
  ref_key: "pipContainer",
5766
5835
  ref: pipContainer
5767
5836
  }, [
5837
+ (openBlock(), createBlock(_sfc_main$1, {
5838
+ key: String(!!unref(pipWindow)),
5839
+ "key-map": keyMap.value,
5840
+ container: unref(container2)
5841
+ }, null, 8, ["key-map", "container"])),
5768
5842
  createBaseVNode("div", {
5769
5843
  ref_key: "pipContent",
5770
5844
  ref: pipContent2,
@@ -5784,32 +5858,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5784
5858
  ref_key: "container",
5785
5859
  ref: container2,
5786
5860
  class: normalizeClass(_ctx.$style.container),
5787
- tabindex: "-1",
5788
- onKeydown: [
5789
- _cache[3] || (_cache[3] = withKeys(withModifiers(($event) => unref(select)(void 0), ["exact", "stop"]), ["esc"])),
5790
- _cache[4] || (_cache[4] = withKeys(withModifiers(
5791
- //@ts-ignore
5792
- (...args) => unref(selectNext) && unref(selectNext)(...args),
5793
- ["exact", "stop"]
5794
- ), ["j"])),
5795
- _cache[5] || (_cache[5] = withKeys(withModifiers(
5796
- //@ts-ignore
5797
- (...args) => unref(selectNext) && unref(selectNext)(...args),
5798
- ["exact", "stop", "prevent"]
5799
- ), ["down"])),
5800
- _cache[6] || (_cache[6] = withKeys(withModifiers(
5801
- //@ts-ignore
5802
- (...args) => unref(selectPrev) && unref(selectPrev)(...args),
5803
- ["exact", "stop"]
5804
- ), ["k"])),
5805
- _cache[7] || (_cache[7] = withKeys(withModifiers(
5806
- //@ts-ignore
5807
- (...args) => unref(selectPrev) && unref(selectPrev)(...args),
5808
- ["exact", "stop", "prevent"]
5809
- ), ["up"])),
5810
- _cache[8] || (_cache[8] = withKeys(withModifiers(($event) => unref(selected2) && unref(toggleExpanded)(unref(selected2)), ["exact", "stop"]), ["space"])),
5811
- _cache[9] || (_cache[9] = withKeys(withModifiers(($event) => unref(selected2) && handleOpenNdv(unref(selected2)), ["exact", "stop"]), ["enter"]))
5812
- ]
5861
+ tabindex: "-1"
5813
5862
  }, [
5814
5863
  unref(hasChat) && (!props.isReadOnly || unref(messages2).length > 0) ? (openBlock(), createBlock(unref(N8nResizeWrapper), {
5815
5864
  key: 0,
@@ -5823,7 +5872,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5823
5872
  onResizeend: unref(onChatPanelResizeEnd)
5824
5873
  }, {
5825
5874
  default: withCtx(() => [
5826
- createVNode(ChatMessagesPanel, {
5875
+ (openBlock(), createBlock(ChatMessagesPanel, {
5876
+ key: `canvas-chat-${unref(currentSessionId)}${unref(isPoppedOut) ? "-pip" : ""}`,
5827
5877
  "data-test-id": "canvas-chat",
5828
5878
  "is-open": unref(isOpen),
5829
5879
  "is-read-only": _ctx.isReadOnly,
@@ -5837,7 +5887,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5837
5887
  onDisplayExecution: unref(displayExecution),
5838
5888
  onSendMessage: unref(sendMessage),
5839
5889
  onClickHeader: _cache[0] || (_cache[0] = ($event) => unref(onToggleOpen)(true))
5840
- }, null, 8, ["is-open", "is-read-only", "messages", "session-id", "past-chat-messages", "onClose", "onRefreshSession", "onDisplayExecution", "onSendMessage"])
5890
+ }, null, 8, ["is-open", "is-read-only", "messages", "session-id", "past-chat-messages", "onClose", "onRefreshSession", "onDisplayExecution", "onSendMessage"]))
5841
5891
  ]),
5842
5892
  _: 1
5843
5893
  }, 8, ["is-resizing-enabled", "width", "style", "class", "window", "onResize", "onResizeend"])) : createCommentVNode("", true),
@@ -5901,7 +5951,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
5901
5951
  _: 1
5902
5952
  }, 8, ["class", "is-open", "log-entry", "window", "latest-info", "panels", "onToggleInputOpen", "onToggleOutputOpen"])) : createCommentVNode("", true)
5903
5953
  ], 2)
5904
- ], 34)
5954
+ ], 2)
5905
5955
  ]),
5906
5956
  _: 1
5907
5957
  }, 8, ["height", "is-resizing-enabled", "class", "style", "onResize", "onResizeend"])