@wordpress/block-library
Version:
Block library for the WordPress editor.
150 lines (148 loc) • 3.94 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.settings = exports.name = exports.metadata = exports.init = void 0;
var _icons = require("@wordpress/icons");
var _i18n = require("@wordpress/i18n");
var _initBlock = _interopRequireDefault(require("../utils/init-block"));
var _edit = _interopRequireDefault(require("./edit"));
var _save = _interopRequireDefault(require("./save"));
var _transforms = _interopRequireDefault(require("./transforms"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const metadata = exports.metadata = {
$schema: "https://schemas.wp.org/trunk/block.json",
apiVersion: 3,
name: "core/details",
title: "Details",
category: "text",
description: "Hide and show additional content.",
keywords: ["accordion", "summary", "toggle", "disclosure"],
textdomain: "default",
attributes: {
showContent: {
type: "boolean",
"default": false
},
summary: {
type: "rich-text",
source: "rich-text",
selector: "summary",
role: "content"
},
name: {
type: "string",
source: "attribute",
attribute: "name",
selector: ".wp-block-details"
},
allowedBlocks: {
type: "array"
},
placeholder: {
type: "string"
}
},
supports: {
__experimentalOnEnter: true,
align: ["wide", "full"],
anchor: true,
color: {
gradients: true,
link: true,
__experimentalDefaultControls: {
background: true,
text: true
}
},
__experimentalBorder: {
color: true,
width: true,
style: true
},
html: false,
spacing: {
margin: true,
padding: true,
blockGap: true,
__experimentalDefaultControls: {
margin: false,
padding: false
}
},
typography: {
fontSize: true,
lineHeight: true,
__experimentalFontFamily: true,
__experimentalFontWeight: true,
__experimentalFontStyle: true,
__experimentalTextTransform: true,
__experimentalTextDecoration: true,
__experimentalLetterSpacing: true,
__experimentalDefaultControls: {
fontSize: true
}
},
layout: {
allowEditing: false
},
interactivity: {
clientNavigation: true
}
},
editorStyle: "wp-block-details-editor",
style: "wp-block-details"
};
const {
name
} = metadata;
exports.name = name;
const settings = exports.settings = {
icon: _icons.details,
example: {
attributes: {
summary: (0, _i18n.__)('La Mancha'),
showContent: true
},
innerBlocks: [{
name: 'core/paragraph',
attributes: {
content: (0, _i18n.__)('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.')
}
}]
},
__experimentalLabel(attributes, {
context
}) {
const {
summary
} = attributes;
const customName = attributes?.metadata?.name;
const hasSummary = summary?.trim().length > 0;
// In the list view, use the block's summary as the label.
// If the summary is empty, fall back to the default label.
if (context === 'list-view' && (customName || hasSummary)) {
return customName || summary;
}
if (context === 'accessibility') {
return !hasSummary ? (0, _i18n.__)('Details. Empty.') : (0, _i18n.sprintf)(/* translators: accessibility text; summary title. */
(0, _i18n.__)('Details. %s'), summary);
}
},
save: _save.default,
edit: _edit.default,
transforms: _transforms.default
};
const init = () => (0, _initBlock.default)({
name,
metadata,
settings
});
exports.init = init;
//# sourceMappingURL=index.js.map
;