@wordpress/editor 13.29.0 → 13.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/bindings/index.js +5 -3
  3. package/build/bindings/index.js.map +1 -1
  4. package/build/bindings/post-meta.js +2 -1
  5. package/build/bindings/post-meta.js.map +1 -1
  6. package/build/components/block-removal-warnings/index.js +70 -0
  7. package/build/components/block-removal-warnings/index.js.map +1 -0
  8. package/build/components/commands/index.js +22 -14
  9. package/build/components/commands/index.js.map +1 -1
  10. package/build/components/document-bar/index.js +2 -2
  11. package/build/components/document-bar/index.js.map +1 -1
  12. package/build/components/document-outline/check.js +8 -7
  13. package/build/components/document-outline/check.js.map +1 -1
  14. package/build/components/document-outline/index.js +27 -28
  15. package/build/components/document-outline/index.js.map +1 -1
  16. package/build/components/document-tools/index.js +5 -3
  17. package/build/components/document-tools/index.js.map +1 -1
  18. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  19. package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
  20. package/build/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
  21. package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  22. package/build/components/entities-saved-states/index.js +17 -3
  23. package/build/components/entities-saved-states/index.js.map +1 -1
  24. package/build/components/error-boundary/index.native.js +133 -0
  25. package/build/components/error-boundary/index.native.js.map +1 -0
  26. package/build/components/index.js +9 -8
  27. package/build/components/index.js.map +1 -1
  28. package/build/components/index.native.js +9 -1
  29. package/build/components/index.native.js.map +1 -1
  30. package/build/components/list-view-sidebar/index.js +1 -1
  31. package/build/components/list-view-sidebar/index.js.map +1 -1
  32. package/build/components/plugin-document-setting-panel/index.js +123 -0
  33. package/build/components/plugin-document-setting-panel/index.js.map +1 -0
  34. package/build/components/post-featured-image/index.js +3 -8
  35. package/build/components/post-featured-image/index.js.map +1 -1
  36. package/build/components/post-featured-image/panel.js +7 -3
  37. package/build/components/post-featured-image/panel.js.map +1 -1
  38. package/build/components/post-locked-modal/index.js.map +1 -1
  39. package/build/components/post-preview-button/index.js +2 -1
  40. package/build/components/post-preview-button/index.js.map +1 -1
  41. package/build/components/post-publish-button/index.js +2 -1
  42. package/build/components/post-publish-button/index.js.map +1 -1
  43. package/build/components/post-publish-panel/index.js.map +1 -1
  44. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  45. package/build/components/post-sync-status/index.js +0 -72
  46. package/build/components/post-sync-status/index.js.map +1 -1
  47. package/build/components/post-taxonomies/flat-term-selector.js +7 -3
  48. package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
  49. package/build/components/post-taxonomies/hierarchical-term-selector.js +3 -0
  50. package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  51. package/build/components/post-title/index.native.js.map +1 -1
  52. package/build/components/post-title/post-title-raw.js.map +1 -1
  53. package/build/components/post-view-link/index.js +2 -1
  54. package/build/components/post-view-link/index.js.map +1 -1
  55. package/build/components/provider/disable-non-page-content-blocks.js +23 -30
  56. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  57. package/build/components/provider/index.js +3 -2
  58. package/build/components/provider/index.js.map +1 -1
  59. package/build/components/provider/use-hide-blocks-from-inserter.js +4 -3
  60. package/build/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  61. package/build/hooks/index.js +1 -1
  62. package/build/hooks/index.js.map +1 -1
  63. package/build/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +13 -9
  64. package/build/hooks/pattern-overrides.js.map +1 -0
  65. package/build/private-apis.js +0 -2
  66. package/build/private-apis.js.map +1 -1
  67. package/build-module/bindings/index.js +5 -3
  68. package/build-module/bindings/index.js.map +1 -1
  69. package/build-module/bindings/post-meta.js +2 -1
  70. package/build-module/bindings/post-meta.js.map +1 -1
  71. package/build-module/components/block-removal-warnings/index.js +64 -0
  72. package/build-module/components/block-removal-warnings/index.js.map +1 -0
  73. package/build-module/components/commands/index.js +22 -14
  74. package/build-module/components/commands/index.js.map +1 -1
  75. package/build-module/components/document-bar/index.js +2 -2
  76. package/build-module/components/document-bar/index.js.map +1 -1
  77. package/build-module/components/document-outline/check.js +9 -8
  78. package/build-module/components/document-outline/check.js.map +1 -1
  79. package/build-module/components/document-outline/index.js +27 -27
  80. package/build-module/components/document-outline/index.js.map +1 -1
  81. package/build-module/components/document-tools/index.js +5 -3
  82. package/build-module/components/document-tools/index.js.map +1 -1
  83. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  84. package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
  85. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +10 -16
  86. package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
  87. package/build-module/components/entities-saved-states/index.js +18 -4
  88. package/build-module/components/entities-saved-states/index.js.map +1 -1
  89. package/build-module/components/error-boundary/index.native.js +125 -0
  90. package/build-module/components/error-boundary/index.native.js.map +1 -0
  91. package/build-module/components/index.js +2 -1
  92. package/build-module/components/index.js.map +1 -1
  93. package/build-module/components/index.native.js +1 -0
  94. package/build-module/components/index.native.js.map +1 -1
  95. package/build-module/components/list-view-sidebar/index.js +1 -1
  96. package/build-module/components/list-view-sidebar/index.js.map +1 -1
  97. package/build-module/components/plugin-document-setting-panel/index.js +115 -0
  98. package/build-module/components/plugin-document-setting-panel/index.js.map +1 -0
  99. package/build-module/components/post-featured-image/index.js +4 -9
  100. package/build-module/components/post-featured-image/index.js.map +1 -1
  101. package/build-module/components/post-featured-image/panel.js +6 -2
  102. package/build-module/components/post-featured-image/panel.js.map +1 -1
  103. package/build-module/components/post-locked-modal/index.js.map +1 -1
  104. package/build-module/components/post-preview-button/index.js +2 -1
  105. package/build-module/components/post-preview-button/index.js.map +1 -1
  106. package/build-module/components/post-publish-button/index.js +2 -1
  107. package/build-module/components/post-publish-button/index.js.map +1 -1
  108. package/build-module/components/post-publish-panel/index.js.map +1 -1
  109. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  110. package/build-module/components/post-sync-status/index.js +2 -73
  111. package/build-module/components/post-sync-status/index.js.map +1 -1
  112. package/build-module/components/post-taxonomies/flat-term-selector.js +7 -3
  113. package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
  114. package/build-module/components/post-taxonomies/hierarchical-term-selector.js +3 -0
  115. package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
  116. package/build-module/components/post-title/index.native.js.map +1 -1
  117. package/build-module/components/post-title/post-title-raw.js.map +1 -1
  118. package/build-module/components/post-view-link/index.js +2 -1
  119. package/build-module/components/post-view-link/index.js.map +1 -1
  120. package/build-module/components/provider/disable-non-page-content-blocks.js +24 -31
  121. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  122. package/build-module/components/provider/index.js +3 -2
  123. package/build-module/components/provider/index.js.map +1 -1
  124. package/build-module/components/provider/use-hide-blocks-from-inserter.js +4 -3
  125. package/build-module/components/provider/use-hide-blocks-from-inserter.js.map +1 -1
  126. package/build-module/hooks/index.js +1 -1
  127. package/build-module/hooks/index.js.map +1 -1
  128. package/build-module/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +13 -9
  129. package/build-module/hooks/pattern-overrides.js.map +1 -0
  130. package/build-module/private-apis.js +0 -2
  131. package/build-module/private-apis.js.map +1 -1
  132. package/build-style/style-rtl.css +9 -8
  133. package/build-style/style.css +9 -8
  134. package/package.json +34 -32
  135. package/src/bindings/index.js +6 -3
  136. package/src/bindings/post-meta.js +4 -1
  137. package/src/components/block-removal-warnings/index.js +92 -0
  138. package/src/components/commands/index.js +21 -13
  139. package/src/components/document-bar/index.js +3 -2
  140. package/src/components/document-outline/check.js +8 -10
  141. package/src/components/document-outline/index.js +20 -24
  142. package/src/components/document-outline/test/index.js +26 -7
  143. package/src/components/document-tools/index.js +3 -3
  144. package/src/components/editor-help/intro-to-blocks.native.js +1 -1
  145. package/src/components/entities-saved-states/entity-type-list.js +1 -1
  146. package/src/components/entities-saved-states/hooks/use-is-dirty.js +18 -22
  147. package/src/components/entities-saved-states/index.js +33 -8
  148. package/src/components/entities-saved-states/test/use-is-dirty.js +3 -0
  149. package/src/components/error-boundary/index.native.js +192 -0
  150. package/src/components/error-boundary/style.native.scss +116 -0
  151. package/src/components/index.js +2 -4
  152. package/src/components/index.native.js +1 -0
  153. package/src/components/list-view-sidebar/index.js +1 -1
  154. package/src/components/plugin-document-setting-panel/index.js +121 -0
  155. package/src/components/post-featured-image/index.js +6 -15
  156. package/src/components/post-featured-image/panel.js +9 -3
  157. package/src/components/post-featured-image/style.scss +8 -13
  158. package/src/components/post-locked-modal/index.js +1 -1
  159. package/src/components/post-preview-button/index.js +1 -0
  160. package/src/components/post-publish-button/index.js +1 -0
  161. package/src/components/post-publish-panel/index.js +1 -1
  162. package/src/components/post-publish-panel/maybe-upload-media.js +1 -1
  163. package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +3 -3
  164. package/src/components/post-sync-status/index.js +1 -94
  165. package/src/components/post-taxonomies/flat-term-selector.js +13 -8
  166. package/src/components/post-taxonomies/hierarchical-term-selector.js +3 -0
  167. package/src/components/post-title/index.native.js +2 -2
  168. package/src/components/post-title/post-title-raw.js +1 -1
  169. package/src/components/post-view-link/index.js +1 -0
  170. package/src/components/provider/disable-non-page-content-blocks.js +34 -36
  171. package/src/components/provider/index.js +3 -1
  172. package/src/components/provider/test/disable-non-page-content-blocks.js +90 -0
  173. package/src/components/provider/use-hide-blocks-from-inserter.js +5 -3
  174. package/src/hooks/index.js +1 -1
  175. package/src/hooks/{pattern-partial-syncing.js → pattern-overrides.js} +16 -10
  176. package/src/private-apis.js +0 -2
  177. package/build/components/provider/constants.js +0 -8
  178. package/build/components/provider/constants.js.map +0 -1
  179. package/build/hooks/pattern-partial-syncing.js.map +0 -1
  180. package/build-module/components/provider/constants.js +0 -2
  181. package/build-module/components/provider/constants.js.map +0 -1
  182. package/build-module/hooks/pattern-partial-syncing.js.map +0 -1
  183. package/src/components/provider/constants.js +0 -5
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","isRTL","sprintf","useSelect","useDispatch","Button","__experimentalText","Text","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","BlockIcon","chevronLeftSmall","chevronRightSmall","page","pageIcon","navigation","navigationIcon","symbol","displayShortcut","store","coreStore","commandsStore","useRef","useEffect","useReducedMotion","editorStore","TYPE_LABELS","wp_pattern","wp_navigation","wp_template","wp_template_part","ICONS","wp_block","TEMPLATE_POST_TYPES","GLOBAL_POST_TYPES","MotionButton","DocumentBar","_ICONS$postType","postType","document","isResolving","templateIcon","templateTitle","onNavigateToPreviousEntityRecord","select","getCurrentPostType","getCurrentPostId","getEditorSettings","__experimentalGetTemplateInfo","getTemplateInfo","getEditedEntityRecord","getIsResolving","_postType","_postId","_document","_templateInfo","icon","title","open","openCommandCenter","isReducedMotion","isNotFound","isTemplate","includes","isGlobalEntity","hasBackButton","mounted","current","createElement","className","onClick","event","stopPropagation","size","initial","opacity","transform","animate","exit","transition","duration","undefined","div","key","as","primary"],"sources":["@wordpress/editor/src/components/document-bar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst TYPE_LABELS = {\n\t// translators: 1: Pattern title.\n\twp_pattern: __( 'Editing pattern: %s' ),\n\t// translators: 1: Navigation menu title.\n\twp_navigation: __( 'Editing navigation menu: %s' ),\n\t// translators: 1: Template title.\n\twp_template: __( 'Editing template: %s' ),\n\t// translators: 1: Template part title.\n\twp_template_part: __( 'Editing template part: %s' ),\n};\n\nconst ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigationIcon,\n};\n\nconst TEMPLATE_POST_TYPES = [ 'wp_template', 'wp_template_part' ];\n\nconst GLOBAL_POST_TYPES = [\n\t...TEMPLATE_POST_TYPES,\n\t'wp_block',\n\t'wp_navigation',\n];\n\nconst MotionButton = motion( Button );\n\nexport default function DocumentBar() {\n\tconst {\n\t\tpostType,\n\t\tdocument,\n\t\tisResolving,\n\t\ttemplateIcon,\n\t\ttemplateTitle,\n\t\tonNavigateToPreviousEntityRecord,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\tgetEditorSettings,\n\t\t\t__experimentalGetTemplateInfo: getTemplateInfo,\n\t\t} = select( editorStore );\n\t\tconst { getEditedEntityRecord, getIsResolving } = select( coreStore );\n\t\tconst _postType = getCurrentPostType();\n\t\tconst _postId = getCurrentPostId();\n\t\tconst _document = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t_postType,\n\t\t\t_postId\n\t\t);\n\t\tconst _templateInfo = getTemplateInfo( _document );\n\t\treturn {\n\t\t\tpostType: _postType,\n\t\t\tdocument: _document,\n\t\t\tisResolving: getIsResolving(\n\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\t_postId\n\t\t\t),\n\t\t\ttemplateIcon: _templateInfo.icon,\n\t\t\ttemplateTitle: _templateInfo.title,\n\t\t\tonNavigateToPreviousEntityRecord:\n\t\t\t\tgetEditorSettings().onNavigateToPreviousEntityRecord,\n\t\t};\n\t}, [] );\n\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\tconst isReducedMotion = useReducedMotion();\n\n\tconst isNotFound = ! document && ! isResolving;\n\tconst icon = ICONS[ postType ] ?? pageIcon;\n\tconst isTemplate = TEMPLATE_POST_TYPES.includes( postType );\n\tconst isGlobalEntity = GLOBAL_POST_TYPES.includes( postType );\n\tconst hasBackButton = !! onNavigateToPreviousEntityRecord;\n\tconst title = isTemplate ? templateTitle : document.title;\n\n\tconst mounted = useRef( false );\n\tuseEffect( () => {\n\t\tmounted.current = true;\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'editor-document-bar', {\n\t\t\t\t'has-back-button': hasBackButton,\n\t\t\t\t'is-global': isGlobalEntity,\n\t\t\t} ) }\n\t\t>\n\t\t\t<AnimatePresence>\n\t\t\t\t{ hasBackButton && (\n\t\t\t\t\t<MotionButton\n\t\t\t\t\t\tclassName=\"editor-document-bar__back\"\n\t\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\tonNavigateToPreviousEntityRecord();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\tmounted.current\n\t\t\t\t\t\t\t\t? { opacity: 0, transform: 'translateX(15%)' }\n\t\t\t\t\t\t\t\t: false // Don't show entry animation when DocumentBar mounts.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimate={ { opacity: 1, transform: 'translateX(0%)' } }\n\t\t\t\t\t\texit={ { opacity: 0, transform: 'translateX(15%)' } }\n\t\t\t\t\t\ttransition={\n\t\t\t\t\t\t\tisReducedMotion ? { duration: 0 } : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t</MotionButton>\n\t\t\t\t) }\n\t\t\t</AnimatePresence>\n\t\t\t{ isNotFound ? (\n\t\t\t\t<Text>{ __( 'Document not found' ) }</Text>\n\t\t\t) : (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-document-bar__command\"\n\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tclassName=\"editor-document-bar__title\"\n\t\t\t\t\t\t// Force entry animation when the back button is added or removed.\n\t\t\t\t\t\tkey={ hasBackButton }\n\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\tmounted.current\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t\t\t\ttransform: hasBackButton\n\t\t\t\t\t\t\t\t\t\t\t? 'translateX(15%)'\n\t\t\t\t\t\t\t\t\t\t\t: 'translateX(-15%)',\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: false // Don't show entry animation when DocumentBar mounts.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimate={ {\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: 'translateX(0%)',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ttransition={\n\t\t\t\t\t\t\tisReducedMotion ? { duration: 0 } : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ isTemplate ? templateIcon : icon } />\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"body\"\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\tTYPE_LABELS[ postType ]\n\t\t\t\t\t\t\t\t\t? // eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\t\t\t\t\t sprintf( TYPE_LABELS[ postType ], title )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</motion.div>\n\t\t\t\t\t<span className=\"editor-document-bar__shortcut\">\n\t\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__","isRTL","sprintf","useSelect","useDispatch","Button","__experimentalText","Text","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","BlockIcon","chevronLeftSmall","chevronRightSmall","page","pageIcon","navigation","navigationIcon","symbol","displayShortcut","store","coreStore","commandsStore","useRef","useEffect","useReducedMotion","editorStore","TYPE_LABELS","wp_pattern","wp_navigation","wp_template","wp_template_part","ICONS","wp_block","TEMPLATE_POST_TYPES","GLOBAL_POST_TYPES","MotionButton","DocumentBar","_ICONS$postType","postType","document","isResolving","templateIcon","templateTitle","onNavigateToPreviousEntityRecord","select","getCurrentPostType","getCurrentPostId","getEditorSettings","__experimentalGetTemplateInfo","getTemplateInfo","getEditedEntityRecord","isResolvingSelector","_postType","_postId","_document","_templateInfo","icon","title","open","openCommandCenter","isReducedMotion","isNotFound","isTemplate","includes","isGlobalEntity","hasBackButton","mounted","current","createElement","className","onClick","event","stopPropagation","size","initial","opacity","transform","animate","exit","transition","duration","undefined","div","key","as","primary"],"sources":["@wordpress/editor/src/components/document-bar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/block-editor';\nimport {\n\tchevronLeftSmall,\n\tchevronRightSmall,\n\tpage as pageIcon,\n\tnavigation as navigationIcon,\n\tsymbol,\n} from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as commandsStore } from '@wordpress/commands';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst TYPE_LABELS = {\n\t// translators: 1: Pattern title.\n\twp_pattern: __( 'Editing pattern: %s' ),\n\t// translators: 1: Navigation menu title.\n\twp_navigation: __( 'Editing navigation menu: %s' ),\n\t// translators: 1: Template title.\n\twp_template: __( 'Editing template: %s' ),\n\t// translators: 1: Template part title.\n\twp_template_part: __( 'Editing template part: %s' ),\n};\n\nconst ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigationIcon,\n};\n\nconst TEMPLATE_POST_TYPES = [ 'wp_template', 'wp_template_part' ];\n\nconst GLOBAL_POST_TYPES = [\n\t...TEMPLATE_POST_TYPES,\n\t'wp_block',\n\t'wp_navigation',\n];\n\nconst MotionButton = motion( Button );\n\nexport default function DocumentBar() {\n\tconst {\n\t\tpostType,\n\t\tdocument,\n\t\tisResolving,\n\t\ttemplateIcon,\n\t\ttemplateTitle,\n\t\tonNavigateToPreviousEntityRecord,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\tgetEditorSettings,\n\t\t\t__experimentalGetTemplateInfo: getTemplateInfo,\n\t\t} = select( editorStore );\n\t\tconst { getEditedEntityRecord, isResolving: isResolvingSelector } =\n\t\t\tselect( coreStore );\n\t\tconst _postType = getCurrentPostType();\n\t\tconst _postId = getCurrentPostId();\n\t\tconst _document = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t_postType,\n\t\t\t_postId\n\t\t);\n\t\tconst _templateInfo = getTemplateInfo( _document );\n\t\treturn {\n\t\t\tpostType: _postType,\n\t\t\tdocument: _document,\n\t\t\tisResolving: isResolvingSelector(\n\t\t\t\t'getEditedEntityRecord',\n\t\t\t\t'postType',\n\t\t\t\t_postType,\n\t\t\t\t_postId\n\t\t\t),\n\t\t\ttemplateIcon: _templateInfo.icon,\n\t\t\ttemplateTitle: _templateInfo.title,\n\t\t\tonNavigateToPreviousEntityRecord:\n\t\t\t\tgetEditorSettings().onNavigateToPreviousEntityRecord,\n\t\t};\n\t}, [] );\n\n\tconst { open: openCommandCenter } = useDispatch( commandsStore );\n\tconst isReducedMotion = useReducedMotion();\n\n\tconst isNotFound = ! document && ! isResolving;\n\tconst icon = ICONS[ postType ] ?? pageIcon;\n\tconst isTemplate = TEMPLATE_POST_TYPES.includes( postType );\n\tconst isGlobalEntity = GLOBAL_POST_TYPES.includes( postType );\n\tconst hasBackButton = !! onNavigateToPreviousEntityRecord;\n\tconst title = isTemplate ? templateTitle : document.title;\n\n\tconst mounted = useRef( false );\n\tuseEffect( () => {\n\t\tmounted.current = true;\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'editor-document-bar', {\n\t\t\t\t'has-back-button': hasBackButton,\n\t\t\t\t'is-global': isGlobalEntity,\n\t\t\t} ) }\n\t\t>\n\t\t\t<AnimatePresence>\n\t\t\t\t{ hasBackButton && (\n\t\t\t\t\t<MotionButton\n\t\t\t\t\t\tclassName=\"editor-document-bar__back\"\n\t\t\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\tonNavigateToPreviousEntityRecord();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\tmounted.current\n\t\t\t\t\t\t\t\t? { opacity: 0, transform: 'translateX(15%)' }\n\t\t\t\t\t\t\t\t: false // Don't show entry animation when DocumentBar mounts.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimate={ { opacity: 1, transform: 'translateX(0%)' } }\n\t\t\t\t\t\texit={ { opacity: 0, transform: 'translateX(15%)' } }\n\t\t\t\t\t\ttransition={\n\t\t\t\t\t\t\tisReducedMotion ? { duration: 0 } : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Back' ) }\n\t\t\t\t\t</MotionButton>\n\t\t\t\t) }\n\t\t\t</AnimatePresence>\n\t\t\t{ isNotFound ? (\n\t\t\t\t<Text>{ __( 'Document not found' ) }</Text>\n\t\t\t) : (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"editor-document-bar__command\"\n\t\t\t\t\tonClick={ () => openCommandCenter() }\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t>\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tclassName=\"editor-document-bar__title\"\n\t\t\t\t\t\t// Force entry animation when the back button is added or removed.\n\t\t\t\t\t\tkey={ hasBackButton }\n\t\t\t\t\t\tinitial={\n\t\t\t\t\t\t\tmounted.current\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t\t\t\ttransform: hasBackButton\n\t\t\t\t\t\t\t\t\t\t\t? 'translateX(15%)'\n\t\t\t\t\t\t\t\t\t\t\t: 'translateX(-15%)',\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: false // Don't show entry animation when DocumentBar mounts.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimate={ {\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: 'translateX(0%)',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ttransition={\n\t\t\t\t\t\t\tisReducedMotion ? { duration: 0 } : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ isTemplate ? templateIcon : icon } />\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tsize=\"body\"\n\t\t\t\t\t\t\tas=\"h1\"\n\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\tTYPE_LABELS[ postType ]\n\t\t\t\t\t\t\t\t\t? // eslint-disable-next-line @wordpress/valid-sprintf\n\t\t\t\t\t\t\t\t\t sprintf( TYPE_LABELS[ postType ], title )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</motion.div>\n\t\t\t\t\t<span className=\"editor-document-bar__shortcut\">\n\t\t\t\t\t\t{ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t</span>\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -1,19 +1,20 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { withSelect } from '@wordpress/data';
4
+ import { useSelect } from '@wordpress/data';
5
5
  import { store as blockEditorStore } from '@wordpress/block-editor';
6
- function DocumentOutlineCheck({
7
- blocks,
6
+ export default function DocumentOutlineCheck({
8
7
  children
9
8
  }) {
10
- const headings = blocks.filter(block => block.name === 'core/heading');
11
- if (headings.length < 1) {
9
+ const hasHeadings = useSelect(select => {
10
+ const {
11
+ getGlobalBlockCount
12
+ } = select(blockEditorStore);
13
+ return getGlobalBlockCount('core/heading') > 0;
14
+ });
15
+ if (hasHeadings) {
12
16
  return null;
13
17
  }
14
18
  return children;
15
19
  }
16
- export default withSelect(select => ({
17
- blocks: select(blockEditorStore).getBlocks()
18
- }))(DocumentOutlineCheck);
19
20
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withSelect","store","blockEditorStore","DocumentOutlineCheck","blocks","children","headings","filter","block","name","length","select","getBlocks"],"sources":["@wordpress/editor/src/components/document-outline/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction DocumentOutlineCheck( { blocks, children } ) {\n\tconst headings = blocks.filter(\n\t\t( block ) => block.name === 'core/heading'\n\t);\n\n\tif ( headings.length < 1 ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => ( {\n\tblocks: select( blockEditorStore ).getBlocks(),\n} ) )( DocumentOutlineCheck );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AAEnE,SAASC,oBAAoBA,CAAE;EAAEC,MAAM;EAAEC;AAAS,CAAC,EAAG;EACrD,MAAMC,QAAQ,GAAGF,MAAM,CAACG,MAAM,CAC3BC,KAAK,IAAMA,KAAK,CAACC,IAAI,KAAK,cAC7B,CAAC;EAED,IAAKH,QAAQ,CAACI,MAAM,GAAG,CAAC,EAAG;IAC1B,OAAO,IAAI;EACZ;EAEA,OAAOL,QAAQ;AAChB;AAEA,eAAeL,UAAU,CAAIW,MAAM,KAAQ;EAC1CP,MAAM,EAAEO,MAAM,CAAET,gBAAiB,CAAC,CAACU,SAAS,CAAC;AAC9C,CAAC,CAAG,CAAC,CAAET,oBAAqB,CAAC"}
1
+ {"version":3,"names":["useSelect","store","blockEditorStore","DocumentOutlineCheck","children","hasHeadings","select","getGlobalBlockCount"],"sources":["@wordpress/editor/src/components/document-outline/check.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nexport default function DocumentOutlineCheck( { children } ) {\n\tconst hasHeadings = useSelect( ( select ) => {\n\t\tconst { getGlobalBlockCount } = select( blockEditorStore );\n\n\t\treturn getGlobalBlockCount( 'core/heading' ) > 0;\n\t} );\n\n\tif ( hasHeadings ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,yBAAyB;AAEnE,eAAe,SAASC,oBAAoBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC5D,MAAMC,WAAW,GAAGL,SAAS,CAAIM,MAAM,IAAM;IAC5C,MAAM;MAAEC;IAAoB,CAAC,GAAGD,MAAM,CAAEJ,gBAAiB,CAAC;IAE1D,OAAOK,mBAAmB,CAAE,cAAe,CAAC,GAAG,CAAC;EACjD,CAAE,CAAC;EAEH,IAAKF,WAAW,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OAAOD,QAAQ;AAChB"}
@@ -3,8 +3,7 @@ import { createElement } from "react";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { __ } from '@wordpress/i18n';
6
- import { compose } from '@wordpress/compose';
7
- import { withSelect, useDispatch } from '@wordpress/data';
6
+ import { useDispatch, useSelect } from '@wordpress/data';
8
7
  import { create, getTextContent } from '@wordpress/rich-text';
9
8
  import { store as blockEditorStore } from '@wordpress/block-editor';
10
9
  import { store as coreStore } from '@wordpress/core-data';
@@ -135,18 +134,37 @@ const computeOutlineHeadings = (blocks = []) => {
135
134
  return computeOutlineHeadings(block.innerBlocks);
136
135
  });
137
136
  };
138
- const isEmptyHeading = heading => !heading.attributes.content || heading.attributes.content.length === 0;
139
- export const DocumentOutline = ({
140
- blocks = [],
141
- title,
137
+ const isEmptyHeading = heading => !heading.attributes.content || heading.attributes.content.trim().length === 0;
138
+ export default function DocumentOutline({
142
139
  onSelect,
143
140
  isTitleSupported,
144
141
  hasOutlineItemsDisabled
145
- }) => {
146
- const headings = computeOutlineHeadings(blocks);
142
+ }) {
147
143
  const {
148
144
  selectBlock
149
145
  } = useDispatch(blockEditorStore);
146
+ const {
147
+ blocks,
148
+ title
149
+ } = useSelect(select => {
150
+ var _postType$supports$ti;
151
+ const {
152
+ getBlocks
153
+ } = select(blockEditorStore);
154
+ const {
155
+ getEditedPostAttribute
156
+ } = select(editorStore);
157
+ const {
158
+ getPostType
159
+ } = select(coreStore);
160
+ const postType = getPostType(getEditedPostAttribute('type'));
161
+ return {
162
+ title: getEditedPostAttribute('title'),
163
+ blocks: getBlocks(),
164
+ isTitleSupported: (_postType$supports$ti = postType?.supports?.title) !== null && _postType$supports$ti !== void 0 ? _postType$supports$ti : false
165
+ };
166
+ });
167
+ const headings = computeOutlineHeadings(blocks);
150
168
  if (headings.length < 1) {
151
169
  return createElement("div", {
152
170
  className: "editor-document-outline has-no-headings"
@@ -190,23 +208,5 @@ export const DocumentOutline = ({
190
208
  html: item.attributes.content
191
209
  })), isIncorrectLevel && incorrectLevelContent, item.level === 1 && hasMultipleH1 && multipleH1Headings, hasTitle && item.level === 1 && !hasMultipleH1 && singleH1Headings);
192
210
  })));
193
- };
194
- export default compose(withSelect(select => {
195
- var _postType$supports$ti;
196
- const {
197
- getBlocks
198
- } = select(blockEditorStore);
199
- const {
200
- getEditedPostAttribute
201
- } = select(editorStore);
202
- const {
203
- getPostType
204
- } = select(coreStore);
205
- const postType = getPostType(getEditedPostAttribute('type'));
206
- return {
207
- title: getEditedPostAttribute('title'),
208
- blocks: getBlocks(),
209
- isTitleSupported: (_postType$supports$ti = postType?.supports?.title) !== null && _postType$supports$ti !== void 0 ? _postType$supports$ti : false
210
- };
211
- }))(DocumentOutline);
211
+ }
212
212
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__","compose","withSelect","useDispatch","create","getTextContent","store","blockEditorStore","coreStore","Path","SVG","Line","Rect","DocumentOutlineItem","editorStore","emptyHeadingContent","createElement","incorrectLevelContent","key","singleH1Headings","multipleH1Headings","EmptyOutlineIllustration","width","height","viewBox","fill","xmlns","rx","x1","y1","x2","y2","stroke","x","y","d","computeOutlineHeadings","blocks","flatMap","block","name","level","attributes","isEmpty","isEmptyHeading","innerBlocks","heading","content","length","DocumentOutline","title","onSelect","isTitleSupported","hasOutlineItemsDisabled","headings","selectBlock","className","prevHeadingLevel","titleNode","document","querySelector","hasTitle","countByLevel","reduce","acc","hasMultipleH1","isValid","href","id","isDisabled","map","item","index","isIncorrectLevel","clientId","html","select","_postType$supports$ti","getBlocks","getEditedPostAttribute","getPostType","postType","supports"],"sources":["@wordpress/editor/src/components/document-outline/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, useDispatch } from '@wordpress/data';\nimport { create, getTextContent } from '@wordpress/rich-text';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { Path, SVG, Line, Rect } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport DocumentOutlineItem from './item';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module constants\n */\nconst emptyHeadingContent = <em>{ __( '(Empty heading)' ) }</em>;\nconst incorrectLevelContent = [\n\t<br key=\"incorrect-break\" />,\n\t<em key=\"incorrect-message\">{ __( '(Incorrect heading level)' ) }</em>,\n];\nconst singleH1Headings = [\n\t<br key=\"incorrect-break-h1\" />,\n\t<em key=\"incorrect-message-h1\">\n\t\t{ __( '(Your theme may already use a H1 for the post title)' ) }\n\t</em>,\n];\nconst multipleH1Headings = [\n\t<br key=\"incorrect-break-multiple-h1\" />,\n\t<em key=\"incorrect-message-multiple-h1\">\n\t\t{ __( '(Multiple H1 headings are not recommended)' ) }\n\t</em>,\n];\nfunction EmptyOutlineIllustration() {\n\treturn (\n\t\t<SVG\n\t\t\twidth=\"138\"\n\t\t\theight=\"148\"\n\t\t\tviewBox=\"0 0 138 148\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<Rect width=\"138\" height=\"148\" rx=\"4\" fill=\"#F0F6FC\" />\n\t\t\t<Line x1=\"44\" y1=\"28\" x2=\"24\" y2=\"28\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"48\" y=\"16\" width=\"27\" height=\"23\" rx=\"4\" fill=\"#DDDDDD\" />\n\t\t\t<Path\n\t\t\t\td=\"M54.7585 32V23.2727H56.6037V26.8736H60.3494V23.2727H62.1903V32H60.3494V28.3949H56.6037V32H54.7585ZM67.4574 23.2727V32H65.6122V25.0241H65.5611L63.5625 26.277V24.6406L65.723 23.2727H67.4574Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t\t<Line x1=\"55\" y1=\"59\" x2=\"24\" y2=\"59\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"59\" y=\"47\" width=\"29\" height=\"23\" rx=\"4\" fill=\"#DDDDDD\" />\n\t\t\t<Path\n\t\t\t\td=\"M65.7585 63V54.2727H67.6037V57.8736H71.3494V54.2727H73.1903V63H71.3494V59.3949H67.6037V63H65.7585ZM74.6605 63V61.6705L77.767 58.794C78.0313 58.5384 78.2528 58.3082 78.4318 58.1037C78.6136 57.8991 78.7514 57.6989 78.8452 57.5028C78.9389 57.304 78.9858 57.0895 78.9858 56.8594C78.9858 56.6037 78.9276 56.3835 78.8111 56.1989C78.6946 56.0114 78.5355 55.8679 78.3338 55.7685C78.1321 55.6662 77.9034 55.6151 77.6477 55.6151C77.3807 55.6151 77.1477 55.669 76.9489 55.777C76.75 55.8849 76.5966 56.0398 76.4886 56.2415C76.3807 56.4432 76.3267 56.6832 76.3267 56.9616H74.5753C74.5753 56.3906 74.7045 55.8949 74.9631 55.4744C75.2216 55.054 75.5838 54.7287 76.0497 54.4986C76.5156 54.2685 77.0526 54.1534 77.6605 54.1534C78.2855 54.1534 78.8295 54.2642 79.2926 54.4858C79.7585 54.7045 80.1207 55.0085 80.3793 55.3977C80.6378 55.7869 80.767 56.233 80.767 56.7358C80.767 57.0653 80.7017 57.3906 80.571 57.7116C80.4432 58.0327 80.2145 58.3892 79.8849 58.7812C79.5554 59.1705 79.0909 59.6378 78.4915 60.1832L77.2173 61.4318V61.4915H80.8821V63H74.6605Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t\t<Line x1=\"80\" y1=\"90\" x2=\"24\" y2=\"90\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"84\" y=\"78\" width=\"30\" height=\"23\" rx=\"4\" fill=\"#F0B849\" />\n\t\t\t<Path\n\t\t\t\td=\"M90.7585 94V85.2727H92.6037V88.8736H96.3494V85.2727H98.1903V94H96.3494V90.3949H92.6037V94H90.7585ZM99.5284 92.4659V91.0128L103.172 85.2727H104.425V87.2841H103.683L101.386 90.919V90.9872H106.564V92.4659H99.5284ZM103.717 94V92.0227L103.751 91.3793V85.2727H105.482V94H103.717Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t\t<Line x1=\"66\" y1=\"121\" x2=\"24\" y2=\"121\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"70\" y=\"109\" width=\"29\" height=\"23\" rx=\"4\" fill=\"#DDDDDD\" />\n\t\t\t<Path\n\t\t\t\td=\"M76.7585 125V116.273H78.6037V119.874H82.3494V116.273H84.1903V125H82.3494V121.395H78.6037V125H76.7585ZM88.8864 125.119C88.25 125.119 87.6832 125.01 87.1861 124.791C86.6918 124.57 86.3011 124.266 86.0142 123.879C85.7301 123.49 85.5838 123.041 85.5753 122.533H87.4332C87.4446 122.746 87.5142 122.933 87.642 123.095C87.7727 123.254 87.946 123.378 88.1619 123.466C88.3778 123.554 88.6207 123.598 88.8906 123.598C89.1719 123.598 89.4205 123.548 89.6364 123.449C89.8523 123.349 90.0213 123.212 90.1435 123.036C90.2656 122.859 90.3267 122.656 90.3267 122.426C90.3267 122.193 90.2614 121.987 90.1307 121.808C90.0028 121.626 89.8182 121.484 89.5767 121.382C89.3381 121.28 89.054 121.229 88.7244 121.229H87.9105V119.874H88.7244C89.0028 119.874 89.2486 119.825 89.4616 119.729C89.6776 119.632 89.8452 119.499 89.9645 119.328C90.0838 119.155 90.1435 118.953 90.1435 118.723C90.1435 118.504 90.0909 118.312 89.9858 118.148C89.8835 117.98 89.7386 117.849 89.5511 117.756C89.3665 117.662 89.1506 117.615 88.9034 117.615C88.6534 117.615 88.4247 117.661 88.2173 117.751C88.0099 117.839 87.8438 117.966 87.7188 118.131C87.5938 118.295 87.527 118.489 87.5185 118.71H85.75C85.7585 118.207 85.902 117.764 86.1804 117.381C86.4588 116.997 86.8338 116.697 87.3054 116.482C87.7798 116.263 88.3153 116.153 88.9119 116.153C89.5142 116.153 90.0412 116.263 90.4929 116.482C90.9446 116.7 91.2955 116.996 91.5455 117.368C91.7983 117.737 91.9233 118.152 91.9205 118.612C91.9233 119.101 91.7713 119.509 91.4645 119.835C91.1605 120.162 90.7642 120.369 90.2756 120.457V120.526C90.9176 120.608 91.4063 120.831 91.7415 121.195C92.0795 121.555 92.2472 122.007 92.2443 122.55C92.2472 123.047 92.1037 123.489 91.8139 123.875C91.527 124.261 91.1307 124.565 90.625 124.787C90.1193 125.009 89.5398 125.119 88.8864 125.119Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t</SVG>\n\t);\n}\n\n/**\n * Returns an array of heading blocks enhanced with the following properties:\n * level - An integer with the heading level.\n * isEmpty - Flag indicating if the heading has no content.\n *\n * @param {?Array} blocks An array of blocks.\n *\n * @return {Array} An array of heading blocks enhanced with the properties described above.\n */\nconst computeOutlineHeadings = ( blocks = [] ) => {\n\treturn blocks.flatMap( ( block = {} ) => {\n\t\tif ( block.name === 'core/heading' ) {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tlevel: block.attributes.level,\n\t\t\t\tisEmpty: isEmptyHeading( block ),\n\t\t\t};\n\t\t}\n\t\treturn computeOutlineHeadings( block.innerBlocks );\n\t} );\n};\n\nconst isEmptyHeading = ( heading ) =>\n\t! heading.attributes.content || heading.attributes.content.length === 0;\n\nexport const DocumentOutline = ( {\n\tblocks = [],\n\ttitle,\n\tonSelect,\n\tisTitleSupported,\n\thasOutlineItemsDisabled,\n} ) => {\n\tconst headings = computeOutlineHeadings( blocks );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tif ( headings.length < 1 ) {\n\t\treturn (\n\t\t\t<div className=\"editor-document-outline has-no-headings\">\n\t\t\t\t<EmptyOutlineIllustration />\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigate the structure of your document and address issues like empty or incorrect heading levels.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet prevHeadingLevel = 1;\n\n\t// Not great but it's the simplest way to locate the title right now.\n\tconst titleNode = document.querySelector( '.editor-post-title__input' );\n\tconst hasTitle = isTitleSupported && title && titleNode;\n\tconst countByLevel = headings.reduce(\n\t\t( acc, heading ) => ( {\n\t\t\t...acc,\n\t\t\t[ heading.level ]: ( acc[ heading.level ] || 0 ) + 1,\n\t\t} ),\n\t\t{}\n\t);\n\tconst hasMultipleH1 = countByLevel[ 1 ] > 1;\n\n\treturn (\n\t\t<div className=\"document-outline\">\n\t\t\t<ul>\n\t\t\t\t{ hasTitle && (\n\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\tlevel={ __( 'Title' ) }\n\t\t\t\t\t\tisValid\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\thref={ `#${ titleNode.id }` }\n\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t) }\n\t\t\t\t{ headings.map( ( item, index ) => {\n\t\t\t\t\t// Headings remain the same, go up by one, or down by any amount.\n\t\t\t\t\t// Otherwise there are missing levels.\n\t\t\t\t\tconst isIncorrectLevel = item.level > prevHeadingLevel + 1;\n\n\t\t\t\t\tconst isValid =\n\t\t\t\t\t\t! item.isEmpty &&\n\t\t\t\t\t\t! isIncorrectLevel &&\n\t\t\t\t\t\t!! item.level &&\n\t\t\t\t\t\t( item.level !== 1 ||\n\t\t\t\t\t\t\t( ! hasMultipleH1 && ! hasTitle ) );\n\t\t\t\t\tprevHeadingLevel = item.level;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tlevel={ `H${ item.level }` }\n\t\t\t\t\t\t\tisValid={ isValid }\n\t\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t\t\thref={ `#block-${ item.clientId }` }\n\t\t\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\t\t\tselectBlock( item.clientId );\n\t\t\t\t\t\t\t\tonSelect?.();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.isEmpty\n\t\t\t\t\t\t\t\t? emptyHeadingContent\n\t\t\t\t\t\t\t\t: getTextContent(\n\t\t\t\t\t\t\t\t\t\tcreate( {\n\t\t\t\t\t\t\t\t\t\t\thtml: item.attributes.content,\n\t\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{ isIncorrectLevel && incorrectLevelContent }\n\t\t\t\t\t\t\t{ item.level === 1 &&\n\t\t\t\t\t\t\t\thasMultipleH1 &&\n\t\t\t\t\t\t\t\tmultipleH1Headings }\n\t\t\t\t\t\t\t{ hasTitle &&\n\t\t\t\t\t\t\t\titem.level === 1 &&\n\t\t\t\t\t\t\t\t! hasMultipleH1 &&\n\t\t\t\t\t\t\t\tsingleH1Headings }\n\t\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { getBlocks } = select( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tblocks: getBlocks(),\n\t\t\tisTitleSupported: postType?.supports?.title ?? false,\n\t\t};\n\t} )\n)( DocumentOutline );\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","useDispatch","useSelect","create","getTextContent","store","blockEditorStore","coreStore","Path","SVG","Line","Rect","DocumentOutlineItem","editorStore","emptyHeadingContent","createElement","incorrectLevelContent","key","singleH1Headings","multipleH1Headings","EmptyOutlineIllustration","width","height","viewBox","fill","xmlns","rx","x1","y1","x2","y2","stroke","x","y","d","computeOutlineHeadings","blocks","flatMap","block","name","level","attributes","isEmpty","isEmptyHeading","innerBlocks","heading","content","trim","length","DocumentOutline","onSelect","isTitleSupported","hasOutlineItemsDisabled","selectBlock","title","select","_postType$supports$ti","getBlocks","getEditedPostAttribute","getPostType","postType","supports","headings","className","prevHeadingLevel","titleNode","document","querySelector","hasTitle","countByLevel","reduce","acc","hasMultipleH1","isValid","href","id","isDisabled","map","item","index","isIncorrectLevel","clientId","html"],"sources":["@wordpress/editor/src/components/document-outline/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { create, getTextContent } from '@wordpress/rich-text';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { Path, SVG, Line, Rect } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport DocumentOutlineItem from './item';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module constants\n */\nconst emptyHeadingContent = <em>{ __( '(Empty heading)' ) }</em>;\nconst incorrectLevelContent = [\n\t<br key=\"incorrect-break\" />,\n\t<em key=\"incorrect-message\">{ __( '(Incorrect heading level)' ) }</em>,\n];\nconst singleH1Headings = [\n\t<br key=\"incorrect-break-h1\" />,\n\t<em key=\"incorrect-message-h1\">\n\t\t{ __( '(Your theme may already use a H1 for the post title)' ) }\n\t</em>,\n];\nconst multipleH1Headings = [\n\t<br key=\"incorrect-break-multiple-h1\" />,\n\t<em key=\"incorrect-message-multiple-h1\">\n\t\t{ __( '(Multiple H1 headings are not recommended)' ) }\n\t</em>,\n];\nfunction EmptyOutlineIllustration() {\n\treturn (\n\t\t<SVG\n\t\t\twidth=\"138\"\n\t\t\theight=\"148\"\n\t\t\tviewBox=\"0 0 138 148\"\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<Rect width=\"138\" height=\"148\" rx=\"4\" fill=\"#F0F6FC\" />\n\t\t\t<Line x1=\"44\" y1=\"28\" x2=\"24\" y2=\"28\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"48\" y=\"16\" width=\"27\" height=\"23\" rx=\"4\" fill=\"#DDDDDD\" />\n\t\t\t<Path\n\t\t\t\td=\"M54.7585 32V23.2727H56.6037V26.8736H60.3494V23.2727H62.1903V32H60.3494V28.3949H56.6037V32H54.7585ZM67.4574 23.2727V32H65.6122V25.0241H65.5611L63.5625 26.277V24.6406L65.723 23.2727H67.4574Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t\t<Line x1=\"55\" y1=\"59\" x2=\"24\" y2=\"59\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"59\" y=\"47\" width=\"29\" height=\"23\" rx=\"4\" fill=\"#DDDDDD\" />\n\t\t\t<Path\n\t\t\t\td=\"M65.7585 63V54.2727H67.6037V57.8736H71.3494V54.2727H73.1903V63H71.3494V59.3949H67.6037V63H65.7585ZM74.6605 63V61.6705L77.767 58.794C78.0313 58.5384 78.2528 58.3082 78.4318 58.1037C78.6136 57.8991 78.7514 57.6989 78.8452 57.5028C78.9389 57.304 78.9858 57.0895 78.9858 56.8594C78.9858 56.6037 78.9276 56.3835 78.8111 56.1989C78.6946 56.0114 78.5355 55.8679 78.3338 55.7685C78.1321 55.6662 77.9034 55.6151 77.6477 55.6151C77.3807 55.6151 77.1477 55.669 76.9489 55.777C76.75 55.8849 76.5966 56.0398 76.4886 56.2415C76.3807 56.4432 76.3267 56.6832 76.3267 56.9616H74.5753C74.5753 56.3906 74.7045 55.8949 74.9631 55.4744C75.2216 55.054 75.5838 54.7287 76.0497 54.4986C76.5156 54.2685 77.0526 54.1534 77.6605 54.1534C78.2855 54.1534 78.8295 54.2642 79.2926 54.4858C79.7585 54.7045 80.1207 55.0085 80.3793 55.3977C80.6378 55.7869 80.767 56.233 80.767 56.7358C80.767 57.0653 80.7017 57.3906 80.571 57.7116C80.4432 58.0327 80.2145 58.3892 79.8849 58.7812C79.5554 59.1705 79.0909 59.6378 78.4915 60.1832L77.2173 61.4318V61.4915H80.8821V63H74.6605Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t\t<Line x1=\"80\" y1=\"90\" x2=\"24\" y2=\"90\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"84\" y=\"78\" width=\"30\" height=\"23\" rx=\"4\" fill=\"#F0B849\" />\n\t\t\t<Path\n\t\t\t\td=\"M90.7585 94V85.2727H92.6037V88.8736H96.3494V85.2727H98.1903V94H96.3494V90.3949H92.6037V94H90.7585ZM99.5284 92.4659V91.0128L103.172 85.2727H104.425V87.2841H103.683L101.386 90.919V90.9872H106.564V92.4659H99.5284ZM103.717 94V92.0227L103.751 91.3793V85.2727H105.482V94H103.717Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t\t<Line x1=\"66\" y1=\"121\" x2=\"24\" y2=\"121\" stroke=\"#DDDDDD\" />\n\t\t\t<Rect x=\"70\" y=\"109\" width=\"29\" height=\"23\" rx=\"4\" fill=\"#DDDDDD\" />\n\t\t\t<Path\n\t\t\t\td=\"M76.7585 125V116.273H78.6037V119.874H82.3494V116.273H84.1903V125H82.3494V121.395H78.6037V125H76.7585ZM88.8864 125.119C88.25 125.119 87.6832 125.01 87.1861 124.791C86.6918 124.57 86.3011 124.266 86.0142 123.879C85.7301 123.49 85.5838 123.041 85.5753 122.533H87.4332C87.4446 122.746 87.5142 122.933 87.642 123.095C87.7727 123.254 87.946 123.378 88.1619 123.466C88.3778 123.554 88.6207 123.598 88.8906 123.598C89.1719 123.598 89.4205 123.548 89.6364 123.449C89.8523 123.349 90.0213 123.212 90.1435 123.036C90.2656 122.859 90.3267 122.656 90.3267 122.426C90.3267 122.193 90.2614 121.987 90.1307 121.808C90.0028 121.626 89.8182 121.484 89.5767 121.382C89.3381 121.28 89.054 121.229 88.7244 121.229H87.9105V119.874H88.7244C89.0028 119.874 89.2486 119.825 89.4616 119.729C89.6776 119.632 89.8452 119.499 89.9645 119.328C90.0838 119.155 90.1435 118.953 90.1435 118.723C90.1435 118.504 90.0909 118.312 89.9858 118.148C89.8835 117.98 89.7386 117.849 89.5511 117.756C89.3665 117.662 89.1506 117.615 88.9034 117.615C88.6534 117.615 88.4247 117.661 88.2173 117.751C88.0099 117.839 87.8438 117.966 87.7188 118.131C87.5938 118.295 87.527 118.489 87.5185 118.71H85.75C85.7585 118.207 85.902 117.764 86.1804 117.381C86.4588 116.997 86.8338 116.697 87.3054 116.482C87.7798 116.263 88.3153 116.153 88.9119 116.153C89.5142 116.153 90.0412 116.263 90.4929 116.482C90.9446 116.7 91.2955 116.996 91.5455 117.368C91.7983 117.737 91.9233 118.152 91.9205 118.612C91.9233 119.101 91.7713 119.509 91.4645 119.835C91.1605 120.162 90.7642 120.369 90.2756 120.457V120.526C90.9176 120.608 91.4063 120.831 91.7415 121.195C92.0795 121.555 92.2472 122.007 92.2443 122.55C92.2472 123.047 92.1037 123.489 91.8139 123.875C91.527 124.261 91.1307 124.565 90.625 124.787C90.1193 125.009 89.5398 125.119 88.8864 125.119Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t/>\n\t\t</SVG>\n\t);\n}\n\n/**\n * Returns an array of heading blocks enhanced with the following properties:\n * level - An integer with the heading level.\n * isEmpty - Flag indicating if the heading has no content.\n *\n * @param {?Array} blocks An array of blocks.\n *\n * @return {Array} An array of heading blocks enhanced with the properties described above.\n */\nconst computeOutlineHeadings = ( blocks = [] ) => {\n\treturn blocks.flatMap( ( block = {} ) => {\n\t\tif ( block.name === 'core/heading' ) {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tlevel: block.attributes.level,\n\t\t\t\tisEmpty: isEmptyHeading( block ),\n\t\t\t};\n\t\t}\n\t\treturn computeOutlineHeadings( block.innerBlocks );\n\t} );\n};\n\nconst isEmptyHeading = ( heading ) =>\n\t! heading.attributes.content ||\n\theading.attributes.content.trim().length === 0;\n\nexport default function DocumentOutline( {\n\tonSelect,\n\tisTitleSupported,\n\thasOutlineItemsDisabled,\n} ) {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst { blocks, title } = useSelect( ( select ) => {\n\t\tconst { getBlocks } = select( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tblocks: getBlocks(),\n\t\t\tisTitleSupported: postType?.supports?.title ?? false,\n\t\t};\n\t} );\n\n\tconst headings = computeOutlineHeadings( blocks );\n\tif ( headings.length < 1 ) {\n\t\treturn (\n\t\t\t<div className=\"editor-document-outline has-no-headings\">\n\t\t\t\t<EmptyOutlineIllustration />\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Navigate the structure of your document and address issues like empty or incorrect heading levels.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet prevHeadingLevel = 1;\n\n\t// Not great but it's the simplest way to locate the title right now.\n\tconst titleNode = document.querySelector( '.editor-post-title__input' );\n\tconst hasTitle = isTitleSupported && title && titleNode;\n\tconst countByLevel = headings.reduce(\n\t\t( acc, heading ) => ( {\n\t\t\t...acc,\n\t\t\t[ heading.level ]: ( acc[ heading.level ] || 0 ) + 1,\n\t\t} ),\n\t\t{}\n\t);\n\tconst hasMultipleH1 = countByLevel[ 1 ] > 1;\n\n\treturn (\n\t\t<div className=\"document-outline\">\n\t\t\t<ul>\n\t\t\t\t{ hasTitle && (\n\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\tlevel={ __( 'Title' ) }\n\t\t\t\t\t\tisValid\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\thref={ `#${ titleNode.id }` }\n\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t) }\n\t\t\t\t{ headings.map( ( item, index ) => {\n\t\t\t\t\t// Headings remain the same, go up by one, or down by any amount.\n\t\t\t\t\t// Otherwise there are missing levels.\n\t\t\t\t\tconst isIncorrectLevel = item.level > prevHeadingLevel + 1;\n\n\t\t\t\t\tconst isValid =\n\t\t\t\t\t\t! item.isEmpty &&\n\t\t\t\t\t\t! isIncorrectLevel &&\n\t\t\t\t\t\t!! item.level &&\n\t\t\t\t\t\t( item.level !== 1 ||\n\t\t\t\t\t\t\t( ! hasMultipleH1 && ! hasTitle ) );\n\t\t\t\t\tprevHeadingLevel = item.level;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tlevel={ `H${ item.level }` }\n\t\t\t\t\t\t\tisValid={ isValid }\n\t\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t\t\thref={ `#block-${ item.clientId }` }\n\t\t\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\t\t\tselectBlock( item.clientId );\n\t\t\t\t\t\t\t\tonSelect?.();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.isEmpty\n\t\t\t\t\t\t\t\t? emptyHeadingContent\n\t\t\t\t\t\t\t\t: getTextContent(\n\t\t\t\t\t\t\t\t\t\tcreate( {\n\t\t\t\t\t\t\t\t\t\t\thtml: item.attributes.content,\n\t\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{ isIncorrectLevel && incorrectLevelContent }\n\t\t\t\t\t\t\t{ item.level === 1 &&\n\t\t\t\t\t\t\t\thasMultipleH1 &&\n\t\t\t\t\t\t\t\tmultipleH1Headings }\n\t\t\t\t\t\t\t{ hasTitle &&\n\t\t\t\t\t\t\t\titem.level === 1 &&\n\t\t\t\t\t\t\t\t! hasMultipleH1 &&\n\t\t\t\t\t\t\t\tsingleH1Headings }\n\t\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -25,7 +25,7 @@ import { store as editorStore } from '../../store';
25
25
  import EditorHistoryRedo from '../editor-history/redo';
26
26
  import EditorHistoryUndo from '../editor-history/undo';
27
27
  const {
28
- useCanBlockToolbarBeFocused
28
+ useShowBlockTools
29
29
  } = unlock(blockEditorPrivateApis);
30
30
  const preventDefault = event => {
31
31
  event.preventDefault();
@@ -76,7 +76,9 @@ function DocumentTools({
76
76
  }, []);
77
77
  const isLargeViewport = useViewportMatch('medium');
78
78
  const isWideViewport = useViewportMatch('wide');
79
- const blockToolbarCanBeFocused = useCanBlockToolbarBeFocused();
79
+ const {
80
+ showFixedToolbar
81
+ } = useShowBlockTools();
80
82
 
81
83
  /* translators: accessibility text for the editor toolbar */
82
84
  const toolbarAriaLabel = __('Document tools');
@@ -104,7 +106,7 @@ function DocumentTools({
104
106
  createElement(NavigableToolbar, {
105
107
  className: classnames('editor-document-tools', 'edit-post-header-toolbar', className),
106
108
  "aria-label": toolbarAriaLabel,
107
- shouldUseKeyboardFocusShortcut: !blockToolbarCanBeFocused,
109
+ shouldUseKeyboardFocusShortcut: !showFixedToolbar,
108
110
  variant: "unstyled"
109
111
  }, createElement("div", {
110
112
  className: "editor-document-tools__left"
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useViewportMatch","useSelect","useDispatch","__","_x","NavigableToolbar","ToolSelector","store","blockEditorStore","privateApis","blockEditorPrivateApis","Button","ToolbarItem","listView","plus","useRef","useCallback","keyboardShortcutsStore","preferencesStore","unlock","editorStore","EditorHistoryRedo","EditorHistoryUndo","useCanBlockToolbarBeFocused","preventDefault","event","DocumentTools","className","disableBlockTools","children","listViewLabel","inserterButton","setIsInserterOpened","setIsListViewOpened","isDistractionFree","isInserterOpened","isListViewOpen","listViewShortcut","listViewToggleRef","hasFixedToolbar","showIconLabels","select","getSettings","get","isListViewOpened","getListViewToggleRef","getShortcutRepresentation","isLargeViewport","isWideViewport","blockToolbarCanBeFocused","toolbarAriaLabel","toggleListView","toggleInserter","current","focus","longLabel","shortLabel","createElement","shouldUseKeyboardFocusShortcut","variant","ref","as","isPressed","onMouseDown","onClick","disabled","icon","label","showTooltip","Fragment","undefined","size","shortcut"],"sources":["@wordpress/editor/src/components/document-tools/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tNavigableToolbar,\n\tToolSelector,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { listView, plus } from '@wordpress/icons';\nimport { useRef, useCallback } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport EditorHistoryRedo from '../editor-history/redo';\nimport EditorHistoryUndo from '../editor-history/undo';\n\nconst { useCanBlockToolbarBeFocused } = unlock( blockEditorPrivateApis );\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nfunction DocumentTools( {\n\tclassName,\n\tdisableBlockTools = false,\n\tchildren,\n\t// This is a temporary prop until the list view is fully unified between post and site editors.\n\tlistViewLabel = __( 'Document Overview' ),\n} ) {\n\tconst inserterButton = useRef();\n\tconst { setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tisDistractionFree,\n\t\tisInserterOpened,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tlistViewToggleRef,\n\t\thasFixedToolbar,\n\t\tshowIconLabels,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { isListViewOpened, getListViewToggleRef } = unlock(\n\t\t\tselect( editorStore )\n\t\t);\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\n\t\treturn {\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/editor/toggle-list-view'\n\t\t\t),\n\t\t\tlistViewToggleRef: getListViewToggleRef(),\n\t\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t};\n\t}, [] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideViewport = useViewportMatch( 'wide' );\n\tconst blockToolbarCanBeFocused = useCanBlockToolbarBeFocused();\n\n\t/* translators: accessibility text for the editor toolbar */\n\tconst toolbarAriaLabel = __( 'Document tools' );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst toggleInserter = useCallback( () => {\n\t\tif ( isInserterOpened ) {\n\t\t\t// Focusing the inserter button should close the inserter popover.\n\t\t\t// However, there are some cases it won't close when the focus is lost.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/43090 for more details.\n\t\t\tinserterButton.current.focus();\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpened, setIsInserterOpened ] );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst longLabel = _x(\n\t\t'Toggle block inserter',\n\t\t'Generic label for block inserter button'\n\t);\n\tconst shortLabel = ! isInserterOpened ? __( 'Add' ) : __( 'Close' );\n\n\treturn (\n\t\t// Some plugins expect and use the `edit-post-header-toolbar` CSS class to\n\t\t// find the toolbar and inject UI elements into it. This is not officially\n\t\t// supported, but we're keeping it in the list of class names for backwards\n\t\t// compatibility.\n\t\t<NavigableToolbar\n\t\t\tclassName={ classnames(\n\t\t\t\t'editor-document-tools',\n\t\t\t\t'edit-post-header-toolbar',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\taria-label={ toolbarAriaLabel }\n\t\t\tshouldUseKeyboardFocusShortcut={ ! blockToolbarCanBeFocused }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div className=\"editor-document-tools__left\">\n\t\t\t\t<ToolbarItem\n\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tclassName=\"editor-document-tools__inserter-toggle\"\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tisPressed={ isInserterOpened }\n\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\tonClick={ toggleInserter }\n\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tlabel={ showIconLabels ? shortLabel : longLabel }\n\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\taria-expanded={ isInserterOpened }\n\t\t\t\t/>\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isLargeViewport && ! hasFixedToolbar && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryUndo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryRedo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isDistractionFree && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\tclassName=\"editor-document-tools__document-overview-toggle\"\n\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\tlabel={ listViewLabel }\n\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-expanded={ isListViewOpen }\n\t\t\t\t\t\t\t\tref={ listViewToggleRef }\n\t\t\t\t\t\t\t\tsize=\"compact\"\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\t{ children }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default DocumentTools;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useViewportMatch","useSelect","useDispatch","__","_x","NavigableToolbar","ToolSelector","store","blockEditorStore","privateApis","blockEditorPrivateApis","Button","ToolbarItem","listView","plus","useRef","useCallback","keyboardShortcutsStore","preferencesStore","unlock","editorStore","EditorHistoryRedo","EditorHistoryUndo","useShowBlockTools","preventDefault","event","DocumentTools","className","disableBlockTools","children","listViewLabel","inserterButton","setIsInserterOpened","setIsListViewOpened","isDistractionFree","isInserterOpened","isListViewOpen","listViewShortcut","listViewToggleRef","hasFixedToolbar","showIconLabels","select","getSettings","get","isListViewOpened","getListViewToggleRef","getShortcutRepresentation","isLargeViewport","isWideViewport","showFixedToolbar","toolbarAriaLabel","toggleListView","toggleInserter","current","focus","longLabel","shortLabel","createElement","shouldUseKeyboardFocusShortcut","variant","ref","as","isPressed","onMouseDown","onClick","disabled","icon","label","showTooltip","Fragment","undefined","size","shortcut"],"sources":["@wordpress/editor/src/components/document-tools/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tNavigableToolbar,\n\tToolSelector,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { Button, ToolbarItem } from '@wordpress/components';\nimport { listView, plus } from '@wordpress/icons';\nimport { useRef, useCallback } from '@wordpress/element';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport EditorHistoryRedo from '../editor-history/redo';\nimport EditorHistoryUndo from '../editor-history/undo';\n\nconst { useShowBlockTools } = unlock( blockEditorPrivateApis );\n\nconst preventDefault = ( event ) => {\n\tevent.preventDefault();\n};\n\nfunction DocumentTools( {\n\tclassName,\n\tdisableBlockTools = false,\n\tchildren,\n\t// This is a temporary prop until the list view is fully unified between post and site editors.\n\tlistViewLabel = __( 'Document Overview' ),\n} ) {\n\tconst inserterButton = useRef();\n\tconst { setIsInserterOpened, setIsListViewOpened } =\n\t\tuseDispatch( editorStore );\n\tconst {\n\t\tisDistractionFree,\n\t\tisInserterOpened,\n\t\tisListViewOpen,\n\t\tlistViewShortcut,\n\t\tlistViewToggleRef,\n\t\thasFixedToolbar,\n\t\tshowIconLabels,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst { isListViewOpened, getListViewToggleRef } = unlock(\n\t\t\tselect( editorStore )\n\t\t);\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\n\t\treturn {\n\t\t\tisInserterOpened: select( editorStore ).isInserterOpened(),\n\t\t\tisListViewOpen: isListViewOpened(),\n\t\t\tlistViewShortcut: getShortcutRepresentation(\n\t\t\t\t'core/editor/toggle-list-view'\n\t\t\t),\n\t\t\tlistViewToggleRef: getListViewToggleRef(),\n\t\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tisDistractionFree: get( 'core', 'distractionFree' ),\n\t\t};\n\t}, [] );\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideViewport = useViewportMatch( 'wide' );\n\tconst { showFixedToolbar } = useShowBlockTools();\n\n\t/* translators: accessibility text for the editor toolbar */\n\tconst toolbarAriaLabel = __( 'Document tools' );\n\n\tconst toggleListView = useCallback(\n\t\t() => setIsListViewOpened( ! isListViewOpen ),\n\t\t[ setIsListViewOpened, isListViewOpen ]\n\t);\n\n\tconst toggleInserter = useCallback( () => {\n\t\tif ( isInserterOpened ) {\n\t\t\t// Focusing the inserter button should close the inserter popover.\n\t\t\t// However, there are some cases it won't close when the focus is lost.\n\t\t\t// See https://github.com/WordPress/gutenberg/issues/43090 for more details.\n\t\t\tinserterButton.current.focus();\n\t\t\tsetIsInserterOpened( false );\n\t\t} else {\n\t\t\tsetIsInserterOpened( true );\n\t\t}\n\t}, [ isInserterOpened, setIsInserterOpened ] );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst longLabel = _x(\n\t\t'Toggle block inserter',\n\t\t'Generic label for block inserter button'\n\t);\n\tconst shortLabel = ! isInserterOpened ? __( 'Add' ) : __( 'Close' );\n\n\treturn (\n\t\t// Some plugins expect and use the `edit-post-header-toolbar` CSS class to\n\t\t// find the toolbar and inject UI elements into it. This is not officially\n\t\t// supported, but we're keeping it in the list of class names for backwards\n\t\t// compatibility.\n\t\t<NavigableToolbar\n\t\t\tclassName={ classnames(\n\t\t\t\t'editor-document-tools',\n\t\t\t\t'edit-post-header-toolbar',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\taria-label={ toolbarAriaLabel }\n\t\t\tshouldUseKeyboardFocusShortcut={ ! showFixedToolbar }\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div className=\"editor-document-tools__left\">\n\t\t\t\t<ToolbarItem\n\t\t\t\t\tref={ inserterButton }\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tclassName=\"editor-document-tools__inserter-toggle\"\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tisPressed={ isInserterOpened }\n\t\t\t\t\tonMouseDown={ preventDefault }\n\t\t\t\t\tonClick={ toggleInserter }\n\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tlabel={ showIconLabels ? shortLabel : longLabel }\n\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\taria-expanded={ isInserterOpened }\n\t\t\t\t/>\n\t\t\t\t{ ( isWideViewport || ! showIconLabels ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ isLargeViewport && ! hasFixedToolbar && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ ToolSelector }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryUndo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\tas={ EditorHistoryRedo }\n\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\tvariant={ showIconLabels ? 'tertiary' : undefined }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isDistractionFree && (\n\t\t\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\t\t\tas={ Button }\n\t\t\t\t\t\t\t\tclassName=\"editor-document-tools__document-overview-toggle\"\n\t\t\t\t\t\t\t\ticon={ listView }\n\t\t\t\t\t\t\t\tdisabled={ disableBlockTools }\n\t\t\t\t\t\t\t\tisPressed={ isListViewOpen }\n\t\t\t\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\t\t\t\tlabel={ listViewLabel }\n\t\t\t\t\t\t\t\tonClick={ toggleListView }\n\t\t\t\t\t\t\t\tshortcut={ listViewShortcut }\n\t\t\t\t\t\t\t\tshowTooltip={ ! showIconLabels }\n\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\tshowIconLabels ? 'tertiary' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-expanded={ isListViewOpen }\n\t\t\t\t\t\t\t\tref={ listViewToggleRef }\n\t\t\t\t\t\t\t\tsize=\"compact\"\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\t{ children }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default DocumentTools;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["View","Text","__","usePreferredColorSchemeStyle","styles","HelpDetailBodyText","HelpDetailSectionHeadingText","HelpDetailImage","IntroToBlocks","titleStyle","helpDetailTitle","helpDetailTitleDark","createElement","Fragment","source","require","style","helpDetailContainer","accessibilityRole","selectable","text","accessible","accessibilityLabel","sourceDarkMode"],"sources":["@wordpress/editor/src/components/editor-help/intro-to-blocks.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport {\n\tHelpDetailBodyText,\n\tHelpDetailSectionHeadingText,\n\tHelpDetailImage,\n} from './view-sections';\n\nconst IntroToBlocks = () => {\n\tconst titleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailTitle,\n\t\tstyles.helpDetailTitleDark\n\t);\n\treturn (\n\t\t<>\n\t\t\t<HelpDetailImage\n\t\t\t\tsource={ require( './images/block-layout-collage.png' ) }\n\t\t\t/>\n\t\t\t<View style={ styles.helpDetailContainer }>\n\t\t\t\t<Text\n\t\t\t\t\taccessibilityRole=\"header\"\n\t\t\t\t\tselectable\n\t\t\t\t\tstyle={ titleStyle }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Welcome to the world of blocks' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText\n\t\t\t\t\ttext={ __( 'Rich text editing' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks allow you to focus on writing your content, knowing that all the formatting tools you need are there to help you get your message across.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\taccessible={ true }\n\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t'Text formatting controls are located within the toolbar positioned above the keyboard while editing a text block'\n\t\t\t\t\t) }\n\t\t\t\t\tsource={ require( './images/rich-text-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/rich-text-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText text={ __( 'Embed media' ) } />\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Make your content stand out by adding images, gifs, videos, and embedded media to your pages.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\tsource={ require( './images/embed-media-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/embed-media-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText text={ __( 'Build layouts' ) } />\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Arrange your content into columns, add Call to Action buttons, and overlay images with text.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\tsource={ require( './images/build-layouts-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/build-layouts-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Give it a try by adding a few blocks to your post or page!'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n};\n\nexport default IntroToBlocks;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,IAAI,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,4BAA4B,QAAQ,oBAAoB;;AAEjE;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AACjC,SACCC,kBAAkB,EAClBC,4BAA4B,EAC5BC,eAAe,QACT,iBAAiB;AAExB,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC3B,MAAMC,UAAU,GAAGN,4BAA4B,CAC9CC,MAAM,CAACM,eAAe,EACtBN,MAAM,CAACO,mBACR,CAAC;EACD,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACL,eAAe;IACfO,MAAM,EAAGC,OAAO,CAAE,mCAAoC;EAAG,CACzD,CAAC,EACFH,aAAA,CAACZ,IAAI;IAACgB,KAAK,EAAGZ,MAAM,CAACa;EAAqB,GACzCL,aAAA,CAACX,IAAI;IACJiB,iBAAiB,EAAC,QAAQ;IAC1BC,UAAU;IACVH,KAAK,EAAGP;EAAY,GAElBP,EAAE,CAAE,gCAAiC,CAClC,CAAC,EACPU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,oLACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACN,4BAA4B;IAC5Bc,IAAI,EAAGlB,EAAE,CAAE,mBAAoB;EAAG,CAClC,CAAC,EACFU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,kJACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACL,eAAe;IACfc,UAAU,EAAG,IAAM;IACnBC,kBAAkB,EAAGpB,EAAE,CACtB,kHACD,CAAG;IACHY,MAAM,EAAGC,OAAO,CAAE,8BAA+B,CAAG;IACpDQ,cAAc,EAAGR,OAAO,CAAE,6BAA8B;EAAG,CAC3D,CAAC,EACFH,aAAA,CAACN,4BAA4B;IAACc,IAAI,EAAGlB,EAAE,CAAE,aAAc;EAAG,CAAE,CAAC,EAC7DU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,+FACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACL,eAAe;IACfO,MAAM,EAAGC,OAAO,CAAE,gCAAiC,CAAG;IACtDQ,cAAc,EAAGR,OAAO,CAAE,+BAAgC;EAAG,CAC7D,CAAC,EACFH,aAAA,CAACN,4BAA4B;IAACc,IAAI,EAAGlB,EAAE,CAAE,eAAgB;EAAG,CAAE,CAAC,EAC/DU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,8FACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACL,eAAe;IACfO,MAAM,EAAGC,OAAO,CAAE,kCAAmC,CAAG;IACxDQ,cAAc,EAAGR,OAAO,CAAE,iCAAkC;EAAG,CAC/D,CAAC,EACFH,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,4DACD;EAAG,CACH,CACI,CACL,CAAC;AAEL,CAAC;AAED,eAAeM,aAAa"}
1
+ {"version":3,"names":["View","Text","__","usePreferredColorSchemeStyle","styles","HelpDetailBodyText","HelpDetailSectionHeadingText","HelpDetailImage","IntroToBlocks","titleStyle","helpDetailTitle","helpDetailTitleDark","createElement","Fragment","source","require","style","helpDetailContainer","accessibilityRole","selectable","text","accessible","accessibilityLabel","sourceDarkMode"],"sources":["@wordpress/editor/src/components/editor-help/intro-to-blocks.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport {\n\tHelpDetailBodyText,\n\tHelpDetailSectionHeadingText,\n\tHelpDetailImage,\n} from './view-sections';\n\nconst IntroToBlocks = () => {\n\tconst titleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.helpDetailTitle,\n\t\tstyles.helpDetailTitleDark\n\t);\n\treturn (\n\t\t<>\n\t\t\t<HelpDetailImage\n\t\t\t\tsource={ require( './images/block-layout-collage.png' ) }\n\t\t\t/>\n\t\t\t<View style={ styles.helpDetailContainer }>\n\t\t\t\t<Text\n\t\t\t\t\taccessibilityRole=\"header\"\n\t\t\t\t\tselectable\n\t\t\t\t\tstyle={ titleStyle }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Welcome to the world of blocks' ) }\n\t\t\t\t</Text>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText\n\t\t\t\t\ttext={ __( 'Rich text editing' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Blocks allow you to focus on writing your content, knowing that all the formatting tools you need are there to help you get your message across.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\taccessible\n\t\t\t\t\taccessibilityLabel={ __(\n\t\t\t\t\t\t'Text formatting controls are located within the toolbar positioned above the keyboard while editing a text block'\n\t\t\t\t\t) }\n\t\t\t\t\tsource={ require( './images/rich-text-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/rich-text-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText text={ __( 'Embed media' ) } />\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Make your content stand out by adding images, gifs, videos, and embedded media to your pages.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\tsource={ require( './images/embed-media-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/embed-media-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailSectionHeadingText text={ __( 'Build layouts' ) } />\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Arrange your content into columns, add Call to Action buttons, and overlay images with text.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailImage\n\t\t\t\t\tsource={ require( './images/build-layouts-light.png' ) }\n\t\t\t\t\tsourceDarkMode={ require( './images/build-layouts-dark.png' ) }\n\t\t\t\t/>\n\t\t\t\t<HelpDetailBodyText\n\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t'Give it a try by adding a few blocks to your post or page!'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</>\n\t);\n};\n\nexport default IntroToBlocks;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,IAAI,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,4BAA4B,QAAQ,oBAAoB;;AAEjE;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AACjC,SACCC,kBAAkB,EAClBC,4BAA4B,EAC5BC,eAAe,QACT,iBAAiB;AAExB,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC3B,MAAMC,UAAU,GAAGN,4BAA4B,CAC9CC,MAAM,CAACM,eAAe,EACtBN,MAAM,CAACO,mBACR,CAAC;EACD,OACCC,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACL,eAAe;IACfO,MAAM,EAAGC,OAAO,CAAE,mCAAoC;EAAG,CACzD,CAAC,EACFH,aAAA,CAACZ,IAAI;IAACgB,KAAK,EAAGZ,MAAM,CAACa;EAAqB,GACzCL,aAAA,CAACX,IAAI;IACJiB,iBAAiB,EAAC,QAAQ;IAC1BC,UAAU;IACVH,KAAK,EAAGP;EAAY,GAElBP,EAAE,CAAE,gCAAiC,CAClC,CAAC,EACPU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,oLACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACN,4BAA4B;IAC5Bc,IAAI,EAAGlB,EAAE,CAAE,mBAAoB;EAAG,CAClC,CAAC,EACFU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,kJACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACL,eAAe;IACfc,UAAU;IACVC,kBAAkB,EAAGpB,EAAE,CACtB,kHACD,CAAG;IACHY,MAAM,EAAGC,OAAO,CAAE,8BAA+B,CAAG;IACpDQ,cAAc,EAAGR,OAAO,CAAE,6BAA8B;EAAG,CAC3D,CAAC,EACFH,aAAA,CAACN,4BAA4B;IAACc,IAAI,EAAGlB,EAAE,CAAE,aAAc;EAAG,CAAE,CAAC,EAC7DU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,+FACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACL,eAAe;IACfO,MAAM,EAAGC,OAAO,CAAE,gCAAiC,CAAG;IACtDQ,cAAc,EAAGR,OAAO,CAAE,+BAAgC;EAAG,CAC7D,CAAC,EACFH,aAAA,CAACN,4BAA4B;IAACc,IAAI,EAAGlB,EAAE,CAAE,eAAgB;EAAG,CAAE,CAAC,EAC/DU,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,8FACD;EAAG,CACH,CAAC,EACFU,aAAA,CAACL,eAAe;IACfO,MAAM,EAAGC,OAAO,CAAE,kCAAmC,CAAG;IACxDQ,cAAc,EAAGR,OAAO,CAAE,iCAAkC;EAAG,CAC/D,CAAC,EACFH,aAAA,CAACP,kBAAkB;IAClBe,IAAI,EAAGlB,EAAE,CACR,4DACD;EAAG,CACH,CACI,CACL,CAAC;AAEL,CAAC;AAED,eAAeM,aAAa"}
@@ -1 +1 @@
1
- {"version":3,"names":["__","useSelect","PanelBody","PanelRow","store","coreStore","privateApis","blockEditorPrivateApis","useContext","EntityRecordItem","unlock","getGlobalStylesChanges","GlobalStylesContext","getEntityDescription","entity","count","GlobalStylesDescription","record","user","currentEditorGlobalStyles","savedRecord","select","getEntityRecord","kind","name","key","globalStylesChanges","maxResults","length","createElement","className","map","change","EntityDescription","description","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","label","title","initialOpen","property","checked","some","elt","onChange","value"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { getGlobalStylesChanges, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following has been modified.' );\n\t}\n}\n\nfunction GlobalStylesDescription( { record } ) {\n\tconst { user: currentEditorGlobalStyles } =\n\t\tuseContext( GlobalStylesContext );\n\tconst savedRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\trecord.kind,\n\t\t\t\trecord.name,\n\t\t\t\trecord.key\n\t\t\t),\n\t\t[ record.kind, record.name, record.key ]\n\t);\n\n\tconst globalStylesChanges = getGlobalStylesChanges(\n\t\tcurrentEditorGlobalStyles,\n\t\tsavedRecord,\n\t\t{\n\t\t\tmaxResults: 10,\n\t\t}\n\t);\n\treturn globalStylesChanges.length ? (\n\t\t<ul className=\"entities-saved-states__changes\">\n\t\t\t{ globalStylesChanges.map( ( change ) => (\n\t\t\t\t<li key={ change }>{ change }</li>\n\t\t\t) ) }\n\t\t</ul>\n\t) : null;\n}\n\nfunction EntityDescription( { record, count } ) {\n\tif ( 'globalStyles' === record?.name ) {\n\t\treturn null;\n\t}\n\tconst description = getEntityDescription( record?.name, count );\n\treturn description ? <PanelRow>{ description }</PanelRow> : null;\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\n\tlet entityLabel = entityConfig.label;\n\tif ( firstRecord?.name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen={ true }>\n\t\t\t<EntityDescription record={ firstRecord } count={ count } />\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! unselectedEntities.some(\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\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\t{ 'globalStyles' === firstRecord?.name && (\n\t\t\t\t<GlobalStylesDescription record={ firstRecord } />\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","useSelect","PanelBody","PanelRow","store","coreStore","privateApis","blockEditorPrivateApis","useContext","EntityRecordItem","unlock","getGlobalStylesChanges","GlobalStylesContext","getEntityDescription","entity","count","GlobalStylesDescription","record","user","currentEditorGlobalStyles","savedRecord","select","getEntityRecord","kind","name","key","globalStylesChanges","maxResults","length","createElement","className","map","change","EntityDescription","description","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","label","title","initialOpen","property","checked","some","elt","onChange","value"],"sources":["@wordpress/editor/src/components/entities-saved-states/entity-type-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\nimport { unlock } from '../../lock-unlock';\n\nconst { getGlobalStylesChanges, GlobalStylesContext } = unlock(\n\tblockEditorPrivateApis\n);\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following has been modified.' );\n\t}\n}\n\nfunction GlobalStylesDescription( { record } ) {\n\tconst { user: currentEditorGlobalStyles } =\n\t\tuseContext( GlobalStylesContext );\n\tconst savedRecord = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecord(\n\t\t\t\trecord.kind,\n\t\t\t\trecord.name,\n\t\t\t\trecord.key\n\t\t\t),\n\t\t[ record.kind, record.name, record.key ]\n\t);\n\n\tconst globalStylesChanges = getGlobalStylesChanges(\n\t\tcurrentEditorGlobalStyles,\n\t\tsavedRecord,\n\t\t{\n\t\t\tmaxResults: 10,\n\t\t}\n\t);\n\treturn globalStylesChanges.length ? (\n\t\t<ul className=\"entities-saved-states__changes\">\n\t\t\t{ globalStylesChanges.map( ( change ) => (\n\t\t\t\t<li key={ change }>{ change }</li>\n\t\t\t) ) }\n\t\t</ul>\n\t) : null;\n}\n\nfunction EntityDescription( { record, count } ) {\n\tif ( 'globalStyles' === record?.name ) {\n\t\treturn null;\n\t}\n\tconst description = getEntityDescription( record?.name, count );\n\treturn description ? <PanelRow>{ description }</PanelRow> : null;\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\n\tlet entityLabel = entityConfig.label;\n\tif ( firstRecord?.name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen>\n\t\t\t<EntityDescription record={ firstRecord } count={ count } />\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! unselectedEntities.some(\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\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\t{ 'globalStyles' === firstRecord?.name && (\n\t\t\t\t<GlobalStylesDescription record={ firstRecord } />\n\t\t\t) }\n\t\t</PanelBody>\n\t);\n}\n"],"mappings":"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"}
@@ -4,45 +4,39 @@
4
4
  import { useSelect } from '@wordpress/data';
5
5
  import { store as coreStore } from '@wordpress/core-data';
6
6
  import { useMemo, useState } from '@wordpress/element';
7
- import { __ } from '@wordpress/i18n';
8
- const TRANSLATED_SITE_PROPERTIES = {
9
- title: __('Title'),
10
- description: __('Tagline'),
11
- site_logo: __('Logo'),
12
- site_icon: __('Icon'),
13
- show_on_front: __('Show on front'),
14
- page_on_front: __('Page on front'),
15
- posts_per_page: __('Maximum posts per page'),
16
- default_comment_status: __('Allow comments on new posts')
17
- };
18
7
  export const useIsDirty = () => {
19
8
  const {
20
9
  editedEntities,
21
- siteEdits
10
+ siteEdits,
11
+ siteEntityConfig
22
12
  } = useSelect(select => {
23
13
  const {
24
14
  __experimentalGetDirtyEntityRecords,
25
- getEntityRecordEdits
15
+ getEntityRecordEdits,
16
+ getEntityConfig
26
17
  } = select(coreStore);
27
18
  return {
28
19
  editedEntities: __experimentalGetDirtyEntityRecords(),
29
- siteEdits: getEntityRecordEdits('root', 'site')
20
+ siteEdits: getEntityRecordEdits('root', 'site'),
21
+ siteEntityConfig: getEntityConfig('root', 'site')
30
22
  };
31
23
  }, []);
32
24
  const dirtyEntityRecords = useMemo(() => {
25
+ var _siteEntityConfig$met;
33
26
  // Remove site object and decouple into its edited pieces.
34
27
  const editedEntitiesWithoutSite = editedEntities.filter(record => !(record.kind === 'root' && record.name === 'site'));
28
+ const siteEntityLabels = (_siteEntityConfig$met = siteEntityConfig?.meta?.labels) !== null && _siteEntityConfig$met !== void 0 ? _siteEntityConfig$met : {};
35
29
  const editedSiteEntities = [];
36
30
  for (const property in siteEdits) {
37
31
  editedSiteEntities.push({
38
32
  kind: 'root',
39
33
  name: 'site',
40
- title: TRANSLATED_SITE_PROPERTIES[property] || property,
34
+ title: siteEntityLabels[property] || property,
41
35
  property
42
36
  });
43
37
  }
44
38
  return [...editedEntitiesWithoutSite, ...editedSiteEntities];
45
- }, [editedEntities, siteEdits]);
39
+ }, [editedEntities, siteEdits, siteEntityConfig]);
46
40
 
47
41
  // Unchecked entities to be ignored by save function.
48
42
  const [unselectedEntities, _setUnselectedEntities] = useState([]);
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","store","coreStore","useMemo","useState","__","TRANSLATED_SITE_PROPERTIES","title","description","site_logo","site_icon","show_on_front","page_on_front","posts_per_page","default_comment_status","useIsDirty","editedEntities","siteEdits","select","__experimentalGetDirtyEntityRecords","getEntityRecordEdits","dirtyEntityRecords","editedEntitiesWithoutSite","filter","record","kind","name","editedSiteEntities","property","push","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","key","checked","elt","isDirty","length"],"sources":["@wordpress/editor/src/components/entities-saved-states/hooks/use-is-dirty.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst TRANSLATED_SITE_PROPERTIES = {\n\ttitle: __( 'Title' ),\n\tdescription: __( 'Tagline' ),\n\tsite_logo: __( 'Logo' ),\n\tsite_icon: __( 'Icon' ),\n\tshow_on_front: __( 'Show on front' ),\n\tpage_on_front: __( 'Page on front' ),\n\tposts_per_page: __( 'Maximum posts per page' ),\n\tdefault_comment_status: __( 'Allow comments on new posts' ),\n};\n\nexport const useIsDirty = () => {\n\tconst { editedEntities, siteEdits } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetDirtyEntityRecords, getEntityRecordEdits } =\n\t\t\tselect( coreStore );\n\n\t\treturn {\n\t\t\teditedEntities: __experimentalGetDirtyEntityRecords(),\n\t\t\tsiteEdits: getEntityRecordEdits( 'root', 'site' ),\n\t\t};\n\t}, [] );\n\n\tconst dirtyEntityRecords = useMemo( () => {\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst editedEntitiesWithoutSite = editedEntities.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst editedSiteEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\teditedSiteEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: TRANSLATED_SITE_PROPERTIES[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\n\t\treturn [ ...editedEntitiesWithoutSite, ...editedSiteEntities ];\n\t}, [ editedEntities, siteEdits ] );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst isDirty = dirtyEntityRecords.length - unselectedEntities.length > 0;\n\n\treturn {\n\t\tdirtyEntityRecords,\n\t\tisDirty,\n\t\tsetUnselectedEntities,\n\t\tunselectedEntities,\n\t};\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AACtD,SAASC,EAAE,QAAQ,iBAAiB;AAEpC,MAAMC,0BAA0B,GAAG;EAClCC,KAAK,EAAEF,EAAE,CAAE,OAAQ,CAAC;EACpBG,WAAW,EAAEH,EAAE,CAAE,SAAU,CAAC;EAC5BI,SAAS,EAAEJ,EAAE,CAAE,MAAO,CAAC;EACvBK,SAAS,EAAEL,EAAE,CAAE,MAAO,CAAC;EACvBM,aAAa,EAAEN,EAAE,CAAE,eAAgB,CAAC;EACpCO,aAAa,EAAEP,EAAE,CAAE,eAAgB,CAAC;EACpCQ,cAAc,EAAER,EAAE,CAAE,wBAAyB,CAAC;EAC9CS,sBAAsB,EAAET,EAAE,CAAE,6BAA8B;AAC3D,CAAC;AAED,OAAO,MAAMU,UAAU,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC,cAAc;IAAEC;EAAU,CAAC,GAAGjB,SAAS,CAAIkB,MAAM,IAAM;IAC9D,MAAM;MAAEC,mCAAmC;MAAEC;IAAqB,CAAC,GAClEF,MAAM,CAAEhB,SAAU,CAAC;IAEpB,OAAO;MACNc,cAAc,EAAEG,mCAAmC,CAAC,CAAC;MACrDF,SAAS,EAAEG,oBAAoB,CAAE,MAAM,EAAE,MAAO;IACjD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,kBAAkB,GAAGlB,OAAO,CAAE,MAAM;IACzC;IACA,MAAMmB,yBAAyB,GAAGN,cAAc,CAACO,MAAM,CACpDC,MAAM,IAAM,EAAIA,MAAM,CAACC,IAAI,KAAK,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,CACnE,CAAC;IAED,MAAMC,kBAAkB,GAAG,EAAE;IAC7B,KAAM,MAAMC,QAAQ,IAAIX,SAAS,EAAG;MACnCU,kBAAkB,CAACE,IAAI,CAAE;QACxBJ,IAAI,EAAE,MAAM;QACZC,IAAI,EAAE,MAAM;QACZnB,KAAK,EAAED,0BAA0B,CAAEsB,QAAQ,CAAE,IAAIA,QAAQ;QACzDA;MACD,CAAE,CAAC;IACJ;IAEA,OAAO,CAAE,GAAGN,yBAAyB,EAAE,GAAGK,kBAAkB,CAAE;EAC/D,CAAC,EAAE,CAAEX,cAAc,EAAEC,SAAS,CAAG,CAAC;;EAElC;EACA,MAAM,CAAEa,kBAAkB,EAAEC,sBAAsB,CAAE,GAAG3B,QAAQ,CAAE,EAAG,CAAC;EAErE,MAAM4B,qBAAqB,GAAGA,CAC7B;IAAEP,IAAI;IAAEC,IAAI;IAAEO,GAAG;IAAEL;EAAS,CAAC,EAC7BM,OAAO,KACH;IACJ,IAAKA,OAAO,EAAG;MACdH,sBAAsB,CACrBD,kBAAkB,CAACP,MAAM,CACtBY,GAAG,IACJA,GAAG,CAACV,IAAI,KAAKA,IAAI,IACjBU,GAAG,CAACT,IAAI,KAAKA,IAAI,IACjBS,GAAG,CAACF,GAAG,KAAKA,GAAG,IACfE,GAAG,CAACP,QAAQ,KAAKA,QACnB,CACD,CAAC;IACF,CAAC,MAAM;MACNG,sBAAsB,CAAE,CACvB,GAAGD,kBAAkB,EACrB;QAAEL,IAAI;QAAEC,IAAI;QAAEO,GAAG;QAAEL;MAAS,CAAC,CAC5B,CAAC;IACJ;EACD,CAAC;EAED,MAAMQ,OAAO,GAAGf,kBAAkB,CAACgB,MAAM,GAAGP,kBAAkB,CAACO,MAAM,GAAG,CAAC;EAEzE,OAAO;IACNhB,kBAAkB;IAClBe,OAAO;IACPJ,qBAAqB;IACrBF;EACD,CAAC;AACF,CAAC"}
1
+ {"version":3,"names":["useSelect","store","coreStore","useMemo","useState","useIsDirty","editedEntities","siteEdits","siteEntityConfig","select","__experimentalGetDirtyEntityRecords","getEntityRecordEdits","getEntityConfig","dirtyEntityRecords","_siteEntityConfig$met","editedEntitiesWithoutSite","filter","record","kind","name","siteEntityLabels","meta","labels","editedSiteEntities","property","push","title","unselectedEntities","_setUnselectedEntities","setUnselectedEntities","key","checked","elt","isDirty","length"],"sources":["@wordpress/editor/src/components/entities-saved-states/hooks/use-is-dirty.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useMemo, useState } from '@wordpress/element';\n\nexport const useIsDirty = () => {\n\tconst { editedEntities, siteEdits, siteEntityConfig } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\tgetEntityRecordEdits,\n\t\t\t\tgetEntityConfig,\n\t\t\t} = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\teditedEntities: __experimentalGetDirtyEntityRecords(),\n\t\t\t\tsiteEdits: getEntityRecordEdits( 'root', 'site' ),\n\t\t\t\tsiteEntityConfig: getEntityConfig( 'root', 'site' ),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst dirtyEntityRecords = useMemo( () => {\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst editedEntitiesWithoutSite = editedEntities.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEntityLabels = siteEntityConfig?.meta?.labels ?? {};\n\t\tconst editedSiteEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\teditedSiteEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: siteEntityLabels[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\n\t\treturn [ ...editedEntitiesWithoutSite, ...editedSiteEntities ];\n\t}, [ editedEntities, siteEdits, siteEntityConfig ] );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst isDirty = dirtyEntityRecords.length - unselectedEntities.length > 0;\n\n\treturn {\n\t\tdirtyEntityRecords,\n\t\tisDirty,\n\t\tsetUnselectedEntities,\n\t\tunselectedEntities,\n\t};\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AAEtD,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC/B,MAAM;IAAEC,cAAc;IAAEC,SAAS;IAAEC;EAAiB,CAAC,GAAGR,SAAS,CAC9DS,MAAM,IAAM;IACb,MAAM;MACLC,mCAAmC;MACnCC,oBAAoB;MACpBC;IACD,CAAC,GAAGH,MAAM,CAAEP,SAAU,CAAC;IAEvB,OAAO;MACNI,cAAc,EAAEI,mCAAmC,CAAC,CAAC;MACrDH,SAAS,EAAEI,oBAAoB,CAAE,MAAM,EAAE,MAAO,CAAC;MACjDH,gBAAgB,EAAEI,eAAe,CAAE,MAAM,EAAE,MAAO;IACnD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,MAAMC,kBAAkB,GAAGV,OAAO,CAAE,MAAM;IAAA,IAAAW,qBAAA;IACzC;IACA,MAAMC,yBAAyB,GAAGT,cAAc,CAACU,MAAM,CACpDC,MAAM,IAAM,EAAIA,MAAM,CAACC,IAAI,KAAK,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,CACnE,CAAC;IAED,MAAMC,gBAAgB,IAAAN,qBAAA,GAAGN,gBAAgB,EAAEa,IAAI,EAAEC,MAAM,cAAAR,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;IAC7D,MAAMS,kBAAkB,GAAG,EAAE;IAC7B,KAAM,MAAMC,QAAQ,IAAIjB,SAAS,EAAG;MACnCgB,kBAAkB,CAACE,IAAI,CAAE;QACxBP,IAAI,EAAE,MAAM;QACZC,IAAI,EAAE,MAAM;QACZO,KAAK,EAAEN,gBAAgB,CAAEI,QAAQ,CAAE,IAAIA,QAAQ;QAC/CA;MACD,CAAE,CAAC;IACJ;IAEA,OAAO,CAAE,GAAGT,yBAAyB,EAAE,GAAGQ,kBAAkB,CAAE;EAC/D,CAAC,EAAE,CAAEjB,cAAc,EAAEC,SAAS,EAAEC,gBAAgB,CAAG,CAAC;;EAEpD;EACA,MAAM,CAAEmB,kBAAkB,EAAEC,sBAAsB,CAAE,GAAGxB,QAAQ,CAAE,EAAG,CAAC;EAErE,MAAMyB,qBAAqB,GAAGA,CAC7B;IAAEX,IAAI;IAAEC,IAAI;IAAEW,GAAG;IAAEN;EAAS,CAAC,EAC7BO,OAAO,KACH;IACJ,IAAKA,OAAO,EAAG;MACdH,sBAAsB,CACrBD,kBAAkB,CAACX,MAAM,CACtBgB,GAAG,IACJA,GAAG,CAACd,IAAI,KAAKA,IAAI,IACjBc,GAAG,CAACb,IAAI,KAAKA,IAAI,IACjBa,GAAG,CAACF,GAAG,KAAKA,GAAG,IACfE,GAAG,CAACR,QAAQ,KAAKA,QACnB,CACD,CAAC;IACF,CAAC,MAAM;MACNI,sBAAsB,CAAE,CACvB,GAAGD,kBAAkB,EACrB;QAAET,IAAI;QAAEC,IAAI;QAAEW,GAAG;QAAEN;MAAS,CAAC,CAC5B,CAAC;IACJ;EACD,CAAC;EAED,MAAMS,OAAO,GAAGpB,kBAAkB,CAACqB,MAAM,GAAGP,kBAAkB,CAACO,MAAM,GAAG,CAAC;EAEzE,OAAO;IACNrB,kBAAkB;IAClBoB,OAAO;IACPJ,qBAAqB;IACrBF;EACD,CAAC;AACF,CAAC"}
@@ -8,7 +8,7 @@ import { useSelect, useDispatch } from '@wordpress/data';
8
8
  import { useCallback, useRef, createInterpolateElement } from '@wordpress/element';
9
9
  import { store as coreStore } from '@wordpress/core-data';
10
10
  import { store as blockEditorStore } from '@wordpress/block-editor';
11
- import { __experimentalUseDialog as useDialog } from '@wordpress/compose';
11
+ import { __experimentalUseDialog as useDialog, useInstanceId } from '@wordpress/compose';
12
12
  import { store as noticesStore } from '@wordpress/notices';
13
13
 
14
14
  /**
@@ -24,11 +24,13 @@ function identity(values) {
24
24
  return values;
25
25
  }
26
26
  export default function EntitiesSavedStates({
27
- close
27
+ close,
28
+ renderDialog = undefined
28
29
  }) {
29
30
  const isDirtyProps = useIsDirty();
30
31
  return createElement(EntitiesSavedStatesExtensible, {
31
32
  close: close,
33
+ renderDialog: renderDialog,
32
34
  ...isDirtyProps
33
35
  });
34
36
  }
@@ -38,6 +40,7 @@ export function EntitiesSavedStatesExtensible({
38
40
  onSave = identity,
39
41
  saveEnabled: saveEnabledProp = undefined,
40
42
  saveLabel = __('Save'),
43
+ renderDialog = undefined,
41
44
  dirtyEntityRecords,
42
45
  isDirty,
43
46
  setUnselectedEntities,
@@ -148,10 +151,15 @@ export function EntitiesSavedStatesExtensible({
148
151
  const [saveDialogRef, saveDialogProps] = useDialog({
149
152
  onClose: () => dismissPanel()
150
153
  });
154
+ const dialogLabel = useInstanceId(EntitiesSavedStatesExtensible, 'label');
155
+ const dialogDescription = useInstanceId(EntitiesSavedStatesExtensible, 'description');
151
156
  return createElement("div", {
152
157
  ref: saveDialogRef,
153
158
  ...saveDialogProps,
154
- className: "entities-saved-states__panel"
159
+ className: "entities-saved-states__panel",
160
+ role: renderDialog ? 'dialog' : undefined,
161
+ "aria-labelledby": renderDialog ? dialogLabel : undefined,
162
+ "aria-describedby": renderDialog ? dialogDescription : undefined
155
163
  }, createElement(Flex, {
156
164
  className: "entities-saved-states__panel-header",
157
165
  gap: 2
@@ -161,6 +169,7 @@ export function EntitiesSavedStatesExtensible({
161
169
  ref: saveButtonRef,
162
170
  variant: "primary",
163
171
  disabled: !saveEnabled,
172
+ __experimentalIsFocusable: true,
164
173
  onClick: saveCheckedEntities,
165
174
  className: "editor-entities-saved-states__save-button"
166
175
  }, saveLabel), createElement(FlexItem, {
@@ -170,9 +179,14 @@ export function EntitiesSavedStatesExtensible({
170
179
  onClick: dismissPanel
171
180
  }, __('Cancel'))), createElement("div", {
172
181
  className: "entities-saved-states__text-prompt"
182
+ }, createElement("div", {
183
+ className: "entities-saved-states__text-prompt--header-wrapper",
184
+ id: renderDialog ? dialogLabel : undefined
173
185
  }, createElement("strong", {
174
186
  className: "entities-saved-states__text-prompt--header"
175
- }, __('Are you ready to save?')), additionalPrompt, createElement("p", null, isDirty ? createInterpolateElement(sprintf( /* translators: %d: number of site changes waiting to be saved. */
187
+ }, __('Are you ready to save?')), additionalPrompt), createElement("p", {
188
+ id: renderDialog ? dialogDescription : undefined
189
+ }, isDirty ? createInterpolateElement(sprintf( /* translators: %d: number of site changes waiting to be saved. */
176
190
  _n('There is <strong>%d site change</strong> waiting to be saved.', 'There are <strong>%d site changes</strong> waiting to be saved.', sortedPartitionedSavables.length), sortedPartitionedSavables.length), {
177
191
  strong: createElement("strong", null)
178
192
  }) : __('Select the items you want to save.'))), sortedPartitionedSavables.map(list => {