@@ -41,6 +41,9 @@ import {
4141} from "./FieldRevert/FieldRevertComponent" ;
4242
4343export type FieldDetails = Pick < VisualBuilderCslpEventDetails , "editableElement" | "fieldMetadata" > ;
44+
45+ const TOOLTIP_TOP_EDGE_BUFFER = 96 ;
46+
4447interface MultipleFieldToolbarProps {
4548 eventDetails : VisualBuilderCslpEventDetails ;
4649} ;
@@ -103,7 +106,7 @@ function FieldToolbarComponent(
103106 props : MultipleFieldToolbarProps
104107) : JSX . Element | null {
105108 const { eventDetails } = props ;
106- const { fieldMetadata, editableElement : targetElement } = eventDetails ;
109+ const { fieldMetadata, editableElement : targetElement } = eventDetails ;
107110 const direction = useSignal ( "" ) ;
108111 const parentPath =
109112 fieldMetadata ?. multipleFieldMetadata ?. parentDetails ?. parentCslpValue ||
@@ -164,9 +167,12 @@ function FieldToolbarComponent(
164167 return null ;
165168 }
166169 }
167-
170+
168171 direction . value = getChildrenDirection ( targetElement , parentPath ) ;
169172
173+ const invertTooltipPosition =
174+ targetElement . getBoundingClientRect ( ) . top <= TOOLTIP_TOP_EDGE_BUFFER ;
175+
170176 const editButton = Icon ? (
171177 < button
172178 data-testid = "visual-builder__focused-toolbar__multiple-field-toolbar__edit-button"
@@ -175,7 +181,12 @@ function FieldToolbarComponent(
175181 visualBuilderStyles ( ) [ "visual-builder__button" ] ,
176182 visualBuilderStyles ( ) [ "visual-builder__button--secondary" ] ,
177183 visualBuilderStyles ( ) [ "visual-builder__button--edit" ] ,
178- visualBuilderStyles ( ) [ "visual-builder__tooltip" ]
184+ visualBuilderStyles ( ) [ "visual-builder__tooltip" ] ,
185+ {
186+ "visual-builder__tooltip--bottom" : invertTooltipPosition ,
187+ [ visualBuilderStyles ( ) [ "visual-builder__tooltip--bottom" ] ] :
188+ invertTooltipPosition ,
189+ }
179190 ) }
180191 data-tooltip = { "Edit" }
181192 onClick = { ( e ) => {
@@ -196,7 +207,12 @@ function FieldToolbarComponent(
196207 "visual-builder__replace-button visual-builder__button visual-builder__button--secondary" ,
197208 visualBuilderStyles ( ) [ "visual-builder__button" ] ,
198209 visualBuilderStyles ( ) [ "visual-builder__button--secondary" ] ,
199- visualBuilderStyles ( ) [ "visual-builder__tooltip" ]
210+ visualBuilderStyles ( ) [ "visual-builder__tooltip" ] ,
211+ {
212+ "visual-builder__tooltip--bottom" : invertTooltipPosition ,
213+ [ visualBuilderStyles ( ) [ "visual-builder__tooltip--bottom" ] ] :
214+ invertTooltipPosition ,
215+ }
200216 ) }
201217 data-tooltip = { "Replace" }
202218 data-testid = { `visual-builder-replace-${ fieldType } ` }
@@ -216,19 +232,28 @@ function FieldToolbarComponent(
216232 </ button >
217233 ) : null ;
218234
219- const formButton = < button
220- className = { classNames (
221- "visual-builder__replace-button visual-builder__button visual-builder__button--secondary" ,
222- visualBuilderStyles ( ) [ "visual-builder__button" ] ,
223- visualBuilderStyles ( ) [ "visual-builder__button--secondary" ] ,
224- visualBuilderStyles ( ) [ "visual-builder__tooltip" ]
225- ) }
226- data-tooltip = { "Form" }
227- data-testid = { `visual-builder-form` }
228- onClick = { ( e ) => { handleFormFieldFocus ( eventDetails ) } }
229- >
230- < FormIcon />
231- </ button >
235+ const formButton = (
236+ < button
237+ className = { classNames (
238+ "visual-builder__replace-button visual-builder__button visual-builder__button--secondary" ,
239+ visualBuilderStyles ( ) [ "visual-builder__button" ] ,
240+ visualBuilderStyles ( ) [ "visual-builder__button--secondary" ] ,
241+ visualBuilderStyles ( ) [ "visual-builder__tooltip" ] ,
242+ {
243+ "visual-builder__tooltip--bottom" : invertTooltipPosition ,
244+ [ visualBuilderStyles ( ) [ "visual-builder__tooltip--bottom" ] ] :
245+ invertTooltipPosition ,
246+ }
247+ ) }
248+ data-tooltip = { "Form" }
249+ data-testid = { `visual-builder-form` }
250+ onClick = { ( e ) => {
251+ handleFormFieldFocus ( eventDetails ) ;
252+ } }
253+ >
254+ < FormIcon />
255+ </ button >
256+ ) ;
232257
233258 const toggleVariantDropdown = ( ) => {
234259 setIsOpenVariantRevert ( ! isOpenVariantRevert ) ;
@@ -245,7 +270,12 @@ function FieldToolbarComponent(
245270 visualBuilderStyles ( ) [ "visual-builder__button" ] ,
246271 visualBuilderStyles ( ) [ "visual-builder__button--secondary" ] ,
247272 visualBuilderStyles ( ) [ "visual-builder__tooltip" ] ,
248- visualBuilderStyles ( ) [ "visual-builder__variant-button" ]
273+ visualBuilderStyles ( ) [ "visual-builder__variant-button" ] ,
274+ {
275+ "visual-builder__tooltip--bottom" : invertTooltipPosition ,
276+ [ visualBuilderStyles ( ) [ "visual-builder__tooltip--bottom" ] ] :
277+ invertTooltipPosition ,
278+ }
249279 ) }
250280 data-tooltip = { "Variant Revert" }
251281 data-testid = { `visual-builder-canvas-variant-revert` }
0 commit comments