import type { VNode } from 'vue'; import type { AppConfig } from '@nuxt/schema'; import type { Editor, JSONContent } from '@tiptap/vue-3'; import type { DragHandleProps } from '@tiptap/extension-drag-handle-vue-3'; import theme from '#build/b24ui/editor-drag-handle'; import type { ButtonProps, IconComponent, LinkPropsKeys } from '../types'; import type { FloatingUIOptions } from '../types/editor'; import type { ComponentConfig } from '../types/tv'; type EditorDragHandle = ComponentConfig; export interface EditorDragHandleProps extends Omit, Omit { /** * @defaultValue icons.drag * @IconComponent */ icon?: IconComponent; /** * @defaultValue 'air-tertiary-no-accent' */ color?: ButtonProps['color']; /** * The options for positioning the drag handle. Those are passed to Floating UI and include options for the placement, offset, flip, shift, size, autoPlacement, hide, and inline middleware. * @defaultValue { strategy: 'absolute', placement: 'left-start' } * @see https://floating-ui.com/docs/computePosition#options */ options?: FloatingUIOptions; editor: Editor; b24ui?: EditorDragHandle['slots'] & ButtonProps['b24ui']; } export interface EditorDragHandleSlots { default?(props: { b24ui: EditorDragHandle['b24ui']; onClick: () => { node: JSONContent; pos: number; } | undefined; }): VNode[]; } export interface EditorDragHandleEmits { nodeChange: [{ node: JSONContent; pos: number; }]; hover: [{ node: JSONContent; pos: number; }]; } declare const _default: typeof __VLS_export; export default _default; declare const __VLS_export: __VLS_WithSlots any; nodeChange: (args_0: { node: JSONContent; pos: number; }) => any; }, string, import("vue").PublicProps, Readonly & Readonly<{ onHover?: ((args_0: { node: JSONContent; pos: number; }) => any) | undefined; onNodeChange?: ((args_0: { node: JSONContent; pos: number; }) => any) | undefined; }>, { size: "lg" | "sm" | "md" | "xl" | "xs" | "xss"; color: "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-alert" | "air-secondary-accent" | "air-secondary-accent-1" | "air-secondary-accent-2" | "air-tertiary" | "default" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, EditorDragHandleSlots>; type __VLS_WithSlots = T & { new (): { $slots: S; }; };