@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.
Files changed (70) hide show
  1. package/build/audio/edit.js +3 -1
  2. package/build/audio/edit.js.map +1 -1
  3. package/build/form/deprecated.js +97 -0
  4. package/build/form/deprecated.js.map +1 -0
  5. package/build/form/index.js +2 -1
  6. package/build/form/index.js.map +1 -1
  7. package/build/form/save.js +0 -1
  8. package/build/form/save.js.map +1 -1
  9. package/build/gallery/edit.js +9 -3
  10. package/build/gallery/edit.js.map +1 -1
  11. package/build/image/edit.js +0 -5
  12. package/build/image/edit.js.map +1 -1
  13. package/build/image/image.js +1 -1
  14. package/build/image/image.js.map +1 -1
  15. package/build/query/edit/index.js.map +1 -1
  16. package/build/query/edit/query-content.js +7 -6
  17. package/build/query/edit/query-content.js.map +1 -1
  18. package/build/query/edit/query-placeholder.js +30 -9
  19. package/build/query/edit/query-placeholder.js.map +1 -1
  20. package/build/query/edit/query-toolbar.js +4 -2
  21. package/build/query/edit/query-toolbar.js.map +1 -1
  22. package/build/template-part/edit/placeholder.js +2 -1
  23. package/build/template-part/edit/placeholder.js.map +1 -1
  24. package/build/video/edit.js +3 -1
  25. package/build/video/edit.js.map +1 -1
  26. package/build-module/audio/edit.js +4 -2
  27. package/build-module/audio/edit.js.map +1 -1
  28. package/build-module/form/deprecated.js +90 -0
  29. package/build-module/form/deprecated.js.map +1 -0
  30. package/build-module/form/index.js +2 -1
  31. package/build-module/form/index.js.map +1 -1
  32. package/build-module/form/save.js +0 -1
  33. package/build-module/form/save.js.map +1 -1
  34. package/build-module/gallery/edit.js +9 -3
  35. package/build-module/gallery/edit.js.map +1 -1
  36. package/build-module/image/edit.js +0 -5
  37. package/build-module/image/edit.js.map +1 -1
  38. package/build-module/image/image.js +1 -1
  39. package/build-module/image/image.js.map +1 -1
  40. package/build-module/query/edit/index.js.map +1 -1
  41. package/build-module/query/edit/query-content.js +8 -7
  42. package/build-module/query/edit/query-content.js.map +1 -1
  43. package/build-module/query/edit/query-placeholder.js +30 -10
  44. package/build-module/query/edit/query-placeholder.js.map +1 -1
  45. package/build-module/query/edit/query-toolbar.js +4 -2
  46. package/build-module/query/edit/query-toolbar.js.map +1 -1
  47. package/build-module/template-part/edit/placeholder.js +2 -1
  48. package/build-module/template-part/edit/placeholder.js.map +1 -1
  49. package/build-module/video/edit.js +4 -2
  50. package/build-module/video/edit.js.map +1 -1
  51. package/build-style/editor-rtl.css +4 -0
  52. package/build-style/editor.css +4 -0
  53. package/build-style/query/editor-rtl.css +4 -0
  54. package/build-style/query/editor.css +4 -0
  55. package/package.json +35 -35
  56. package/src/audio/edit.js +6 -1
  57. package/src/form/block.json +0 -1
  58. package/src/form/deprecated.js +96 -0
  59. package/src/form/index.js +2 -0
  60. package/src/form/save.js +0 -1
  61. package/src/gallery/edit.js +9 -3
  62. package/src/image/edit.js +0 -6
  63. package/src/image/image.js +2 -1
  64. package/src/query/edit/index.js +1 -0
  65. package/src/query/edit/query-content.js +8 -4
  66. package/src/query/edit/query-placeholder.js +47 -17
  67. package/src/query/edit/query-toolbar.js +10 -2
  68. package/src/query/editor.scss +6 -1
  69. package/src/template-part/edit/placeholder.js +2 -1
  70. 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: __('Change design')
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( { clientId, attributes } ) {\n\tconst hasPatterns = useBlockPatterns( clientId, attributes ).length;\n\tif ( ! hasPatterns ) {\n\t\treturn null;\n\t}\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{ __( 'Change design' ) }\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;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EAChE,MAAMC,WAAW,GAAGN,gBAAgB,CAAEI,QAAQ,EAAEC,UAAW,CAAC,CAACE,MAAM;EACnE,IAAK,CAAED,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,oBACCJ,IAAA,CAACT,YAAY;IAACe,SAAS,EAAC,6CAA6C;IAAAC,QAAA,eACpEP,IAAA,CAACL,sBAAsB;MAAAY,QAAA,eACtBP,IAAA,CAACP,QAAQ;QACRe,gBAAgB,EAAC,2CAA2C;QAC5DC,YAAY,EAAC,cAAc;QAC3BC,cAAc;QACdC,YAAY,EAAGA,CAAE;UAAEC,MAAM;UAAEC;QAAS,CAAC,kBACpCb,IAAA,CAACR,aAAa;UACb,iBAAc,MAAM;UACpB,iBAAgBoB,MAAQ;UACxBE,OAAO,EAAGD,QAAU;UAAAN,QAAA,EAElBX,EAAE,CAAE,eAAgB;QAAC,CACT,CACb;QACHmB,aAAa,EAAGA,CAAA,kBACff,IAAA,CAACH,gBAAgB;UAChBK,QAAQ,EAAGA,QAAU;UACrBC,UAAU,EAAGA,UAAY;UACzBa,UAAU,EAAG,KAAO;UACpBC,mBAAmB;QAAA,CACnB;MACC,CACH;IAAC,CACqB;EAAC,CACZ,CAAC;AAEjB","ignoreList":[]}
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":"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","ignoreList":[]}
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
  }
