noteloom

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.

json
{ "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:

jsx
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.