@wordpress/block-library 9.29.0 → 9.29.1-next.e256d081a.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/build/audio/edit.js +3 -1
- package/build/audio/edit.js.map +1 -1
- package/build/form/deprecated.js +97 -0
- package/build/form/deprecated.js.map +1 -0
- package/build/form/index.js +2 -1
- package/build/form/index.js.map +1 -1
- package/build/form/save.js +0 -1
- package/build/form/save.js.map +1 -1
- package/build/gallery/edit.js +9 -3
- package/build/gallery/edit.js.map +1 -1
- package/build/image/edit.js +0 -5
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +1 -1
- package/build/image/image.js.map +1 -1
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/query-content.js +7 -6
- package/build/query/edit/query-content.js.map +1 -1
- package/build/query/edit/query-placeholder.js +30 -9
- package/build/query/edit/query-placeholder.js.map +1 -1
- package/build/query/edit/query-toolbar.js +4 -2
- package/build/query/edit/query-toolbar.js.map +1 -1
- package/build/template-part/edit/placeholder.js +2 -1
- package/build/template-part/edit/placeholder.js.map +1 -1
- package/build/video/edit.js +3 -1
- package/build/video/edit.js.map +1 -1
- package/build-module/audio/edit.js +4 -2
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/form/deprecated.js +90 -0
- package/build-module/form/deprecated.js.map +1 -0
- package/build-module/form/index.js +2 -1
- package/build-module/form/index.js.map +1 -1
- package/build-module/form/save.js +0 -1
- package/build-module/form/save.js.map +1 -1
- package/build-module/gallery/edit.js +9 -3
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/image/edit.js +0 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +1 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/query-content.js +8 -7
- package/build-module/query/edit/query-content.js.map +1 -1
- package/build-module/query/edit/query-placeholder.js +30 -10
- package/build-module/query/edit/query-placeholder.js.map +1 -1
- package/build-module/query/edit/query-toolbar.js +4 -2
- package/build-module/query/edit/query-toolbar.js.map +1 -1
- package/build-module/template-part/edit/placeholder.js +2 -1
- package/build-module/template-part/edit/placeholder.js.map +1 -1
- package/build-module/video/edit.js +4 -2
- package/build-module/video/edit.js.map +1 -1
- package/build-style/editor-rtl.css +4 -0
- package/build-style/editor.css +4 -0
- package/build-style/query/editor-rtl.css +4 -0
- package/build-style/query/editor.css +4 -0
- package/package.json +35 -35
- package/src/audio/edit.js +6 -1
- package/src/form/block.json +0 -1
- package/src/form/deprecated.js +96 -0
- package/src/form/index.js +2 -0
- package/src/form/save.js +0 -1
- package/src/gallery/edit.js +9 -3
- package/src/image/edit.js +0 -6
- package/src/image/image.js +2 -1
- package/src/query/edit/index.js +1 -0
- package/src/query/edit/query-content.js +8 -4
- package/src/query/edit/query-placeholder.js +47 -17
- package/src/query/edit/query-toolbar.js +10 -2
- package/src/query/editor.scss +6 -1
- package/src/template-part/edit/placeholder.js +2 -1
- package/src/video/edit.js +6 -1
|
@@ -11,12 +11,14 @@ import PatternSelection, { useBlockPatterns } from './pattern-selection';
|
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
export default function QueryToolbar({
|
|
13
13
|
clientId,
|
|
14
|
-
attributes
|
|
14
|
+
attributes,
|
|
15
|
+
hasInnerBlocks
|
|
15
16
|
}) {
|
|
16
17
|
const hasPatterns = useBlockPatterns(clientId, attributes).length;
|
|
17
18
|
if (!hasPatterns) {
|
|
18
19
|
return null;
|
|
19
20
|
}
|
|
21
|
+
const buttonLabel = hasInnerBlocks ? __('Change design') : __('Choose pattern');
|
|
20
22
|
return /*#__PURE__*/_jsx(ToolbarGroup, {
|
|
21
23
|
className: "wp-block-template-part__block-control-group",
|
|
22
24
|
children: /*#__PURE__*/_jsx(DropdownContentWrapper, {
|
|
@@ -31,7 +33,7 @@ export default function QueryToolbar({
|
|
|
31
33
|
"aria-haspopup": "true",
|
|
32
34
|
"aria-expanded": isOpen,
|
|
33
35
|
onClick: onToggle,
|
|
34
|
-
children:
|
|
36
|
+
children: buttonLabel
|
|
35
37
|
}),
|
|
36
38
|
renderContent: () => /*#__PURE__*/_jsx(PatternSelection, {
|
|
37
39
|
clientId: clientId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ToolbarGroup","ToolbarButton","Dropdown","__experimentalDropdownContentWrapper","DropdownContentWrapper","__","PatternSelection","useBlockPatterns","jsx","_jsx","QueryToolbar","clientId","attributes","hasPatterns","length","className","children","contentClassName","focusOnMount","expandOnMobile","renderToggle","isOpen","onToggle","onClick","renderContent","showSearch","showTitlesAsTooltip"],"sources":["@wordpress/block-library/src/query/edit/query-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PatternSelection, { useBlockPatterns } from './pattern-selection';\n\nexport default function QueryToolbar( {
|
|
1
|
+
{"version":3,"names":["ToolbarGroup","ToolbarButton","Dropdown","__experimentalDropdownContentWrapper","DropdownContentWrapper","__","PatternSelection","useBlockPatterns","jsx","_jsx","QueryToolbar","clientId","attributes","hasInnerBlocks","hasPatterns","length","buttonLabel","className","children","contentClassName","focusOnMount","expandOnMobile","renderToggle","isOpen","onToggle","onClick","renderContent","showSearch","showTitlesAsTooltip"],"sources":["@wordpress/block-library/src/query/edit/query-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PatternSelection, { useBlockPatterns } from './pattern-selection';\n\nexport default function QueryToolbar( {\n\tclientId,\n\tattributes,\n\thasInnerBlocks,\n} ) {\n\tconst hasPatterns = useBlockPatterns( clientId, attributes ).length;\n\tif ( ! hasPatterns ) {\n\t\treturn null;\n\t}\n\n\tconst buttonLabel = hasInnerBlocks\n\t\t? __( 'Change design' )\n\t\t: __( 'Choose pattern' );\n\n\treturn (\n\t\t<ToolbarGroup className=\"wp-block-template-part__block-control-group\">\n\t\t\t<DropdownContentWrapper>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"block-editor-block-settings-menu__popover\"\n\t\t\t\t\tfocusOnMount=\"firstElement\"\n\t\t\t\t\texpandOnMobile\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ buttonLabel }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ () => (\n\t\t\t\t\t\t<PatternSelection\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tshowSearch={ false }\n\t\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</DropdownContentWrapper>\n\t\t</ToolbarGroup>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,YAAY,EACZC,aAAa,EACbC,QAAQ,EACRC,oCAAoC,IAAIC,sBAAsB,QACxD,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,gBAAgB,IAAIC,gBAAgB,QAAQ,qBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzE,eAAe,SAASC,YAAYA,CAAE;EACrCC,QAAQ;EACRC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,MAAMC,WAAW,GAAGP,gBAAgB,CAAEI,QAAQ,EAAEC,UAAW,CAAC,CAACG,MAAM;EACnE,IAAK,CAAED,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,MAAME,WAAW,GAAGH,cAAc,GAC/BR,EAAE,CAAE,eAAgB,CAAC,GACrBA,EAAE,CAAE,gBAAiB,CAAC;EAEzB,oBACCI,IAAA,CAACT,YAAY;IAACiB,SAAS,EAAC,6CAA6C;IAAAC,QAAA,eACpET,IAAA,CAACL,sBAAsB;MAAAc,QAAA,eACtBT,IAAA,CAACP,QAAQ;QACRiB,gBAAgB,EAAC,2CAA2C;QAC5DC,YAAY,EAAC,cAAc;QAC3BC,cAAc;QACdC,YAAY,EAAGA,CAAE;UAAEC,MAAM;UAAEC;QAAS,CAAC,kBACpCf,IAAA,CAACR,aAAa;UACb,iBAAc,MAAM;UACpB,iBAAgBsB,MAAQ;UACxBE,OAAO,EAAGD,QAAU;UAAAN,QAAA,EAElBF;QAAW,CACC,CACb;QACHU,aAAa,EAAGA,CAAA,kBACfjB,IAAA,CAACH,gBAAgB;UAChBK,QAAQ,EAAGA,QAAU;UACrBC,UAAU,EAAGA,UAAY;UACzBe,UAAU,EAAG,KAAO;UACpBC,mBAAmB;QAAA,CACnB;MACC,CACH;IAAC,CACqB;EAAC,CACZ,CAAC;AAEjB","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
12
12
|
*/
|
|
13
13
|
import { useAlternativeBlockPatterns, useAlternativeTemplateParts, useCreateTemplatePartFromBlocks, useTemplatePartArea } from './utils/hooks';
|
|
14
14
|
import TitleModal from './title-modal';
|
|
15
|
+
import { getTemplatePartIcon } from './utils/get-template-part-icon';
|
|
15
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
export default function TemplatePartPlaceholder({
|
|
17
18
|
area,
|
|
@@ -45,7 +46,7 @@ export default function TemplatePartPlaceholder({
|
|
|
45
46
|
const areaObject = useTemplatePartArea(area);
|
|
46
47
|
const createFromBlocks = useCreateTemplatePartFromBlocks(area, setAttributes);
|
|
47
48
|
return /*#__PURE__*/_jsxs(Placeholder, {
|
|
48
|
-
icon: areaObject.icon,
|
|
49
|
+
icon: getTemplatePartIcon(areaObject.icon),
|
|
49
50
|
label: areaObject.label,
|
|
50
51
|
instructions: isBlockBasedTheme ? sprintf(
|
|
51
52
|
// Translators: %s as template part area title ("Header", "Footer", etc.).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","sprintf","Placeholder","Button","Spinner","useState","useSelect","store","coreStore","useAlternativeBlockPatterns","useAlternativeTemplateParts","useCreateTemplatePartFromBlocks","useTemplatePartArea","TitleModal","jsx","_jsx","jsxs","_jsxs","TemplatePartPlaceholder","area","clientId","templatePartId","onOpenSelectionModal","setAttributes","templateParts","isResolving","blockPatterns","isBlockBasedTheme","canCreateTemplatePart","select","getCurrentTheme","canUser","is_block_theme","kind","name","showTitleModal","setShowTitleModal","areaObject","createFromBlocks","icon","label","instructions","toLowerCase","children","length","__next40pxDefaultSize","variant","onClick","areaLabel","onClose","onSubmit","title"],"sources":["@wordpress/block-library/src/template-part/edit/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n\tuseTemplatePartArea,\n} from './utils/hooks';\nimport TitleModal from './title-modal';\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tonOpenSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst { templateParts, isResolving } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\n\tconst { isBlockBasedTheme, canCreateTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentTheme, canUser } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ showTitleModal, setShowTitleModal ] = useState( false );\n\tconst areaObject = useTemplatePartArea( area );\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ areaObject.icon }\n\t\t\tlabel={ areaObject.label }\n\t\t\tinstructions={\n\t\t\t\tisBlockBasedTheme\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s or create a new one.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t}\n\t\t>\n\t\t\t{ isResolving && <Spinner /> }\n\n\t\t\t{ ! isResolving &&\n\t\t\t\t!! ( templateParts.length || blockPatterns.length ) && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onOpenSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t{ ! isResolving && isBlockBasedTheme && canCreateTemplatePart && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowTitleModal( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showTitleModal && (\n\t\t\t\t<TitleModal\n\t\t\t\t\tareaLabel={ areaObject.label }\n\t\t\t\t\tonClose={ () => setShowTitleModal( false ) }\n\t\t\t\t\tonSubmit={ ( title ) => {\n\t\t\t\t\t\tcreateFromBlocks( [], title );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,WAAW,EAAEC,MAAM,EAAEC,OAAO,QAAQ,uBAAuB;AACpE,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SACCC,2BAA2B,EAC3BC,2BAA2B,EAC3BC,+BAA+B,EAC/BC,mBAAmB,QACb,eAAe;AACtB,OAAOC,UAAU,MAAM,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["__","sprintf","Placeholder","Button","Spinner","useState","useSelect","store","coreStore","useAlternativeBlockPatterns","useAlternativeTemplateParts","useCreateTemplatePartFromBlocks","useTemplatePartArea","TitleModal","getTemplatePartIcon","jsx","_jsx","jsxs","_jsxs","TemplatePartPlaceholder","area","clientId","templatePartId","onOpenSelectionModal","setAttributes","templateParts","isResolving","blockPatterns","isBlockBasedTheme","canCreateTemplatePart","select","getCurrentTheme","canUser","is_block_theme","kind","name","showTitleModal","setShowTitleModal","areaObject","createFromBlocks","icon","label","instructions","toLowerCase","children","length","__next40pxDefaultSize","variant","onClick","areaLabel","onClose","onSubmit","title"],"sources":["@wordpress/block-library/src/template-part/edit/placeholder.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseAlternativeBlockPatterns,\n\tuseAlternativeTemplateParts,\n\tuseCreateTemplatePartFromBlocks,\n\tuseTemplatePartArea,\n} from './utils/hooks';\nimport TitleModal from './title-modal';\nimport { getTemplatePartIcon } from './utils/get-template-part-icon';\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\ttemplatePartId,\n\tonOpenSelectionModal,\n\tsetAttributes,\n} ) {\n\tconst { templateParts, isResolving } = useAlternativeTemplateParts(\n\t\tarea,\n\t\ttemplatePartId\n\t);\n\tconst blockPatterns = useAlternativeBlockPatterns( area, clientId );\n\n\tconst { isBlockBasedTheme, canCreateTemplatePart } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentTheme, canUser } = select( coreStore );\n\t\t\treturn {\n\t\t\t\tisBlockBasedTheme: getCurrentTheme()?.is_block_theme,\n\t\t\t\tcanCreateTemplatePart: canUser( 'create', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_template_part',\n\t\t\t\t} ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ showTitleModal, setShowTitleModal ] = useState( false );\n\tconst areaObject = useTemplatePartArea( area );\n\tconst createFromBlocks = useCreateTemplatePartFromBlocks(\n\t\tarea,\n\t\tsetAttributes\n\t);\n\n\treturn (\n\t\t<Placeholder\n\t\t\ticon={ getTemplatePartIcon( areaObject.icon ) }\n\t\t\tlabel={ areaObject.label }\n\t\t\tinstructions={\n\t\t\t\tisBlockBasedTheme\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s or create a new one.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t// Translators: %s as template part area title (\"Header\", \"Footer\", etc.).\n\t\t\t\t\t\t\t__( 'Choose an existing %s.' ),\n\t\t\t\t\t\t\tareaObject.label.toLowerCase()\n\t\t\t\t\t )\n\t\t\t}\n\t\t>\n\t\t\t{ isResolving && <Spinner /> }\n\n\t\t\t{ ! isResolving &&\n\t\t\t\t!! ( templateParts.length || blockPatterns.length ) && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onOpenSelectionModal }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Choose' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t) }\n\n\t\t\t{ ! isResolving && isBlockBasedTheme && canCreateTemplatePart && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowTitleModal( true );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Start blank' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showTitleModal && (\n\t\t\t\t<TitleModal\n\t\t\t\t\tareaLabel={ areaObject.label }\n\t\t\t\t\tonClose={ () => setShowTitleModal( false ) }\n\t\t\t\t\tonSubmit={ ( title ) => {\n\t\t\t\t\t\tcreateFromBlocks( [], title );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Placeholder>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ import clsx from 'clsx';
|
|
|
8
8
|
*/
|
|
9
9
|
import { isBlobURL } from '@wordpress/blob';
|
|
10
10
|
import { Disabled, Spinner, Placeholder, __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
11
|
-
import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps } from '@wordpress/block-editor';
|
|
11
|
+
import { BlockControls, BlockIcon, InspectorControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps, useBlockEditingMode } from '@wordpress/block-editor';
|
|
12
12
|
import { useRef, useEffect, useState } from '@wordpress/element';
|
|
13
13
|
import { __ } from '@wordpress/i18n';
|
|
14
14
|
import { useDispatch } from '@wordpress/data';
|
|
@@ -45,6 +45,8 @@ function VideoEdit({
|
|
|
45
45
|
} = attributes;
|
|
46
46
|
const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
|
|
47
47
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
48
|
+
const blockEditingMode = useBlockEditingMode();
|
|
49
|
+
const hasNonContentControls = blockEditingMode === 'default';
|
|
48
50
|
useUploadMediaFromBlobURL({
|
|
49
51
|
url: temporaryURL,
|
|
50
52
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
@@ -222,7 +224,7 @@ function VideoEdit({
|
|
|
222
224
|
isSelected: isSingleSelected,
|
|
223
225
|
insertBlocksAfter: insertBlocksAfter,
|
|
224
226
|
label: __('Video caption text'),
|
|
225
|
-
showToolbarButton: isSingleSelected
|
|
227
|
+
showToolbarButton: isSingleSelected && hasNonContentControls
|
|
226
228
|
})]
|
|
227
229
|
})]
|
|
228
230
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","isBlobURL","Disabled","Spinner","Placeholder","__experimentalToolsPanel","ToolsPanel","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","useRef","useEffect","useState","__","useDispatch","video","icon","store","noticesStore","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","useToolsPanelDropdownMenuProps","VideoCommonSettings","TracksEditor","Tracks","Caption","PosterImage","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","className","setAttributes","insertBlocksAfter","onReplace","videoPlayer","id","controls","poster","src","tracks","temporaryURL","setTemporaryURL","blob","dropdownMenuProps","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","current","load","media","undefined","caption","image","onSelectURL","newSrc","embedBlock","createErrorNotice","message","type","placeholder","content","withIllustration","label","instructions","children","classes","blockProps","onSelect","accept","value","newTracks","group","mediaId","mediaURL","onReset","resetAll","autoplay","loop","muted","playsInline","preload","posterImage","isDisabled","ref","showToolbarButton"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\nimport PosterImage from '../utils/poster-image';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\t// TODO: Whether the video was obtained from the media library or was provided by URL, obtain the `videoWidth` and `videoHeight` of the video once its metadata has loaded and persist in the block attributes.\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tonChange={ ( posterImage ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tposter: posterImage?.url,\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","isBlobURL","Disabled","Spinner","Placeholder","__experimentalToolsPanel","ToolsPanel","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","useBlockEditingMode","useRef","useEffect","useState","__","useDispatch","video","icon","store","noticesStore","createUpgradedEmbedBlock","useUploadMediaFromBlobURL","useToolsPanelDropdownMenuProps","VideoCommonSettings","TracksEditor","Tracks","Caption","PosterImage","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","className","setAttributes","insertBlocksAfter","onReplace","videoPlayer","id","controls","poster","src","tracks","temporaryURL","setTemporaryURL","blob","dropdownMenuProps","blockEditingMode","hasNonContentControls","url","allowedTypes","onChange","onSelectVideo","onError","onUploadError","current","load","media","undefined","caption","image","onSelectURL","newSrc","embedBlock","createErrorNotice","message","type","placeholder","content","withIllustration","label","instructions","children","classes","blockProps","onSelect","accept","value","newTracks","group","mediaId","mediaURL","onReset","resetAll","autoplay","loop","muted","playsInline","preload","posterImage","isDisabled","ref","showToolbarButton"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tSpinner,\n\tPlaceholder,\n\t__experimentalToolsPanel as ToolsPanel,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport {\n\tuseUploadMediaFromBlobURL,\n\tuseToolsPanelDropdownMenuProps,\n} from '../utils/hooks';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\nimport PosterImage from '../utils/poster-image';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst videoPlayer = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst blockEditingMode = useBlockEditingMode();\n\tconst hasNonContentControls = blockEditingMode === 'default';\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\tonChange: onSelectVideo,\n\t\tonError: onUploadError,\n\t} );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\t// TODO: Whether the video was obtained from the media library or was provided by URL, obtain the `videoWidth` and `videoHeight` of the video once its metadata has loaded and persist in the block attributes.\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t\tblob: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetTemporaryURL( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tblob: undefined,\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( {\n\t\t\t\tblob: undefined,\n\t\t\t\tsrc: newSrc,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\t// Much of this description is duplicated from MediaPlaceholder.\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\t\twithIllustration={ ! isSingleSelected }\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ __( 'Video' ) }\n\t\t\t\tinstructions={ __(\n\t\t\t\t\t'Drag and drop a video, upload, or choose from your library.'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = clsx( className, {\n\t\t'is-transient': !! temporaryURL,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t\tonReset={ () => onSelectVideo( undefined ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tautoplay: false,\n\t\t\t\t\t\t\tcontrols: true,\n\t\t\t\t\t\t\tloop: false,\n\t\t\t\t\t\t\tmuted: false,\n\t\t\t\t\t\t\tplaysInline: false,\n\t\t\t\t\t\t\tpreload: 'metadata',\n\t\t\t\t\t\t\tposter: undefined,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<PosterImage\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tonChange={ ( posterImage ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tposter: posterImage?.url,\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</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n Disable the video tag if the block is not selected\n so the user clicking on it won't play the\n video when the controls are enabled.\n */ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src || temporaryURL }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ !! temporaryURL && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={\n\t\t\t\t\t\tisSingleSelected && hasNonContentControls\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2660,6 +2660,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
|
|
|
2660
2660
|
margin-bottom: 0;
|
|
2661
2661
|
}
|
|
2662
2662
|
|
|
2663
|
+
.wp-block-query > .block-editor-media-placeholder.is-small {
|
|
2664
|
+
min-height: 60px;
|
|
2665
|
+
}
|
|
2666
|
+
|
|
2663
2667
|
.wp-block[data-align=center] > .wp-block-query-pagination {
|
|
2664
2668
|
justify-content: center;
|
|
2665
2669
|
}
|
package/build-style/editor.css
CHANGED
|
@@ -2667,6 +2667,10 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
|
|
|
2667
2667
|
margin-bottom: 0;
|
|
2668
2668
|
}
|
|
2669
2669
|
|
|
2670
|
+
.wp-block-query > .block-editor-media-placeholder.is-small {
|
|
2671
|
+
min-height: 60px;
|
|
2672
|
+
}
|
|
2673
|
+
|
|
2670
2674
|
.wp-block[data-align=center] > .wp-block-query-pagination {
|
|
2671
2675
|
justify-content: center;
|
|
2672
2676
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-library",
|
|
3
|
-
"version": "9.29.0",
|
|
3
|
+
"version": "9.29.1-next.e256d081a.0",
|
|
4
4
|
"description": "Block library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -42,39 +42,39 @@
|
|
|
42
42
|
],
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@babel/runtime": "7.25.7",
|
|
45
|
-
"@wordpress/a11y": "^4.29.0",
|
|
46
|
-
"@wordpress/api-fetch": "^7.29.0",
|
|
47
|
-
"@wordpress/autop": "^4.29.0",
|
|
48
|
-
"@wordpress/blob": "^4.29.0",
|
|
49
|
-
"@wordpress/block-editor": "^15.2.0",
|
|
50
|
-
"@wordpress/blocks": "^15.2.0",
|
|
51
|
-
"@wordpress/components": "^30.2.0",
|
|
52
|
-
"@wordpress/compose": "^7.29.0",
|
|
53
|
-
"@wordpress/core-data": "^7.29.0",
|
|
54
|
-
"@wordpress/data": "^10.29.0",
|
|
55
|
-
"@wordpress/date": "^5.
|
|
56
|
-
"@wordpress/deprecated": "^4.29.0",
|
|
57
|
-
"@wordpress/dom": "^4.29.0",
|
|
58
|
-
"@wordpress/element": "^6.29.0",
|
|
59
|
-
"@wordpress/escape-html": "^3.29.0",
|
|
60
|
-
"@wordpress/hooks": "^4.29.0",
|
|
61
|
-
"@wordpress/html-entities": "^4.29.0",
|
|
62
|
-
"@wordpress/i18n": "^6.2.0",
|
|
63
|
-
"@wordpress/icons": "^10.29.0",
|
|
64
|
-
"@wordpress/interactivity": "^6.29.0",
|
|
65
|
-
"@wordpress/interactivity-router": "^2.29.0",
|
|
66
|
-
"@wordpress/keyboard-shortcuts": "^5.29.0",
|
|
67
|
-
"@wordpress/keycodes": "^4.29.0",
|
|
68
|
-
"@wordpress/notices": "^5.29.0",
|
|
69
|
-
"@wordpress/patterns": "^2.29.0",
|
|
70
|
-
"@wordpress/primitives": "^4.29.0",
|
|
71
|
-
"@wordpress/private-apis": "^1.29.0",
|
|
72
|
-
"@wordpress/reusable-blocks": "^5.29.0",
|
|
73
|
-
"@wordpress/rich-text": "^7.29.0",
|
|
74
|
-
"@wordpress/server-side-render": "^6.5.0",
|
|
75
|
-
"@wordpress/url": "^4.29.0",
|
|
76
|
-
"@wordpress/viewport": "^6.29.0",
|
|
77
|
-
"@wordpress/wordcount": "^4.29.0",
|
|
45
|
+
"@wordpress/a11y": "^4.29.1-next.e256d081a.0",
|
|
46
|
+
"@wordpress/api-fetch": "^7.29.1-next.e256d081a.0",
|
|
47
|
+
"@wordpress/autop": "^4.29.1-next.e256d081a.0",
|
|
48
|
+
"@wordpress/blob": "^4.29.1-next.e256d081a.0",
|
|
49
|
+
"@wordpress/block-editor": "^15.2.1-next.e256d081a.0",
|
|
50
|
+
"@wordpress/blocks": "^15.2.1-next.e256d081a.0",
|
|
51
|
+
"@wordpress/components": "^30.2.2-next.e256d081a.0",
|
|
52
|
+
"@wordpress/compose": "^7.29.1-next.e256d081a.0",
|
|
53
|
+
"@wordpress/core-data": "^7.29.1-next.e256d081a.0",
|
|
54
|
+
"@wordpress/data": "^10.29.1-next.e256d081a.0",
|
|
55
|
+
"@wordpress/date": "^5.30.1-next.e256d081a.0",
|
|
56
|
+
"@wordpress/deprecated": "^4.29.1-next.e256d081a.0",
|
|
57
|
+
"@wordpress/dom": "^4.29.1-next.e256d081a.0",
|
|
58
|
+
"@wordpress/element": "^6.29.1-next.e256d081a.0",
|
|
59
|
+
"@wordpress/escape-html": "^3.29.1-next.e256d081a.0",
|
|
60
|
+
"@wordpress/hooks": "^4.29.1-next.e256d081a.0",
|
|
61
|
+
"@wordpress/html-entities": "^4.29.1-next.e256d081a.0",
|
|
62
|
+
"@wordpress/i18n": "^6.2.1-next.e256d081a.0",
|
|
63
|
+
"@wordpress/icons": "^10.29.1-next.e256d081a.0",
|
|
64
|
+
"@wordpress/interactivity": "^6.29.1-next.e256d081a.0",
|
|
65
|
+
"@wordpress/interactivity-router": "^2.29.1-next.e256d081a.0",
|
|
66
|
+
"@wordpress/keyboard-shortcuts": "^5.29.1-next.e256d081a.0",
|
|
67
|
+
"@wordpress/keycodes": "^4.29.1-next.e256d081a.0",
|
|
68
|
+
"@wordpress/notices": "^5.29.1-next.e256d081a.0",
|
|
69
|
+
"@wordpress/patterns": "^2.29.1-next.e256d081a.0",
|
|
70
|
+
"@wordpress/primitives": "^4.29.1-next.e256d081a.0",
|
|
71
|
+
"@wordpress/private-apis": "^1.29.1-next.e256d081a.0",
|
|
72
|
+
"@wordpress/reusable-blocks": "^5.29.1-next.e256d081a.0",
|
|
73
|
+
"@wordpress/rich-text": "^7.29.1-next.e256d081a.0",
|
|
74
|
+
"@wordpress/server-side-render": "^6.5.1-next.e256d081a.0",
|
|
75
|
+
"@wordpress/url": "^4.29.1-next.e256d081a.0",
|
|
76
|
+
"@wordpress/viewport": "^6.29.1-next.e256d081a.0",
|
|
77
|
+
"@wordpress/wordcount": "^4.29.1-next.e256d081a.0",
|
|
78
78
|
"change-case": "^4.1.2",
|
|
79
79
|
"clsx": "^2.1.1",
|
|
80
80
|
"colord": "^2.7.0",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"publishConfig": {
|
|
93
93
|
"access": "public"
|
|
94
94
|
},
|
|
95
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "7d529ba9a461795d5f1572d3856de33f744287c2"
|
|
96
96
|
}
|
package/src/audio/edit.js
CHANGED
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
MediaPlaceholder,
|
|
23
23
|
MediaReplaceFlow,
|
|
24
24
|
useBlockProps,
|
|
25
|
+
useBlockEditingMode,
|
|
25
26
|
} from '@wordpress/block-editor';
|
|
26
27
|
import { __, _x } from '@wordpress/i18n';
|
|
27
28
|
import { useDispatch } from '@wordpress/data';
|
|
@@ -51,6 +52,8 @@ function AudioEdit( {
|
|
|
51
52
|
} ) {
|
|
52
53
|
const { id, autoplay, loop, preload, src } = attributes;
|
|
53
54
|
const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
|
|
55
|
+
const blockEditingMode = useBlockEditingMode();
|
|
56
|
+
const hasNonContentControls = blockEditingMode === 'default';
|
|
54
57
|
|
|
55
58
|
useUploadMediaFromBlobURL( {
|
|
56
59
|
url: temporaryURL,
|
|
@@ -264,7 +267,9 @@ function AudioEdit( {
|
|
|
264
267
|
isSelected={ isSingleSelected }
|
|
265
268
|
insertBlocksAfter={ insertBlocksAfter }
|
|
266
269
|
label={ __( 'Audio caption text' ) }
|
|
267
|
-
showToolbarButton={
|
|
270
|
+
showToolbarButton={
|
|
271
|
+
isSingleSelected && hasNonContentControls
|
|
272
|
+
}
|
|
268
273
|
/>
|
|
269
274
|
</figure>
|
|
270
275
|
</>
|
package/src/form/block.json
CHANGED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
InnerBlocks,
|
|
6
|
+
useBlockProps,
|
|
7
|
+
getTypographyClassesAndStyles,
|
|
8
|
+
__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,
|
|
9
|
+
__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,
|
|
10
|
+
} from '@wordpress/block-editor';
|
|
11
|
+
|
|
12
|
+
const v1 = {
|
|
13
|
+
// The block supports here are deliberately empty despite this
|
|
14
|
+
// deprecated version of the block having adopted block supports.
|
|
15
|
+
// The attributes added by these supports have been manually
|
|
16
|
+
// added to this deprecated version's attributes definition so
|
|
17
|
+
// that the data isn't lost on migration. All this is so that the
|
|
18
|
+
// automatic application of block support classes doesn't occur
|
|
19
|
+
// as this version of the block had a bug that overrode those
|
|
20
|
+
// classes. If those block support classes are applied during the
|
|
21
|
+
// deprecation process, this deprecation doesn't match and won't
|
|
22
|
+
// run.
|
|
23
|
+
// @see https://github.com/WordPress/gutenberg/pull/55755
|
|
24
|
+
supports: {},
|
|
25
|
+
attributes: {
|
|
26
|
+
submissionMethod: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
default: 'email',
|
|
29
|
+
},
|
|
30
|
+
method: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
default: 'post',
|
|
33
|
+
},
|
|
34
|
+
action: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
},
|
|
37
|
+
email: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
},
|
|
40
|
+
// The following attributes have been added to match the block
|
|
41
|
+
// supports at the time of the deprecation. See above for details.
|
|
42
|
+
anchor: {
|
|
43
|
+
type: 'string',
|
|
44
|
+
source: 'attribute',
|
|
45
|
+
attribute: 'id',
|
|
46
|
+
selector: '*',
|
|
47
|
+
},
|
|
48
|
+
backgroundColor: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
},
|
|
51
|
+
textColor: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
},
|
|
54
|
+
gradient: {
|
|
55
|
+
type: 'string',
|
|
56
|
+
},
|
|
57
|
+
style: {
|
|
58
|
+
type: 'object',
|
|
59
|
+
},
|
|
60
|
+
fontFamily: {
|
|
61
|
+
type: 'string',
|
|
62
|
+
},
|
|
63
|
+
fontSize: {
|
|
64
|
+
type: 'string',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
save( { attributes } ) {
|
|
68
|
+
const { submissionMethod } = attributes;
|
|
69
|
+
const colorProps = getColorClassesAndStyles( attributes );
|
|
70
|
+
const typographyProps = getTypographyClassesAndStyles( attributes );
|
|
71
|
+
const spacingProps = getSpacingClassesAndStyles( attributes );
|
|
72
|
+
const blockProps = useBlockProps.save( {
|
|
73
|
+
// In this deprecated version, the block support is deliberately empty.
|
|
74
|
+
// As a result, the useBlockProps.save() does not output style or id attributes,
|
|
75
|
+
// so we apply them explicitly here.
|
|
76
|
+
style: {
|
|
77
|
+
...colorProps.style,
|
|
78
|
+
...typographyProps.style,
|
|
79
|
+
...spacingProps.style,
|
|
80
|
+
},
|
|
81
|
+
id: attributes.anchor,
|
|
82
|
+
} );
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<form
|
|
86
|
+
{ ...blockProps }
|
|
87
|
+
className="wp-block-form"
|
|
88
|
+
encType={ submissionMethod === 'email' ? 'text/plain' : null }
|
|
89
|
+
>
|
|
90
|
+
<InnerBlocks.Content />
|
|
91
|
+
</form>
|
|
92
|
+
);
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export default [ v1 ];
|
package/src/form/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import edit from './edit';
|
|
|
6
6
|
import metadata from './block.json';
|
|
7
7
|
import save from './save';
|
|
8
8
|
import variations from './variations';
|
|
9
|
+
import deprecated from './deprecated';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* WordPress dependencies
|
|
@@ -19,6 +20,7 @@ export { metadata, name };
|
|
|
19
20
|
export const settings = {
|
|
20
21
|
edit,
|
|
21
22
|
save,
|
|
23
|
+
deprecated,
|
|
22
24
|
variations,
|
|
23
25
|
example: {},
|
|
24
26
|
};
|
package/src/form/save.js
CHANGED
package/src/gallery/edit.js
CHANGED
|
@@ -392,7 +392,9 @@ export default function GalleryEdit( props ) {
|
|
|
392
392
|
lightboxSetting
|
|
393
393
|
);
|
|
394
394
|
} );
|
|
395
|
-
updateBlockAttributes( blocks, changedAttributes,
|
|
395
|
+
updateBlockAttributes( blocks, changedAttributes, {
|
|
396
|
+
uniqueByBlock: true,
|
|
397
|
+
} );
|
|
396
398
|
const linkToText = [ ...linkOptions ].find(
|
|
397
399
|
( linkType ) => linkType.value === value
|
|
398
400
|
);
|
|
@@ -434,7 +436,9 @@ export default function GalleryEdit( props ) {
|
|
|
434
436
|
block.attributes
|
|
435
437
|
);
|
|
436
438
|
} );
|
|
437
|
-
updateBlockAttributes( blocks, changedAttributes,
|
|
439
|
+
updateBlockAttributes( blocks, changedAttributes, {
|
|
440
|
+
uniqueByBlock: true,
|
|
441
|
+
} );
|
|
438
442
|
const noticeText = openInNewTab
|
|
439
443
|
? __( 'All gallery images updated to open in new tab' )
|
|
440
444
|
: __( 'All gallery images updated to not open in new tab' );
|
|
@@ -458,7 +462,9 @@ export default function GalleryEdit( props ) {
|
|
|
458
462
|
newSizeSlug
|
|
459
463
|
);
|
|
460
464
|
} );
|
|
461
|
-
updateBlockAttributes( blocks, changedAttributes,
|
|
465
|
+
updateBlockAttributes( blocks, changedAttributes, {
|
|
466
|
+
uniqueByBlock: true,
|
|
467
|
+
} );
|
|
462
468
|
const imageSize = imageSizeOptions.find(
|
|
463
469
|
( size ) => size.value === newSizeSlug
|
|
464
470
|
);
|
package/src/image/edit.js
CHANGED
|
@@ -99,7 +99,6 @@ export function ImageEdit( {
|
|
|
99
99
|
} ) {
|
|
100
100
|
const {
|
|
101
101
|
url = '',
|
|
102
|
-
alt,
|
|
103
102
|
caption,
|
|
104
103
|
id,
|
|
105
104
|
width,
|
|
@@ -127,11 +126,6 @@ export function ImageEdit( {
|
|
|
127
126
|
|
|
128
127
|
const isSmallContainer = placeholderWidth && placeholderWidth < 160;
|
|
129
128
|
|
|
130
|
-
const altRef = useRef();
|
|
131
|
-
useEffect( () => {
|
|
132
|
-
altRef.current = alt;
|
|
133
|
-
}, [ alt ] );
|
|
134
|
-
|
|
135
129
|
const captionRef = useRef();
|
|
136
130
|
useEffect( () => {
|
|
137
131
|
captionRef.current = caption;
|
package/src/image/image.js
CHANGED
|
@@ -706,7 +706,8 @@ export default function Image( {
|
|
|
706
706
|
! lockHrefControls &&
|
|
707
707
|
! lockUrlControls;
|
|
708
708
|
|
|
709
|
-
const showCoverControls =
|
|
709
|
+
const showCoverControls =
|
|
710
|
+
isSingleSelected && canInsertCover && ! isContentOnlyMode;
|
|
710
711
|
|
|
711
712
|
const showBlockControls = showUrlInput || allowCrop || showCoverControls;
|
|
712
713
|
|
package/src/query/edit/index.js
CHANGED
|
@@ -5,12 +5,12 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
5
5
|
import { useInstanceId } from '@wordpress/compose';
|
|
6
6
|
import { useEffect, useCallback } from '@wordpress/element';
|
|
7
7
|
import {
|
|
8
|
-
BlockControls,
|
|
9
8
|
InspectorControls,
|
|
10
9
|
useBlockProps,
|
|
11
10
|
store as blockEditorStore,
|
|
12
11
|
useInnerBlocksProps,
|
|
13
12
|
privateApis as blockEditorPrivateApis,
|
|
13
|
+
BlockControls,
|
|
14
14
|
} from '@wordpress/block-editor';
|
|
15
15
|
import { __ } from '@wordpress/i18n';
|
|
16
16
|
import { store as coreStore } from '@wordpress/core-data';
|
|
@@ -130,6 +130,13 @@ export default function QueryContent( {
|
|
|
130
130
|
|
|
131
131
|
return (
|
|
132
132
|
<>
|
|
133
|
+
<BlockControls>
|
|
134
|
+
<QueryToolbar
|
|
135
|
+
clientId={ clientId }
|
|
136
|
+
attributes={ attributes }
|
|
137
|
+
hasInnerBlocks
|
|
138
|
+
/>
|
|
139
|
+
</BlockControls>
|
|
133
140
|
<EnhancedPaginationModal
|
|
134
141
|
attributes={ attributes }
|
|
135
142
|
setAttributes={ setAttributes }
|
|
@@ -145,9 +152,6 @@ export default function QueryContent( {
|
|
|
145
152
|
isSingular={ isSingular }
|
|
146
153
|
/>
|
|
147
154
|
</InspectorControls>
|
|
148
|
-
<BlockControls>
|
|
149
|
-
<QueryToolbar attributes={ attributes } clientId={ clientId } />
|
|
150
|
-
</BlockControls>
|
|
151
155
|
<InspectorControls group="advanced">
|
|
152
156
|
<HTMLElementControl
|
|
153
157
|
tagName={ TagName }
|