/** * `` — the neutral formatting toolbar for `MarkdownEditor`, * mirroring the renderer's override pattern: the *items* are data * ({@link ToolbarItem}), the *rendering* is replaceable per item via * `renderItem` (that's all a design-system skin is — see * `@sigx/lynx-daisyui`'s `EditorToolbar`). * * Ships with `ignore-focus` on the root: toolbar taps must never blur the * editor — on iOS, Lynx dispatches `endEditing:` on any touch-down whose * target doesn't ignore focus, folding the keyboard before the tapped * command could run. * * Usable two ways: * - **Built in**: `` (or `toolbar="top"`), which * wires `controller`/`selection` internally. * - **Standalone**: place it anywhere (e.g. a `KeyboardStickyView` send bar) * and pass `controller` + `selection` yourself. */ import { type Define, type JSXElement } from '@sigx/lynx'; import type { SelectionState } from '@sigx/lynx-richtext'; import type { MarkdownEditorController } from '../MarkdownEditor.js'; import type { ToolbarItem } from './items.js'; export type ToolbarRenderItem = (item: ToolbarItem, active: boolean, run: () => void) => JSXElement; export type EditorToolbarProps = Define.Prop<'controller', MarkdownEditorController | null, false> & Define.Prop<'selection', SelectionState | null, false> & Define.Prop<'items', ToolbarItem[], false> & Define.Prop<'renderItem', ToolbarRenderItem, false> & Define.Prop<'class', string, false>; export declare const EditorToolbar: import("@sigx/runtime-core").ComponentFactory;