Context
zod-admin-ui (https://github.com/developer-1px/zod-admin-ui) used useEditable<T>({ getValue, onCommit }) from @p/anyeditable v0.4.x for scalar inline editing — the double-click-to-edit pattern over a single string value backed by a zod-crud RFC 6902 pointer.
After v0.5 migration to block-based composer, useEditable no longer exports. The new useEditableSurface / useEditableDocumentSurface operate over ComposerDoc (multi-block document) — overkill for a single scalar that lives at a JSON Pointer in an external doc.
Missing surface
useEditable<Id>({
getValue: (id) => string,
onCommit: (id, next: string) => void,
}): {
editing: Id | null
inputProps: React.InputHTMLAttributes<HTMLInputElement> // onBlur=commit, Enter=commit, Esc=cancel
startEdit: (id: Id) => void
}
Why thin shape matters
For NCloud-style admin we have hundreds of leaf strings (headline, eyebrow, button labels) edited inline within a preview tree. Each leaf is one JSON pointer of an external doc — not a block document. Spinning up useEditableSurface per leaf is wrong layer.
Asks
- Restore (or add) a thin
useEditable scalar helper alongside the block surface.
- Or document the canonical pattern for "edit one string at a JSON pointer" in admin context.
Impacted consumer code
src/auto/preview/inline-edit/EditableText.tsx
src/auto/preview/inline-edit/useDocEditable.ts
We are using a local thin replacement until this surface returns.
Context
zod-admin-ui (https://github.com/developer-1px/zod-admin-ui) used
useEditable<T>({ getValue, onCommit })from@p/anyeditablev0.4.x for scalar inline editing — the double-click-to-edit pattern over a single string value backed by a zod-crud RFC 6902 pointer.After v0.5 migration to block-based composer,
useEditableno longer exports. The newuseEditableSurface/useEditableDocumentSurfaceoperate overComposerDoc(multi-block document) — overkill for a single scalar that lives at a JSON Pointer in an external doc.Missing surface
Why thin shape matters
For NCloud-style admin we have hundreds of leaf strings (headline, eyebrow, button labels) edited inline within a preview tree. Each leaf is one JSON pointer of an external doc — not a block document. Spinning up
useEditableSurfaceper leaf is wrong layer.Asks
useEditablescalar helper alongside the block surface.Impacted consumer code
src/auto/preview/inline-edit/EditableText.tsxsrc/auto/preview/inline-edit/useDocEditable.tsWe are using a local thin replacement until this surface returns.