diff --git a/frontend/src/lib/components/Popover.svelte b/frontend/src/lib/components/Popover.svelte index c7fed6ce71..28180d553a 100644 --- a/frontend/src/lib/components/Popover.svelte +++ b/frontend/src/lib/components/Popover.svelte @@ -2,6 +2,7 @@ import { createPopperActions, type PopperOptions } from 'svelte-popperjs' import type { PopoverPlacement } from './Popover.model' import Portal from '$lib/components/Portal.svelte' + import { twMerge } from 'tailwind-merge' import { ExternalLink } from 'lucide-svelte' @@ -13,6 +14,7 @@ export let appearTimeout = 300 export let documentationLink: string | undefined = undefined export let style: string | undefined = undefined + export let forceOpen = false const [popperRef, popperContent] = createPopperActions({ placement }) @@ -47,6 +49,8 @@ inTimeout = undefined timeout = setTimeout(() => (showTooltip = false), disappearTimeout) } + + $: forceOpen ? open() : close() {#if notClickable} @@ -73,7 +77,10 @@ use:popperContent={popperOptions} on:mouseenter={open} on:mouseleave={close} - class="z-[5001] py-2 px-3 rounded-md text-sm font-normal !text-gray-300 bg-gray-800 whitespace-normal text-left {popupClass}" + class={twMerge( + 'z-[5001] py-2 px-3 rounded-md text-sm font-normal !text-gray-300 bg-gray-800 whitespace-normal text-left', + popupClass + )} >
diff --git a/frontend/src/lib/components/flows/content/FlowInputsQuick.svelte b/frontend/src/lib/components/flows/content/FlowInputsQuick.svelte index 9cbee5ca21..bf61ab6433 100644 --- a/frontend/src/lib/components/flows/content/FlowInputsQuick.svelte +++ b/frontend/src/lib/components/flows/content/FlowInputsQuick.svelte @@ -41,6 +41,7 @@ export let kind: 'trigger' | 'script' | 'preprocessor' | 'failure' | 'approval' export let selectedKind: 'script' | 'flow' | 'approval' | 'trigger' | 'preprocessor' | 'failure' = kind + export let displayPath = false let lang: FlowCopilotModule['lang'] = undefined let selectedCompletion: FlowCopilotModule['selectedCompletion'] = undefined @@ -424,6 +425,7 @@ selected={selectedByKeyboard - inlineScripts?.length - aiLength - topLevelNodes.length} on:pickScript on:pickFlow + {displayPath} /> {/if} @@ -446,6 +448,7 @@ topLevelNodes.length} on:pickScript bind:loading + {displayPath} /> {/if} {/if} diff --git a/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte b/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte index 229194a48c..d8c3ff63fb 100644 --- a/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte +++ b/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte @@ -41,6 +41,7 @@ export let bold: boolean = false export let id: string | undefined = undefined export let label: string + export let path: string = '' export let modType: string | undefined = undefined export let bgColor: string = '' export let concurrency: boolean = false @@ -248,11 +249,22 @@
{/if} -
{label}
+
+ {label} +
+ +
+
{label}
+ {#if path != ''}
{path}
{/if} +
+
+ +
{#if id && id !== 'preprocessor' && !id.startsWith('failure')} diff --git a/frontend/src/lib/components/flows/map/InsertModuleButton.svelte b/frontend/src/lib/components/flows/map/InsertModuleButton.svelte index b2f4b1b461..edb35040b8 100644 --- a/frontend/src/lib/components/flows/map/InsertModuleButton.svelte +++ b/frontend/src/lib/components/flows/map/InsertModuleButton.svelte @@ -46,6 +46,11 @@ let small = false let open = false + let width = 0 + let height = 0 + + $: displayPath = width > 650 || height > 400 + $: small = kind === 'preprocessor' || kind === 'failure' @@ -90,11 +95,17 @@ shouldUsePortal={true} -->
{ e.stopPropagation() }} role="none" + bind:clientWidth={width} + bind:clientHeight={height} >
on:pickFlow {preFilter} {small} + {displayPath} />
diff --git a/frontend/src/lib/components/flows/map/MapItem.svelte b/frontend/src/lib/components/flows/map/MapItem.svelte index cd65b3daf8..ebd4ffdb9b 100644 --- a/frontend/src/lib/components/flows/map/MapItem.svelte +++ b/frontend/src/lib/components/flows/map/MapItem.svelte @@ -175,6 +175,7 @@ (mod.value.type === 'rawscript' ? `Inline ${prettyLanguage(mod.value.language)}` : 'To be defined')} + path={`path` in mod.value && mod.summary ? mod.value.path : ''} isTrigger={isTriggerStep(mod)} >
diff --git a/frontend/src/lib/components/flows/map/VirtualItem.svelte b/frontend/src/lib/components/flows/map/VirtualItem.svelte index e09f84b0de..4b476709ac 100644 --- a/frontend/src/lib/components/flows/map/VirtualItem.svelte +++ b/frontend/src/lib/components/flows/map/VirtualItem.svelte @@ -30,7 +30,7 @@ >
@@ -38,8 +38,7 @@ {/if} -
-
+
{#if label}
{label}
{/if} @@ -47,10 +46,12 @@
{preLabel}
{/if}
-
- {#if id && !hideId} - {id} - {/if} -
+ {#if id && !hideId} +
+ + {id} + +
+ {/if}
diff --git a/frontend/src/lib/components/flows/pickers/PickHubScriptQuick.svelte b/frontend/src/lib/components/flows/pickers/PickHubScriptQuick.svelte index 122e4a3125..77632dae8b 100644 --- a/frontend/src/lib/components/flows/pickers/PickHubScriptQuick.svelte +++ b/frontend/src/lib/components/flows/pickers/PickHubScriptQuick.svelte @@ -5,6 +5,7 @@ import { APP_TO_ICON_COMPONENT } from '$lib/components/icons' import { IntegrationService, ScriptService, type HubScriptKind } from '$lib/gen' import { Circle } from 'lucide-svelte' + import Popover from '$lib/components/Popover.svelte' export let kind: HubScriptKind & string = 'script' export let filter = '' @@ -25,6 +26,7 @@ app: string kind: HubScriptKind }[] = [] + export let displayPath = false export let apps: string[] = [] let allApps: string[] = [] @@ -138,32 +140,56 @@
    {#each items as item, index (item.path)}
  • - +
    +
    {item.summary ?? ''}
    + {#if displayPath && item.path} +
    + {item.path} +
    + {/if} +
    + {#if index === selected} + + {/if} + +
  • {/each}
diff --git a/frontend/src/lib/components/flows/pickers/WorkspaceScriptPickerQuick.svelte b/frontend/src/lib/components/flows/pickers/WorkspaceScriptPickerQuick.svelte index 21da7ecb04..b9b0cdd721 100644 --- a/frontend/src/lib/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +++ b/frontend/src/lib/components/flows/pickers/WorkspaceScriptPickerQuick.svelte @@ -7,11 +7,13 @@ import { emptyString } from '$lib/utils' import { Code2 } from 'lucide-svelte' import BarsStaggered from '$lib/components/icons/BarsStaggered.svelte' + import Popover from '$lib/components/Popover.svelte' export let kind: 'script' | 'trigger' | 'approval' | 'failure' | 'flow' | 'preprocessor' = 'script' export let isTemplate: boolean | undefined = undefined export let selected: number | undefined = undefined + export let displayPath = false type Item = { path: string @@ -105,35 +107,52 @@
    {#each filteredWithOwner ?? [] as { path, hash, summary, marked }, index}
  • - + {#if kind == 'flow'} + + {:else} + + {/if} +
    +
    + {#if marked} + {@html marked} + {:else} + {!summary || summary.length == 0 ? path : summary} + {/if} +
    + {#if displayPath && path} +
    + {path} +
    + {/if} +
    + {#if index === selected} + + {/if} + +
  • {/each}