@@ -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
  }
@@ -186,4 +186,8 @@
186
186
  }
187
187
  .block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item {
188
188
  margin-bottom: 0;
189
+ }
190
+
191
+ .wp-block-query > .block-editor-media-placeholder.is-small {
192
+ min-height: 60px;
189
193
  }
@@ -186,4 +186,8 @@
186
186
  }
187
187
  .block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item {
188
188
  margin-bottom: 0;
189
+ }
190
+
191
+ .wp-block-query > .block-editor-media-placeholder.is-small {
192
+ min-height: 60px;
189
193
  }
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.29.0",
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": "445ede01e8abc8e49a1101b21a3651adbe852120"
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={ isSingleSelected }
270
+ showToolbarButton={
271
+ isSingleSelected && hasNonContentControls
272
+ }
268
273
  />
269
274
  </figure>
270
275
  </>
@@ -36,7 +36,6 @@
36
36
  },
37
37
  "supports": {
38
38
  "anchor": true,
39
- "className": false,
40
39
  "color": {
41
40
  "gradients": true,
42
41
  "link": true,
@@ -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
@@ -10,7 +10,6 @@ export default function save( { attributes } ) {
10
10
  return (
11
11
  <form
12
12
  { ...blockProps }
13
- className="wp-block-form"
14
13
  encType={ submissionMethod === 'email' ? 'text/plain' : null }
15
14
  >
16
15
  <InnerBlocks.Content />
@@ -392,7 +392,9 @@ export default function GalleryEdit( props ) {
392
392
  lightboxSetting
393
393
  );
394
394
  } );
395
- updateBlockAttributes( blocks, changedAttributes, true );
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, true );
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, true );
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;
@@ -706,7 +706,8 @@ export default function Image( {
706
706
  ! lockHrefControls &&
707
707
  ! lockUrlControls;
708
708
 
709
- const showCoverControls = isSingleSelected && canInsertCover;
709
+ const showCoverControls =
710
+ isSingleSelected && canInsertCover && ! isContentOnlyMode;
710
711
 
711
712
  const showBlockControls = showUrlInput || allowCrop || showCoverControls;
712
713
 
@@ -22,6 +22,7 @@ const QueryEdit = ( props ) => {
22
22
  [ clientId ]
23
23
  );
24
24
  const Component = hasInnerBlocks ? QueryContent : QueryPlaceholder;
25
+
25
26
  return (
26
27
  <>
27
28
  <Component
@@ -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 }