/**
 * External Dependencies
 */
{{#registerBlocks}}
import {
{{/registerBlocks}}
{{^registerBlocks}}
	{{#registerFilters}}
import {
	{{/registerFilters}}
	{{^registerFilters}}
		{{#registerFormats}}
import {
		{{/registerFormats}}
		{{^registerFormats}}
			{{#registerPlugins}}
import {
			{{/registerPlugins}}
			{{^registerPlugins}}
				{{#registerStores}}
import {
				{{/registerStores}}
				{{^registerStores}}
					{{#registerVariations}}
import {
					{{/registerVariations}}
				{{/registerStores}}
			{{/registerPlugins}}
		{{/registerFormats}}
	{{/registerFilters}}
{{/registerBlocks}}
	{{#registerBlocks}}
	hotBlockLoader,
	registerBlocks,
	{{/registerBlocks}}
	{{#registerFilters}}
	hotFilterLoader,
	registerFilters,
	{{/registerFilters}}
	{{#registerFormats}}
	hotFormatLoader,
	registerFormats,
	{{/registerFormats}}
	{{#registerPlugins}}
	hotPluginLoader,
	registerPlugins,
	{{/registerPlugins}}
	{{#registerStores}}
	hotStoreLoader,
	registerStores,
	{{/registerStores}}
	{{#registerVariations}}
	hotVariationLoader,
	registerVariations,
	{{/registerVariations}}
{{#registerBlocks}}
} from '@blockhandbook/block-hot-loader';
{{/registerBlocks}}
{{^registerBlocks}}
	{{#registerFilters}}
} from '@blockhandbook/block-hot-loader';
	{{/registerFilters}}
	{{^registerFilters}}
		{{#registerFormats}}
} from '@blockhandbook/block-hot-loader';
		{{/registerFormats}}
		{{^registerFormats}}
			{{#registerPlugins}}
} from '@blockhandbook/block-hot-loader';
			{{/registerPlugins}}
			{{^registerPlugins}}
				{{#registerStores}}
} from '@blockhandbook/block-hot-loader';
				{{/registerStores}}
				{{^registerStores}}
					{{#registerVariations}}
} from '@blockhandbook/block-hot-loader';
					{{/registerVariations}}
				{{/registerStores}}
			{{/registerPlugins}}
		{{/registerFormats}}
	{{/registerFilters}}
{{/registerBlocks}}

/**
 * WordPress Dependencies
 */

/**
 * Internal Dependencies
 */
import './index.scss';
import './style.scss';

{{#registerCategories}}
// Register block categories.
import './utils/register-categories';
{{/registerCategories}}
{{#registerBlocks}}

/** Hot Block Loading & Registering Blocks for production **/
if ( module.hot ) {
	hotBlockLoader( {
		getContext: () => require.context( './blocks', true, /index\.js$/ ),
		module,
	} );
} else {
	registerBlocks( {
		getContext: () => require.context( './blocks', true, /index\.js$/ ),
		module,
	} );
}
{{/registerBlocks}}
{{#registerFilters}}

/** Hot Filter Loading & Registering Filters for production **/
if ( module.hot ) {
	hotFilterLoader( {
		getContext: () => require.context( './filters', true, /index\.js$/ ),
		module,
	} );
} else {
	registerFilters( {
		getContext: () => require.context( './filters', true, /index\.js$/ ),
		module,
	} );
}
{{/registerFilters}}
{{#registerFormats}}

/** Hot Format Loading & Registering Formats for production **/
if ( module.hot ) {
	hotFormatLoader( {
		getContext: () => require.context( './formats', true, /index\.js$/ ),
		module,
	} );
} else {
	registerFormats( {
		getContext: () => require.context( './formats', true, /index\.js$/ ),
		module,
	} );
}
{{/registerFormats}}
{{#registerPlugins}}

/** Hot Plugin Loading & Registering Plugins for production **/
if ( module.hot ) {
	hotPluginLoader( {
		getContext: () => require.context( './plugins', true, /index\.js$/ ),
		module,
	} );
} else {
	registerPlugins( {
		getContext: () => require.context( './plugins', true, /index\.js$/ ),
		module,
	} );
}
{{/registerPlugins}}
{{#registerStores}}

/** Hot Store Loading & Registering Stores for production **/
if ( module.hot ) {
	hotStoreLoader( {
		getContext: () => require.context( './stores', true, /index\.js$/ ),
		module,
	} );
} else {
	registerStores( {
		getContext: () => require.context( './stores', true, /index\.js$/ ),
		module,
	} );
}
{{/registerStores}}
{{#registerVariations}}

/** Hot Variation Loading & Registering Variations for production **/
if ( module.hot ) {
	hotVariationLoader( {
		getContext: () => require.context( './blocks', true, /variations\.js$/ ),
		module,
	} );
} else {
	registerVariations( {
		getContext: () => require.context( './blocks', true, /variations\.js$/ ),
		module,
	} );
}
{{/registerVariations}}
