@wordpress/blocks
Version:
Block API for WordPress.
143 lines • 3.76 kB
TypeScript
/**
* WordPress dependencies
*/
import type { ThunkArgs } from '@wordpress/data';
/**
* Internal dependencies
*/
import type { BlockType, BlockCategory, BlockCollection, BlockStyle, BlockVariation, BlockBindingsSource, Icon } from '../types';
import type { store } from '.';
import type * as privateSelectors from './private-selectors';
import type * as privateActions from './private-actions';
/**
* The state of the `core/blocks` redux store.
*/
export interface BlockStoreState {
/**
* Bootstrapped block types from server-side definitions.
*/
bootstrappedBlockTypes: Record<string, Partial<BlockType>>;
/**
* Unprocessed block types pending filter application.
*/
unprocessedBlockTypes: Record<string, Partial<BlockType>>;
/**
* Block types by name.
*/
blockTypes: Record<string, BlockType>;
/**
* Block styles by block name.
*/
blockStyles: Record<string, BlockStyle[]>;
/**
* Block variations by block name.
*/
blockVariations: Record<string, BlockVariation[]>;
/**
* Name of the default block.
*/
defaultBlockName: string | null;
/**
* Name of the block for handling non-block content.
*/
freeformFallbackBlockName: string | null;
/**
* Name of the block for handling unregistered blocks.
*/
unregisteredFallbackBlockName: string | null;
/**
* Name of the block for handling the grouping of blocks.
*/
groupingBlockName: string | null;
/**
* The available block categories.
*/
categories: BlockCategory[];
/**
* The available collections.
*/
collections: Record<string, BlockCollection>;
/**
* Block bindings sources by name.
* The stored form omits `name` since it's the record key.
*/
blockBindingsSources: Record<string, Omit<BlockBindingsSource, 'name'>>;
}
/**
* Store action types.
*/
export type Action = {
type: 'ADD_BOOTSTRAPPED_BLOCK_TYPE';
name: string;
blockType: Record<string, unknown>;
} | {
type: 'ADD_UNPROCESSED_BLOCK_TYPE';
name: string;
blockType: Partial<BlockType>;
} | {
type: 'ADD_BLOCK_TYPES';
blockTypes: BlockType[];
} | {
type: 'REMOVE_BLOCK_TYPES';
names: string[];
} | {
type: 'ADD_BLOCK_STYLES';
blockNames: string[];
styles: BlockStyle[];
} | {
type: 'REMOVE_BLOCK_STYLES';
blockName: string;
styleNames: string[];
} | {
type: 'ADD_BLOCK_VARIATIONS';
blockName: string;
variations: BlockVariation[];
} | {
type: 'REMOVE_BLOCK_VARIATIONS';
blockName: string;
variationNames: string[];
} | {
type: 'SET_DEFAULT_BLOCK_NAME';
name: string;
} | {
type: 'SET_FREEFORM_FALLBACK_BLOCK_NAME';
name: string;
} | {
type: 'SET_UNREGISTERED_FALLBACK_BLOCK_NAME';
name: string;
} | {
type: 'SET_GROUPING_BLOCK_NAME';
name: string;
} | {
type: 'SET_CATEGORIES';
categories: BlockCategory[];
} | {
type: 'UPDATE_CATEGORY';
slug: string;
category: Partial<BlockCategory>;
} | {
type: 'ADD_BLOCK_COLLECTION';
namespace: string;
title: string;
icon?: Icon;
} | {
type: 'REMOVE_BLOCK_COLLECTION';
namespace: string;
} | {
type: 'ADD_BLOCK_BINDINGS_SOURCE';
name: string;
label?: string;
usesContext?: string[];
getValues?: Function;
setValues?: Function;
canUserEditValue?: Function;
getFieldsList?: Function;
} | {
type: 'REMOVE_BLOCK_BINDINGS_SOURCE';
name: string;
};
/**
* Thunk arguments for the blocks store, including private selectors and actions.
*/
export type BlocksStoreThunkArgs = ThunkArgs<typeof store, typeof privateSelectors, typeof privateActions>;
//# sourceMappingURL=types.d.ts.map