@wordpress/block-library 6.0.7 → 6.0.11

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 (193) hide show
  1. package/build/cover/edit.js +8 -3
  2. package/build/cover/edit.js.map +1 -1
  3. package/build/cover/transforms.js +2 -0
  4. package/build/cover/transforms.js.map +1 -1
  5. package/build/gallery/edit.js +1 -1
  6. package/build/gallery/edit.js.map +1 -1
  7. package/build/gallery/v1/update-gallery-modal.js +1 -1
  8. package/build/gallery/v1/update-gallery-modal.js.map +1 -1
  9. package/build/index.js +4 -3
  10. package/build/index.js.map +1 -1
  11. package/build/navigation/deprecated.js +127 -19
  12. package/build/navigation/deprecated.js.map +1 -1
  13. package/build/navigation/edit/index.js +59 -33
  14. package/build/navigation/edit/index.js.map +1 -1
  15. package/build/navigation/edit/inner-blocks.js +1 -1
  16. package/build/navigation/edit/inner-blocks.js.map +1 -1
  17. package/build/navigation/edit/navigation-menu-selector.js +2 -2
  18. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  19. package/build/navigation/edit/placeholder/index.js +16 -48
  20. package/build/navigation/edit/placeholder/index.js.map +1 -1
  21. package/build/navigation/edit/responsive-wrapper.js +5 -2
  22. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  23. package/build/navigation/edit/unsaved-inner-blocks.js +4 -35
  24. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  25. package/build/navigation/edit/use-create-navigation-menu.js +50 -0
  26. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -0
  27. package/build/navigation/edit/use-generate-default-navigation-title.js +73 -0
  28. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  29. package/build/navigation/index.js +1 -1
  30. package/build/navigation/save.js +2 -2
  31. package/build/navigation/save.js.map +1 -1
  32. package/build/navigation/use-navigation-menu.js +19 -8
  33. package/build/navigation/use-navigation-menu.js.map +1 -1
  34. package/build/navigation-area/edit.js +5 -0
  35. package/build/navigation-area/edit.js.map +1 -1
  36. package/build/page-list/edit.js +40 -42
  37. package/build/page-list/edit.js.map +1 -1
  38. package/build/pattern/index.js +1 -1
  39. package/build/post-featured-image/edit.js +53 -23
  40. package/build/post-featured-image/edit.js.map +1 -1
  41. package/build/post-terms/index.js +1 -1
  42. package/build/post-title/edit.js +2 -2
  43. package/build/post-title/edit.js.map +1 -1
  44. package/build/query-pagination-next/index.js +1 -1
  45. package/build/query-pagination-previous/index.js +1 -1
  46. package/build/query-title/index.js +1 -1
  47. package/build/site-logo/index.js +1 -1
  48. package/build/site-tagline/index.js +1 -1
  49. package/build/site-title/index.js +1 -1
  50. package/build/template-part/edit/placeholder/index.js +1 -1
  51. package/build/template-part/edit/placeholder/index.js.map +1 -1
  52. package/build/template-part/index.js +2 -1
  53. package/build/template-part/index.js.map +1 -1
  54. package/build-module/cover/edit.js +8 -3
  55. package/build-module/cover/edit.js.map +1 -1
  56. package/build-module/cover/transforms.js +2 -0
  57. package/build-module/cover/transforms.js.map +1 -1
  58. package/build-module/gallery/edit.js +1 -1
  59. package/build-module/gallery/edit.js.map +1 -1
  60. package/build-module/gallery/v1/update-gallery-modal.js +1 -1
  61. package/build-module/gallery/v1/update-gallery-modal.js.map +1 -1
  62. package/build-module/index.js +4 -3
  63. package/build-module/index.js.map +1 -1
  64. package/build-module/navigation/deprecated.js +127 -19
  65. package/build-module/navigation/deprecated.js.map +1 -1
  66. package/build-module/navigation/edit/index.js +60 -33
  67. package/build-module/navigation/edit/index.js.map +1 -1
  68. package/build-module/navigation/edit/inner-blocks.js +1 -1
  69. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  70. package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
  71. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  72. package/build-module/navigation/edit/placeholder/index.js +15 -45
  73. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  74. package/build-module/navigation/edit/responsive-wrapper.js +5 -2
  75. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  76. package/build-module/navigation/edit/unsaved-inner-blocks.js +6 -35
  77. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  78. package/build-module/navigation/edit/use-create-navigation-menu.js +36 -0
  79. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -0
  80. package/build-module/navigation/edit/use-generate-default-navigation-title.js +57 -0
  81. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -0
  82. package/build-module/navigation/index.js +1 -1
  83. package/build-module/navigation/save.js +2 -2
  84. package/build-module/navigation/save.js.map +1 -1
  85. package/build-module/navigation/use-navigation-menu.js +19 -8
  86. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  87. package/build-module/navigation-area/edit.js +4 -0
  88. package/build-module/navigation-area/edit.js.map +1 -1
  89. package/build-module/page-list/edit.js +41 -43
  90. package/build-module/page-list/edit.js.map +1 -1
  91. package/build-module/pattern/index.js +1 -1
  92. package/build-module/post-featured-image/edit.js +55 -26
  93. package/build-module/post-featured-image/edit.js.map +1 -1
  94. package/build-module/post-terms/index.js +1 -1
  95. package/build-module/post-title/edit.js +2 -2
  96. package/build-module/post-title/edit.js.map +1 -1
  97. package/build-module/query-pagination-next/index.js +1 -1
  98. package/build-module/query-pagination-previous/index.js +1 -1
  99. package/build-module/query-title/index.js +1 -1
  100. package/build-module/site-logo/index.js +1 -1
  101. package/build-module/site-tagline/index.js +1 -1
  102. package/build-module/site-title/index.js +1 -1
  103. package/build-module/template-part/edit/placeholder/index.js +2 -2
  104. package/build-module/template-part/edit/placeholder/index.js.map +1 -1
  105. package/build-module/template-part/index.js +2 -1
  106. package/build-module/template-part/index.js.map +1 -1
  107. package/build-style/code/theme-rtl.css +1 -1
  108. package/build-style/code/theme.css +1 -1
  109. package/build-style/cover/style-rtl.css +8 -2
  110. package/build-style/cover/style.css +8 -2
  111. package/build-style/editor-rtl.css +104 -53
  112. package/build-style/editor.css +104 -53
  113. package/build-style/gallery/editor-rtl.css +1 -0
  114. package/build-style/gallery/editor.css +1 -0
  115. package/build-style/navigation/style-rtl.css +41 -3
  116. package/build-style/navigation/style.css +41 -3
  117. package/build-style/post-comments-form/style-rtl.css +18 -0
  118. package/build-style/post-comments-form/style.css +18 -0
  119. package/build-style/post-featured-image/editor-rtl.css +100 -16
  120. package/build-style/post-featured-image/editor.css +100 -16
  121. package/build-style/site-logo/editor-rtl.css +2 -2
  122. package/build-style/site-logo/editor.css +2 -2
  123. package/build-style/social-links/editor-rtl.css +1 -35
  124. package/build-style/social-links/editor.css +1 -35
  125. package/build-style/style-rtl.css +67 -27
  126. package/build-style/style.css +67 -27
  127. package/build-style/theme-rtl.css +1 -1
  128. package/build-style/theme.css +1 -1
  129. package/package.json +8 -8
  130. package/src/calendar/index.php +3 -3
  131. package/src/code/theme.scss +1 -1
  132. package/src/cover/edit.js +8 -1
  133. package/src/cover/style.scss +9 -2
  134. package/src/cover/transforms.js +2 -0
  135. package/src/gallery/edit.js +1 -1
  136. package/src/gallery/editor.scss +1 -0
  137. package/src/gallery/index.php +1 -1
  138. package/src/gallery/v1/update-gallery-modal.js +1 -1
  139. package/src/home-link/index.php +1 -1
  140. package/src/image/index.php +1 -1
  141. package/src/index.js +28 -26
  142. package/src/navigation/block.json +1 -1
  143. package/src/navigation/deprecated.js +115 -13
  144. package/src/navigation/edit/index.js +68 -36
  145. package/src/navigation/edit/inner-blocks.js +2 -1
  146. package/src/navigation/edit/navigation-menu-selector.js +2 -2
  147. package/src/navigation/edit/placeholder/index.js +16 -62
  148. package/src/navigation/edit/responsive-wrapper.js +8 -1
  149. package/src/navigation/edit/unsaved-inner-blocks.js +6 -57
  150. package/src/navigation/edit/use-create-navigation-menu.js +39 -0
  151. package/src/navigation/edit/use-generate-default-navigation-title.js +79 -0
  152. package/src/navigation/index.php +171 -25
  153. package/src/navigation/save.js +2 -2
  154. package/src/navigation/style.scss +57 -5
  155. package/src/navigation/use-navigation-menu.js +20 -9
  156. package/src/navigation-area/edit.js +5 -0
  157. package/src/navigation-area/index.php +2 -1
  158. package/src/navigation-link/index.php +1 -1
  159. package/src/navigation-submenu/index.php +2 -8
  160. package/src/page-list/edit.js +35 -44
  161. package/src/page-list/index.php +10 -5
  162. package/src/pattern/block.json +1 -1
  163. package/src/post-comments-form/style.scss +20 -1
  164. package/src/post-featured-image/edit.js +58 -26
  165. package/src/post-featured-image/editor.scss +124 -20
  166. package/src/post-terms/block.json +1 -1
  167. package/src/post-title/edit.js +2 -2
  168. package/src/query-pagination-next/block.json +1 -1
  169. package/src/query-pagination-previous/block.json +1 -1
  170. package/src/query-title/block.json +1 -1
  171. package/src/site-logo/block.json +1 -1
  172. package/src/site-logo/editor.scss +3 -2
  173. package/src/site-tagline/block.json +1 -1
  174. package/src/site-title/block.json +1 -1
  175. package/src/social-links/editor.scss +1 -47
  176. package/src/style.scss +0 -1
  177. package/src/table-of-contents/index.php +1 -1
  178. package/src/template-part/block.json +2 -1
  179. package/src/template-part/edit/placeholder/index.js +2 -2
  180. package/src/template-part/index.php +2 -1
  181. package/build/navigation/edit/navigation-menu-name-modal.js +0 -55
  182. package/build/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  183. package/build/navigation/edit/navigation-menu-publish-button.js +0 -53
  184. package/build/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  185. package/build-module/navigation/edit/navigation-menu-name-modal.js +0 -47
  186. package/build-module/navigation/edit/navigation-menu-name-modal.js.map +0 -1
  187. package/build-module/navigation/edit/navigation-menu-publish-button.js +0 -40
  188. package/build-module/navigation/edit/navigation-menu-publish-button.js.map +0 -1
  189. package/build-style/navigation-submenu/style-rtl.css +0 -97
  190. package/build-style/navigation-submenu/style.css +0 -97
  191. package/src/navigation/edit/navigation-menu-name-modal.js +0 -69
  192. package/src/navigation/edit/navigation-menu-publish-button.js +0 -57
  193. package/src/navigation-submenu/style.scss +0 -25
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/navigation-area/edit.js"],"names":["__","_x","store","coreStore","MenuGroup","MenuItemsChoice","PanelBody","SelectControl","ToolbarDropdownMenu","ToolbarGroup","useMemo","BlockControls","InspectorControls","useSelect","InnerBlocks","PlaceholderPreview","NavigationAreaBlock","attributes","setAttributes","area","navigationAreas","hasResolvedNavigationAreas","select","getEntityRecords","hasFinishedResolution","navigationMenuId","length","undefined","choices","map","name","description","label","value","onClose","selectedArea"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tMenuGroup,\n\tMenuItemsChoice,\n\tPanelBody,\n\tSelectControl,\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InnerBlocks from './inner-blocks';\nimport PlaceholderPreview from '../navigation/edit/placeholder/placeholder-preview';\n\nfunction NavigationAreaBlock( { attributes, setAttributes } ) {\n\tconst { area } = attributes;\n\n\tconst { navigationAreas, hasResolvedNavigationAreas } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, hasFinishedResolution } = select(\n\t\t\t\tcoreStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tnavigationAreas: getEntityRecords( 'root', 'navigationArea' ),\n\t\t\t\thasResolvedNavigationAreas: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t[ 'root', 'navigationArea' ]\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t);\n\tconst navigationMenuId = navigationAreas?.length\n\t\t? navigationAreas[ area ]\n\t\t: undefined;\n\n\tconst choices = useMemo(\n\t\t() =>\n\t\t\tnavigationAreas?.map( ( { name, description } ) => ( {\n\t\t\t\tlabel: description,\n\t\t\t\tvalue: name,\n\t\t\t} ) ),\n\t\t[ navigationAreas ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\tlabel={ __( 'Select Area' ) }\n\t\t\t\t\t\ttext={ __( 'Select Area' ) }\n\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t\t\t\tonSelect={ ( selectedArea ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { area: selectedArea } );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Options' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ _x( 'Area' ) }\n\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tarea: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ choices }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! hasResolvedNavigationAreas && <PlaceholderPreview isLoading /> }\n\t\t\t{\n\t\t\t\t// Render inner blocks only when navigationMenuId is known so\n\t\t\t\t// that inner blocks template is correct from the start.\n\t\t\t\thasResolvedNavigationAreas && (\n\t\t\t\t\t<InnerBlocks navigationMenuId={ navigationMenuId } />\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default NavigationAreaBlock;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/navigation-area/edit.js"],"names":["__","_x","deprecated","store","coreStore","MenuGroup","MenuItemsChoice","PanelBody","SelectControl","ToolbarDropdownMenu","ToolbarGroup","useMemo","BlockControls","InspectorControls","useSelect","InnerBlocks","PlaceholderPreview","NavigationAreaBlock","attributes","setAttributes","area","navigationAreas","hasResolvedNavigationAreas","select","getEntityRecords","hasFinishedResolution","navigationMenuId","length","undefined","choices","map","name","description","label","value","since","onClose","selectedArea"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport deprecated from '@wordpress/deprecated';\nimport { store as coreStore } from '@wordpress/core-data';\nimport {\n\tMenuGroup,\n\tMenuItemsChoice,\n\tPanelBody,\n\tSelectControl,\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { BlockControls, InspectorControls } from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InnerBlocks from './inner-blocks';\nimport PlaceholderPreview from '../navigation/edit/placeholder/placeholder-preview';\n\nfunction NavigationAreaBlock( { attributes, setAttributes } ) {\n\tconst { area } = attributes;\n\n\tconst { navigationAreas, hasResolvedNavigationAreas } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, hasFinishedResolution } = select(\n\t\t\t\tcoreStore\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tnavigationAreas: getEntityRecords( 'root', 'navigationArea' ),\n\t\t\t\thasResolvedNavigationAreas: hasFinishedResolution(\n\t\t\t\t\t'getEntityRecords',\n\t\t\t\t\t[ 'root', 'navigationArea' ]\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t);\n\tconst navigationMenuId = navigationAreas?.length\n\t\t? navigationAreas[ area ]\n\t\t: undefined;\n\n\tconst choices = useMemo(\n\t\t() =>\n\t\t\tnavigationAreas?.map( ( { name, description } ) => ( {\n\t\t\t\tlabel: description,\n\t\t\t\tvalue: name,\n\t\t\t} ) ),\n\t\t[ navigationAreas ]\n\t);\n\n\tdeprecated( 'wp.blockLibrary.NavigationArea', {\n\t\tsince: '5.9',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\tlabel={ __( 'Select Area' ) }\n\t\t\t\t\t\ttext={ __( 'Select Area' ) }\n\t\t\t\t\t\ticon={ null }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t\t\t\tonSelect={ ( selectedArea ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { area: selectedArea } );\n\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Options' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ _x( 'Area' ) }\n\t\t\t\t\t\tvalue={ area }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tarea: value,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ choices }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! hasResolvedNavigationAreas && <PlaceholderPreview isLoading /> }\n\t\t\t{\n\t\t\t\t// Render inner blocks only when navigationMenuId is known so\n\t\t\t\t// that inner blocks template is correct from the start.\n\t\t\t\thasResolvedNavigationAreas && (\n\t\t\t\t\t<InnerBlocks navigationMenuId={ navigationMenuId } />\n\t\t\t\t)\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default NavigationAreaBlock;\n"]}
@@ -12,9 +12,9 @@ import { sortBy } from 'lodash';
12
12
  import { BlockControls, useBlockProps, getColorClassName } from '@wordpress/block-editor';
13
13
  import { ToolbarButton, Placeholder, Spinner } from '@wordpress/components';
14
14
  import { __ } from '@wordpress/i18n';
15
- import { useEffect, useState, memo } from '@wordpress/element';
16
- import apiFetch from '@wordpress/api-fetch';
17
- import { addQueryArgs } from '@wordpress/url';
15
+ import { useMemo, useState, memo } from '@wordpress/element';
16
+ import { useSelect } from '@wordpress/data';
17
+ import { store as coreStore } from '@wordpress/core-data';
18
18
  /**
19
19
  * Internal dependencies
20
20
  */
@@ -61,53 +61,51 @@ export default function PageListEdit(_ref) {
61
61
  }, __('Edit'))), allowConvertToLinks && isOpen && createElement(ConvertToLinksModal, {
62
62
  onClose: closeModal,
63
63
  clientId: clientId
64
- }), totalPages === null && createElement("div", blockProps, createElement(Placeholder, null, createElement(Spinner, null))), totalPages === 0 && createElement("div", blockProps, createElement("span", null, __('Page List: No pages to show.'))), totalPages > 0 && createElement("ul", blockProps, createElement(PageItems, {
64
+ }), totalPages === undefined && createElement("div", blockProps, createElement(Placeholder, null, createElement(Spinner, null))), totalPages === 0 && createElement("div", blockProps, createElement("span", null, __('Page List: No pages to show.'))), totalPages > 0 && createElement("ul", blockProps, createElement(PageItems, {
65
65
  context: context,
66
66
  pagesByParentId: pagesByParentId
67
67
  })));
68
68
  }
69
69
 
70
70
  function usePagesByParentId() {
71
- const [pagesByParentId, setPagesByParentId] = useState(null);
72
- const [totalPages, setTotalPages] = useState(null);
73
- useEffect(() => {
74
- async function performFetch() {
75
- setPagesByParentId(null);
76
- setTotalPages(null);
77
- let pages = await apiFetch({
78
- path: addQueryArgs('/wp/v2/pages', {
79
- orderby: 'menu_order',
80
- order: 'asc',
81
- _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
82
- per_page: -1
83
- })
84
- }); // TODO: Once the REST API supports passing multiple values to
85
- // 'orderby', this can be removed.
86
- // https://core.trac.wordpress.org/ticket/39037
87
-
88
- pages = sortBy(pages, ['menu_order', 'title.rendered']);
89
- setPagesByParentId(pages.reduce((accumulator, page) => {
90
- const {
91
- parent
92
- } = page;
93
-
94
- if (accumulator.has(parent)) {
95
- accumulator.get(parent).push(page);
96
- } else {
97
- accumulator.set(parent, [page]);
98
- }
99
-
100
- return accumulator;
101
- }, new Map()));
102
- setTotalPages(pages.length);
103
- }
104
-
105
- performFetch();
71
+ const {
72
+ pages
73
+ } = useSelect(select => {
74
+ const {
75
+ getEntityRecords
76
+ } = select(coreStore);
77
+ return {
78
+ pages: getEntityRecords('postType', 'page', {
79
+ orderby: 'menu_order',
80
+ order: 'asc',
81
+ _fields: ['id', 'link', 'parent', 'title', 'menu_order'],
82
+ per_page: -1
83
+ })
84
+ };
106
85
  }, []);
107
- return {
108
- pagesByParentId,
109
- totalPages
110
- };
86
+ return useMemo(() => {
87
+ // TODO: Once the REST API supports passing multiple values to
88
+ // 'orderby', this can be removed.
89
+ // https://core.trac.wordpress.org/ticket/39037
90
+ const sortedPages = sortBy(pages, ['menu_order', 'title.rendered']);
91
+ const pagesByParentId = sortedPages.reduce((accumulator, page) => {
92
+ const {
93
+ parent
94
+ } = page;
95
+
96
+ if (accumulator.has(parent)) {
97
+ accumulator.get(parent).push(page);
98
+ } else {
99
+ accumulator.set(parent, [page]);
100
+ }
101
+
102
+ return accumulator;
103
+ }, new Map());
104
+ return {
105
+ pagesByParentId,
106
+ totalPages: pages === null || pages === void 0 ? void 0 : pages.length
107
+ };
108
+ }, [pages]);
111
109
  }
112
110
 
113
111
  const PageItems = memo(function PageItems(_ref2) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","sortBy","BlockControls","useBlockProps","getColorClassName","ToolbarButton","Placeholder","Spinner","__","useEffect","useState","memo","apiFetch","addQueryArgs","ConvertToLinksModal","ItemSubmenuIcon","MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","usePagesByParentId","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","setPagesByParentId","setTotalPages","performFetch","pages","path","orderby","order","_fields","per_page","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","title","rendered","link","ItemSubmenuToggle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Placeholder, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, memo } from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\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 } = usePagesByParentId();\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(\n\t\t\t\t'color',\n\t\t\t\tcontext.textColor\n\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{ totalPages === null && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<span>{ __( 'Page List: No pages to show.' ) }</span>\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 usePagesByParentId() {\n\tconst [ pagesByParentId, setPagesByParentId ] = useState( null );\n\tconst [ totalPages, setTotalPages ] = useState( null );\n\n\tuseEffect( () => {\n\t\tasync function performFetch() {\n\t\t\tsetPagesByParentId( null );\n\t\t\tsetTotalPages( null );\n\n\t\t\tlet pages = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/pages', {\n\t\t\t\t\torderby: 'menu_order',\n\t\t\t\t\torder: 'asc',\n\t\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\t\tper_page: -1,\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\t// TODO: Once the REST API supports passing multiple values to\n\t\t\t// 'orderby', this can be removed.\n\t\t\t// https://core.trac.wordpress.org/ticket/39037\n\t\t\tpages = sortBy( pages, [ 'menu_order', 'title.rendered' ] );\n\n\t\t\tsetPagesByParentId(\n\t\t\t\tpages.reduce( ( accumulator, page ) => {\n\t\t\t\t\tconst { parent } = page;\n\t\t\t\t\tif ( accumulator.has( parent ) ) {\n\t\t\t\t\t\taccumulator.get( parent ).push( page );\n\t\t\t\t\t} else {\n\t\t\t\t\t\taccumulator.set( parent, [ page ] );\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}, new Map() )\n\t\t\t);\n\t\t\tsetTotalPages( pages.length );\n\t\t}\n\t\tperformFetch();\n\t}, [] );\n\n\treturn {\n\t\tpagesByParentId,\n\t\ttotalPages,\n\t};\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\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} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<ItemSubmenuToggle title={ page.title?.rendered } />\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': isNavigationChild,\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 && <ItemSubmenuToggle /> }\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': isNavigationChild,\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\nfunction ItemSubmenuToggle( { title } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\taria-expanded=\"false\"\n\t\t>\n\t\t\t{ title }\n\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t<ItemSubmenuIcon />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/page-list/edit.js"],"names":["classnames","sortBy","BlockControls","useBlockProps","getColorClassName","ToolbarButton","Placeholder","Spinner","__","useMemo","useState","memo","useSelect","store","coreStore","ConvertToLinksModal","ItemSubmenuIcon","MAX_PAGE_COUNT","PageListEdit","context","clientId","pagesByParentId","totalPages","usePagesByParentId","isNavigationChild","allowConvertToLinks","isOpen","setOpen","openModal","closeModal","blockProps","className","textColor","backgroundColor","style","color","undefined","pages","select","getEntityRecords","orderby","order","_fields","per_page","sortedPages","reduce","accumulator","page","parent","has","get","push","set","Map","length","PageItems","parentId","depth","map","hasChildren","id","openSubmenusOnClick","showSubmenuIcon","title","rendered","link","ItemSubmenuToggle"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { sortBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tuseBlockProps,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, Placeholder, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState, memo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } 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 } = usePagesByParentId();\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(\n\t\t\t\t'color',\n\t\t\t\tcontext.textColor\n\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{ totalPages === undefined && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ totalPages === 0 && (\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<span>{ __( 'Page List: No pages to show.' ) }</span>\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 usePagesByParentId() {\n\tconst { pages } = useSelect( ( select ) => {\n\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\treturn {\n\t\t\tpages: getEntityRecords( 'postType', 'page', {\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: [ 'id', 'link', 'parent', 'title', 'menu_order' ],\n\t\t\t\tper_page: -1,\n\t\t\t} ),\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 = sortBy( pages, [ 'menu_order', 'title.rendered' ] );\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\ttotalPages: pages?.length,\n\t\t};\n\t}, [ pages ] );\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\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} ) }\n\t\t\t>\n\t\t\t\t{ hasChildren && context.openSubmenusOnClick ? (\n\t\t\t\t\t<ItemSubmenuToggle title={ page.title?.rendered } />\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': isNavigationChild,\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 && <ItemSubmenuToggle /> }\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': isNavigationChild,\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\nfunction ItemSubmenuToggle( { title } ) {\n\treturn (\n\t\t<button\n\t\t\tclassName=\"wp-block-navigation-item__content wp-block-navigation-submenu__toggle\"\n\t\t\taria-expanded=\"false\"\n\t\t>\n\t\t\t{ title }\n\t\t\t<span className=\"wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon\">\n\t\t\t\t<ItemSubmenuIcon />\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n"]}
@@ -5,7 +5,7 @@ const metadata = {
5
5
  apiVersion: 2,
6
6
  name: "core/pattern",
7
7
  title: "Pattern",
8
- category: "design",
8
+ category: "theme",
9
9
  description: "Show a block pattern.",
10
10
  supports: {
11
11
  html: false,
@@ -4,22 +4,32 @@ import { createElement, Fragment } from "@wordpress/element";
4
4
  * WordPress dependencies
5
5
  */
6
6
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
7
- import { useSelect } from '@wordpress/data';
8
- import { Icon, ToggleControl, PanelBody, withNotices } from '@wordpress/components';
9
- import { InspectorControls, BlockControls, MediaPlaceholder, MediaReplaceFlow, BlockIcon, useBlockProps } from '@wordpress/block-editor';
7
+ import { useSelect, useDispatch } from '@wordpress/data';
8
+ import { ToggleControl, PanelBody, Placeholder, Button } from '@wordpress/components';
9
+ import { InspectorControls, BlockControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps } from '@wordpress/block-editor';
10
10
  import { __, sprintf } from '@wordpress/i18n';
11
- import { postFeaturedImage } from '@wordpress/icons';
11
+ import { upload } from '@wordpress/icons';
12
+ import { SVG, Path } from '@wordpress/primitives';
13
+ import { store as noticesStore } from '@wordpress/notices';
12
14
  /**
13
15
  * Internal dependencies
14
16
  */
15
17
 
16
18
  import DimensionControls from './dimension-controls';
19
+ const placeholderIllustration = createElement(SVG, {
20
+ className: "components-placeholder__illustration",
21
+ fill: "none",
22
+ xmlns: "http://www.w3.org/2000/svg",
23
+ viewBox: "0 0 60 60",
24
+ preserveAspectRatio: "none"
25
+ }, createElement(Path, {
26
+ vectorEffect: "non-scaling-stroke",
27
+ d: "M60 60 0 0"
28
+ }));
17
29
  const ALLOWED_MEDIA_TYPES = ['image'];
18
30
  const placeholderChip = createElement("div", {
19
- className: "post-featured-image_placeholder"
20
- }, createElement(Icon, {
21
- icon: postFeaturedImage
22
- }), createElement("p", null, " ", __('Featured Image')));
31
+ className: "wp-block-post-featured-image__placeholder"
32
+ }, placeholderIllustration);
23
33
 
24
34
  function PostFeaturedImageDisplay(_ref) {
25
35
  let {
@@ -29,9 +39,7 @@ function PostFeaturedImageDisplay(_ref) {
29
39
  postId,
30
40
  postType,
31
41
  queryId
32
- },
33
- noticeUI,
34
- noticeOperations
42
+ }
35
43
  } = _ref;
36
44
  const isDescendentOfQueryLoop = !!queryId;
37
45
  const {
@@ -46,20 +54,32 @@ function PostFeaturedImageDisplay(_ref) {
46
54
  }), [featuredImage]);
47
55
  const blockProps = useBlockProps({
48
56
  style: {
49
- width
57
+ width,
58
+ height
50
59
  }
51
60
  });
52
61
 
62
+ const placeholder = content => {
63
+ return createElement(Placeholder, {
64
+ className: "block-editor-media-placeholder"
65
+ }, placeholderIllustration, content);
66
+ };
67
+
53
68
  const onSelectImage = value => {
54
69
  if (value !== null && value !== void 0 && value.id) {
55
70
  setFeaturedImage(value.id);
56
71
  }
57
72
  };
58
73
 
59
- function onUploadError(message) {
60
- noticeOperations.removeAllNotices();
61
- noticeOperations.createErrorNotice(message);
62
- }
74
+ const {
75
+ createErrorNotice
76
+ } = useDispatch(noticesStore);
77
+
78
+ const onUploadError = message => {
79
+ createErrorNotice(message[2], {
80
+ type: 'snackbar'
81
+ });
82
+ };
63
83
 
64
84
  let image;
65
85
 
@@ -67,19 +87,29 @@ function PostFeaturedImageDisplay(_ref) {
67
87
  return createElement("div", blockProps, placeholderChip);
68
88
  }
69
89
 
90
+ const label = __('Add a featured image');
91
+
70
92
  if (!featuredImage) {
71
93
  image = createElement(MediaPlaceholder, {
72
- icon: createElement(BlockIcon, {
73
- icon: postFeaturedImage
74
- }),
75
94
  onSelect: onSelectImage,
76
- notices: noticeUI,
77
- onError: onUploadError,
78
95
  accept: "image/*",
79
96
  allowedTypes: ALLOWED_MEDIA_TYPES,
80
- labels: {
81
- title: __('Featured image'),
82
- instructions: __('Upload a media file or pick one from your media library.')
97
+ onError: onUploadError,
98
+ placeholder: placeholder,
99
+ mediaLibraryButton: _ref2 => {
100
+ let {
101
+ open
102
+ } = _ref2;
103
+ return createElement(Button, {
104
+ icon: upload,
105
+ variant: "primary",
106
+ label: label,
107
+ showTooltip: true,
108
+ tooltipPosition: "top center",
109
+ onClick: () => {
110
+ open();
111
+ }
112
+ });
83
113
  }
84
114
  });
85
115
  } else {
@@ -118,7 +148,6 @@ function PostFeaturedImageDisplay(_ref) {
118
148
  })), createElement("figure", blockProps, image));
119
149
  }
120
150
 
121
- const PostFeaturedImageWithNotices = withNotices(PostFeaturedImageDisplay);
122
151
  export default function PostFeaturedImageEdit(props) {
123
152
  var _props$context;
124
153
 
@@ -128,6 +157,6 @@ export default function PostFeaturedImageEdit(props) {
128
157
  return createElement("div", blockProps, placeholderChip);
129
158
  }
130
159
 
131
- return createElement(PostFeaturedImageWithNotices, props);
160
+ return createElement(PostFeaturedImageDisplay, props);
132
161
  }
133
162
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"names":["useEntityProp","store","coreStore","useSelect","Icon","ToggleControl","PanelBody","withNotices","InspectorControls","BlockControls","MediaPlaceholder","MediaReplaceFlow","BlockIcon","useBlockProps","__","sprintf","postFeaturedImage","DimensionControls","ALLOWED_MEDIA_TYPES","placeholderChip","PostFeaturedImageDisplay","attributes","setAttributes","context","postId","postType","queryId","noticeUI","noticeOperations","isDescendentOfQueryLoop","isLink","height","width","scale","featuredImage","setFeaturedImage","media","select","getMedia","blockProps","style","onSelectImage","value","id","onUploadError","message","removeAllNotices","createErrorNotice","image","title","instructions","source_url","alt_text","objectFit","PostFeaturedImageWithNotices","PostFeaturedImageEdit","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tIcon,\n\tToggleControl,\n\tPanelBody,\n\twithNotices,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tBlockIcon,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { postFeaturedImage } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst placeholderChip = (\n\t<div className=\"post-featured-image_placeholder\">\n\t\t<Icon icon={ postFeaturedImage } />\n\t\t<p> { __( 'Featured Image' ) }</p>\n\t</div>\n);\n\nfunction PostFeaturedImageDisplay( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType, queryId },\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst isDescendentOfQueryLoop = !! queryId;\n\tconst { isLink, height, width, scale } = attributes;\n\tconst [ featuredImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width },\n\t} );\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\tlet image;\n\tif ( ! featuredImage && isDescendentOfQueryLoop ) {\n\t\treturn <div { ...blockProps }>{ placeholderChip }</div>;\n\t}\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon={ <BlockIcon icon={ postFeaturedImage } /> }\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\tnotices={ noticeUI }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tlabels={ {\n\t\t\t\t\ttitle: __( 'Featured image' ),\n\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t\t),\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholderChip\n\t\t) : (\n\t\t\t<img\n\t\t\t\tsrc={ media.source_url }\n\t\t\t\talt={ media.alt_text || __( 'Featured image' ) }\n\t\t\t\tstyle={ { height, objectFit: height && scale } }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<DimensionControls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ media.source_url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>{ image }</figure>\n\t\t</>\n\t);\n}\n\nconst PostFeaturedImageWithNotices = withNotices( PostFeaturedImageDisplay );\n\nexport default function PostFeaturedImageEdit( props ) {\n\tconst blockProps = useBlockProps();\n\tif ( ! props.context?.postId ) {\n\t\treturn <div { ...blockProps }>{ placeholderChip }</div>;\n\t}\n\treturn <PostFeaturedImageWithNotices { ...props } />;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-featured-image/edit.js"],"names":["useEntityProp","store","coreStore","useSelect","useDispatch","ToggleControl","PanelBody","Placeholder","Button","InspectorControls","BlockControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","__","sprintf","upload","SVG","Path","noticesStore","DimensionControls","placeholderIllustration","ALLOWED_MEDIA_TYPES","placeholderChip","PostFeaturedImageDisplay","attributes","setAttributes","context","postId","postType","queryId","isDescendentOfQueryLoop","isLink","height","width","scale","featuredImage","setFeaturedImage","media","select","getMedia","blockProps","style","placeholder","content","onSelectImage","value","id","createErrorNotice","onUploadError","message","type","image","label","open","source_url","alt_text","objectFit","PostFeaturedImageEdit","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tToggleControl,\n\tPanelBody,\n\tPlaceholder,\n\tButton,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { upload } from '@wordpress/icons';\nimport { SVG, Path } from '@wordpress/primitives';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport DimensionControls from './dimension-controls';\n\nconst placeholderIllustration = (\n\t<SVG\n\t\tclassName=\"components-placeholder__illustration\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tviewBox=\"0 0 60 60\"\n\t\tpreserveAspectRatio=\"none\"\n\t>\n\t\t<Path vectorEffect=\"non-scaling-stroke\" d=\"M60 60 0 0\" />\n\t</SVG>\n);\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst placeholderChip = (\n\t<div className=\"wp-block-post-featured-image__placeholder\">\n\t\t{ placeholderIllustration }\n\t</div>\n);\n\nfunction PostFeaturedImageDisplay( {\n\tattributes,\n\tsetAttributes,\n\tcontext: { postId, postType, queryId },\n} ) {\n\tconst isDescendentOfQueryLoop = !! queryId;\n\tconst { isLink, height, width, scale } = attributes;\n\tconst [ featuredImage, setFeaturedImage ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'featured_media',\n\t\tpostId\n\t);\n\n\tconst media = useSelect(\n\t\t( select ) =>\n\t\t\tfeaturedImage &&\n\t\t\tselect( coreStore ).getMedia( featuredImage, { context: 'view' } ),\n\t\t[ featuredImage ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tstyle: { width, height },\n\t} );\n\n\tconst placeholder = ( content ) => {\n\t\treturn (\n\t\t\t<Placeholder className=\"block-editor-media-placeholder\">\n\t\t\t\t{ placeholderIllustration }\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst onSelectImage = ( value ) => {\n\t\tif ( value?.id ) {\n\t\t\tsetFeaturedImage( value.id );\n\t\t}\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message[ 2 ], { type: 'snackbar' } );\n\t};\n\n\tlet image;\n\tif ( ! featuredImage && isDescendentOfQueryLoop ) {\n\t\treturn <div { ...blockProps }>{ placeholderChip }</div>;\n\t}\n\n\tconst label = __( 'Add a featured image' );\n\n\tif ( ! featuredImage ) {\n\t\timage = (\n\t\t\t<MediaPlaceholder\n\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tplaceholder={ placeholder }\n\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\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} }\n\t\t\t/>\n\t\t);\n\t} else {\n\t\t// We have a Featured image so show a Placeholder if is loading.\n\t\timage = ! media ? (\n\t\t\tplaceholderChip\n\t\t) : (\n\t\t\t<img\n\t\t\t\tsrc={ media.source_url }\n\t\t\t\talt={ media.alt_text || __( 'Featured image' ) }\n\t\t\t\tstyle={ { height, objectFit: height && scale } }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<DimensionControls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\tpostType\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ !! media && ! isDescendentOfQueryLoop && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ featuredImage }\n\t\t\t\t\t\tmediaURL={ media.source_url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<figure { ...blockProps }>{ image }</figure>\n\t\t</>\n\t);\n}\n\nexport default function PostFeaturedImageEdit( props ) {\n\tconst blockProps = useBlockProps();\n\tif ( ! props.context?.postId ) {\n\t\treturn <div { ...blockProps }>{ placeholderChip }</div>;\n\t}\n\treturn <PostFeaturedImageDisplay { ...props } />;\n}\n"]}
@@ -5,7 +5,7 @@ const metadata = {
5
5
  apiVersion: 2,
6
6
  name: "core/post-terms",
7
7
  title: "Post Terms",
8
- category: "design",
8
+ category: "theme",
9
9
  description: "Post terms.",
10
10
  textdomain: "default",
11
11
  attributes: {
@@ -57,7 +57,7 @@ export default function PostTitleEdit(_ref) {
57
57
  __experimentalVersion: 2
58
58
  }, blockProps)) : createElement(TagName, blockProps, createElement(RawHTML, {
59
59
  key: "html"
60
- }, fullTitle.rendered));
60
+ }, fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered));
61
61
  }
