@wordpress/block-library 9.12.1-next.082ed6819.0 → 9.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/social-link/edit.js +35 -1
- package/build/social-link/edit.js.map +1 -1
- package/build/social-link/index.js +4 -2
- package/build/social-link/index.js.map +1 -1
- package/build-module/social-link/edit.js +37 -3
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-link/index.js +4 -2
- package/build-module/social-link/index.js.map +1 -1
- package/build-style/editor-rtl.css +4 -0
- package/build-style/editor.css +4 -0
- package/build-style/social-link/editor-rtl.css +4 -0
- package/build-style/social-link/editor.css +4 -0
- package/package.json +33 -33
- package/src/social-link/block.json +4 -2
- package/src/social-link/edit.js +40 -0
- package/src/social-link/editor.scss +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -116,6 +116,7 @@ const SocialLinkEdit = ({
|
|
|
116
116
|
// Use internal state instead of a ref to make sure that the component
|
|
117
117
|
// re-renders when the popover's anchor updates.
|
|
118
118
|
const [popoverAnchor, setPopoverAnchor] = (0, _element.useState)(null);
|
|
119
|
+
const isContentOnlyMode = (0, _blockEditor.useBlockEditingMode)() === 'contentOnly';
|
|
119
120
|
const IconComponent = (0, _socialList.getIconBySite)(service);
|
|
120
121
|
const socialLinkName = (0, _socialList.getNameBySite)(service);
|
|
121
122
|
// The initial label (ie. the link text) is an empty string.
|
|
@@ -136,7 +137,40 @@ const SocialLinkEdit = ({
|
|
|
136
137
|
}
|
|
137
138
|
});
|
|
138
139
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
139
|
-
children: [
|
|
140
|
+
children: [isContentOnlyMode && showLabels &&
|
|
141
|
+
/*#__PURE__*/
|
|
142
|
+
// Add an extra control to modify the label attribute when content only mode is active.
|
|
143
|
+
// With content only mode active, the inspector is hidden, so users need another way
|
|
144
|
+
// to edit this attribute.
|
|
145
|
+
(0, _jsxRuntime.jsx)(_blockEditor.BlockControls, {
|
|
146
|
+
group: "other",
|
|
147
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Dropdown, {
|
|
148
|
+
popoverProps: {
|
|
149
|
+
position: 'bottom right'
|
|
150
|
+
},
|
|
151
|
+
renderToggle: ({
|
|
152
|
+
isOpen,
|
|
153
|
+
onToggle
|
|
154
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToolbarButton, {
|
|
155
|
+
onClick: onToggle,
|
|
156
|
+
"aria-haspopup": "true",
|
|
157
|
+
"aria-expanded": isOpen,
|
|
158
|
+
children: (0, _i18n.__)('Text')
|
|
159
|
+
}),
|
|
160
|
+
renderContent: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
|
|
161
|
+
__next40pxDefaultSize: true,
|
|
162
|
+
__nextHasNoMarginBottom: true,
|
|
163
|
+
className: "wp-block-social-link__toolbar_content_text",
|
|
164
|
+
label: (0, _i18n.__)('Text'),
|
|
165
|
+
help: (0, _i18n.__)('Provide a text label or use the default.'),
|
|
166
|
+
value: label,
|
|
167
|
+
onChange: value => setAttributes({
|
|
168
|
+
label: value
|
|
169
|
+
}),
|
|
170
|
+
placeholder: socialLinkName
|
|
171
|
+
})
|
|
172
|
+
})
|
|
173
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
|
|
140
174
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PanelBody, {
|
|
141
175
|
title: (0, _i18n.__)('Settings'),
|
|
142
176
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PanelRow, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_keycodes","_data","_blockEditor","_element","_components","_compose","_i18n","_icons","_socialList","_jsxRuntime","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","useDispatch","blockEditorStore","jsx","URLPopover","anchor","__","onClose","focus","children","className","onSubmit","event","preventDefault","URLInput","value","onChange","nextURL","placeholder","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","BACKSPACE","DELETE","includes","keyCode","suffix","__experimentalInputControlSuffixWrapper","variant","Button","icon","keyboardReturn","type","size","SocialLinkEdit","attributes","context","isSelected","service","rel","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","useState","wrapperClasses","clsx","setPopoverAnchor","IconComponent","getIconBySite","socialLinkName","getNameBySite","socialLinkText","trim","ref","useRef","blockProps","useBlockProps","useMergeRefs","onClick","ENTER","jsxs","Fragment","InspectorControls","PanelBody","title","PanelRow","TextControl","__next40pxDefaultSize","__nextHasNoMarginBottom","help","group","role","style","color","backgroundColor","_default","exports","default"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_keycodes","_data","_blockEditor","_element","_components","_compose","_i18n","_icons","_socialList","_jsxRuntime","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","useDispatch","blockEditorStore","jsx","URLPopover","anchor","__","onClose","focus","children","className","onSubmit","event","preventDefault","URLInput","value","onChange","nextURL","placeholder","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","BACKSPACE","DELETE","includes","keyCode","suffix","__experimentalInputControlSuffixWrapper","variant","Button","icon","keyboardReturn","type","size","SocialLinkEdit","attributes","context","isSelected","service","rel","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","useState","wrapperClasses","clsx","setPopoverAnchor","isContentOnlyMode","useBlockEditingMode","IconComponent","getIconBySite","socialLinkName","getNameBySite","socialLinkText","trim","ref","useRef","blockProps","useBlockProps","useMergeRefs","onClick","ENTER","jsxs","Fragment","BlockControls","group","Dropdown","popoverProps","position","renderToggle","isOpen","onToggle","ToolbarButton","renderContent","TextControl","__next40pxDefaultSize","__nextHasNoMarginBottom","help","InspectorControls","PanelBody","title","PanelRow","role","style","color","backgroundColor","_default","exports","default"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockEditingMode,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tDropdown,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n\tToolbarButton,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst isContentOnlyMode = useBlockEditingMode() === 'contentOnly';\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ isContentOnlyMode && showLabels && (\n\t\t\t\t// Add an extra control to modify the label attribute when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit this attribute.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Text' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"wp-block-social-link__toolbar_content_text\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Provide a text label or use the default.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,13 +26,15 @@ const metadata = exports.metadata = {
|
|
|
26
26
|
textdomain: "default",
|
|
27
27
|
attributes: {
|
|
28
28
|
url: {
|
|
29
|
-
type: "string"
|
|
29
|
+
type: "string",
|
|
30
|
+
role: "content"
|
|
30
31
|
},
|
|
31
32
|
service: {
|
|
32
33
|
type: "string"
|
|
33
34
|
},
|
|
34
35
|
label: {
|
|
35
|
-
type: "string"
|
|
36
|
+
type: "string",
|
|
37
|
+
role: "content"
|
|
36
38
|
},
|
|
37
39
|
rel: {
|
|
38
40
|
type: "string"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","_variations","metadata","exports","$schema","apiVersion","name","title","category","parent","description","textdomain","attributes","url","type","service","label","rel","usesContext","supports","reusable","html","interactivity","clientNavigation","editorStyle","settings","icon","edit","variations","init","initBlock"],"sources":["@wordpress/block-library/src/social-link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { share as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,WAAA,GAAAF,sBAAA,CAAAF,OAAA;AAXA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAK,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_edit","_variations","metadata","exports","$schema","apiVersion","name","title","category","parent","description","textdomain","attributes","url","type","role","service","label","rel","usesContext","supports","reusable","html","interactivity","clientNavigation","editorStyle","settings","icon","edit","variations","init","initBlock"],"sources":["@wordpress/block-library/src/social-link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { share as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,WAAA,GAAAF,sBAAA,CAAAF,OAAA;AAXA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAK,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAF,IAAA;IAAA;IAAAG,KAAA;MAAAH,IAAA;MAAAC,IAAA;IAAA;IAAAG,GAAA;MAAAJ,IAAA;IAAA;EAAA;EAAAK,WAAA;EAAAC,QAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;AAAA;AAQA,MAAM;EAAEnB;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAInB,MAAMoB,QAAQ,GAAAvB,OAAA,CAAAuB,QAAA,GAAG;EACvBC,IAAI,EAAJA,YAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEzB,IAAI;EAAEJ,QAAQ;EAAEwB;AAAS,CAAE,CAAC;AAACvB,OAAA,CAAA2B,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -8,9 +8,9 @@ import clsx from 'clsx';
|
|
|
8
8
|
*/
|
|
9
9
|
import { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';
|
|
10
10
|
import { useDispatch } from '@wordpress/data';
|
|
11
|
-
import { InspectorControls, URLPopover, URLInput, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
|
|
11
|
+
import { BlockControls, InspectorControls, URLPopover, URLInput, useBlockEditingMode, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
|
|
12
12
|
import { useState, useRef } from '@wordpress/element';
|
|
13
|
-
import { Button, PanelBody, PanelRow, TextControl, __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper } from '@wordpress/components';
|
|
13
|
+
import { Button, Dropdown, PanelBody, PanelRow, TextControl, ToolbarButton, __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper } from '@wordpress/components';
|
|
14
14
|
import { useMergeRefs } from '@wordpress/compose';
|
|
15
15
|
import { __ } from '@wordpress/i18n';
|
|
16
16
|
import { keyboardReturn } from '@wordpress/icons';
|
|
@@ -108,6 +108,7 @@ const SocialLinkEdit = ({
|
|
|
108
108
|
// Use internal state instead of a ref to make sure that the component
|
|
109
109
|
// re-renders when the popover's anchor updates.
|
|
110
110
|
const [popoverAnchor, setPopoverAnchor] = useState(null);
|
|
111
|
+
const isContentOnlyMode = useBlockEditingMode() === 'contentOnly';
|
|
111
112
|
const IconComponent = getIconBySite(service);
|
|
112
113
|
const socialLinkName = getNameBySite(service);
|
|
113
114
|
// The initial label (ie. the link text) is an empty string.
|
|
@@ -128,7 +129,40 @@ const SocialLinkEdit = ({
|
|
|
128
129
|
}
|
|
129
130
|
});
|
|
130
131
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
131
|
-
children: [
|
|
132
|
+
children: [isContentOnlyMode && showLabels &&
|
|
133
|
+
/*#__PURE__*/
|
|
134
|
+
// Add an extra control to modify the label attribute when content only mode is active.
|
|
135
|
+
// With content only mode active, the inspector is hidden, so users need another way
|
|
136
|
+
// to edit this attribute.
|
|
137
|
+
_jsx(BlockControls, {
|
|
138
|
+
group: "other",
|
|
139
|
+
children: /*#__PURE__*/_jsx(Dropdown, {
|
|
140
|
+
popoverProps: {
|
|
141
|
+
position: 'bottom right'
|
|
142
|
+
},
|
|
143
|
+
renderToggle: ({
|
|
144
|
+
isOpen,
|
|
145
|
+
onToggle
|
|
146
|
+
}) => /*#__PURE__*/_jsx(ToolbarButton, {
|
|
147
|
+
onClick: onToggle,
|
|
148
|
+
"aria-haspopup": "true",
|
|
149
|
+
"aria-expanded": isOpen,
|
|
150
|
+
children: __('Text')
|
|
151
|
+
}),
|
|
152
|
+
renderContent: () => /*#__PURE__*/_jsx(TextControl, {
|
|
153
|
+
__next40pxDefaultSize: true,
|
|
154
|
+
__nextHasNoMarginBottom: true,
|
|
155
|
+
className: "wp-block-social-link__toolbar_content_text",
|
|
156
|
+
label: __('Text'),
|
|
157
|
+
help: __('Provide a text label or use the default.'),
|
|
158
|
+
value: label,
|
|
159
|
+
onChange: value => setAttributes({
|
|
160
|
+
label: value
|
|
161
|
+
}),
|
|
162
|
+
placeholder: socialLinkName
|
|
163
|
+
})
|
|
164
|
+
})
|
|
165
|
+
}), /*#__PURE__*/_jsx(InspectorControls, {
|
|
132
166
|
children: /*#__PURE__*/_jsx(PanelBody, {
|
|
133
167
|
title: __('Settings'),
|
|
134
168
|
children: /*#__PURE__*/_jsx(PanelRow, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","DELETE","BACKSPACE","ENTER","useDispatch","InspectorControls","URLPopover","URLInput","useBlockProps","store","blockEditorStore","useState","useRef","Button","PanelBody","PanelRow","TextControl","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","useMergeRefs","__","keyboardReturn","getIconBySite","getNameBySite","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","anchor","onClose","focus","children","className","onSubmit","event","preventDefault","value","onChange","nextURL","placeholder","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","includes","keyCode","suffix","variant","icon","type","size","SocialLinkEdit","attributes","context","isSelected","service","rel","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","wrapperClasses","setPopoverAnchor","IconComponent","socialLinkName","socialLinkText","trim","ref","blockProps","onClick","title","__next40pxDefaultSize","__nextHasNoMarginBottom","help","group","role","style","color","backgroundColor"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","DELETE","BACKSPACE","ENTER","useDispatch","BlockControls","InspectorControls","URLPopover","URLInput","useBlockEditingMode","useBlockProps","store","blockEditorStore","useState","useRef","Button","Dropdown","PanelBody","PanelRow","TextControl","ToolbarButton","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","useMergeRefs","__","keyboardReturn","getIconBySite","getNameBySite","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SocialLinkURLPopover","url","setAttributes","setPopover","popoverAnchor","clientId","removeBlock","anchor","onClose","focus","children","className","onSubmit","event","preventDefault","value","onChange","nextURL","placeholder","label","hideLabelFromVision","disableSuggestions","onKeyDown","defaultPrevented","includes","keyCode","suffix","variant","icon","type","size","SocialLinkEdit","attributes","context","isSelected","service","rel","showLabels","iconColor","iconColorValue","iconBackgroundColor","iconBackgroundColorValue","showURLPopover","wrapperClasses","setPopoverAnchor","isContentOnlyMode","IconComponent","socialLinkName","socialLinkText","trim","ref","blockProps","onClick","group","popoverProps","position","renderToggle","isOpen","onToggle","renderContent","__next40pxDefaultSize","__nextHasNoMarginBottom","help","title","role","style","color","backgroundColor"],"sources":["@wordpress/block-library/src/social-link/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { useDispatch } from '@wordpress/data';\n\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tURLPopover,\n\tURLInput,\n\tuseBlockEditingMode,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tButton,\n\tDropdown,\n\tPanelBody,\n\tPanelRow,\n\tTextControl,\n\tToolbarButton,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getIconBySite, getNameBySite } from './social-list';\n\nconst SocialLinkURLPopover = ( {\n\turl,\n\tsetAttributes,\n\tsetPopover,\n\tpopoverAnchor,\n\tclientId,\n} ) => {\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\treturn (\n\t\t<URLPopover\n\t\t\tanchor={ popoverAnchor }\n\t\t\taria-label={ __( 'Edit social link' ) }\n\t\t\tonClose={ () => {\n\t\t\t\tsetPopover( false );\n\t\t\t\tpopoverAnchor?.focus();\n\t\t\t} }\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-url-popover__link-editor\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tsetPopover( false );\n\t\t\t\t\tpopoverAnchor?.focus();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-url-input\">\n\t\t\t\t\t<URLInput\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tonChange={ ( nextURL ) =>\n\t\t\t\t\t\t\tsetAttributes( { url: nextURL } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tplaceholder={ __( 'Enter social link' ) }\n\t\t\t\t\t\tlabel={ __( 'Enter social link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tdisableSuggestions\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t!! url ||\n\t\t\t\t\t\t\t\tevent.defaultPrevented ||\n\t\t\t\t\t\t\t\t! [ BACKSPACE, DELETE ].includes(\n\t\t\t\t\t\t\t\t\tevent.keyCode\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</URLPopover>\n\t);\n};\n\nconst SocialLinkEdit = ( {\n\tattributes,\n\tcontext,\n\tisSelected,\n\tsetAttributes,\n\tclientId,\n} ) => {\n\tconst { url, service, label = '', rel } = attributes;\n\tconst {\n\t\tshowLabels,\n\t\ticonColor,\n\t\ticonColorValue,\n\t\ticonBackgroundColor,\n\t\ticonBackgroundColorValue,\n\t} = context;\n\tconst [ showURLPopover, setPopover ] = useState( false );\n\tconst wrapperClasses = clsx(\n\t\t'wp-social-link',\n\t\t// Manually adding this class for backwards compatibility of CSS when moving the\n\t\t// blockProps from the li to the button: https://github.com/WordPress/gutenberg/pull/64883\n\t\t'wp-block-social-link',\n\t\t'wp-social-link-' + service,\n\t\t{\n\t\t\t'wp-social-link__is-incomplete': ! url,\n\t\t\t[ `has-${ iconColor }-color` ]: iconColor,\n\t\t\t[ `has-${ iconBackgroundColor }-background-color` ]:\n\t\t\t\ticonBackgroundColor,\n\t\t}\n\t);\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst isContentOnlyMode = useBlockEditingMode() === 'contentOnly';\n\n\tconst IconComponent = getIconBySite( service );\n\tconst socialLinkName = getNameBySite( service );\n\t// The initial label (ie. the link text) is an empty string.\n\t// We want to prevent empty links so that the link text always fallbacks to\n\t// the social name, even when users enter and save an empty string or only\n\t// spaces. The PHP render callback fallbacks to the social name as well.\n\tconst socialLinkText = label.trim() === '' ? socialLinkName : label;\n\n\tconst ref = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-social-link-anchor',\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonClick: () => setPopover( true ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tif ( event.keyCode === ENTER ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetPopover( true );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ isContentOnlyMode && showLabels && (\n\t\t\t\t// Add an extra control to modify the label attribute when content only mode is active.\n\t\t\t\t// With content only mode active, the inspector is hidden, so users need another way\n\t\t\t\t// to edit this attribute.\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<Dropdown\n\t\t\t\t\t\tpopoverProps={ { position: 'bottom right' } }\n\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Text' ) }\n\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"wp-block-social-link__toolbar_content_text\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Provide a text label or use the default.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<PanelRow>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The text is visible when enabled from the parent Social Icons block.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tplaceholder={ socialLinkName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelRow>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( value ) => setAttributes( { rel: value } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ /*\n\t\t\t * Because the `<ul>` element has a role=document, the `<li>` is\n\t\t\t * not semantically correct, so adding role=presentation is cleaner.\n\t\t\t * https://github.com/WordPress/gutenberg/pull/64883#issuecomment-2472874551\n\t\t\t */ }\n\t\t\t<li\n\t\t\t\trole=\"presentation\"\n\t\t\t\tclassName={ wrapperClasses }\n\t\t\t\tstyle={ {\n\t\t\t\t\tcolor: iconColorValue,\n\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `button` ARIA role is redundant but\n\t\t\t\t * blockProps has a role of `document` automatically applied\n\t\t\t\t * which breaks the semantics of this button since it removes\n\t\t\t\t * the information about the popover.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<button aria-haspopup=\"dialog\" { ...blockProps } role=\"button\">\n\t\t\t\t\t<IconComponent />\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ clsx( 'wp-block-social-link-label', {\n\t\t\t\t\t\t\t'screen-reader-text': ! showLabels,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ socialLinkText }\n\t\t\t\t\t</span>\n\t\t\t\t</button>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t{ isSelected && showURLPopover && (\n\t\t\t\t\t<SocialLinkURLPopover\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tsetPopover={ setPopover }\n\t\t\t\t\t\tpopoverAnchor={ popoverAnchor }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t</>\n\t);\n};\n\nexport default SocialLinkEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,13 +19,15 @@ const metadata = {
|
|
|
19
19
|
textdomain: "default",
|
|
20
20
|
attributes: {
|
|
21
21
|
url: {
|
|
22
|
-
type: "string"
|
|
22
|
+
type: "string",
|
|
23
|
+
role: "content"
|
|
23
24
|
},
|
|
24
25
|
service: {
|
|
25
26
|
type: "string"
|
|
26
27
|
},
|
|
27
28
|
label: {
|
|
28
|
-
type: "string"
|
|
29
|
+
type: "string",
|
|
30
|
+
role: "content"
|
|
29
31
|
},
|
|
30
32
|
rel: {
|
|
31
33
|
type: "string"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["share","icon","initBlock","edit","metadata","$schema","apiVersion","name","title","category","parent","description","textdomain","attributes","url","type","service","label","rel","usesContext","supports","reusable","html","interactivity","clientNavigation","editorStyle","variations","settings","init"],"sources":["@wordpress/block-library/src/social-link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { share as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,IAAI,QAAQ,kBAAkB;;AAEhD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["share","icon","initBlock","edit","metadata","$schema","apiVersion","name","title","category","parent","description","textdomain","attributes","url","type","role","service","label","rel","usesContext","supports","reusable","html","interactivity","clientNavigation","editorStyle","variations","settings","init"],"sources":["@wordpress/block-library/src/social-link/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { share as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,IAAI,QAAQ,kBAAkB;;AAEhD;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,GAAA;MAAAC,IAAA;MAAAC,IAAA;IAAA;IAAAC,OAAA;MAAAF,IAAA;IAAA;IAAAG,KAAA;MAAAH,IAAA;MAAAC,IAAA;IAAA;IAAAG,GAAA;MAAAJ,IAAA;IAAA;EAAA;EAAAK,WAAA;EAAAC,QAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;AAAA;AAE1B,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAEpB;AAAK,CAAC,GAAGH,QAAQ;AAEzB,SAASA,QAAQ,EAAEG,IAAI;AAEvB,OAAO,MAAMqB,QAAQ,GAAG;EACvB3B,IAAI;EACJE,IAAI;EACJwB;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAM3B,SAAS,CAAE;EAAEK,IAAI;EAAEH,QAAQ;EAAEwB;AAAS,CAAE,CAAC","ignoreList":[]}
|
|
@@ -2420,6 +2420,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
|
|
|
2420
2420
|
padding: 0;
|
|
2421
2421
|
}
|
|
2422
2422
|
|
|
2423
|
+
.wp-block-social-link__toolbar_content_text {
|
|
2424
|
+
width: 250px;
|
|
2425
|
+
}
|
|
2426
|
+
|
|
2423
2427
|
.wp-block-social-links div.block-editor-url-input {
|
|
2424
2428
|
display: inline-block;
|
|
2425
2429
|
margin-right: 8px;
|
package/build-style/editor.css
CHANGED
|
@@ -2429,6 +2429,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
|
|
|
2429
2429
|
padding: 0;
|
|
2430
2430
|
}
|
|
2431
2431
|
|
|
2432
|
+
.wp-block-social-link__toolbar_content_text {
|
|
2433
|
+
width: 250px;
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2432
2436
|
.wp-block-social-links div.block-editor-url-input {
|
|
2433
2437
|
display: inline-block;
|
|
2434
2438
|
margin-left: 8px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-library",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.13.0",
|
|
4
4
|
"description": "Block library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -40,39 +40,39 @@
|
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@babel/runtime": "7.25.7",
|
|
43
|
-
"@wordpress/a11y": "
|
|
44
|
-
"@wordpress/api-fetch": "
|
|
45
|
-
"@wordpress/autop": "
|
|
46
|
-
"@wordpress/blob": "
|
|
47
|
-
"@wordpress/block-editor": "
|
|
48
|
-
"@wordpress/blocks": "
|
|
43
|
+
"@wordpress/a11y": "*",
|
|
44
|
+
"@wordpress/api-fetch": "*",
|
|
45
|
+
"@wordpress/autop": "*",
|
|
46
|
+
"@wordpress/blob": "*",
|
|
47
|
+
"@wordpress/block-editor": "*",
|
|
48
|
+
"@wordpress/blocks": "*",
|
|
49
49
|
"@wordpress/components": "*",
|
|
50
|
-
"@wordpress/compose": "
|
|
51
|
-
"@wordpress/core-data": "
|
|
50
|
+
"@wordpress/compose": "*",
|
|
51
|
+
"@wordpress/core-data": "*",
|
|
52
52
|
"@wordpress/data": "*",
|
|
53
|
-
"@wordpress/date": "
|
|
54
|
-
"@wordpress/deprecated": "
|
|
55
|
-
"@wordpress/dom": "
|
|
56
|
-
"@wordpress/element": "
|
|
57
|
-
"@wordpress/escape-html": "
|
|
58
|
-
"@wordpress/hooks": "
|
|
59
|
-
"@wordpress/html-entities": "
|
|
60
|
-
"@wordpress/i18n": "
|
|
61
|
-
"@wordpress/icons": "
|
|
62
|
-
"@wordpress/interactivity": "
|
|
63
|
-
"@wordpress/interactivity-router": "
|
|
64
|
-
"@wordpress/keyboard-shortcuts": "
|
|
65
|
-
"@wordpress/keycodes": "
|
|
66
|
-
"@wordpress/notices": "
|
|
67
|
-
"@wordpress/patterns": "
|
|
68
|
-
"@wordpress/primitives": "
|
|
69
|
-
"@wordpress/private-apis": "
|
|
70
|
-
"@wordpress/reusable-blocks": "
|
|
71
|
-
"@wordpress/rich-text": "
|
|
72
|
-
"@wordpress/server-side-render": "
|
|
73
|
-
"@wordpress/url": "
|
|
74
|
-
"@wordpress/viewport": "
|
|
75
|
-
"@wordpress/wordcount": "
|
|
53
|
+
"@wordpress/date": "*",
|
|
54
|
+
"@wordpress/deprecated": "*",
|
|
55
|
+
"@wordpress/dom": "*",
|
|
56
|
+
"@wordpress/element": "*",
|
|
57
|
+
"@wordpress/escape-html": "*",
|
|
58
|
+
"@wordpress/hooks": "*",
|
|
59
|
+
"@wordpress/html-entities": "*",
|
|
60
|
+
"@wordpress/i18n": "*",
|
|
61
|
+
"@wordpress/icons": "*",
|
|
62
|
+
"@wordpress/interactivity": "*",
|
|
63
|
+
"@wordpress/interactivity-router": "*",
|
|
64
|
+
"@wordpress/keyboard-shortcuts": "*",
|
|
65
|
+
"@wordpress/keycodes": "*",
|
|
66
|
+
"@wordpress/notices": "*",
|
|
67
|
+
"@wordpress/patterns": "*",
|
|
68
|
+
"@wordpress/primitives": "*",
|
|
69
|
+
"@wordpress/private-apis": "*",
|
|
70
|
+
"@wordpress/reusable-blocks": "*",
|
|
71
|
+
"@wordpress/rich-text": "*",
|
|
72
|
+
"@wordpress/server-side-render": "*",
|
|
73
|
+
"@wordpress/url": "*",
|
|
74
|
+
"@wordpress/viewport": "*",
|
|
75
|
+
"@wordpress/wordcount": "*",
|
|
76
76
|
"change-case": "^4.1.2",
|
|
77
77
|
"clsx": "^2.1.1",
|
|
78
78
|
"colord": "^2.7.0",
|
|
@@ -90,5 +90,5 @@
|
|
|
90
90
|
"publishConfig": {
|
|
91
91
|
"access": "public"
|
|
92
92
|
},
|
|
93
|
-
"gitHead": "
|
|
93
|
+
"gitHead": "cce81c13739c2a8b53d91df90c4f037cb68c2665"
|
|
94
94
|
}
|
|
@@ -9,13 +9,15 @@
|
|
|
9
9
|
"textdomain": "default",
|
|
10
10
|
"attributes": {
|
|
11
11
|
"url": {
|
|
12
|
-
"type": "string"
|
|
12
|
+
"type": "string",
|
|
13
|
+
"role": "content"
|
|
13
14
|
},
|
|
14
15
|
"service": {
|
|
15
16
|
"type": "string"
|
|
16
17
|
},
|
|
17
18
|
"label": {
|
|
18
|
-
"type": "string"
|
|
19
|
+
"type": "string",
|
|
20
|
+
"role": "content"
|
|
19
21
|
},
|
|
20
22
|
"rel": {
|
|
21
23
|
"type": "string"
|
package/src/social-link/edit.js
CHANGED
|
@@ -10,18 +10,22 @@ import { DELETE, BACKSPACE, ENTER } from '@wordpress/keycodes';
|
|
|
10
10
|
import { useDispatch } from '@wordpress/data';
|
|
11
11
|
|
|
12
12
|
import {
|
|
13
|
+
BlockControls,
|
|
13
14
|
InspectorControls,
|
|
14
15
|
URLPopover,
|
|
15
16
|
URLInput,
|
|
17
|
+
useBlockEditingMode,
|
|
16
18
|
useBlockProps,
|
|
17
19
|
store as blockEditorStore,
|
|
18
20
|
} from '@wordpress/block-editor';
|
|
19
21
|
import { useState, useRef } from '@wordpress/element';
|
|
20
22
|
import {
|
|
21
23
|
Button,
|
|
24
|
+
Dropdown,
|
|
22
25
|
PanelBody,
|
|
23
26
|
PanelRow,
|
|
24
27
|
TextControl,
|
|
28
|
+
ToolbarButton,
|
|
25
29
|
__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,
|
|
26
30
|
} from '@wordpress/components';
|
|
27
31
|
import { useMergeRefs } from '@wordpress/compose';
|
|
@@ -130,6 +134,7 @@ const SocialLinkEdit = ( {
|
|
|
130
134
|
// Use internal state instead of a ref to make sure that the component
|
|
131
135
|
// re-renders when the popover's anchor updates.
|
|
132
136
|
const [ popoverAnchor, setPopoverAnchor ] = useState( null );
|
|
137
|
+
const isContentOnlyMode = useBlockEditingMode() === 'contentOnly';
|
|
133
138
|
|
|
134
139
|
const IconComponent = getIconBySite( service );
|
|
135
140
|
const socialLinkName = getNameBySite( service );
|
|
@@ -154,6 +159,41 @@ const SocialLinkEdit = ( {
|
|
|
154
159
|
|
|
155
160
|
return (
|
|
156
161
|
<>
|
|
162
|
+
{ isContentOnlyMode && showLabels && (
|
|
163
|
+
// Add an extra control to modify the label attribute when content only mode is active.
|
|
164
|
+
// With content only mode active, the inspector is hidden, so users need another way
|
|
165
|
+
// to edit this attribute.
|
|
166
|
+
<BlockControls group="other">
|
|
167
|
+
<Dropdown
|
|
168
|
+
popoverProps={ { position: 'bottom right' } }
|
|
169
|
+
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
170
|
+
<ToolbarButton
|
|
171
|
+
onClick={ onToggle }
|
|
172
|
+
aria-haspopup="true"
|
|
173
|
+
aria-expanded={ isOpen }
|
|
174
|
+
>
|
|
175
|
+
{ __( 'Text' ) }
|
|
176
|
+
</ToolbarButton>
|
|
177
|
+
) }
|
|
178
|
+
renderContent={ () => (
|
|
179
|
+
<TextControl
|
|
180
|
+
__next40pxDefaultSize
|
|
181
|
+
__nextHasNoMarginBottom
|
|
182
|
+
className="wp-block-social-link__toolbar_content_text"
|
|
183
|
+
label={ __( 'Text' ) }
|
|
184
|
+
help={ __(
|
|
185
|
+
'Provide a text label or use the default.'
|
|
186
|
+
) }
|
|
187
|
+
value={ label }
|
|
188
|
+
onChange={ ( value ) =>
|
|
189
|
+
setAttributes( { label: value } )
|
|
190
|
+
}
|
|
191
|
+
placeholder={ socialLinkName }
|
|
192
|
+
/>
|
|
193
|
+
) }
|
|
194
|
+
/>
|
|
195
|
+
</BlockControls>
|
|
196
|
+
) }
|
|
157
197
|
<InspectorControls>
|
|
158
198
|
<PanelBody title={ __( 'Settings' ) }>
|
|
159
199
|
<PanelRow>
|