@wordpress/block-library 7.14.10 → 7.14.12

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 (46) hide show
  1. package/build/cover/edit/index.js +3 -1
  2. package/build/cover/edit/index.js.map +1 -1
  3. package/build/list/utils.js +4 -8
  4. package/build/list/utils.js.map +1 -1
  5. package/build/list-item/edit.js +2 -1
  6. package/build/list-item/edit.js.map +1 -1
  7. package/build/page-list/edit.js +29 -10
  8. package/build/page-list/edit.js.map +1 -1
  9. package/build-module/cover/edit/index.js +3 -1
  10. package/build-module/cover/edit/index.js.map +1 -1
  11. package/build-module/list/utils.js +5 -9
  12. package/build-module/list/utils.js.map +1 -1
  13. package/build-module/list-item/edit.js +2 -1
  14. package/build-module/list-item/edit.js.map +1 -1
  15. package/build-module/page-list/edit.js +29 -10
  16. package/build-module/page-list/edit.js.map +1 -1
  17. package/build-style/common-rtl.css +3 -1
  18. package/build-style/common.css +3 -1
  19. package/build-style/cover/style-rtl.css +2 -1
  20. package/build-style/cover/style.css +2 -1
  21. package/build-style/editor-rtl.css +1 -0
  22. package/build-style/editor.css +1 -0
  23. package/build-style/gallery/style-rtl.css +4 -2
  24. package/build-style/gallery/style.css +4 -2
  25. package/build-style/style-rtl.css +16 -5
  26. package/build-style/style.css +16 -5
  27. package/build-style/table/editor-rtl.css +1 -0
  28. package/build-style/table/editor.css +1 -0
  29. package/build-style/table/style-rtl.css +5 -0
  30. package/build-style/table/style.css +5 -0
  31. package/build-style/table/theme-rtl.css +0 -2
  32. package/build-style/table/theme.css +0 -2
  33. package/build-style/theme-rtl.css +0 -2
  34. package/build-style/theme.css +0 -2
  35. package/build-style/video/style-rtl.css +2 -1
  36. package/build-style/video/style.css +2 -1
  37. package/package.json +6 -6
  38. package/src/cover/edit/index.js +3 -1
  39. package/src/list/utils.js +3 -11
  40. package/src/list-item/edit.js +1 -0
  41. package/src/page-list/edit.js +36 -22
  42. package/src/post-featured-image/index.php +17 -18
  43. package/src/table/editor.scss +1 -0
  44. package/src/table/style.scss +7 -0
  45. package/src/table/theme.scss +0 -2
  46. package/src/template-part/index.php +5 -0
@@ -53,6 +53,34 @@ export default function PageListEdit(_ref) {
53
53
  style: { ...((_context$style = context.style) === null || _context$style === void 0 ? void 0 : _context$style.color)
54
54
  }
55
55
  });
56
+
57
+ const getBlockContent = () => {
58
+ if (!hasResolvedPages) {
59
+ return createElement("div", blockProps, createElement(Spinner, null));
60
+ }
61
+
62
+ if (totalPages === null) {
63
+ return createElement("div", blockProps, createElement(Notice, {
64
+ status: 'warning',
65
+ isDismissible: false
66
+ }, __('Page List: Cannot retrieve Pages.')));
67
+ }
68
+
69
+ if (totalPages === 0) {
70
+ return createElement("div", blockProps, createElement(Notice, {
71
+ status: 'info',
72
+ isDismissible: false
73
+ }, __('Page List: Cannot retrieve Pages.')));
74
+ }
75
+
76
+ if (totalPages > 0) {
77
+ return createElement("ul", blockProps, createElement(PageItems, {
78
+ context: context,
79
+ pagesByParentId: pagesByParentId
80
+ }));
81
+ }
82
+ };
83
+
56
84
  return createElement(Fragment, null, allowConvertToLinks && createElement(BlockControls, {
57
85
  group: "other"
58
86
  }, createElement(ToolbarButton, {
@@ -61,16 +89,7 @@ export default function PageListEdit(_ref) {
61
89
  }, __('Edit'))), allowConvertToLinks && isOpen && createElement(ConvertToLinksModal, {
62
90
  onClose: closeModal,
63
91
  clientId: clientId
64
- }), !hasResolvedPages && createElement("div", blockProps, createElement(Spinner, null)), hasResolvedPages && totalPages === null && createElement("div", blockProps, createElement(Notice, {
65
- status: 'warning',
66
- isDismissible: false
67
- }, __('Page List: Cannot retrieve Pages.'))), totalPages === 0 && createElement("div", blockProps, createElement(Notice, {
68
- status: 'info',
69
- isDismissible: false
70
- }, __('Page List: Cannot retrieve Pages.'))), totalPages > 0 && createElement("ul", blockProps, createElement(PageItems, {
71
- context: context,
72
- pagesByParentId: pagesByParentId
73
- })));
92
+ }), getBlockContent());
74
93
  }
75
94
 
