diff --git a/src/shared/components/BlockEditor/Block.client.js b/src/shared/components/BlockEditor/Block.client.js
index dc8a940..7188eda 100644
--- a/src/shared/components/BlockEditor/Block.client.js
+++ b/src/shared/components/BlockEditor/Block.client.js
@@ -1,8 +1,7 @@
'use client';
-import React, { Fragment, useEffect, useImperativeHandle, useMemo, useRef, useState, forwardRef } from 'react';
-import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react';
-import { Add01Icon, ArrowRight01Icon, Copy01Icon, Delete02Icon, DragDropVerticalIcon, TextIcon } from '@zen/core/shared/icons';
+import React, { useEffect, useImperativeHandle, useMemo, useRef, useState, forwardRef } from 'react';
+import { Add01Icon, ArrowRight01Icon, Copy01Icon, Delete02Icon, DragDropVerticalIcon } from '@zen/core/shared/icons';
import { getBlockDef, listBlocks } from './blockRegistry.js';
import { inlineLength } from './inline/types.js';
import { inlineToDom, domToInline } from './inline/serialize.js';
@@ -16,67 +15,152 @@ import {
isCaretAtStart,
} from './utils/caret.js';
-// Petit helper pour propager l'état `open` d'un Menu Headless UI vers le
-// state local du parent. Permet de garder la poignée visible tant que le
-// menu est ouvert (sinon `onMouseLeave` masque le wrapper en opacity-0).
-function MenuOpenSync({ open, onChange }) {
- useEffect(() => { onChange(open); }, [open, onChange]);
- return null;
-}
+// Dropdown manuel pour le menu d'actions du bloc. Headless UI Menu ouvrait
+// le panneau dès le pointerdown, ce qui empêchait de démarrer un drag avec
+// un clic-maintenu. Ici on n'ouvre que sur le `click` (= mouseup sans drag),
+// après consultation du drapeau `getJustDragged()` exposé par le parent.
+function BlockActionsMenu({
+ open,
+ setOpen,
+ disabled,
+ transformOptions,
+ onMouseDownHandle,
+ getJustDragged,
+ onSelectBlock,
+ onTransform,
+ onDuplicate,
+ onDelete,
+}) {
+ const containerRef = useRef(null);
+ const [submenuOpen, setSubmenuOpen] = useState(false);
+ const submenuTimerRef = useRef(null);
-// Item « Transformer » : ouvre un sous-panneau au survol. On n'utilise pas
-// `MenuItem` (qui fermerait le menu parent au clic) : sélectionner une
-// option ferme manuellement le menu via `close()` exposé par