# @schlechtenburg/core ## SbMode The mode the Schlechtenburg editor is currently in - **Type** `Enumeration` - **Members** - **Edit**: `undefined` - **View**: `undefined` ## IBlockData<T> Schlechtenburg inputs and outputs a plain JS Object that can be JSON stringified. This is the interface type for that data structure. `T` will be the data type of the specific block being - **Type** `Interface` - **Members** - **data**: `T` - **id**: `string` - **name**: `string` ## IBlockDefinition<T> Any Block that you create - **Type** `Interface` - **Members** - **edit**: `Component` - **getDefaultData**: `T` - **icon**: `string` - **name**: `string` - **view**: `Component` ## IBlockLibrary Schlechtenburg maintains a library of blocks that are available - **Type** `Interface` ## IBlockProps<T> Any Block that you create - **Type** `Interface` - **Members** - **blockId**: `string` - **data**: `T` - **onActivateNext**: `OnActivateNextCb` - **onActivatePrevious**: `OnActivatePreviousCb` - **onAppendBlock**: `OnAppendBlockCb` - **onPrependBlock**: `OnPrependBlockCb` - **onRemoveSelf**: `OnRemoveSelfCb` - **onUpdate**: `OnUpdateSelfCb` ## ISbMainProps - **Type** `Interface` - **Members** - **availableBlocks**: `undefined` - **block**: `IBlockData` - **mode**: `SbMode` - **onUpdate**: `OnUpdateBlockCb` ## ITreeNode Schlechtenburg keeps track of the rendered block tree. This is useful for e.g. the tree select component in the editor header. - **Type** `Interface` - **Members** - **children**: `undefined` - **icon**: `string` - **id**: `string` - **name**: `string` ## OnActivateNextCb - **Type** `Type alias` ## OnActivatePreviousCb - **Type** `Type alias` ## OnAppendBlockCb - **Type** `Type alias` ## OnPrependBlockCb - **Type** `Type alias` ## OnRemoveSelfCb - **Type** `Type alias` ## OnUpdateBlockCb - **Type** `Type alias` ## OnUpdateSelfCb<T> - **Type** `Type alias` ## SbBlock Displays a Schlechtenburg block either the mode of the schlechtenburg instance. You can use this to display child blocks inside your own blocks. - **Type**: `Component` ### Props #### block The state for the block. - **Type** `IBlockData` #### onUpdate Called when the block should be updated. - **Type** `OnUpdateBlockCb` - **Default value** `() => {}` #### onPrependBlock Called when a sibling block should be inserted before the block - **Type** `OnPrependBlockCb` - **Default value** `() => {}` #### onAppendBlock Called when a sibling block should be inserted after the block - **Type** `OnAppendBlockCb` - **Default value** `() => {}` #### onRemoveSelf Called when the block should be removed - **Type** `OnRemoveSelfCb` - **Default value** `() => {}` #### onActivatePrevious Called when the previous sibling block should be activated - **Type** `OnActivatePreviousCb` - **Default value** `() => {}` #### onActivateNext Called when the next sibling block should be activated - **Type** `OnActivateNextCb` - **Default value** `() => {}` ## SbBlockOrdering - **Type**: `Component` ### Props #### orientation - **Type** `string` - **Default value** `null` #### onRemove - **Type** `func` - **Default value** `() => {}` #### onMoveBackward - **Type** `func` - **Default value** `() => {}` #### onMoveForward - **Type** `func` - **Default value** `() => {}` ## SbBlockPicker - **Type**: `Component` ### Props #### onPickedBlock - **Type** `func` - **Default value** `() => {}` ## SbBlockPlaceholder A placeholder for a block. Displays a placeholder for a block, allowing the user to select a block to insert. - **Type**: `Component` ### Props #### onInsertBlock Called when the user picked a block that should be inserted here. - **Type** `func` - **Default value** `() => {}` ## SbButton A button in the schlechtenburg theme - **Type**: `Component` ### Props ## SbMain - **Type** `Variable` ## SbSelect A select input in the schlechtenburg theme - **Type**: `Component` ### Props ## SbToolbar Toolbar in the schlechtenburg theme - **Type**: `Component` ### Props ## SymActiveBlock - **Type** `Variable` ## SymBlockDimensions - **Type** `Variable` ## SymBlockLibrary - **Type** `Variable` ## SymEditorDimensions - **Type** `Variable` ## SymMode - **Type** `Variable` ## blockProps - **Type** `Variable` ## model - **Type** `Variable` ## generateBlockId - **Type** `Function` ## useActivation - **Type** `Function` ## useBlockSizing - **Type** `Function` ## useDynamicBlocks - **Type** `Function` ## useResizeObserver - **Type** `Function`