76
95
  function useFrontPageId() {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","BlockControls","useBlockProps","getColorClassName","ToolbarButton","Spinner","Notice","__","useMemo","useState","memo","useSelect","store","coreStore","useEntityRecords","ConvertToLinksModal","ItemSubmenuIcon","MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","hasResolvedPages","usePageData","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","useFrontPageId","select","canReadSettings","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","records","pages","hasResolved","orderby","order","_fields","per_page","sortedPages","sort","a","b","menu_order","title","rendered","localeCompare","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","frontPageId","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","link"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Spinner, Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore, useEntityRecords } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! hasResolvedPages && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ hasResolvedPages && totalPages === null && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages > 0 && (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'settings'\n\t\t);\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nfunction usePageData() {\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t}\n\t);\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = [ ...( pages ?? [] ) ].sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pages, hasResolvedPages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\tconst frontPageId = useFrontPageId();\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t\t'menu-item-home': page.id === frontPageId,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","BlockControls","useBlockProps","getColorClassName","ToolbarButton","Spinner","Notice","__","useMemo","useState","memo","useSelect","store","coreStore","useEntityRecords","ConvertToLinksModal","ItemSubmenuIcon","MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","hasResolvedPages","usePageData","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","getBlockContent","useFrontPageId","select","canReadSettings","canUser","undefined","site","getEntityRecord","show_on_front","page_on_front","records","pages","hasResolved","orderby","order","_fields","per_page","sortedPages","sort","a","b","menu_order","title","rendered","localeCompare","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","frontPageId","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","link"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,aADD,EAECC,aAFD,EAGCC,iBAHD,QAIO,yBAJP;AAKA,SAASC,aAAT,EAAwBC,OAAxB,EAAiCC,MAAjC,QAA+C,uBAA/C;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,OAAT,EAAkBC,QAAlB,EAA4BC,IAA5B,QAAwC,oBAAxC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,KAAK,IAAIC,SAAlB,EAA6BC,gBAA7B,QAAqD,sBAArD;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,eAAT,QAAgC,0BAAhC,C,CAEA;AACA;;AACA,MAAMC,cAAc,GAAG,GAAvB;AAEA,eAAe,SAASC,YAAT,OAA+C;AAAA;;AAAA,MAAxB;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAwB;AAC7D,QAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA,UAAnB;AAA+BC,IAAAA;AAA/B,MAAoDC,WAAW,EAArE;AAEA,QAAMC,iBAAiB,IAAG,qBAAqBN,OAAxB,CAAvB;AACA,QAAMO,mBAAmB,GACxBD,iBAAiB,IAAIH,UAAU,IAAIL,cADpC;AAGA,QAAM,CAAEU,MAAF,EAAUC,OAAV,IAAsBnB,QAAQ,CAAE,KAAF,CAApC;;AACA,QAAMoB,SAAS,GAAG,MAAMD,OAAO,CAAE,IAAF,CAA/B;;AACA,QAAME,UAAU,GAAG,MAAMF,OAAO,CAAE,KAAF,CAAhC;;AAEA,QAAMG,UAAU,GAAG7B,aAAa,CAAE;AACjC8B,IAAAA,SAAS,EAAEhC,UAAU,CAAE,oBAAF,EAAwB;AAC5C,wBAAkB,CAAC,CAAEmB,OAAO,CAACc,SADe;AAE5C,OAAE9B,iBAAiB,CAAE,OAAF,EAAWgB,OAAO,CAACc,SAAnB,CAAnB,GACC,CAAC,CAAEd,OAAO,CAACc,SAHgC;AAI5C,wBAAkB,CAAC,CAAEd,OAAO,CAACe,eAJe;AAK5C,OAAE/B,iBAAiB,CAClB,kBADkB,EAElBgB,OAAO,CAACe,eAFU,CAAnB,GAGK,CAAC,CAAEf,OAAO,CAACe;AAR4B,KAAxB,CADY;AAWjCC,IAAAA,KAAK,EAAE,EAAE,sBAAGhB,OAAO,CAACgB,KAAX,mDAAG,eAAeC,KAAlB;AAAF;AAX0B,GAAF,CAAhC;;AAcA,QAAMC,eAAe,GAAG,MAAM;AAC7B,QAAK,CAAEd,gBAAP,EAA0B;AACzB,aACC,qBAAUQ,UAAV,EACC,cAAC,OAAD,OADD,CADD;AAKA;;AAED,QAAKT,UAAU,KAAK,IAApB,EAA2B;AAC1B,aACC,qBAAUS,UAAV,EACC,cAAC,MAAD;AAAQ,QAAA,MAAM,EAAG,SAAjB;AAA6B,QAAA,aAAa,EAAG;AAA7C,SACGxB,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,QAAKe,UAAU,KAAK,CAApB,EAAwB;AACvB,aACC,qBAAUS,UAAV,EACC,cAAC,MAAD;AAAQ,QAAA,MAAM,EAAG,MAAjB;AAA0B,QAAA,aAAa,EAAG;AAA1C,SACGxB,EAAE,CAAE,mCAAF,CADL,CADD,CADD;AAOA;;AAED,QAAKe,UAAU,GAAG,CAAlB,EAAsB;AACrB,aACC,oBAASS,UAAT,EACC,cAAC,SAAD;AACC,QAAA,OAAO,EAAGZ,OADX;AAEC,QAAA,eAAe,EAAGE;AAFnB,QADD,CADD;AAQA;AACD,GAvCD;;AAyCA,SACC,8BACGK,mBAAmB,IACpB,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAGnB,EAAE,CAAE,MAAF,CAAzB;AAAsC,IAAA,OAAO,EAAGsB;AAAhD,KACGtB,EAAE,CAAE,MAAF,CADL,CADD,CAFF,EAQGmB,mBAAmB,IAAIC,MAAvB,IACD,cAAC,mBAAD;AACC,IAAA,OAAO,EAAGG,UADX;AAEC,IAAA,QAAQ,EAAGV;AAFZ,IATF,EAeGiB,eAAe,EAflB,CADD;AAmBA;;AAED,SAASC,cAAT,GAA0B;AACzB,SAAO3B,SAAS,CAAI4B,MAAF,IAAc;AAC/B,UAAMC,eAAe,GAAGD,MAAM,CAAE1B,SAAF,CAAN,CAAoB4B,OAApB,CACvB,MADuB,EAEvB,UAFuB,CAAxB;;AAIA,QAAK,CAAED,eAAP,EAAyB;AACxB,aAAOE,SAAP;AACA;;AAED,UAAMC,IAAI,GAAGJ,MAAM,CAAE1B,SAAF,CAAN,CAAoB+B,eAApB,CAAqC,MAArC,EAA6C,MAA7C,CAAb;AACA,WAAO,CAAAD,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEE,aAAN,MAAwB,MAAxB,KAAkCF,IAAlC,aAAkCA,IAAlC,uBAAkCA,IAAI,CAAEG,aAAxC,CAAP;AACA,GAXe,EAWb,EAXa,CAAhB;AAYA;;AAED,SAAStB,WAAT,GAAuB;AACtB,QAAM;AAAEuB,IAAAA,OAAO,EAAEC,KAAX;AAAkBC,IAAAA,WAAW,EAAE1B;AAA/B,MAAoDT,gBAAgB,CACzE,UADyE,EAEzE,MAFyE,EAGzE;AACCoC,IAAAA,OAAO,EAAE,YADV;AAECC,IAAAA,KAAK,EAAE,KAFR;AAGCC,IAAAA,OAAO,EAAE,CAAE,IAAF,EAAQ,MAAR,EAAgB,QAAhB,EAA0B,OAA1B,EAAmC,YAAnC,CAHV;AAICC,IAAAA,QAAQ,EAAE,CAAC,CAJZ;AAKClC,IAAAA,OAAO,EAAE;AALV,GAHyE,CAA1E;AAYA,SAAOX,OAAO,CAAE,MAAM;AAAA;;AACrB;AACA;AACA;AACA,UAAM8C,WAAW,GAAG,CAAE,IAAKN,KAAL,aAAKA,KAAL,cAAKA,KAAL,GAAc,EAAd,CAAF,EAAuBO,IAAvB,CAA6B,CAAEC,CAAF,EAAKC,CAAL,KAAY;AAC5D,UAAKD,CAAC,CAACE,UAAF,KAAiBD,CAAC,CAACC,UAAxB,EAAqC;AACpC,eAAOF,CAAC,CAACG,KAAF,CAAQC,QAAR,CAAiBC,aAAjB,CAAgCJ,CAAC,CAACE,KAAF,CAAQC,QAAxC,CAAP;AACA;;AACD,aAAOJ,CAAC,CAACE,UAAF,GAAeD,CAAC,CAACC,UAAxB;AACA,KALmB,CAApB;AAMA,UAAMrC,eAAe,GAAGiC,WAAW,CAACQ,MAAZ,CAAoB,CAAEC,WAAF,EAAeC,IAAf,KAAyB;AACpE,YAAM;AAAEC,QAAAA;AAAF,UAAaD,IAAnB;;AACA,UAAKD,WAAW,CAACG,GAAZ,CAAiBD,MAAjB,CAAL,EAAiC;AAChCF,QAAAA,WAAW,CAACI,GAAZ,CAAiBF,MAAjB,EAA0BG,IAA1B,CAAgCJ,IAAhC;AACA,OAFD,MAEO;AACND,QAAAA,WAAW,CAACM,GAAZ,CAAiBJ,MAAjB,EAAyB,CAAED,IAAF,CAAzB;AACA;;AACD,aAAOD,WAAP;AACA,KARuB,EAQrB,IAAIO,GAAJ,EARqB,CAAxB;AAUA,WAAO;AACNjD,MAAAA,eADM;AAENE,MAAAA,gBAFM;AAGND,MAAAA,UAAU,mBAAE0B,KAAF,aAAEA,KAAF,uBAAEA,KAAK,CAAEuB,MAAT,yDAAmB;AAHvB,KAAP;AAKA,GAzBa,EAyBX,CAAEvB,KAAF,EAASzB,gBAAT,CAzBW,CAAd;AA0BA;;AAED,MAAMiD,SAAS,GAAG9D,IAAI,CAAE,SAAS8D,SAAT,QAKpB;AAAA,MALwC;AAC3CrD,IAAAA,OAD2C;AAE3CE,IAAAA,eAF2C;AAG3CoD,IAAAA,QAAQ,GAAG,CAHgC;AAI3CC,IAAAA,KAAK,GAAG;AAJmC,GAKxC;AACH,QAAM1B,KAAK,GAAG3B,eAAe,CAAC8C,GAAhB,CAAqBM,QAArB,CAAd;AACA,QAAME,WAAW,GAAGrC,cAAc,EAAlC;;AAEA,MAAK,EAAEU,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEuB,MAAT,CAAL,EAAuB;AACtB,WAAO,EAAP;AACA;;AAED,SAAOvB,KAAK,CAAC4B,GAAN,CAAaZ,IAAF,IAAY;AAAA;;AAC7B,UAAMa,WAAW,GAAGxD,eAAe,CAAC6C,GAAhB,CAAqBF,IAAI,CAACc,EAA1B,CAApB;AACA,UAAMrD,iBAAiB,IAAG,qBAAqBN,OAAxB,CAAvB;AACA,WACC;AACC,MAAA,GAAG,EAAG6C,IAAI,CAACc,EADZ;AAEC,MAAA,SAAS,EAAG9E,UAAU,CAAE,2BAAF,EAA+B;AACpD,qBAAa6E,WADuC;AAEpD,oCAA4BpD,iBAFwB;AAGpD,yBAAiBN,OAAO,CAAC4D,mBAH2B;AAIpD,+BACC,CAAE5D,OAAO,CAAC4D,mBAAV,IACA5D,OAAO,CAAC6D,eAN2C;AAOpD,0BAAkBhB,IAAI,CAACc,EAAL,KAAYH;AAPsB,OAA/B;AAFvB,OAYGE,WAAW,IAAI1D,OAAO,CAAC4D,mBAAvB,GACD,8BACC;AACC,MAAA,SAAS,EAAC,uEADX;AAEC,uBAAc;AAFf,sBAIGf,IAAI,CAACL,KAJR,gDAIG,YAAYC,QAJf,CADD,EAOC;AAAM,MAAA,SAAS,EAAC;AAAhB,OACC,cAAC,eAAD,OADD,CAPD,CADC,GAaD;AACC,MAAA,SAAS,EAAG5D,UAAU,CACrB,iCADqB,EAErB;AACC,6CACCyB;AAFF,OAFqB,CADvB;AAQC,MAAA,IAAI,EAAGuC,IAAI,CAACiB;AARb,uBAUGjB,IAAI,CAACL,KAVR,iDAUG,aAAYC,QAVf,CAzBF,EAsCGiB,WAAW,IACZ,8BACG,CAAE1D,OAAO,CAAC4D,mBAAV,IACD5D,OAAO,CAAC6D,eADP,IAEA;AACC,MAAA,SAAS,EAAC,0IADX;AAEC,uBAAc;AAFf,OAIC,cAAC,eAAD,OAJD,CAHH,EAUC;AACC,MAAA,SAAS,EAAGhF,UAAU,CAAE,mBAAF,EAAuB;AAC5C,kDACCyB;AAF2C,OAAvB;AADvB,OAMC,cAAC,SAAD;AACC,MAAA,OAAO,EAAGN,OADX;AAEC,MAAA,eAAe,EAAGE,eAFnB;AAGC,MAAA,QAAQ,EAAG2C,IAAI,CAACc,EAHjB;AAIC,MAAA,KAAK,EAAGJ,KAAK,GAAG;AAJjB,MAND,CAVD,CAvCF,CADD;AAmEA,GAtEM,CAAP;AAuEA,CApFqB,CAAtB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Spinner, Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore, useEntityRecords } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport ConvertToLinksModal from './convert-to-links-modal';\nimport { ItemSubmenuIcon } from '../navigation-link/icons';\n\n// We only show the edit option when page count is <= MAX_PAGE_COUNT\n// Performance of Navigation Links is not good past this value.\nconst MAX_PAGE_COUNT = 100;\n\nexport default function PageListEdit( { context, clientId } ) {\n\tconst { pagesByParentId, totalPages, hasResolvedPages } = usePageData();\n\n\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\tconst allowConvertToLinks =\n\t\tisNavigationChild && totalPages <= MAX_PAGE_COUNT;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst openModal = () => setOpen( true );\n\tconst closeModal = () => setOpen( false );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-page-list', {\n\t\t\t'has-text-color': !! context.textColor,\n\t\t\t[ getColorClassName( 'color', context.textColor ) ]:\n\t\t\t\t!! context.textColor,\n\t\t\t'has-background': !! context.backgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tcontext.backgroundColor\n\t\t\t) ]: !! context.backgroundColor,\n\t\t} ),\n\t\tstyle: { ...context.style?.color },\n\t} );\n\n\tconst getBlockContent = () => {\n\t\tif ( ! hasResolvedPages ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === null ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'warning' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages === 0 ) {\n\t\t\treturn (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Notice status={ 'info' } isDismissible={ false }>\n\t\t\t\t\t\t{ __( 'Page List: Cannot retrieve Pages.' ) }\n\t\t\t\t\t</Notice>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif ( totalPages > 0 ) {\n\t\t\treturn (\n\t\t\t\t<ul { ...blockProps }>\n\t\t\t\t\t<PageItems\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t/>\n\t\t\t\t</ul>\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{ allowConvertToLinks && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t{ allowConvertToLinks && isOpen && (\n\t\t\t\t<ConvertToLinksModal\n\t\t\t\t\tonClose={ closeModal }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ getBlockContent() }\n\t\t</>\n\t);\n}\n\nfunction useFrontPageId() {\n\treturn useSelect( ( select ) => {\n\t\tconst canReadSettings = select( coreStore ).canUser(\n\t\t\t'read',\n\t\t\t'settings'\n\t\t);\n\t\tif ( ! canReadSettings ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst site = select( coreStore ).getEntityRecord( 'root', 'site' );\n\t\treturn site?.show_on_front === 'page' && site?.page_on_front;\n\t}, [] );\n}\n\nfunction usePageData() {\n\tconst { records: pages, hasResolved: hasResolvedPages } = useEntityRecords(\n\t\t'postType',\n\t\t'page',\n\t\t{\n\t\t\torderby: 'menu_order',\n\t\t\torder: 'asc',\n\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\tper_page: -1,\n\t\t\tcontext: 'view',\n\t\t}\n\t);\n\n\treturn useMemo( () => {\n\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t// 'orderby', this can be removed.\n\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\tconst sortedPages = [ ...( pages ?? [] ) ].sort( ( a, b ) => {\n\t\t\tif ( a.menu_order === b.menu_order ) {\n\t\t\t\treturn a.title.rendered.localeCompare( b.title.rendered );\n\t\t\t}\n\t\t\treturn a.menu_order - b.menu_order;\n\t\t} );\n\t\tconst pagesByParentId = sortedPages.reduce( ( accumulator, page ) => {\n\t\t\tconst { parent } = page;\n\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t} else {\n\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t}, new Map() );\n\n\t\treturn {\n\t\t\tpagesByParentId,\n\t\t\thasResolvedPages,\n\t\t\ttotalPages: pages?.length ?? null,\n\t\t};\n\t}, [ pages, hasResolvedPages ] );\n}\n\nconst PageItems = memo( function PageItems( {\n\tcontext,\n\tpagesByParentId,\n\tparentId = 0,\n\tdepth = 0,\n} ) {\n\tconst pages = pagesByParentId.get( parentId );\n\tconst frontPageId = useFrontPageId();\n\n\tif ( ! pages?.length ) {\n\t\treturn [];\n\t}\n\n\treturn pages.map( ( page ) => {\n\t\tconst hasChildren = pagesByParentId.has( page.id );\n\t\tconst isNavigationChild = 'showSubmenuIcon' in context;\n\t\treturn (\n\t\t\t<li\n\t\t\t\tkey={ page.id }\n\t\t\t\tclassName={ classnames( 'wp-block-pages-list__item', {\n\t\t\t\t\t'has-child': hasChildren,\n\t\t\t\t\t'wp-block-navigation-item': isNavigationChild,\n\t\t\t\t\t'open-on-click': context.openSubmenusOnClick,\n\t\t\t\t\t'open-on-hover-click':\n\t\t\t\t\t\t! context.openSubmenusOnClick &&\n\t\t\t\t\t\tcontext.showSubmenuIcon,\n\t\t\t\t\t'menu-item-home': page.id === frontPageId,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t\t</button>\n\t\t\t\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<a\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-pages-list__item__link',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'wp-block-navigation-item__content':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\thref={ page.link }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ page.title?.rendered }\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ hasChildren && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ ! context.openSubmenusOnClick &&\n\t\t\t\t\t\t\tcontext.showSubmenuIcon && (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\"\n\t\t\t\t\t\t\t\t\taria-expanded=\"false\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\tclassName={ classnames( 'submenu-container', {\n\t\t\t\t\t\t\t\t'wp-block-navigation__submenu-container':\n\t\t\t\t\t\t\t\t\tisNavigationChild,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PageItems\n\t\t\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\t\t\tpagesByParentId={ pagesByParentId }\n\t\t\t\t\t\t\t\tparentId={ page.id }\n\t\t\t\t\t\t\t\tdepth={ depth + 1 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</li>\n\t\t);\n\t} );\n} );\n"]}
