import { useState, useEffect, useRef, useCallback, useMemo } from "react"; import { NodeViewWrapper } from "@tiptap/react"; import type { NodeViewProps } from "@tiptap/react"; import type { ComponentDef, ComponentField } from "../components/registry"; const DEFAULT_IFRAME_HEIGHT = 600; const SAFETY_MIN_HEIGHT = 80; function FieldRow({ field, value, onChange, }: { field: ComponentField; value: unknown; onChange: (val: unknown) => void; }) { if (field.type === "boolean") { return ( ); } return (