UNPKG

@wordpress/block-library

Version:
139 lines (131 loc) 3.19 kB
/** * External dependencies */ import { isEmpty } from 'lodash'; /** * WordPress dependencies */ import { heading as icon } from '@wordpress/icons'; import { __, sprintf } from '@wordpress/i18n'; /** * Internal dependencies */ import initBlock from '../utils/init-block'; import deprecated from './deprecated'; import edit from './edit'; const metadata = { $schema: "https://schemas.wp.org/trunk/block.json", apiVersion: 2, name: "core/heading", title: "Heading", category: "text", description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", keywords: ["title", "subtitle"], textdomain: "default", attributes: { textAlign: { type: "string" }, content: { type: "string", source: "html", selector: "h1,h2,h3,h4,h5,h6", "default": "", __experimentalRole: "content" }, level: { type: "number", "default": 2 }, placeholder: { type: "string" } }, supports: { align: ["wide", "full"], anchor: true, className: false, color: { gradients: true, link: true, __experimentalDefaultControls: { background: true, text: true } }, spacing: { margin: true, padding: true }, typography: { fontSize: true, lineHeight: true, __experimentalFontFamily: true, __experimentalFontStyle: true, __experimentalFontWeight: true, __experimentalLetterSpacing: true, __experimentalTextTransform: true, __experimentalTextDecoration: true, __experimentalDefaultControls: { fontSize: true, fontAppearance: true, textTransform: true } }, __experimentalSelector: "h1,h2,h3,h4,h5,h6", __unstablePasteTextInline: true, __experimentalSlashInserter: true }, editorStyle: "wp-block-heading-editor", style: "wp-block-heading" }; import save from './save'; import transforms from './transforms'; const { name } = metadata; export { metadata, name }; export const settings = { icon, example: { attributes: { content: __('Code is Poetry'), level: 2 } }, __experimentalLabel(attributes, _ref) { let { context } = _ref; const { content, level } = attributes; // In the list view, use the block's content as the label. // If the content is empty, fall back to the default label. if (context === 'list-view' && content) { return content; } if (context === 'accessibility') { return isEmpty(content) ? sprintf( /* translators: accessibility text. %s: heading level. */ __('Level %s. Empty.'), level) : sprintf( /* translators: accessibility text. 1: heading level. 2: heading content. */ __('Level %1$s. %2$s'), level, content); } }, transforms, deprecated, merge(attributes, attributesToMerge) { return { content: (attributes.content || '') + (attributesToMerge.content || '') }; }, edit, save }; export const init = () => initBlock({ name, metadata, settings }); //# sourceMappingURL=index.js.map