diff --git a/packages/bbui/src/Actions/position_dropdown.ts b/packages/bbui/src/Actions/position_dropdown.ts index 424baf91f3..edfe901921 100644 --- a/packages/bbui/src/Actions/position_dropdown.ts +++ b/packages/bbui/src/Actions/position_dropdown.ts @@ -27,7 +27,7 @@ export type UpdateHandler = ( interface Opts { anchor?: HTMLElement - align: PopoverAlignment + align: PopoverAlignment | `${PopoverAlignment}` maxHeight?: number maxWidth?: number minWidth?: number diff --git a/packages/bbui/src/Popover/Popover.svelte b/packages/bbui/src/Popover/Popover.svelte index 0d16aa4f77..5d0c5b7039 100644 --- a/packages/bbui/src/Popover/Popover.svelte +++ b/packages/bbui/src/Popover/Popover.svelte @@ -19,7 +19,8 @@ import { PopoverAlignment } from "../constants" export let anchor: HTMLElement - export let align: PopoverAlignment = PopoverAlignment.Right + export let align: PopoverAlignment | `${PopoverAlignment}` = + PopoverAlignment.Right export let portalTarget: string | undefined = undefined export let minWidth: number | undefined = undefined export let maxWidth: number | undefined = undefined diff --git a/packages/builder/src/components/common/bindings/BindingPanel.svelte b/packages/builder/src/components/common/bindings/BindingPanel.svelte index 2c35acdf2d..1f61136500 100644 --- a/packages/builder/src/components/common/bindings/BindingPanel.svelte +++ b/packages/builder/src/components/common/bindings/BindingPanel.svelte @@ -421,7 +421,7 @@ {context} addHelper={onSelectHelper} addBinding={onSelectBinding} - mode={editorMode} + {mode} /> {:else if sidePanel === SidePanel.Evaluation} + - -
- {#if hoverTarget.description} -
+{#if popoverAnchor && hoverTarget} + +
+ {#if hoverTarget.description} +
+ + {@html hoverTarget.description} +
+ {/if} + {#if hoverTarget.code} - {@html hoverTarget.description} -
- {/if} - {#if hoverTarget.code} - -
{@html hoverTarget.code}
- {/if} -
- +
{@html hoverTarget.code}
+ {/if} +
+
+{/if} @@ -173,7 +186,7 @@
@@ -230,7 +243,8 @@ {#each category.bindings as binding}
  • showBindingPopover(binding, e.target)} + on:mouseenter={e => + showBindingPopover(binding, e.currentTarget)} on:mouseleave={hidePopover} on:click={() => addBinding(binding)} > @@ -266,7 +280,8 @@ class="binding" on:mouseenter={e => showHelperPopover(helper, e.target)} on:mouseleave={hidePopover} - on:click={() => addHelper(helper, mode.name === "javascript")} + on:click={() => + addHelper(helper, mode === BindingMode.JavaScript)} > {helper.displayText} diff --git a/packages/types/src/ui/bindings/binding.ts b/packages/types/src/ui/bindings/binding.ts index fdeb4a6c13..9e15d9dd13 100644 --- a/packages/types/src/ui/bindings/binding.ts +++ b/packages/types/src/ui/bindings/binding.ts @@ -1,7 +1,19 @@ export interface EnrichedBinding { + value: string + valueHTML: string runtimeBinding: string readableBinding: string type?: null | string + icon?: string + category: string + display?: { name: string; type: string } + fieldSchema?: { + name: string + tableId: string + type: string + subtype?: string + prefixKeys?: string + } } export enum BindingMode { diff --git a/packages/types/src/ui/bindings/helper.ts b/packages/types/src/ui/bindings/helper.ts index e772180264..e25918438f 100644 --- a/packages/types/src/ui/bindings/helper.ts +++ b/packages/types/src/ui/bindings/helper.ts @@ -1,4 +1,5 @@ export interface Helper { + displayText: string example: string description: string args: any[]