@@ -195,6 +195,7 @@
195
195
  .screen-reader-text {
196
196
  border: 0;
197
197
  clip: rect(1px, 1px, 1px, 1px);
198
+ -webkit-clip-path: inset(50%);
198
199
  clip-path: inset(50%);
199
200
  height: 1px;
200
201
  margin: -1px;
@@ -208,7 +209,8 @@
208
209
  .screen-reader-text:focus {
209
210
  background-color: #ddd;
210
211
  clip: auto !important;
211
- clip-path: none;
212
+ -webkit-clip-path: none;
213
+ clip-path: none;
212
214
  color: #444;
213
215
  display: block;
214
216
  font-size: 1em;
@@ -197,6 +197,7 @@
197
197
  .screen-reader-text {
198
198
  border: 0;
199
199
  clip: rect(1px, 1px, 1px, 1px);
200
+ -webkit-clip-path: inset(50%);
200
201
  clip-path: inset(50%);
201
202
  height: 1px;
202
203
  margin: -1px;
@@ -210,7 +211,8 @@
210
211
  .screen-reader-text:focus {
211
212
  background-color: #ddd;
212
213
  clip: auto !important;
213
- clip-path: none;
214
+ -webkit-clip-path: none;
215
+ clip-path: none;
214
216
  color: #444;
215
217
  display: block;
216
218
  font-size: 1em;
@@ -386,7 +386,8 @@
386
386
  height: 100%;
387
387
  max-width: none;
388
388
  max-height: none;
389
- object-fit: cover;
389
+ -o-object-fit: cover;
390
+ object-fit: cover;
390
391
  outline: none;
391
392
  border: none;
392
393
  box-shadow: none;
@@ -388,7 +388,8 @@
388
388
  height: 100%;
389
389
  max-width: none;
390
390
  max-height: none;
391
- object-fit: cover;
391
+ -o-object-fit: cover;
392
+ object-fit: cover;
392
393
  outline: none;
393
394
  border: none;
394
395
  box-shadow: none;
@@ -2437,6 +2437,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2437
2437
  .wp-block-table td,
2438
2438
  .wp-block-table th {
2439
2439
  border: 1px solid;
2440
+ padding: 0.5em;
2440
2441
  }
2441
2442
  .wp-block-table td.is-selected,
2442
2443
  .wp-block-table th.is-selected {
@@ -2445,6 +2445,7 @@ body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-op
2445
2445
  .wp-block-table td,
2446
2446
  .wp-block-table th {
2447
2447
  border: 1px solid;
2448
+ padding: 0.5em;
2448
2449
  }
2449
2450
  .wp-block-table td.is-selected,
2450
2451
  .wp-block-table th.is-selected {
@@ -157,7 +157,8 @@
157
157
  width: 100%;
158
158
  height: 100%;
159
159
  flex: 1;
160
- object-fit: cover;
160
+ -o-object-fit: cover;
161
+ object-fit: cover;
161
162
  }
162
163
  .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item,
163
164
  .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,
@@ -351,7 +352,8 @@ figure.wp-block-gallery.has-nested-images {
351
352
  width: 100%;
352
353
  flex: 1 0 0%;
353
354
  height: 100%;
354
- object-fit: cover;
355
+ -o-object-fit: cover;
356
+ object-fit: cover;
355
357
  }
356
358
  .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) {
357
359
  width: 100%;
@@ -157,7 +157,8 @@
157
157
  width: 100%;
158
158
  height: 100%;
159
159
  flex: 1;
160
- object-fit: cover;
160
+ -o-object-fit: cover;
161
+ object-fit: cover;
161
162
  }
162
163
  .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item,
163
164
  .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,
@@ -351,7 +352,8 @@ figure.wp-block-gallery.has-nested-images {
351
352
  width: 100%;
352
353
  flex: 1 0 0%;
353
354
  height: 100%;
354
- object-fit: cover;
355
+ -o-object-fit: cover;
356
+ object-fit: cover;
355
357
  }
356
358
  .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) {
357
359
  width: 100%;
@@ -844,7 +844,8 @@
844
844
  height: 100%;
845
845
  max-width: none;
846
846
  max-height: none;
847
- object-fit: cover;
847
+ -o-object-fit: cover;
848
+ object-fit: cover;
848
849
  outline: none;
849
850
  border: none;
850
851
  box-shadow: none;
@@ -1128,7 +1129,8 @@ section.wp-block-cover-image > h2,
1128
1129
  width: 100%;
1129
1130
  height: 100%;
1130
1131
  flex: 1;
1131
- object-fit: cover;
1132
+ -o-object-fit: cover;
1133
+ object-fit: cover;
1132
1134
  }
1133
1135
  .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item,
1134
1136
  .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,
@@ -1322,7 +1324,8 @@ figure.wp-block-gallery.has-nested-images {
1322
1324
  width: 100%;
1323
1325
  flex: 1 0 0%;
1324
1326
  height: 100%;
1325
- object-fit: cover;
1327
+ -o-object-fit: cover;
1328
+ object-fit: cover;
1326
1329
  }
1327
1330
  .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) {
1328
1331
  width: 100%;
@@ -3206,6 +3209,11 @@ ul.wp-block-rss.is-grid li {
3206
3209
  border-collapse: collapse;
3207
3210
  width: 100%;
3208
3211
  }
3212
+ .wp-block-table td,
3213
+ .wp-block-table th {
3214
+ border: 1px solid;
3215
+ padding: 0.5em;
3216
+ }
3209
3217
  .wp-block-table .has-fixed-layout {
3210
3218
  table-layout: fixed;
3211
3219
  width: 100%;
@@ -3359,7 +3367,8 @@ pre.wp-block-verse {
3359
3367
  }
3360
3368
  @supports (position: sticky) {
3361
3369
  .wp-block-video [poster] {
3362
- object-fit: cover;
3370
+ -o-object-fit: cover;
3371
+ object-fit: cover;
3363
3372
  }
3364
3373
  }
3365
3374
  .wp-block-video.aligncenter {
@@ -3476,6 +3485,7 @@ pre.wp-block-verse {
3476
3485
  .screen-reader-text {
3477
3486
  border: 0;
3478
3487
  clip: rect(1px, 1px, 1px, 1px);
3488
+ -webkit-clip-path: inset(50%);
3479
3489
  clip-path: inset(50%);
3480
3490
  height: 1px;
3481
3491
  margin: -1px;
@@ -3489,7 +3499,8 @@ pre.wp-block-verse {
3489
3499
  .screen-reader-text:focus {
3490
3500
  background-color: #ddd;
3491
3501
  clip: auto !important;
3492
- clip-path: none;
3502
+ -webkit-clip-path: none;
3503
+ clip-path: none;
3493
3504
  color: #444;
3494
3505
  display: block;
3495
3506
  font-size: 1em;
@@ -851,7 +851,8 @@
851
851
  height: 100%;
852
852
  max-width: none;
853
853
  max-height: none;
854
- object-fit: cover;
854
+ -o-object-fit: cover;
855
+ object-fit: cover;
855
856
  outline: none;
856
857
  border: none;
857
858
  box-shadow: none;
@@ -1136,7 +1137,8 @@ section.wp-block-cover-image > h2,
1136
1137
  width: 100%;
1137
1138
  height: 100%;
1138
1139
  flex: 1;
1139
- object-fit: cover;
1140
+ -o-object-fit: cover;
1141
+ object-fit: cover;
1140
1142
  }
1141
1143
  .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item,
1142
1144
  .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,
@@ -1330,7 +1332,8 @@ figure.wp-block-gallery.has-nested-images {
1330
1332
  width: 100%;
1331
1333
  flex: 1 0 0%;
1332
1334
  height: 100%;
1333
- object-fit: cover;
1335
+ -o-object-fit: cover;
1336
+ object-fit: cover;
1334
1337
  }
1335
1338
  .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) {
1336
1339
  width: 100%;
@@ -3239,6 +3242,11 @@ ul.wp-block-rss.is-grid li {
3239
3242
  border-collapse: collapse;
3240
3243
  width: 100%;
3241
3244
  }
3245
+ .wp-block-table td,
3246
+ .wp-block-table th {
3247
+ border: 1px solid;
3248
+ padding: 0.5em;
3249
+ }
3242
3250
  .wp-block-table .has-fixed-layout {
3243
3251
  table-layout: fixed;
3244
3252
  width: 100%;
@@ -3392,7 +3400,8 @@ pre.wp-block-verse {
3392
3400
  }
3393
3401
  @supports (position: sticky) {
3394
3402
  .wp-block-video [poster] {
3395
- object-fit: cover;
3403
+ -o-object-fit: cover;
3404
+ object-fit: cover;
3396
3405
  }
3397
3406
  }
3398
3407
  .wp-block-video.aligncenter {
@@ -3511,6 +3520,7 @@ pre.wp-block-verse {
3511
3520
  .screen-reader-text {
3512
3521
  border: 0;
3513
3522
  clip: rect(1px, 1px, 1px, 1px);
3523
+ -webkit-clip-path: inset(50%);
3514
3524
  clip-path: inset(50%);
3515
3525
  height: 1px;
3516
3526
  margin: -1px;
@@ -3524,7 +3534,8 @@ pre.wp-block-verse {
3524
3534
  .screen-reader-text:focus {
3525
3535
  background-color: #ddd;
3526
3536
  clip: auto !important;
3527
- clip-path: none;
3537
+ -webkit-clip-path: none;
3538
+ clip-path: none;
3528
3539
  color: #444;
3529
3540
  display: block;
3530
3541
  font-size: 1em;
@@ -98,6 +98,7 @@
98
98
  .wp-block-table td,
99
99
  .wp-block-table th {
100
100
  border: 1px solid;
101
+ padding: 0.5em;
101
102
  }
102
103
  .wp-block-table td.is-selected,
103
104
  .wp-block-table th.is-selected {
@@ -98,6 +98,7 @@
98
98
  .wp-block-table td,
99
99
  .wp-block-table th {
100
100
  border: 1px solid;
101
+ padding: 0.5em;
101
102
  }
102
103
  .wp-block-table td.is-selected,
103
104
  .wp-block-table th.is-selected {
@@ -81,6 +81,11 @@
81
81
  border-collapse: collapse;
82
82
  width: 100%;
83
83
  }
84
+ .wp-block-table td,
85
+ .wp-block-table th {
86
+ border: 1px solid;
87
+ padding: 0.5em;
88
+ }
84
89
  .wp-block-table .has-fixed-layout {
85
90
  table-layout: fixed;
86
91
  width: 100%;
@@ -81,6 +81,11 @@
81
81
  border-collapse: collapse;
82
82
  width: 100%;
83
83
  }
84
+ .wp-block-table td,
85
+ .wp-block-table th {
86
+ border: 1px solid;
87
+ padding: 0.5em;
88
+ }
84
89
  .wp-block-table .has-fixed-layout {
85
90
  table-layout: fixed;
86
91
  width: 100%;
@@ -85,8 +85,6 @@
85
85
  }
86
86
  .wp-block-table td,
87
87
  .wp-block-table th {
88
- padding: 0.5em;
89
- border: 1px solid;
90
88
  word-break: normal;
91
89
  }
92
90
  .wp-block-table figcaption {
@@ -85,8 +85,6 @@
85
85
  }
86
86
  .wp-block-table td,
87
87
  .wp-block-table th {
88
- padding: 0.5em;
89
- border: 1px solid;
90
88
  word-break: normal;
91
89
  }
92
90
  .wp-block-table figcaption {
@@ -217,8 +217,6 @@
217
217
  }
218
218
  .wp-block-table td,
219
219
  .wp-block-table th {
220
- padding: 0.5em;
221
- border: 1px solid;
222
220
  word-break: normal;
223
221
  }
224
222
  .wp-block-table figcaption {
@@ -217,8 +217,6 @@
217
217
  }
218
218
  .wp-block-table td,
219
219
  .wp-block-table th {
220
- padding: 0.5em;
221
- border: 1px solid;
222
220
  word-break: normal;
223
221
  }
224
222
  .wp-block-table figcaption {
@@ -82,7 +82,8 @@
82
82
  }
83
83
  @supports (position: sticky) {
84
84
  .wp-block-video [poster] {
85
- object-fit: cover;
85
+ -o-object-fit: cover;
86
+ object-fit: cover;
86
87
  }
87
88
  }
88
89
  .wp-block-video.aligncenter {
@@ -82,7 +82,8 @@
82
82
  }
83
83
  @supports (position: sticky) {
84
84
  .wp-block-video [poster] {
85
- object-fit: cover;
85
+ -o-object-fit: cover;
86
+ object-fit: cover;
86
87
  }
87
88
  }
88
89
  .wp-block-video.aligncenter {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "7.14.10",
3
+ "version": "7.14.12",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -35,9 +35,9 @@
35
35
  "@wordpress/api-fetch": "^6.14.1",
36
36
  "@wordpress/autop": "^3.17.1",
37
37
  "@wordpress/blob": "^3.17.1",
38
- "@wordpress/block-editor": "^10.0.9",
38
+ "@wordpress/block-editor": "^10.0.10",
39
39
  "@wordpress/blocks": "^11.16.4",
40
- "@wordpress/components": "^21.0.6",
40
+ "@wordpress/components": "^21.0.7",
41
41
  "@wordpress/compose": "^5.15.2",
42
42
  "@wordpress/core-data": "^5.0.4",
43
43
  "@wordpress/data": "^7.1.3",
@@ -52,9 +52,9 @@
52
52
  "@wordpress/keycodes": "^3.17.1",
53
53
  "@wordpress/notices": "^3.17.3",
54
54
  "@wordpress/primitives": "^3.15.1",
55
- "@wordpress/reusable-blocks": "^3.15.9",
55
+ "@wordpress/reusable-blocks": "^3.15.10",
56
56
  "@wordpress/rich-text": "^5.15.3",
57
- "@wordpress/server-side-render": "^3.15.6",
57
+ "@wordpress/server-side-render": "^3.15.7",
58
58
  "@wordpress/url": "^3.18.1",
59
59
  "@wordpress/viewport": "^4.15.3",
60
60
  "change-case": "^4.1.2",
@@ -73,5 +73,5 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "gitHead": "ca07aa8354a1131dbabcc36dfcaf70e0c0891f54"
76
+ "gitHead": "ef24619c1f6949dbdcaa7e5538dd83715a461c3a"
77
77
  }
@@ -194,7 +194,9 @@ function CoverEdit( {
194
194
  className: 'wp-block-cover__inner-container',
195
195
  },
196
196
  {
197
- template: innerBlocksTemplate,
197
+ // Avoid template sync when the `templateLock` value is `all` or `contentOnly`.
198
+ // See: https://github.com/WordPress/gutenberg/pull/45632
199
+ template: ! hasInnerBlocks ? innerBlocksTemplate : undefined,
198
200
  templateInsertUpdatesSelection: true,
199
201
  allowedBlocks,
200
202
  templateLock,
package/src/list/utils.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createBlock } from '@wordpress/blocks';
4
+ import { createBlock, rawHandler } from '@wordpress/blocks';
5
5
 
6
6
  export function createListBlockFromDOMElement( listElement ) {
7
7
  const listAttributes = {
@@ -70,15 +70,7 @@ export function migrateToListV2( attributes ) {
70
70
  list.setAttribute( 'type', type );
71
71
  }
72
72
 
73
- const listBlock = createListBlockFromDOMElement( list );
73
+ const [ listBlock ] = rawHandler( { HTML: list.outerHTML } );
74
74
 
75
- const { values: omittedValues, ...restAttributes } = attributes;
76
-
77
- return [
78
- {
79
- ...restAttributes,
80
- ...listBlock.attributes,
81
- },
82
- listBlock.innerBlocks,
83
- ];
75
+ return [ listBlock.attributes, listBlock.innerBlocks ];
84
76
  }
@@ -66,6 +66,7 @@ export default function ListItemEdit( {
66
66
  const blockProps = useBlockProps( { ref: useCopy( clientId ) } );
67
67
  const innerBlocksProps = useInnerBlocksProps( blockProps, {
68
68
  allowedBlocks: [ 'core/list' ],
69
+ __unstableDisableDropZone: true,
69
70
  } );
70
71
  const useEnterRef = useEnter( { content, clientId } );
71
72
  const useSpaceRef = useSpace( clientId );
@@ -52,50 +52,64 @@ export default function PageListEdit( { context, clientId } ) {
52
52
  style: { ...context.style?.color },
53
53
  } );
54
54
 
55
- return (
56
- <>
57
- { allowConvertToLinks && (
58
- <BlockControls group="other">
59
- <ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>
60
- { __( 'Edit' ) }
61
- </ToolbarButton>
62
- </BlockControls>
63
- ) }
64
- { allowConvertToLinks && isOpen && (
65
- <ConvertToLinksModal
66
- onClose={ closeModal }
67
- clientId={ clientId }
68
- />
69
- ) }
70
- { ! hasResolvedPages && (
55
+ const getBlockContent = () => {
56
+ if ( ! hasResolvedPages ) {
57
+ return (
71
58
  <div { ...blockProps }>
72
59
  <Spinner />
73
60
  </div>
74
- ) }
61
+ );
62
+ }
75
63
 
76
- { hasResolvedPages && totalPages === null && (
64
+ if ( totalPages === null ) {
65
+ return (
77
66
  <div { ...blockProps }>
78
67
  <Notice status={ 'warning' } isDismissible={ false }>
79
68
  { __( 'Page List: Cannot retrieve Pages.' ) }
80
69
  </Notice>
81
70
  </div>
82
- ) }
71
+ );
72
+ }
83
73
 
84
- { totalPages === 0 && (
74
+ if ( totalPages === 0 ) {
75
+ return (
85
76
  <div { ...blockProps }>
86
77
  <Notice status={ 'info' } isDismissible={ false }>
87
78
  { __( 'Page List: Cannot retrieve Pages.' ) }
88
79
  </Notice>
89
80
  </div>
90
- ) }
91
- { totalPages > 0 && (
81
+ );
82
+ }
83
+
84
+ if ( totalPages > 0 ) {
85
+ return (
92
86
  <ul { ...blockProps }>
93
87
  <PageItems
94
88
  context={ context }
95
89
  pagesByParentId={ pagesByParentId }
96
90
  />
97
91
  </ul>
92
+ );
93
+ }
94
+ };
95
+
96
+ return (
97
+ <>
98
+ { allowConvertToLinks && (
99
+ <BlockControls group="other">
100
+ <ToolbarButton title={ __( 'Edit' ) } onClick={ openModal }>
101
+ { __( 'Edit' ) }
102
+ </ToolbarButton>
103
+ </BlockControls>
98
104
  ) }
105
+ { allowConvertToLinks && isOpen && (
106
+ <ConvertToLinksModal
107
+ onClose={ closeModal }
108
+ clientId={ clientId }
109
+ />
110
+ ) }
111
+
112
+ { getBlockContent() }
99
113
  </>
100
114
  );
101
115
  }