62
62
 
63
63
  if (isLink && postType && postId) {
@@ -77,7 +77,7 @@ export default function PostTitleEdit(_ref) {
77
77
  onClick: event => event.preventDefault()
78
78
  }, createElement(RawHTML, {
79
79
  key: "html"
80
- }, fullTitle.rendered)));
80
+ }, fullTitle === null || fullTitle === void 0 ? void 0 : fullTitle.rendered)));
81
81
  }
82
82
 
83
83
  return createElement(Fragment, null, createElement(BlockControls, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/post-title/edit.js"],"names":["classnames","AlignmentControl","BlockControls","InspectorControls","useBlockProps","PlainText","RawHTML","ToggleControl","TextControl","PanelBody","__","useEntityProp","HeadingLevelDropdown","useCanEditEntity","PostTitleEdit","attributes","level","textAlign","isLink","rel","linkTarget","setAttributes","context","postType","postId","queryId","TagName","isDescendentOfQueryLoop","userCanEdit","rawTitle","setTitle","fullTitle","link","blockProps","className","titleElement","rendered","length","event","preventDefault","newLevel","nextAlign","value","newRel"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,gBADD,EAECC,aAFD,EAGCC,iBAHD,EAICC,aAJD,EAKCC,SALD,QAMO,yBANP;AAOA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,aAAT,EAAwBC,WAAxB,EAAqCC,SAArC,QAAsD,uBAAtD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,aAAT,QAA8B,sBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,mCAAjC;AACA,SAASC,gBAAT,QAAiC,gBAAjC;AAEA,eAAe,SAASC,aAAT,OAIX;AAAA,MAJmC;AACtCC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,KAAF;AAASC,MAAAA,SAAT;AAAoBC,MAAAA,MAApB;AAA4BC,MAAAA,GAA5B;AAAiCC,MAAAA;AAAjC,KAD0B;AAEtCC,IAAAA,aAFsC;AAGtCC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,QAAF;AAAYC,MAAAA,MAAZ;AAAoBC,MAAAA;AAApB;AAH6B,GAInC;AACH,QAAMC,OAAO,GAAG,MAAMV,KAAN,GAAc,GAAd,GAAoB,MAAMA,KAA1C;AACA,QAAMW,uBAAuB,GAAG,CAAC,CAAEF,OAAnC;AACA,QAAMG,WAAW,GAAGf,gBAAgB,CAAE,UAAF,EAAcU,QAAd,EAAwBC,MAAxB,CAApC;AACA,QAAM,CAAEK,QAAQ,GAAG,EAAb,EAAiBC,QAAjB,EAA2BC,SAA3B,IAAyCpB,aAAa,CAC3D,UAD2D,EAE3DY,QAF2D,EAG3D,OAH2D,EAI3DC,MAJ2D,CAA5D;AAMA,QAAM,CAAEQ,IAAF,IAAWrB,aAAa,CAAE,UAAF,EAAcY,QAAd,EAAwB,MAAxB,EAAgCC,MAAhC,CAA9B;AACA,QAAMS,UAAU,GAAG7B,aAAa,CAAE;AACjC8B,IAAAA,SAAS,EAAElC,UAAU,CAAE;AACtB,OAAG,kBAAkBiB,SAAW,EAAhC,GAAqCA;AADf,KAAF;AADY,GAAF,CAAhC;AAMA,MAAIkB,YAAY,GACf,cAAC,OAAD,EAAcF,UAAd,EAA6BvB,EAAE,CAAE,YAAF,CAA/B,CADD;;AAIA,MAAKa,QAAQ,IAAIC,MAAjB,EAA0B;AACzBW,IAAAA,YAAY,GACXP,WAAW,IAAI,CAAED,uBAAjB,GACC,cAAC,SAAD;AACC,MAAA,OAAO,EAAGD,OADX;AAEC,MAAA,WAAW,EAAGhB,EAAE,CAAE,UAAF,CAFjB;AAGC,MAAA,KAAK,EAAGmB,QAHT;AAIC,MAAA,QAAQ,EAAGC,QAJZ;AAKC,MAAA,qBAAqB,EAAG;AALzB,OAMMG,UANN,EADD,GAUC,cAAC,OAAD,EAAcA,UAAd,EACC,cAAC,OAAD;AAAS,MAAA,GAAG,EAAC;AAAb,OAAsBF,SAAS,CAACK,QAAhC,CADD,CAXF;AAeA;;AAED,MAAKlB,MAAM,IAAIK,QAAV,IAAsBC,MAA3B,EAAoC;AACnCW,IAAAA,YAAY,GACXP,WAAW,IAAI,CAAED,uBAAjB,GACC,cAAC,OAAD,EAAcM,UAAd,EACC,cAAC,SAAD;AACC,MAAA,OAAO,EAAC,GADT;AAEC,MAAA,IAAI,EAAGD,IAFR;AAGC,MAAA,MAAM,EAAGZ,UAHV;AAIC,MAAA,GAAG,EAAGD,GAJP;AAKC,MAAA,WAAW,EACV,CAAEU,QAAQ,CAACQ,MAAX,GAAoB3B,EAAE,CAAE,UAAF,CAAtB,GAAuC,IANzC;AAQC,MAAA,KAAK,EAAGmB,QART;AASC,MAAA,QAAQ,EAAGC,QATZ;AAUC,MAAA,qBAAqB,EAAG;AAVzB,MADD,CADD,GAgBC,cAAC,OAAD,EAAcG,UAAd,EACC;AACC,MAAA,IAAI,EAAGD,IADR;AAEC,MAAA,MAAM,EAAGZ,UAFV;AAGC,MAAA,GAAG,EAAGD,GAHP;AAIC,MAAA,OAAO,EAAKmB,KAAF,IAAaA,KAAK,CAACC,cAAN;AAJxB,OAMC,cAAC,OAAD;AAAS,MAAA,GAAG,EAAC;AAAb,OAAsBR,SAAS,CAACK,QAAhC,CAND,CADD,CAjBF;AA4BA;;AAED,SACC,8BACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,oBAAD;AACC,IAAA,aAAa,EAAGpB,KADjB;AAEC,IAAA,QAAQ,EAAKwB,QAAF,IACVnB,aAAa,CAAE;AAAEL,MAAAA,KAAK,EAAEwB;AAAT,KAAF;AAHf,IADD,EAOC,cAAC,gBAAD;AACC,IAAA,KAAK,EAAGvB,SADT;AAEC,IAAA,QAAQ,EAAKwB,SAAF,IAAiB;AAC3BpB,MAAAA,aAAa,CAAE;AAAEJ,QAAAA,SAAS,EAAEwB;AAAb,OAAF,CAAb;AACA;AAJF,IAPD,CADD,EAeC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG/B,EAAE,CAAE,eAAF;AAArB,KACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,mBAAF,CADX;AAEC,IAAA,QAAQ,EAAG,MAAMW,aAAa,CAAE;AAAEH,MAAAA,MAAM,EAAE,CAAEA;AAAZ,KAAF,CAF/B;AAGC,IAAA,OAAO,EAAGA;AAHX,IADD,EAMGA,MAAM,IACP,8BACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGR,EAAE,CAAE,iBAAF,CADX;AAEC,IAAA,QAAQ,EAAKgC,KAAF,IACVrB,aAAa,CAAE;AACdD,MAAAA,UAAU,EAAEsB,KAAK,GAAG,QAAH,GAAc;AADjB,KAAF,CAHf;AAOC,IAAA,OAAO,EAAGtB,UAAU,KAAK;AAP1B,IADD,EAUC,cAAC,WAAD;AACC,IAAA,KAAK,EAAGV,EAAE,CAAE,UAAF,CADX;AAEC,IAAA,KAAK,EAAGS,GAFT;AAGC,IAAA,QAAQ,EAAKwB,MAAF,IACVtB,aAAa,CAAE;AAAEF,MAAAA,GAAG,EAAEwB;AAAP,KAAF;AAJf,IAVD,CAPF,CADD,CAfD,EA4CGR,YA5CH,CADD;AAgDA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tPlainText,\n} from '@wordpress/block-editor';\nimport { RawHTML } from '@wordpress/element';\nimport { ToggleControl, TextControl, PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelDropdown from '../heading/heading-level-dropdown';\nimport { useCanEditEntity } from '../utils/hooks';\n\nexport default function PostTitleEdit( {\n\tattributes: { level, textAlign, isLink, rel, linkTarget },\n\tsetAttributes,\n\tcontext: { postType, postId, queryId },\n} ) {\n\tconst TagName = 0 === level ? 'p' : 'h' + level;\n\tconst isDescendentOfQueryLoop = !! queryId;\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [ rawTitle = '', setTitle, fullTitle ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'title',\n\t\tpostId\n\t);\n\tconst [ link ] = useEntityProp( 'postType', postType, 'link', postId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tlet titleElement = (\n\t\t<TagName { ...blockProps }>{ __( 'Post Title' ) }</TagName>\n\t);\n\n\tif ( postType && postId ) {\n\t\ttitleElement =\n\t\t\tuserCanEdit && ! isDescendentOfQueryLoop ? (\n\t\t\t\t<PlainText\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\tvalue={ rawTitle }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<RawHTML key=\"html\">{ fullTitle.rendered }</RawHTML>\n\t\t\t\t</TagName>\n\t\t\t);\n\t}\n\n\tif ( isLink && postType && postId ) {\n\t\ttitleElement =\n\t\t\tuserCanEdit && ! isDescendentOfQueryLoop ? (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<PlainText\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t! rawTitle.length ? __( 'No Title' ) : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ rawTitle }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\t/>\n\t\t\t\t</TagName>\n\t\t\t) : (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RawHTML key=\"html\">{ fullTitle.rendered }</RawHTML>\n\t\t\t\t\t</a>\n\t\t\t\t</TagName>\n\t\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tselectedLevel={ level }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Make title a link' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t\t\t}\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/post-title/edit.js"],"names":["classnames","AlignmentControl","BlockControls","InspectorControls","useBlockProps","PlainText","RawHTML","ToggleControl","TextControl","PanelBody","__","useEntityProp","HeadingLevelDropdown","useCanEditEntity","PostTitleEdit","attributes","level","textAlign","isLink","rel","linkTarget","setAttributes","context","postType","postId","queryId","TagName","isDescendentOfQueryLoop","userCanEdit","rawTitle","setTitle","fullTitle","link","blockProps","className","titleElement","rendered","length","event","preventDefault","newLevel","nextAlign","value","newRel"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tPlainText,\n} from '@wordpress/block-editor';\nimport { RawHTML } from '@wordpress/element';\nimport { ToggleControl, TextControl, PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport HeadingLevelDropdown from '../heading/heading-level-dropdown';\nimport { useCanEditEntity } from '../utils/hooks';\n\nexport default function PostTitleEdit( {\n\tattributes: { level, textAlign, isLink, rel, linkTarget },\n\tsetAttributes,\n\tcontext: { postType, postId, queryId },\n} ) {\n\tconst TagName = 0 === level ? 'p' : 'h' + level;\n\tconst isDescendentOfQueryLoop = !! queryId;\n\tconst userCanEdit = useCanEditEntity( 'postType', postType, postId );\n\tconst [ rawTitle = '', setTitle, fullTitle ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'title',\n\t\tpostId\n\t);\n\tconst [ link ] = useEntityProp( 'postType', postType, 'link', postId );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tlet titleElement = (\n\t\t<TagName { ...blockProps }>{ __( 'Post Title' ) }</TagName>\n\t);\n\n\tif ( postType && postId ) {\n\t\ttitleElement =\n\t\t\tuserCanEdit && ! isDescendentOfQueryLoop ? (\n\t\t\t\t<PlainText\n\t\t\t\t\ttagName={ TagName }\n\t\t\t\t\tplaceholder={ __( 'No Title' ) }\n\t\t\t\t\tvalue={ rawTitle }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\t{ ...blockProps }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<RawHTML key=\"html\">{ fullTitle?.rendered }</RawHTML>\n\t\t\t\t</TagName>\n\t\t\t);\n\t}\n\n\tif ( isLink && postType && postId ) {\n\t\ttitleElement =\n\t\t\tuserCanEdit && ! isDescendentOfQueryLoop ? (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<PlainText\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t! rawTitle.length ? __( 'No Title' ) : null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ rawTitle }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\t/>\n\t\t\t\t</TagName>\n\t\t\t) : (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ link }\n\t\t\t\t\t\ttarget={ linkTarget }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RawHTML key=\"html\">{ fullTitle?.rendered }</RawHTML>\n\t\t\t\t\t</a>\n\t\t\t\t</TagName>\n\t\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tselectedLevel={ level }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Make title a link' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\t\t\tvalue={ rel }\n\t\t\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t\t\t}\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n"]}
@@ -25,7 +25,7 @@ const metadata = {
25
25
  html: false,
26
26
  color: {
27
27
  gradients: true,
28
- link: true
28
+ text: false
29
29
  },
30
30
  typography: {
31
31
  fontSize: true,
@@ -25,7 +25,7 @@ const metadata = {
25
25
  html: false,
26
26
  color: {
27
27
  gradients: true,
28
- link: true
28
+ text: false
29
29
  },
30
30
  typography: {
31
31
  fontSize: true,
@@ -5,7 +5,7 @@ const metadata = {
5
5
  apiVersion: 2,
6
6
  name: "core/query-title",
7
7
  title: "Query Title",
8
- category: "design",
8
+ category: "theme",
9
9
  description: "Display the query title.",
10
10
  textdomain: "default",
11
11
  attributes: {
@@ -10,7 +10,7 @@ const metadata = {
10
10
  apiVersion: 2,
11
11
  name: "core/site-logo",
12
12
  title: "Site Logo",
13
- category: "layout",
13
+ category: "theme",
14
14
  description: "Display a graphic to represent this site. Update the block, and the changes apply everywhere it\u2019s used. This is different than the site icon, which is the smaller image visible in your dashboard, browser tabs, etc used to help others recognize this site.",
15
15
  textdomain: "default",
16
16
  attributes: {
@@ -5,7 +5,7 @@ const metadata = {
5
5
  apiVersion: 2,
6
6
  name: "core/site-tagline",
7
7
  title: "Site Tagline",
8
- category: "design",
8
+ category: "theme",
9
9
  description: "Describe in a few words what the website is about. The tagline can be used in search results or when sharing on social networks even if it's not displayed in the theme design.",
10
10
  keywords: ["description"],
11
11
  textdomain: "default",
@@ -10,7 +10,7 @@ const metadata = {
10
10
  apiVersion: 2,
11
11
  name: "core/site-title",
12
12
  title: "Site Title",
13
- category: "design",
13
+ category: "theme",
14
14
  description: "Displays the name of this site. Update the block, and the changes apply everywhere it\u2019s used. This will also appear in the browser title bar and in search results.",
15
15
  textdomain: "default",
16
16
  attributes: {
@@ -3,7 +3,7 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { find } from 'lodash';
6
+ import { find, kebabCase } from 'lodash';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
@@ -65,7 +65,7 @@ export default function TemplatePartPlaceholder(_ref) {
65
65
  // block attributes.
66
66
  const record = {
67
67
  title,
68
- slug: 'template-part',
68
+ slug: kebabCase(title),
69
69
  content: serialize(startingBlocks),
70
70
  // `area` is filterable on the server and defaults to `UNCATEGORIZED`
71
71
  // if provided value is not allowed.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/placeholder/index.js"],"names":["find","__","sprintf","useCallback","useState","useDispatch","useSelect","Placeholder","Dropdown","Button","Spinner","serialize","store","coreStore","TemplatePartSelection","PatternsSetup","PLACEHOLDER_STEPS","initial","patterns","TemplatePartPlaceholder","area","clientId","setAttributes","enableSelection","hasResolvedReplacements","saveEntityRecord","step","setStep","areaIcon","areaLabel","select","definedAreas","__experimentalGetDefaultTemplatePartAreas","selectedArea","defaultArea","icon","label","onCreate","startingBlocks","title","record","slug","content","templatePart","theme","undefined","toLowerCase","isOpen","onToggle","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useCallback, useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Placeholder, Dropdown, Button, Spinner } from '@wordpress/components';\nimport { serialize } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartSelection from '../selection';\nimport PatternsSetup from './patterns-setup';\n\nconst PLACEHOLDER_STEPS = {\n\tinitial: 1,\n\tpatterns: 2,\n};\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\tsetAttributes,\n\tenableSelection,\n\thasResolvedReplacements,\n} ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst [ step, setStep ] = useState( PLACEHOLDER_STEPS.initial );\n\n\tconst { areaIcon, areaLabel } = useSelect(\n\t\t( select ) => {\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst definedAreas = select(\n\t\t\t\t'core/editor'\n\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\n\t\t\tconst selectedArea = find( definedAreas, { area } );\n\t\t\tconst defaultArea = find( definedAreas, { area: 'uncategorized' } );\n\n\t\t\treturn {\n\t\t\t\tareaIcon: selectedArea?.icon || defaultArea?.icon,\n\t\t\t\tareaLabel: selectedArea?.label || __( 'Template Part' ),\n\t\t\t};\n\t\t},\n\t\t[ area ]\n\t);\n\n\tconst onCreate = useCallback(\n\t\tasync (\n\t\t\tstartingBlocks = [],\n\t\t\ttitle = __( 'Untitled Template Part' )\n\t\t) => {\n\t\t\t// If we have `area` set from block attributes, means an exposed\n\t\t\t// block variation was inserted. So add this prop to the template\n\t\t\t// part entity on creation. Afterwards remove `area` value from\n\t\t\t// block attributes.\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tslug: 'template-part',\n\t\t\t\tcontent: serialize( startingBlocks ),\n\t\t\t\t// `area` is filterable on the server and defaults to `UNCATEGORIZED`\n\t\t\t\t// if provided value is not allowed.\n\t\t\t\tarea,\n\t\t\t};\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\trecord\n\t\t\t);\n\t\t\tsetAttributes( {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t\tarea: undefined,\n\t\t\t} );\n\t\t},\n\t\t[ setAttributes, area ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ step === PLACEHOLDER_STEPS.initial && (\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ areaIcon }\n\t\t\t\t\tlabel={ areaLabel }\n\t\t\t\t\tinstructions={\n\t\t\t\t\t\tenableSelection\n\t\t\t\t\t\t\t? sprintf(\n\t\t\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\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Choose an existing %s or create a new one.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tareaLabel.toLowerCase()\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\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\t\t__( 'Create a new %s.' ),\n\t\t\t\t\t\t\t\t\tareaLabel.toLowerCase()\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ! hasResolvedReplacements ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tcontentClassName=\"wp-block-template-part__placeholder-preview-dropdown-content\"\n\t\t\t\t\t\t\tposition=\"bottom right left\"\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ enableSelection && (\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Choose existing' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\tenableSelection\n\t\t\t\t\t\t\t\t\t\t\t\t? 'tertiary'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'primary'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetStep(\n\t\t\t\t\t\t\t\t\t\t\t\tPLACEHOLDER_STEPS.patterns\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\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\t\t\t\t__( 'New %s' ),\n\t\t\t\t\t\t\t\t\t\t\tareaLabel.toLowerCase()\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<TemplatePartSelection\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\t\t\t/>\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</Placeholder>\n\t\t\t) }\n\t\t\t{ step === PLACEHOLDER_STEPS.patterns && (\n\t\t\t\t<PatternsSetup\n\t\t\t\t\tarea={ area }\n\t\t\t\t\tareaLabel={ areaLabel }\n\t\t\t\t\tareaIcon={ areaIcon }\n\t\t\t\t\tonCreate={ onCreate }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tresetPlaceholder={ () =>\n\t\t\t\t\t\tsetStep( PLACEHOLDER_STEPS.initial )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/template-part/edit/placeholder/index.js"],"names":["find","kebabCase","__","sprintf","useCallback","useState","useDispatch","useSelect","Placeholder","Dropdown","Button","Spinner","serialize","store","coreStore","TemplatePartSelection","PatternsSetup","PLACEHOLDER_STEPS","initial","patterns","TemplatePartPlaceholder","area","clientId","setAttributes","enableSelection","hasResolvedReplacements","saveEntityRecord","step","setStep","areaIcon","areaLabel","select","definedAreas","__experimentalGetDefaultTemplatePartAreas","selectedArea","defaultArea","icon","label","onCreate","startingBlocks","title","record","slug","content","templatePart","theme","undefined","toLowerCase","isOpen","onToggle","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useCallback, useState } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { Placeholder, Dropdown, Button, Spinner } from '@wordpress/components';\nimport { serialize } from '@wordpress/blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartSelection from '../selection';\nimport PatternsSetup from './patterns-setup';\n\nconst PLACEHOLDER_STEPS = {\n\tinitial: 1,\n\tpatterns: 2,\n};\n\nexport default function TemplatePartPlaceholder( {\n\tarea,\n\tclientId,\n\tsetAttributes,\n\tenableSelection,\n\thasResolvedReplacements,\n} ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst [ step, setStep ] = useState( PLACEHOLDER_STEPS.initial );\n\n\tconst { areaIcon, areaLabel } = useSelect(\n\t\t( select ) => {\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst definedAreas = select(\n\t\t\t\t'core/editor'\n\t\t\t).__experimentalGetDefaultTemplatePartAreas();\n\n\t\t\tconst selectedArea = find( definedAreas, { area } );\n\t\t\tconst defaultArea = find( definedAreas, { area: 'uncategorized' } );\n\n\t\t\treturn {\n\t\t\t\tareaIcon: selectedArea?.icon || defaultArea?.icon,\n\t\t\t\tareaLabel: selectedArea?.label || __( 'Template Part' ),\n\t\t\t};\n\t\t},\n\t\t[ area ]\n\t);\n\n\tconst onCreate = useCallback(\n\t\tasync (\n\t\t\tstartingBlocks = [],\n\t\t\ttitle = __( 'Untitled Template Part' )\n\t\t) => {\n\t\t\t// If we have `area` set from block attributes, means an exposed\n\t\t\t// block variation was inserted. So add this prop to the template\n\t\t\t// part entity on creation. Afterwards remove `area` value from\n\t\t\t// block attributes.\n\t\t\tconst record = {\n\t\t\t\ttitle,\n\t\t\t\tslug: kebabCase( title ),\n\t\t\t\tcontent: serialize( startingBlocks ),\n\t\t\t\t// `area` is filterable on the server and defaults to `UNCATEGORIZED`\n\t\t\t\t// if provided value is not allowed.\n\t\t\t\tarea,\n\t\t\t};\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\trecord\n\t\t\t);\n\t\t\tsetAttributes( {\n\t\t\t\tslug: templatePart.slug,\n\t\t\t\ttheme: templatePart.theme,\n\t\t\t\tarea: undefined,\n\t\t\t} );\n\t\t},\n\t\t[ setAttributes, area ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ step === PLACEHOLDER_STEPS.initial && (\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ areaIcon }\n\t\t\t\t\tlabel={ areaLabel }\n\t\t\t\t\tinstructions={\n\t\t\t\t\t\tenableSelection\n\t\t\t\t\t\t\t? sprintf(\n\t\t\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\t\t__(\n\t\t\t\t\t\t\t\t\t\t'Choose an existing %s or create a new one.'\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\tareaLabel.toLowerCase()\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\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\t\t__( 'Create a new %s.' ),\n\t\t\t\t\t\t\t\t\tareaLabel.toLowerCase()\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ ! hasResolvedReplacements ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tcontentClassName=\"wp-block-template-part__placeholder-preview-dropdown-content\"\n\t\t\t\t\t\t\tposition=\"bottom right left\"\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ enableSelection && (\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Choose existing' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\tenableSelection\n\t\t\t\t\t\t\t\t\t\t\t\t? 'tertiary'\n\t\t\t\t\t\t\t\t\t\t\t\t: 'primary'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetStep(\n\t\t\t\t\t\t\t\t\t\t\t\tPLACEHOLDER_STEPS.patterns\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\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\t\t\t\t__( 'New %s' ),\n\t\t\t\t\t\t\t\t\t\t\tareaLabel.toLowerCase()\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<TemplatePartSelection\n\t\t\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tarea={ area }\n\t\t\t\t\t\t\t\t/>\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</Placeholder>\n\t\t\t) }\n\t\t\t{ step === PLACEHOLDER_STEPS.patterns && (\n\t\t\t\t<PatternsSetup\n\t\t\t\t\tarea={ area }\n\t\t\t\t\tareaLabel={ areaLabel }\n\t\t\t\t\tareaIcon={ areaIcon }\n\t\t\t\t\tonCreate={ onCreate }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tresetPlaceholder={ () =>\n\t\t\t\t\t\tsetStep( PLACEHOLDER_STEPS.initial )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}