Table select (inline)
The select-column variant used inside a table cell. You don't insert this one directly from the slash menu — it's created automatically when a table column's type is set to select.
{ "id": "r1", "type": "tableSelect", "value": "", "marks": {}, "data": { "selectedValue": "done", "selectedLabel": "Done" } }Options live once on the column (table.props.columns[i].options), shared by every cell in that column — picking a value in one cell offers the same choice list in every other cell below it. Each cell run keeps selectedLabel as a denormalized cache of the current choice, so rendering or exporting a single run never needs table/column context to know what to show.
Using it in your editor
useEditor() registers every built-in inline type by default. Only relevant alongside table — if opting into inline types individually instead, spread the whole group rather than naming tableSelectInlineType alone:
import { useEditor, NoteloomEditor, registerInlineTypes, TABLE_SELECT_INLINE_TYPES } from 'noteloom';
import { registerBlocks, paragraphBlockType, TABLE_BLOCKS } from 'noteloom';
function Editor() {
const editor = useEditor({
registerBlocks: (registry) => registerBlocks(registry, { paragraph: paragraphBlockType, ...TABLE_BLOCKS }),
registerInlineTypes: (inlineRegistry) => registerInlineTypes(inlineRegistry, { ...TABLE_SELECT_INLINE_TYPES }),
});
return <NoteloomEditor editor={editor} />;
}Styling
Rendered with class .be-inline-table-select.