@wordpress/editor 14.14.0 → 14.15.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 (180) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +1 -0
  4. package/build/components/commands/index.js +28 -0
  5. package/build/components/commands/index.js.map +1 -1
  6. package/build/components/document-bar/index.js +2 -1
  7. package/build/components/document-bar/index.js.map +1 -1
  8. package/build/components/document-tools/index.js +3 -6
  9. package/build/components/document-tools/index.js.map +1 -1
  10. package/build/components/editor-help/intro-to-blocks.native.js +1 -1
  11. package/build/components/editor-help/intro-to-blocks.native.js.map +1 -1
  12. package/build/components/entities-saved-states/index.js +2 -1
  13. package/build/components/entities-saved-states/index.js.map +1 -1
  14. package/build/components/error-boundary/index.native.js +1 -1
  15. package/build/components/error-boundary/index.native.js.map +1 -1
  16. package/build/components/more-menu/index.js +0 -1
  17. package/build/components/more-menu/index.js.map +1 -1
  18. package/build/components/post-actions/actions.js +9 -4
  19. package/build/components/post-actions/actions.js.map +1 -1
  20. package/build/components/post-actions/index.js +17 -14
  21. package/build/components/post-actions/index.js.map +1 -1
  22. package/build/components/post-actions/set-as-homepage.js +23 -34
  23. package/build/components/post-actions/set-as-homepage.js.map +1 -1
  24. package/build/components/post-actions/set-as-posts-page.js +154 -0
  25. package/build/components/post-actions/set-as-posts-page.js.map +1 -0
  26. package/build/components/post-card-panel/index.js +12 -5
  27. package/build/components/post-card-panel/index.js.map +1 -1
  28. package/build/components/post-publish-panel/maybe-upload-media.js +1 -1
  29. package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  30. package/build/components/preferences-modal/index.js +2 -4
  31. package/build/components/preferences-modal/index.js.map +1 -1
  32. package/build/components/preview-dropdown/index.js +0 -1
  33. package/build/components/preview-dropdown/index.js.map +1 -1
  34. package/build/components/provider/disable-non-page-content-blocks.js +65 -13
  35. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
  36. package/build/components/provider/index.js +9 -13
  37. package/build/components/provider/index.js.map +1 -1
  38. package/build/components/provider/use-block-editor-settings.js +3 -1
  39. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  40. package/build/components/start-page-options/index.js +20 -107
  41. package/build/components/start-page-options/index.js.map +1 -1
  42. package/build/components/template-part-menu-items/index.js +2 -10
  43. package/build/components/template-part-menu-items/index.js.map +1 -1
  44. package/build/store/actions.js +0 -2
  45. package/build/store/actions.js.map +1 -1
  46. package/build/store/constants.js +1 -3
  47. package/build/store/constants.js.map +1 -1
  48. package/build/store/private-actions.js +1 -1
  49. package/build/store/private-actions.js.map +1 -1
  50. package/build/store/utils/notice-builder.js +3 -8
  51. package/build/store/utils/notice-builder.js.map +1 -1
  52. package/build/utils/get-item-title.js +32 -0
  53. package/build/utils/get-item-title.js.map +1 -0
  54. package/build/utils/media-sideload/index.js +21 -0
  55. package/build/utils/media-sideload/index.js.map +1 -0
  56. package/build/utils/media-sideload/index.native.js +8 -0
  57. package/build/utils/media-sideload/index.native.js.map +1 -0
  58. package/build/utils/media-upload/index.js +5 -2
  59. package/build/utils/media-upload/index.js.map +1 -1
  60. package/build-module/components/commands/index.js +28 -0
  61. package/build-module/components/commands/index.js.map +1 -1
  62. package/build-module/components/document-bar/index.js +2 -1
  63. package/build-module/components/document-bar/index.js.map +1 -1
  64. package/build-module/components/document-tools/index.js +4 -7
  65. package/build-module/components/document-tools/index.js.map +1 -1
  66. package/build-module/components/editor-help/intro-to-blocks.native.js +1 -1
  67. package/build-module/components/editor-help/intro-to-blocks.native.js.map +1 -1
  68. package/build-module/components/entities-saved-states/index.js +2 -1
  69. package/build-module/components/entities-saved-states/index.js.map +1 -1
  70. package/build-module/components/error-boundary/index.native.js +2 -2
  71. package/build-module/components/error-boundary/index.native.js.map +1 -1
  72. package/build-module/components/more-menu/index.js +0 -1
  73. package/build-module/components/more-menu/index.js.map +1 -1
  74. package/build-module/components/post-actions/actions.js +9 -4
  75. package/build-module/components/post-actions/actions.js.map +1 -1
  76. package/build-module/components/post-actions/index.js +18 -15
  77. package/build-module/components/post-actions/index.js.map +1 -1
  78. package/build-module/components/post-actions/set-as-homepage.js +22 -33
  79. package/build-module/components/post-actions/set-as-homepage.js.map +1 -1
  80. package/build-module/components/post-actions/set-as-posts-page.js +146 -0
  81. package/build-module/components/post-actions/set-as-posts-page.js.map +1 -0
  82. package/build-module/components/post-card-panel/index.js +11 -6
  83. package/build-module/components/post-card-panel/index.js.map +1 -1
  84. package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -2
  85. package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
  86. package/build-module/components/preferences-modal/index.js +2 -4
  87. package/build-module/components/preferences-modal/index.js.map +1 -1
  88. package/build-module/components/preview-dropdown/index.js +0 -1
  89. package/build-module/components/preview-dropdown/index.js.map +1 -1
  90. package/build-module/components/provider/disable-non-page-content-blocks.js +65 -13
  91. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
  92. package/build-module/components/provider/index.js +10 -14
  93. package/build-module/components/provider/index.js.map +1 -1
  94. package/build-module/components/provider/use-block-editor-settings.js +3 -1
  95. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  96. package/build-module/components/start-page-options/index.js +21 -107
  97. package/build-module/components/start-page-options/index.js.map +1 -1
  98. package/build-module/components/template-part-menu-items/index.js +2 -10
  99. package/build-module/components/template-part-menu-items/index.js.map +1 -1
  100. package/build-module/store/actions.js +0 -2
  101. package/build-module/store/actions.js.map +1 -1
  102. package/build-module/store/constants.js +0 -2
  103. package/build-module/store/constants.js.map +1 -1
  104. package/build-module/store/private-actions.js +1 -1
  105. package/build-module/store/private-actions.js.map +1 -1
  106. package/build-module/store/utils/notice-builder.js +3 -8
  107. package/build-module/store/utils/notice-builder.js.map +1 -1
  108. package/build-module/utils/get-item-title.js +26 -0
  109. package/build-module/utils/get-item-title.js.map +1 -0
  110. package/build-module/utils/media-sideload/index.js +14 -0
  111. package/build-module/utils/media-sideload/index.js.map +1 -0
  112. package/build-module/utils/media-sideload/index.native.js +2 -0
  113. package/build-module/utils/media-sideload/index.native.js.map +1 -0
  114. package/build-module/utils/media-upload/index.js +5 -2
  115. package/build-module/utils/media-upload/index.js.map +1 -1
  116. package/build-style/style-rtl.css +5 -25
  117. package/build-style/style.css +5 -25
  118. package/build-types/components/commands/index.d.ts.map +1 -1
  119. package/build-types/components/document-bar/index.d.ts.map +1 -1
  120. package/build-types/components/document-tools/index.d.ts.map +1 -1
  121. package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
  122. package/build-types/components/more-menu/index.d.ts.map +1 -1
  123. package/build-types/components/post-actions/actions.d.ts.map +1 -1
  124. package/build-types/components/post-actions/index.d.ts.map +1 -1
  125. package/build-types/components/post-actions/set-as-homepage.d.ts.map +1 -1
  126. package/build-types/components/post-actions/set-as-posts-page.d.ts +10 -0
  127. package/build-types/components/post-actions/set-as-posts-page.d.ts.map +1 -0
  128. package/build-types/components/post-card-panel/index.d.ts.map +1 -1
  129. package/build-types/components/preferences-modal/index.d.ts.map +1 -1
  130. package/build-types/components/preview-dropdown/index.d.ts.map +1 -1
  131. package/build-types/components/provider/disable-non-page-content-blocks.d.ts.map +1 -1
  132. package/build-types/components/provider/index.d.ts.map +1 -1
  133. package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
  134. package/build-types/components/start-page-options/index.d.ts +1 -2
  135. package/build-types/components/start-page-options/index.d.ts.map +1 -1
  136. package/build-types/store/actions.d.ts.map +1 -1
  137. package/build-types/store/constants.d.ts +0 -2
  138. package/build-types/store/constants.d.ts.map +1 -1
  139. package/build-types/store/private-actions.d.ts.map +1 -1
  140. package/build-types/store/utils/notice-builder.d.ts.map +1 -1
  141. package/build-types/utils/get-item-title.d.ts +10 -0
  142. package/build-types/utils/get-item-title.d.ts.map +1 -0
  143. package/build-types/utils/media-sideload/index.d.ts +3 -0
  144. package/build-types/utils/media-sideload/index.d.ts.map +1 -0
  145. package/build-types/utils/media-upload/index.d.ts +3 -1
  146. package/build-types/utils/media-upload/index.d.ts.map +1 -1
  147. package/package.json +37 -37
  148. package/src/components/commands/index.js +29 -0
  149. package/src/components/document-bar/index.js +2 -1
  150. package/src/components/document-tools/index.js +3 -6
  151. package/src/components/document-tools/style.scss +0 -6
  152. package/src/components/editor-help/intro-to-blocks.native.js +1 -1
  153. package/src/components/entities-saved-states/index.js +5 -1
  154. package/src/components/error-boundary/index.native.js +2 -2
  155. package/src/components/more-menu/index.js +0 -1
  156. package/src/components/post-actions/actions.js +12 -4
  157. package/src/components/post-actions/index.js +19 -17
  158. package/src/components/post-actions/set-as-homepage.js +29 -45
  159. package/src/components/post-actions/set-as-posts-page.js +164 -0
  160. package/src/components/post-card-panel/index.js +8 -6
  161. package/src/components/post-card-panel/style.scss +4 -13
  162. package/src/components/post-publish-panel/maybe-upload-media.js +2 -2
  163. package/src/components/preferences-modal/index.js +8 -13
  164. package/src/components/preview-dropdown/index.js +0 -1
  165. package/src/components/provider/disable-non-page-content-blocks.js +64 -13
  166. package/src/components/provider/index.js +13 -27
  167. package/src/components/provider/use-block-editor-settings.js +3 -0
  168. package/src/components/start-page-options/index.js +28 -119
  169. package/src/components/template-part-menu-items/index.js +2 -11
  170. package/src/store/actions.js +0 -2
  171. package/src/store/constants.ts +0 -2
  172. package/src/store/private-actions.js +1 -1
  173. package/src/store/utils/notice-builder.js +3 -8
  174. package/src/store/utils/test/notice-builder.js +3 -4
  175. package/src/utils/get-item-title.js +25 -0
  176. package/src/utils/media-sideload/index.js +13 -0
  177. package/src/utils/media-sideload/index.native.js +1 -0
  178. package/src/utils/media-upload/index.js +4 -1
  179. package/tsconfig.json +1 -4
  180. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["privateApis","unlock","sideloadMedia","mediaSideload"],"sources":["@wordpress/editor/src/utils/media-sideload/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/media-utils';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { sideloadMedia: mediaSideload } = unlock( privateApis );\n\nexport default mediaSideload;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,wBAAwB;;AAEpD;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC,aAAa,EAAEC;AAAc,CAAC,GAAGF,MAAM,CAAED,WAAY,CAAC;AAE9D,eAAeG,aAAa","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export default function mediaSideload() {}
2
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mediaSideload"],"sources":["@wordpress/editor/src/utils/media-sideload/index.native.js"],"sourcesContent":["export default function mediaSideload() {}\n"],"mappings":"AAAA,eAAe,SAASA,aAAaA,CAAA,EAAG,CAAC","ignoreList":[]}
@@ -26,6 +26,7 @@ const noop = () => {};
26
26
  * @param {?number} $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.
27
27
  * @param {Function} $0.onError Function called when an error happens.
28
28
  * @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.
29
+ * @param {Function} $0.onSuccess Function called after the final representation of the file is available.
29
30
  */
30
31
  export default function mediaUpload({
31
32
  additionalData = {},
@@ -33,7 +34,8 @@ export default function mediaUpload({
33
34
  filesList,
34
35
  maxUploadFileSize,
35
36
  onError = noop,
36
- onFileChange
37
+ onFileChange,
38
+ onSuccess
37
39
  }) {
38
40
  const {
39
41
  getCurrentPost,
@@ -74,8 +76,9 @@ export default function mediaUpload({
74
76
  } else {
75
77
  clearSaveLock();
76
78
  }
77
- onFileChange(file);
79
+ onFileChange?.(file);
78
80
  },
81
+ onSuccess,
79
82
  additionalData: {
80
83
  ...postData,
81
84
  ...additionalData
@@ -1 +1 @@
1
- {"version":3,"names":["v4","uuid","select","dispatch","uploadMedia","store","editorStore","noop","mediaUpload","additionalData","allowedTypes","filesList","maxUploadFileSize","onError","onFileChange","getCurrentPost","getEditorSettings","lockPostAutosaving","unlockPostAutosaving","lockPostSaving","unlockPostSaving","wpAllowedMimeTypes","allowedMimeTypes","lockKey","imageIsUploading","currentPost","currentPostId","id","wp_id","setSaveLock","postData","post","clearSaveLock","file","message"],"sources":["@wordpress/editor/src/utils/media-upload/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { select, dispatch } from '@wordpress/data';\nimport { uploadMedia } from '@wordpress/media-utils';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\n/**\n * Upload a media file when the file upload button is activated.\n * Wrapper around mediaUpload() that injects the current post ID.\n *\n * @param {Object} $0 Parameters object passed to the function.\n * @param {?Object} $0.additionalData Additional data to include in the request.\n * @param {string} $0.allowedTypes Array with the types of media that can be uploaded, if unset all types are allowed.\n * @param {Array} $0.filesList List of files.\n * @param {?number} $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.\n * @param {Function} $0.onError Function called when an error happens.\n * @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.\n */\nexport default function mediaUpload( {\n\tadditionalData = {},\n\tallowedTypes,\n\tfilesList,\n\tmaxUploadFileSize,\n\tonError = noop,\n\tonFileChange,\n} ) {\n\tconst { getCurrentPost, getEditorSettings } = select( editorStore );\n\tconst {\n\t\tlockPostAutosaving,\n\t\tunlockPostAutosaving,\n\t\tlockPostSaving,\n\t\tunlockPostSaving,\n\t} = dispatch( editorStore );\n\n\tconst wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;\n\tconst lockKey = `image-upload-${ uuid() }`;\n\tlet imageIsUploading = false;\n\tmaxUploadFileSize =\n\t\tmaxUploadFileSize || getEditorSettings().maxUploadFileSize;\n\tconst currentPost = getCurrentPost();\n\t// Templates and template parts' numerical ID is stored in `wp_id`.\n\tconst currentPostId =\n\t\ttypeof currentPost?.id === 'number'\n\t\t\t? currentPost.id\n\t\t\t: currentPost?.wp_id;\n\tconst setSaveLock = () => {\n\t\tlockPostSaving( lockKey );\n\t\tlockPostAutosaving( lockKey );\n\t\timageIsUploading = true;\n\t};\n\n\tconst postData = currentPostId ? { post: currentPostId } : {};\n\tconst clearSaveLock = () => {\n\t\tunlockPostSaving( lockKey );\n\t\tunlockPostAutosaving( lockKey );\n\t\timageIsUploading = false;\n\t};\n\n\tuploadMedia( {\n\t\tallowedTypes,\n\t\tfilesList,\n\t\tonFileChange: ( file ) => {\n\t\t\tif ( ! imageIsUploading ) {\n\t\t\t\tsetSaveLock();\n\t\t\t} else {\n\t\t\t\tclearSaveLock();\n\t\t\t}\n\t\t\tonFileChange( file );\n\t\t},\n\t\tadditionalData: {\n\t\t\t...postData,\n\t\t\t...additionalData,\n\t\t},\n\t\tmaxUploadFileSize,\n\t\tonError: ( { message } ) => {\n\t\t\tclearSaveLock();\n\t\t\tonError( message );\n\t\t},\n\t\twpAllowedMimeTypes,\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,IAAIC,IAAI,QAAQ,MAAM;;AAEjC;AACA;AACA;AACA,SAASC,MAAM,EAAEC,QAAQ,QAAQ,iBAAiB;AAClD,SAASC,WAAW,QAAQ,wBAAwB;;AAEpD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,WAAWA,CAAE;EACpCC,cAAc,GAAG,CAAC,CAAC;EACnBC,YAAY;EACZC,SAAS;EACTC,iBAAiB;EACjBC,OAAO,GAAGN,IAAI;EACdO;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,cAAc;IAAEC;EAAkB,CAAC,GAAGd,MAAM,CAAEI,WAAY,CAAC;EACnE,MAAM;IACLW,kBAAkB;IAClBC,oBAAoB;IACpBC,cAAc;IACdC;EACD,CAAC,GAAGjB,QAAQ,CAAEG,WAAY,CAAC;EAE3B,MAAMe,kBAAkB,GAAGL,iBAAiB,CAAC,CAAC,CAACM,gBAAgB;EAC/D,MAAMC,OAAO,GAAG,gBAAiBtB,IAAI,CAAC,CAAC,EAAG;EAC1C,IAAIuB,gBAAgB,GAAG,KAAK;EAC5BZ,iBAAiB,GAChBA,iBAAiB,IAAII,iBAAiB,CAAC,CAAC,CAACJ,iBAAiB;EAC3D,MAAMa,WAAW,GAAGV,cAAc,CAAC,CAAC;EACpC;EACA,MAAMW,aAAa,GAClB,OAAOD,WAAW,EAAEE,EAAE,KAAK,QAAQ,GAChCF,WAAW,CAACE,EAAE,GACdF,WAAW,EAAEG,KAAK;EACtB,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACzBV,cAAc,CAAEI,OAAQ,CAAC;IACzBN,kBAAkB,CAAEM,OAAQ,CAAC;IAC7BC,gBAAgB,GAAG,IAAI;EACxB,CAAC;EAED,MAAMM,QAAQ,GAAGJ,aAAa,GAAG;IAAEK,IAAI,EAAEL;EAAc,CAAC,GAAG,CAAC,CAAC;EAC7D,MAAMM,aAAa,GAAGA,CAAA,KAAM;IAC3BZ,gBAAgB,CAAEG,OAAQ,CAAC;IAC3BL,oBAAoB,CAAEK,OAAQ,CAAC;IAC/BC,gBAAgB,GAAG,KAAK;EACzB,CAAC;EAEDpB,WAAW,CAAE;IACZM,YAAY;IACZC,SAAS;IACTG,YAAY,EAAImB,IAAI,IAAM;MACzB,IAAK,CAAET,gBAAgB,EAAG;QACzBK,WAAW,CAAC,CAAC;MACd,CAAC,MAAM;QACNG,aAAa,CAAC,CAAC;MAChB;MACAlB,YAAY,CAAEmB,IAAK,CAAC;IACrB,CAAC;IACDxB,cAAc,EAAE;MACf,GAAGqB,QAAQ;MACX,GAAGrB;IACJ,CAAC;IACDG,iBAAiB;IACjBC,OAAO,EAAEA,CAAE;MAAEqB;IAAQ,CAAC,KAAM;MAC3BF,aAAa,CAAC,CAAC;MACfnB,OAAO,CAAEqB,OAAQ,CAAC;IACnB,CAAC;IACDb;EACD,CAAE,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["v4","uuid","select","dispatch","uploadMedia","store","editorStore","noop","mediaUpload","additionalData","allowedTypes","filesList","maxUploadFileSize","onError","onFileChange","onSuccess","getCurrentPost","getEditorSettings","lockPostAutosaving","unlockPostAutosaving","lockPostSaving","unlockPostSaving","wpAllowedMimeTypes","allowedMimeTypes","lockKey","imageIsUploading","currentPost","currentPostId","id","wp_id","setSaveLock","postData","post","clearSaveLock","file","message"],"sources":["@wordpress/editor/src/utils/media-upload/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { v4 as uuid } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { select, dispatch } from '@wordpress/data';\nimport { uploadMedia } from '@wordpress/media-utils';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\n/**\n * Upload a media file when the file upload button is activated.\n * Wrapper around mediaUpload() that injects the current post ID.\n *\n * @param {Object} $0 Parameters object passed to the function.\n * @param {?Object} $0.additionalData Additional data to include in the request.\n * @param {string} $0.allowedTypes Array with the types of media that can be uploaded, if unset all types are allowed.\n * @param {Array} $0.filesList List of files.\n * @param {?number} $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.\n * @param {Function} $0.onError Function called when an error happens.\n * @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.\n * @param {Function} $0.onSuccess Function called after the final representation of the file is available.\n */\nexport default function mediaUpload( {\n\tadditionalData = {},\n\tallowedTypes,\n\tfilesList,\n\tmaxUploadFileSize,\n\tonError = noop,\n\tonFileChange,\n\tonSuccess,\n} ) {\n\tconst { getCurrentPost, getEditorSettings } = select( editorStore );\n\tconst {\n\t\tlockPostAutosaving,\n\t\tunlockPostAutosaving,\n\t\tlockPostSaving,\n\t\tunlockPostSaving,\n\t} = dispatch( editorStore );\n\n\tconst wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;\n\tconst lockKey = `image-upload-${ uuid() }`;\n\tlet imageIsUploading = false;\n\tmaxUploadFileSize =\n\t\tmaxUploadFileSize || getEditorSettings().maxUploadFileSize;\n\tconst currentPost = getCurrentPost();\n\t// Templates and template parts' numerical ID is stored in `wp_id`.\n\tconst currentPostId =\n\t\ttypeof currentPost?.id === 'number'\n\t\t\t? currentPost.id\n\t\t\t: currentPost?.wp_id;\n\tconst setSaveLock = () => {\n\t\tlockPostSaving( lockKey );\n\t\tlockPostAutosaving( lockKey );\n\t\timageIsUploading = true;\n\t};\n\n\tconst postData = currentPostId ? { post: currentPostId } : {};\n\tconst clearSaveLock = () => {\n\t\tunlockPostSaving( lockKey );\n\t\tunlockPostAutosaving( lockKey );\n\t\timageIsUploading = false;\n\t};\n\n\tuploadMedia( {\n\t\tallowedTypes,\n\t\tfilesList,\n\t\tonFileChange: ( file ) => {\n\t\t\tif ( ! imageIsUploading ) {\n\t\t\t\tsetSaveLock();\n\t\t\t} else {\n\t\t\t\tclearSaveLock();\n\t\t\t}\n\t\t\tonFileChange?.( file );\n\t\t},\n\t\tonSuccess,\n\t\tadditionalData: {\n\t\t\t...postData,\n\t\t\t...additionalData,\n\t\t},\n\t\tmaxUploadFileSize,\n\t\tonError: ( { message } ) => {\n\t\t\tclearSaveLock();\n\t\t\tonError( message );\n\t\t},\n\t\twpAllowedMimeTypes,\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,IAAIC,IAAI,QAAQ,MAAM;;AAEjC;AACA;AACA;AACA,SAASC,MAAM,EAAEC,QAAQ,QAAQ,iBAAiB;AAClD,SAASC,WAAW,QAAQ,wBAAwB;;AAEpD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,WAAWA,CAAE;EACpCC,cAAc,GAAG,CAAC,CAAC;EACnBC,YAAY;EACZC,SAAS;EACTC,iBAAiB;EACjBC,OAAO,GAAGN,IAAI;EACdO,YAAY;EACZC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,cAAc;IAAEC;EAAkB,CAAC,GAAGf,MAAM,CAAEI,WAAY,CAAC;EACnE,MAAM;IACLY,kBAAkB;IAClBC,oBAAoB;IACpBC,cAAc;IACdC;EACD,CAAC,GAAGlB,QAAQ,CAAEG,WAAY,CAAC;EAE3B,MAAMgB,kBAAkB,GAAGL,iBAAiB,CAAC,CAAC,CAACM,gBAAgB;EAC/D,MAAMC,OAAO,GAAG,gBAAiBvB,IAAI,CAAC,CAAC,EAAG;EAC1C,IAAIwB,gBAAgB,GAAG,KAAK;EAC5Bb,iBAAiB,GAChBA,iBAAiB,IAAIK,iBAAiB,CAAC,CAAC,CAACL,iBAAiB;EAC3D,MAAMc,WAAW,GAAGV,cAAc,CAAC,CAAC;EACpC;EACA,MAAMW,aAAa,GAClB,OAAOD,WAAW,EAAEE,EAAE,KAAK,QAAQ,GAChCF,WAAW,CAACE,EAAE,GACdF,WAAW,EAAEG,KAAK;EACtB,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACzBV,cAAc,CAAEI,OAAQ,CAAC;IACzBN,kBAAkB,CAAEM,OAAQ,CAAC;IAC7BC,gBAAgB,GAAG,IAAI;EACxB,CAAC;EAED,MAAMM,QAAQ,GAAGJ,aAAa,GAAG;IAAEK,IAAI,EAAEL;EAAc,CAAC,GAAG,CAAC,CAAC;EAC7D,MAAMM,aAAa,GAAGA,CAAA,KAAM;IAC3BZ,gBAAgB,CAAEG,OAAQ,CAAC;IAC3BL,oBAAoB,CAAEK,OAAQ,CAAC;IAC/BC,gBAAgB,GAAG,KAAK;EACzB,CAAC;EAEDrB,WAAW,CAAE;IACZM,YAAY;IACZC,SAAS;IACTG,YAAY,EAAIoB,IAAI,IAAM;MACzB,IAAK,CAAET,gBAAgB,EAAG;QACzBK,WAAW,CAAC,CAAC;MACd,CAAC,MAAM;QACNG,aAAa,CAAC,CAAC;MAChB;MACAnB,YAAY,GAAIoB,IAAK,CAAC;IACvB,CAAC;IACDnB,SAAS;IACTN,cAAc,EAAE;MACf,GAAGsB,QAAQ;MACX,GAAGtB;IACJ,CAAC;IACDG,iBAAiB;IACjBC,OAAO,EAAEA,CAAE;MAAEsB;IAAQ,CAAC,KAAM;MAC3BF,aAAa,CAAC,CAAC;MACfpB,OAAO,CAAEsB,OAAQ,CAAC;IACnB,CAAC;IACDb;EACD,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -249,8 +249,7 @@ html.interface-interface-skeleton__html-container {
249
249
  overflow: hidden;
250
250
  }
251
251
 
252
- .interface-interface-skeleton {
253
- /* Set left position when auto-fold is not on the body element. */
252
+ .interface-interface-skeleton { /* Set left position when auto-fold is not on the body element. */
254
253
  right: 0;
255
254
  }
256
255
  @media (min-width: 783px) {
@@ -259,9 +258,7 @@ html.interface-interface-skeleton__html-container {
259
258
  }
260
259
  }
261
260
 
262
- .auto-fold .interface-interface-skeleton {
263
- /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */
264
- }
261
+ .auto-fold .interface-interface-skeleton { /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ }
265
262
  @media (min-width: 783px) {
266
263
  .auto-fold .interface-interface-skeleton {
267
264
  right: 36px;
@@ -926,15 +923,8 @@ body.is-fullscreen-mode .interface-interface-skeleton {
926
923
  margin-inline-end: 8px;
927
924
  }
928
925
 
929
- .editor-document-tools .editor-document-tools__left > .editor-document-tools__inserter-toggle.has-icon {
930
- min-width: 32px;
931
- width: 32px;
932
- height: 32px;
933
- padding: 0;
934
- }
935
926
  .show-icon-labels .editor-document-tools .editor-document-tools__left > .editor-document-tools__inserter-toggle.has-icon {
936
927
  width: auto;
937
- height: 32px;
938
928
  padding: 0 8px;
939
929
  }
940
930
 
@@ -1460,7 +1450,6 @@ body.is-fullscreen-mode .interface-interface-skeleton {
1460
1450
  font-size: 13px;
1461
1451
  line-height: 20px;
1462
1452
  margin: 0;
1463
- padding: 2px 0;
1464
1453
  display: flex;
1465
1454
  align-items: center;
1466
1455
  flex-wrap: wrap;
@@ -1480,22 +1469,13 @@ body.is-fullscreen-mode .interface-interface-skeleton {
1480
1469
  .editor-post-card-panel.has-description .editor-post-card-panel__header {
1481
1470
  margin-bottom: 8px;
1482
1471
  }
1472
+ .editor-post-card-panel .editor-post-card-panel__title-name {
1473
+ padding: 2px 0;
1474
+ }
1483
1475
  .editor-post-card-panel .editor-post-card-panel__description {
1484
1476
  color: #757575;
1485
1477
  }
1486
1478
 
1487
- .editor-post-card-panel__title-badge {
1488
- background: #f0f0f0;
1489
- color: #2f2f2f;
1490
- padding: 0 4px;
1491
- border-radius: 2px;
1492
- font-size: 12px;
1493
- font-weight: 400;
1494
- flex-shrink: 0;
1495
- line-height: 20px;
1496
- display: inline-block;
1497
- }
1498
-
1499
1479
  .editor-post-content-information {
1500
1480
  color: #757575;
1501
1481
  }
@@ -249,8 +249,7 @@ html.interface-interface-skeleton__html-container {
249
249
  overflow: hidden;
250
250
  }
251
251
 
252
- .interface-interface-skeleton {
253
- /* Set left position when auto-fold is not on the body element. */
252
+ .interface-interface-skeleton { /* Set left position when auto-fold is not on the body element. */
254
253
  left: 0;
255
254
  }
256
255
  @media (min-width: 783px) {
@@ -259,9 +258,7 @@ html.interface-interface-skeleton__html-container {
259
258
  }
260
259
  }
261
260
 
262
- .auto-fold .interface-interface-skeleton {
263
- /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */
264
- }
261
+ .auto-fold .interface-interface-skeleton { /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ }
265
262
  @media (min-width: 783px) {
266
263
  .auto-fold .interface-interface-skeleton {
267
264
  left: 36px;
@@ -926,15 +923,8 @@ body.is-fullscreen-mode .interface-interface-skeleton {
926
923
  margin-inline-end: 8px;
927
924
  }
928
925
 
929
- .editor-document-tools .editor-document-tools__left > .editor-document-tools__inserter-toggle.has-icon {
930
- min-width: 32px;
931
- width: 32px;
932
- height: 32px;
933
- padding: 0;
934
- }
935
926
  .show-icon-labels .editor-document-tools .editor-document-tools__left > .editor-document-tools__inserter-toggle.has-icon {
936
927
  width: auto;
937
- height: 32px;
938
928
  padding: 0 8px;
939
929
  }
940
930
 
@@ -1460,7 +1450,6 @@ body.is-fullscreen-mode .interface-interface-skeleton {
1460
1450
  font-size: 13px;
1461
1451
  line-height: 20px;
1462
1452
  margin: 0;
1463
- padding: 2px 0;
1464
1453
  display: flex;
1465
1454
  align-items: center;
1466
1455
  flex-wrap: wrap;
@@ -1480,22 +1469,13 @@ body.is-fullscreen-mode .interface-interface-skeleton {
1480
1469
  .editor-post-card-panel.has-description .editor-post-card-panel__header {
1481
1470
  margin-bottom: 8px;
1482
1471
  }
1472
+ .editor-post-card-panel .editor-post-card-panel__title-name {
1473
+ padding: 2px 0;
1474
+ }
1483
1475
  .editor-post-card-panel .editor-post-card-panel__description {
1484
1476
  color: #757575;
1485
1477
  }
1486
1478
 
1487
- .editor-post-card-panel__title-badge {
1488
- background: #f0f0f0;
1489
- color: #2f2f2f;
1490
- padding: 0 4px;
1491
- border-radius: 2px;
1492
- font-size: 12px;
1493
- font-weight: 400;
1494
- flex-shrink: 0;
1495
- line-height: 20px;
1496
- display: inline-block;
1497
- }
1498
-
1499
1479
  .editor-post-content-information {
1500
1480
  color: #757575;
1501
1481
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/commands/index.js"],"names":[],"mappings":"AAwbA,4CAsBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/commands/index.js"],"names":[],"mappings":"AAqdA,4CAsBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/document-bar/index.js"],"names":[],"mappings":"AAqCA;;;;;;;;;;;;;;;;GAgBG;AACH,2CAPG;IAAwB,KAAK,EAArB,MAAM;IAEU,IAAI,EAApB,QAAQ;CAGhB,GAAS,KAAK,CAAC,SAAS,CAgL1B;uBAnMa,OAAO,uBAAuB,EAAE,QAAQ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/document-bar/index.js"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;;;GAgBG;AACH,2CAPG;IAAwB,KAAK,EAArB,MAAM;IAEU,IAAI,EAApB,QAAQ;CAGhB,GAAS,KAAK,CAAC,SAAS,CAgL1B;uBAnMa,OAAO,uBAAuB,EAAE,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/document-tools/index.js"],"names":[],"mappings":";AA0BA;;;gCA+JC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/document-tools/index.js"],"names":[],"mappings":";AA0BA;;;gCA4JC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/entities-saved-states/index.js"],"names":[],"mappings":"AA4BA;;;;;;;;GAQG;AACH,qEALG;IAAwB,KAAK;IACL,YAAY,EAA5B,OAAO;CAEf,GAAS,KAAK,CAAC,SAAS,CAW1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,mNAbG;IAAwB,gBAAgB,EAAhC,MAAM;IACU,KAAK;IACL,MAAM;IACN,WAAW,EAA3B,OAAO;IACS,SAAS,EAAzB,MAAM;IACU,YAAY,EAA5B,OAAO;IACS,kBAAkB;IAClB,OAAO,EAAvB,OAAO;IACS,qBAAqB;IACrB,kBAAkB;CAE1C,GAAS,KAAK,CAAC,SAAS,CAuI1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/entities-saved-states/index.js"],"names":[],"mappings":"AA4BA;;;;;;;;GAQG;AACH,qEALG;IAAwB,KAAK;IACL,YAAY,EAA5B,OAAO;CAEf,GAAS,KAAK,CAAC,SAAS,CAW1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,mNAbG;IAAwB,gBAAgB,EAAhC,MAAM;IACU,KAAK;IACL,MAAM;IACN,WAAW,EAA3B,OAAO;IACS,SAAS,EAAzB,MAAM;IACU,YAAY,EAA5B,OAAO;IACS,kBAAkB;IAClB,OAAO,EAAvB,OAAO;IACS,qBAAqB;IACrB,kBAAkB;CAE1C,GAAS,KAAK,CAAC,SAAS,CA2I1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/more-menu/index.js"],"names":[],"mappings":"AA4BA,gEAsIC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/more-menu/index.js"],"names":[],"mappings":"AA4BA,gEAqIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/actions.js"],"names":[],"mappings":"AAcA;;;;UAiHC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/actions.js"],"names":[],"mappings":"AAeA;;;;UAwHC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/index.js"],"names":[],"mappings":"AA+CA;;;;gCAyDC;AAiBD;;;;gCAiBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/index.js"],"names":[],"mappings":"AA+CA;;;;gCA2DC;AAiBD;;;;gCAiBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"set-as-homepage.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/set-as-homepage.js"],"names":[],"mappings":"AA+IO;;;;;;;;EAuCN"}
1
+ {"version":3,"file":"set-as-homepage.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/set-as-homepage.js"],"names":[],"mappings":"AA0HO;;;;;;;;EA4CN"}
@@ -0,0 +1,10 @@
1
+ export function useSetAsPostsPageAction(): {
2
+ id: string;
3
+ label: string;
4
+ isEligible(post: any): boolean;
5
+ RenderModal: ({ items, closeModal }: {
6
+ items: any;
7
+ closeModal: any;
8
+ }) => import("react").JSX.Element;
9
+ };
10
+ //# sourceMappingURL=set-as-posts-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-as-posts-page.d.ts","sourceRoot":"","sources":["../../../src/components/post-actions/set-as-posts-page.js"],"names":[],"mappings":"AAsHO;;;;;;;;EA6CN"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/post-card-panel/index.js"],"names":[],"mappings":"AA4BA;;;;;;;;GAQG;AACH,gFALG;IAAgC,QAAQ;IACR,MAAM;IACN,iBAAiB;CACjD,GAAS,KAAK,CAAC,SAAS,CAoG1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/post-card-panel/index.js"],"names":[],"mappings":"AA8BA;;;;;;;;GAQG;AACH,gFALG;IAAgC,QAAQ;IACR,MAAM;IACN,iBAAiB;CACjD,GAAS,KAAK,CAAC,SAAS,CAoG1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/preferences-modal/index.js"],"names":[],"mappings":"AAqCA;;uCAiBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/preferences-modal/index.js"],"names":[],"mappings":"AAoCA;;uCAiBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/preview-dropdown/index.js"],"names":[],"mappings":"AAgCA;;;uCAuKC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/preview-dropdown/index.js"],"names":[],"mappings":"AAgCA;;;uCAsKC"}
@@ -1 +1 @@
1
- {"version":3,"file":"disable-non-page-content-blocks.d.ts","sourceRoot":"","sources":["../../../src/components/provider/disable-non-page-content-blocks.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,4DAoDC"}
1
+ {"version":3,"file":"disable-non-page-content-blocks.d.ts","sourceRoot":"","sources":["../../../src/components/provider/disable-non-page-content-blocks.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,4DAuGC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/provider/index.js"],"names":[],"mappings":"AA+YA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,sCArBG;IAAwB,IAAI;IACJ,kBAAkB;IAElB,QAAQ;IAER,QAAQ;CAGhC,GAWS,KAAK,CAAC,SAAS,CAW1B;AApTD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,4GAiPE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/provider/index.js"],"names":[],"mappings":"AAiYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,sCArBG;IAAwB,IAAI;IACJ,kBAAkB;IAElB,QAAQ;IAER,QAAQ;CAGhC,GAWS,KAAK,CAAC,SAAS,CAW1B;AAvSD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,4GAoOE"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-block-editor-settings.d.ts","sourceRoot":"","sources":["../../../src/components/provider/use-block-editor-settings.js"],"names":[],"mappings":";AAgGA;;;;;;;;;GASG;AACH,kDAPW,MAAM,YACN,MAAM,UACN,MAAM,iBACN,MAAM,GAEL,MAAM,CAmQjB"}
1
+ {"version":3,"file":"use-block-editor-settings.d.ts","sourceRoot":"","sources":["../../../src/components/provider/use-block-editor-settings.js"],"names":[],"mappings":";AAkGA;;;;;;;;;GASG;AACH,kDAPW,MAAM,YACN,MAAM,UACN,MAAM,iBACN,MAAM,GAEL,MAAM,CAoQjB"}
@@ -1,3 +1,2 @@
1
- export function useStartPatterns(): any;
2
- export default function StartPageOptions(): import("react").JSX.Element | null;
1
+ export default function StartPageOptions(): null;
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/start-page-options/index.js"],"names":[],"mappings":"AAsBA,wCA0CC;AAmDD,+EAyBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/start-page-options/index.js"],"names":[],"mappings":"AAaA,iDAoCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/store/actions.js"],"names":[],"mappings":"AA0EA;;;;;;;GAOG;AACH,gDAFY,MAAM,CAUjB;AAED;;;;;GAKG;AACH;;EAOC;AAED;;;;;;GAMG;AACH,8BAHY,MAAM,CAWjB;AAED;;;;;;GAMG;AACH,uCAFW,MAAM,UAQhB;AAED;;;;;;;GAOG;AACH,wCALW,MAAM,UACN,MAAM,GAEL,MAAM,CAQjB;AA4KD;;;;GAIG;AACH;;EAOC;AAsGD;;;;GAIG;AACH;;EAOC;AAED;;;;;GAKG;AACH,qCAHW,MAAM,GACL,MAAM,CAOjB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,yCAxCW,MAAM,GAsCL,MAAM,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,2CAVW,MAAM,GAQL,MAAM,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,6CAVW,MAAM,GAQL,MAAM,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,+CAVW,MAAM,GAQL,MAAM,CAOjB;AA6CD;;;EAKC;AAyBD;;;;;;GAMG;AACH,0CAJW,MAAM,GAEL,MAAM,CAOjB;AAiED;;;;;;GAMG;AACH,6CAJW,MAAM,GAEL,MAAM,CAOjB;AAsCD;;;;;GAKG;AACH,4CAHW,OAAO,GACN,MAAM,CAOjB;AAiLD;;;;;GAKG;AACH,sCAFY,MAAM,CAMjB;AAED;;;;;GAKG;AACH,uCAFY,MAAM,CAMjB;AAED;;;;GAIG;AACH,wCAFY,MAAM,CAMjB;AAl9BM,kCAJI,MAAM,SACN,MAAM;;WAkCf;AAiHK,gCA1BI,MAAM,YACN,MAAM,GAuBL,MAAM,CAShB;AAOK,mCAFI,MAAM;;;;oBA8Hf;AAmBK;;;;oBA2BL;AAWK,iDAFJ;IAA0B,KAAK;CACjC;;;oBAoBC;AAEK;;;mBAkBL;AAKK;;WAIL;AAKK;;WAIL;AAgCK;;WAML;AAKK;;WAML;AAsHK,2DAFI,MAAM;;;;WA8Bf;AAwBK,uCAFI,MAAM;;;;WAef;AAuBK,oDAJI,MAAM,GAEL,MAAM,CA0BhB;AAOK,mDAFI,MAAM;;WAyBf;AAgCK,2CAbI,OAAO,GAAC,MAAM,GAWb,MAAM,CAoBhB;AAuBK,yDAFJ;IAA0B,YAAY;CACxC;;;WAiEC;AAKK;;WA8BL;AAKK;;WA+BL;AAOK,uCAFI,MAAM;;;WAyBf;AA2CD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/store/actions.js"],"names":[],"mappings":"AAyEA;;;;;;;GAOG;AACH,gDAFY,MAAM,CAUjB;AAED;;;;;GAKG;AACH;;EAOC;AAED;;;;;;GAMG;AACH,8BAHY,MAAM,CAWjB;AAED;;;;;;GAMG;AACH,uCAFW,MAAM,UAQhB;AAED;;;;;;;GAOG;AACH,wCALW,MAAM,UACN,MAAM,GAEL,MAAM,CAQjB;AA4KD;;;;GAIG;AACH;;EAOC;AAqGD;;;;GAIG;AACH;;EAOC;AAED;;;;;GAKG;AACH,qCAHW,MAAM,GACL,MAAM,CAOjB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,yCAxCW,MAAM,GAsCL,MAAM,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,2CAVW,MAAM,GAQL,MAAM,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,6CAVW,MAAM,GAQL,MAAM,CAOjB;AAED;;;;;;;;;;;;GAYG;AACH,+CAVW,MAAM,GAQL,MAAM,CAOjB;AA6CD;;;EAKC;AAyBD;;;;;;GAMG;AACH,0CAJW,MAAM,GAEL,MAAM,CAOjB;AAiED;;;;;;GAMG;AACH,6CAJW,MAAM,GAEL,MAAM,CAOjB;AAsCD;;;;;GAKG;AACH,4CAHW,OAAO,GACN,MAAM,CAOjB;AAiLD;;;;;GAKG;AACH,sCAFY,MAAM,CAMjB;AAED;;;;;GAKG;AACH,uCAFY,MAAM,CAMjB;AAED;;;;GAIG;AACH,wCAFY,MAAM,CAMjB;AAj9BM,kCAJI,MAAM,SACN,MAAM;;WAkCf;AAiHK,gCA1BI,MAAM,YACN,MAAM,GAuBL,MAAM,CAShB;AAOK,mCAFI,MAAM;;;;oBA8Hf;AAmBK;;;;oBA0BL;AAWK,iDAFJ;IAA0B,KAAK;CACjC;;;oBAoBC;AAEK;;;mBAkBL;AAKK;;WAIL;AAKK;;WAIL;AAgCK;;WAML;AAKK;;WAML;AAsHK,2DAFI,MAAM;;;;WA8Bf;AAwBK,uCAFI,MAAM;;;;WAef;AAuBK,oDAJI,MAAM,GAEL,MAAM,CA0BhB;AAOK,mDAFI,MAAM;;WAyBf;AAgCK,2CAbI,OAAO,GAAC,MAAM,GAWb,MAAM,CAoBhB;AAuBK,yDAFJ;IAA0B,YAAY;CACxC;;;WAiEC;AAKK;;WA8BL;AAKK;;WA+BL;AAOK,uCAFI,MAAM;;;WAyBf;AA2CD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC;AATD;;WASC"}
@@ -9,8 +9,6 @@ export declare const EDIT_MERGE_PROPERTIES: Set<string>;
9
9
  * Constant for the store module (or reducer) key.
10
10
  */
11
11
  export declare const STORE_NAME = "core/editor";
12
- export declare const SAVE_POST_NOTICE_ID = "SAVE_POST_NOTICE_ID";
13
- export declare const TRASH_POST_NOTICE_ID = "TRASH_POST_NOTICE_ID";
14
12
  export declare const PERMALINK_POSTNAME_REGEX: RegExp;
15
13
  export declare const ONE_MINUTE_IN_MS: number;
16
14
  export declare const AUTOSAVE_PROPERTIES: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/store/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAAwB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,UAAU,gBAAgB,CAAC;AAExC,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAC3D,eAAO,MAAM,wBAAwB,QAA4B,CAAC;AAClE,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,eAAO,MAAM,mBAAmB,UAAoC,CAAC;AACrE,eAAO,MAAM,mCAAmC,kBAAkB,CAAC;AACnE,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AACpD,eAAO,MAAM,gBAAgB;;;;CAI5B,CAAC;AACF,eAAO,MAAM,mBAAmB,UAAwC,CAAC;AACzE,eAAO,MAAM,iBAAiB,UAI7B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/store/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,aAAwB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,UAAU,gBAAgB,CAAC;AAExC,eAAO,MAAM,wBAAwB,QAA4B,CAAC;AAClE,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,eAAO,MAAM,mBAAmB,UAAoC,CAAC;AACrE,eAAO,MAAM,mCAAmC,kBAAkB,CAAC;AACnE,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAChD,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AACpD,eAAO,MAAM,gBAAgB;;;;CAI5B,CAAC;AACF,eAAO,MAAM,mBAAmB,UAAwC,CAAC;AACzE,eAAO,MAAM,iBAAiB,UAI7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"private-actions.d.ts","sourceRoot":"","sources":["../../src/store/private-actions.js"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,yCAJW,MAAM,GAEL,MAAM,CAOjB;;AAOM,yCAFI,MAAM,OAAC;;;;mBAqChB;AAOK,2CAFI,MAAM,EAAE;;WAoBjB;AAOK,2CAFI,MAAM,EAAE;;WAkBjB;AAWK,0FALJ;IAA2B,MAAM;IACN,kBAAkB;IAClB,cAAc;IACd,KAAK;CAClC;;WAmGC;AAUK,yCALI,MAAM,kBAEd;IAA0B,SAAS;CAErC;;oBA6HC;AAOK;;oBA0HL"}
1
+ {"version":3,"file":"private-actions.d.ts","sourceRoot":"","sources":["../../src/store/private-actions.js"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,yCAJW,MAAM,GAEL,MAAM,CAOjB;;AAOM,yCAFK,MAAM,OAAA;;;;mBAqChB;AAOK,2CAFI,MAAM,EAAE;;WAoBjB;AAOK,2CAFI,MAAM,EAAE;;WAkBjB;AAWK,0FALJ;IAA2B,MAAM;IACN,kBAAkB;IAClB,cAAc;IACd,KAAK;CAClC;;WAmGC;AAUK,yCALI,MAAM,kBAEd;IAA0B,SAAS;CAErC;;oBA6HC;AAOK;;oBA0HL"}
@@ -1 +1 @@
1
- {"version":3,"file":"notice-builder.d.ts","sourceRoot":"","sources":["../../../src/store/utils/notice-builder.js"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,6DALW,MAAM,SA8DhB;AAED;;;;;;;GAOG;AACH,0DALW,MAAM,SAsChB;AAED;;;;;;GAMG;AACH,2DAJW,MAAM,SAahB"}
1
+ {"version":3,"file":"notice-builder.d.ts","sourceRoot":"","sources":["../../../src/store/utils/notice-builder.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,6DALW,MAAM,SA8DhB;AAED;;;;;;;GAOG;AACH,0DALW,MAAM,SAsChB;AAED;;;;;;GAMG;AACH,2DAJW,MAAM,SAahB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Helper function to get the title of a post item.
3
+ * This is duplicated from the `@wordpress/fields` package.
4
+ * `packages/fields/src/actions/utils.ts`
5
+ *
6
+ * @param {Object} item The post item.
7
+ * @return {string} The title of the item, or an empty string if the title is not found.
8
+ */
9
+ export function getItemTitle(item: Object): string;
10
+ //# sourceMappingURL=get-item-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-item-title.d.ts","sourceRoot":"","sources":["../../src/utils/get-item-title.js"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,mCAHW,MAAM,GACL,MAAM,CAajB"}
@@ -0,0 +1,3 @@
1
+ export default mediaSideload;
2
+ declare const mediaSideload: any;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/media-sideload/index.js"],"names":[],"mappings":""}
@@ -9,13 +9,15 @@
9
9
  * @param {?number} $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.
10
10
  * @param {Function} $0.onError Function called when an error happens.
11
11
  * @param {Function} $0.onFileChange Function called each time a file or a temporary representation of the file is available.
12
+ * @param {Function} $0.onSuccess Function called after the final representation of the file is available.
12
13
  */
13
- export default function mediaUpload({ additionalData, allowedTypes, filesList, maxUploadFileSize, onError, onFileChange, }: {
14
+ export default function mediaUpload({ additionalData, allowedTypes, filesList, maxUploadFileSize, onError, onFileChange, onSuccess, }: {
14
15
  additionalData: Object | null;
15
16
  allowedTypes: string;
16
17
  filesList: any[];
17
18
  maxUploadFileSize: number | null;
18
19
  onError: Function;
19
20
  onFileChange: Function;
21
+ onSuccess: Function;
20
22
  }): void;
21
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/media-upload/index.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;GAWG;AACH,4HAPG;IAAqB,cAAc,EAA1B,MAAM,OAAA;IACM,YAAY,EAAzB,MAAM;IACO,SAAS;IACT,iBAAiB,EAA7B,MAAM,OAAA;IACM,OAAO;IACP,YAAY;CACnC,QA+DA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/media-upload/index.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;GAYG;AACH,uIARG;IAAqB,cAAc,EAA1B,MAAM,OAAA;IACM,YAAY,EAAzB,MAAM;IACO,SAAS;IACT,iBAAiB,EAA7B,MAAM,OAAA;IACM,OAAO;IACP,YAAY;IACZ,SAAS;CAChC,QAiEA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/editor",
3
- "version": "14.14.0",
3
+ "version": "14.15.0",
4
4
  "description": "Enhanced block editor for WordPress posts.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -34,41 +34,41 @@
34
34
  ],
35
35
  "dependencies": {
36
36
  "@babel/runtime": "7.25.7",
37
- "@wordpress/a11y": "*",
38
- "@wordpress/api-fetch": "*",
39
- "@wordpress/blob": "*",
40
- "@wordpress/block-editor": "*",
41
- "@wordpress/blocks": "*",
42
- "@wordpress/commands": "*",
43
- "@wordpress/components": "*",
44
- "@wordpress/compose": "*",
45
- "@wordpress/core-data": "*",
46
- "@wordpress/data": "*",
47
- "@wordpress/dataviews": "*",
48
- "@wordpress/date": "*",
49
- "@wordpress/deprecated": "*",
50
- "@wordpress/dom": "*",
51
- "@wordpress/element": "*",
52
- "@wordpress/fields": "*",
53
- "@wordpress/hooks": "*",
54
- "@wordpress/html-entities": "*",
55
- "@wordpress/i18n": "*",
56
- "@wordpress/icons": "*",
57
- "@wordpress/interface": "*",
58
- "@wordpress/keyboard-shortcuts": "*",
59
- "@wordpress/keycodes": "*",
60
- "@wordpress/media-utils": "*",
61
- "@wordpress/notices": "*",
62
- "@wordpress/patterns": "*",
63
- "@wordpress/plugins": "*",
64
- "@wordpress/preferences": "*",
65
- "@wordpress/private-apis": "*",
66
- "@wordpress/reusable-blocks": "*",
67
- "@wordpress/rich-text": "*",
68
- "@wordpress/server-side-render": "*",
69
- "@wordpress/url": "*",
70
- "@wordpress/warning": "*",
71
- "@wordpress/wordcount": "*",
37
+ "@wordpress/a11y": "^4.15.0",
38
+ "@wordpress/api-fetch": "^7.15.0",
39
+ "@wordpress/blob": "^4.15.0",
40
+ "@wordpress/block-editor": "^14.10.0",
41
+ "@wordpress/blocks": "^14.4.0",
42
+ "@wordpress/commands": "^1.15.0",
43
+ "@wordpress/components": "^29.1.0",
44
+ "@wordpress/compose": "^7.15.0",
45
+ "@wordpress/core-data": "^7.15.0",
46
+ "@wordpress/data": "^10.15.0",
47
+ "@wordpress/dataviews": "^4.11.0",
48
+ "@wordpress/date": "^5.15.0",
49
+ "@wordpress/deprecated": "^4.15.0",
50
+ "@wordpress/dom": "^4.15.0",
51
+ "@wordpress/element": "^6.15.0",
52
+ "@wordpress/fields": "^0.7.0",
53
+ "@wordpress/hooks": "^4.15.0",
54
+ "@wordpress/html-entities": "^4.15.0",
55
+ "@wordpress/i18n": "^5.15.0",
56
+ "@wordpress/icons": "^10.15.0",
57
+ "@wordpress/interface": "^9.0.0",
58
+ "@wordpress/keyboard-shortcuts": "^5.15.0",
59
+ "@wordpress/keycodes": "^4.15.0",
60
+ "@wordpress/media-utils": "^5.15.0",
61
+ "@wordpress/notices": "^5.15.0",
62
+ "@wordpress/patterns": "^2.15.0",
63
+ "@wordpress/plugins": "^7.15.0",
64
+ "@wordpress/preferences": "^4.15.0",
65
+ "@wordpress/private-apis": "^1.15.0",
66
+ "@wordpress/reusable-blocks": "^5.15.0",
67
+ "@wordpress/rich-text": "^7.15.0",
68
+ "@wordpress/server-side-render": "^5.15.0",
69
+ "@wordpress/url": "^4.15.0",
70
+ "@wordpress/warning": "^3.15.0",
71
+ "@wordpress/wordcount": "^4.15.0",
72
72
  "change-case": "^4.1.2",
73
73
  "client-zip": "^2.4.5",
74
74
  "clsx": "^2.1.1",
@@ -88,5 +88,5 @@
88
88
  "publishConfig": {
89
89
  "access": "public"
90
90
  },
91
- "gitHead": "b432c18934c9db866b6dba7d37517a4e97d642e3"
91
+ "gitHead": "75a65eb8ffc168a92042544052f46d080a71ea45"
92
92
  }
@@ -25,6 +25,7 @@ import { store as noticesStore } from '@wordpress/notices';
25
25
  import { store as blockEditorStore } from '@wordpress/block-editor';
26
26
  import { store as coreStore, useEntityRecord } from '@wordpress/core-data';
27
27
  import { store as interfaceStore } from '@wordpress/interface';
28
+ import { getPath } from '@wordpress/url';
28
29
  import { decodeEntities } from '@wordpress/html-entities';
29
30
 
30
31
  /**
@@ -90,6 +91,19 @@ const getEditorCommandLoader = () =>
90
91
  const { openModal, enableComplementaryArea, disableComplementaryArea } =
91
92
  useDispatch( interfaceStore );
92
93
  const { getCurrentPostId } = useSelect( editorStore );
94
+ const { isBlockBasedTheme, canCreateTemplate } = useSelect(
95
+ ( select ) => {
96
+ return {
97
+ isBlockBasedTheme:
98
+ select( coreStore ).getCurrentTheme()?.is_block_theme,
99
+ canCreateTemplate: select( coreStore ).canUser( 'create', {
100
+ kind: 'postType',
101
+ name: 'wp_template',
102
+ } ),
103
+ };
104
+ },
105
+ []
106
+ );
93
107
  const allowSwitchEditorMode =
94
108
  isCodeEditingEnabled && isRichEditingEnabled;
95
109
 
@@ -271,6 +285,21 @@ const getEditorCommandLoader = () =>
271
285
  },
272
286
  } );
273
287
  }
288
+ if ( canCreateTemplate && isBlockBasedTheme ) {
289
+ const isSiteEditor = getPath( window.location.href )?.includes(
290
+ 'site-editor.php'
291
+ );
292
+ if ( ! isSiteEditor ) {
293
+ commands.push( {
294
+ name: 'core/go-to-site-editor',
295
+ label: __( 'Open Site Editor' ),
296
+ callback: ( { close } ) => {
297
+ close();
298
+ document.location = 'site-editor.php';
299
+ },
300
+ } );
301
+ }
302
+ }
274
303
 
275
304
  return {
276
305
  commands,
@@ -22,6 +22,7 @@ import { store as commandsStore } from '@wordpress/commands';
22
22
  import { useRef, useEffect } from '@wordpress/element';
23
23
  import { useReducedMotion } from '@wordpress/compose';
24
24
  import { decodeEntities } from '@wordpress/html-entities';
25
+ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
25
26
 
26
27
  /**
27
28
  * Internal dependencies
@@ -200,7 +201,7 @@ export default function DocumentBar( props ) {
200
201
  <Text size="body" as="h1">
201
202
  <span className="editor-document-bar__post-title">
202
203
  { title
203
- ? decodeEntities( title )
204
+ ? stripHTML( title )
204
205
  : __( 'No title' ) }
205
206
  </span>
206
207
  { pageTypeBadge && (
@@ -10,7 +10,7 @@ import { useViewportMatch } from '@wordpress/compose';
10
10
  import { useSelect, useDispatch } from '@wordpress/data';
11
11
  import { __, _x } from '@wordpress/i18n';
12
12
  import { NavigableToolbar, ToolSelector } from '@wordpress/block-editor';
13
- import { Button, ToolbarItem } from '@wordpress/components';
13
+ import { ToolbarButton, ToolbarItem } from '@wordpress/components';
14
14
  import { listView, plus } from '@wordpress/icons';
15
15
  import { useCallback } from '@wordpress/element';
16
16
  import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
@@ -118,9 +118,8 @@ function DocumentTools( { className, disableBlockTools = false } ) {
118
118
  >
119
119
  <div className="editor-document-tools__left">
120
120
  { ! isDistractionFree && (
121
- <ToolbarItem
121
+ <ToolbarButton
122
122
  ref={ inserterSidebarToggleRef }
123
- as={ Button }
124
123
  className="editor-document-tools__inserter-toggle"
125
124
  variant="primary"
126
125
  isPressed={ isInserterOpened }
@@ -159,8 +158,7 @@ function DocumentTools( { className, disableBlockTools = false } ) {
159
158
  size="compact"
160
159
  />
161
160
  { ! isDistractionFree && (
162
- <ToolbarItem
163
- as={ Button }
161
+ <ToolbarButton
164
162
  className="editor-document-tools__document-overview-toggle"
165
163
  icon={ listView }
166
164
  disabled={ disableBlockTools }
@@ -175,7 +173,6 @@ function DocumentTools( { className, disableBlockTools = false } ) {
175
173
  }
176
174
  aria-expanded={ isListViewOpen }
177
175
  ref={ listViewToggleRef }
178
- size="compact"
179
176
  />
180
177
  ) }
181
178
  </>
@@ -74,14 +74,8 @@
74
74
  }
75
75
 
76
76
  .editor-document-tools .editor-document-tools__left > .editor-document-tools__inserter-toggle.has-icon {
77
- min-width: $button-size-compact;
78
- width: $button-size-compact;
79
- height: $button-size-compact;
80
- padding: 0;
81
-
82
77
  .show-icon-labels & {
83
78
  width: auto;
84
- height: $button-size-compact;
85
79
  padding: 0 $grid-unit-10;
86
80
  }
87
81
  }
@@ -71,7 +71,7 @@ const IntroToBlocks = () => {
71
71
  <HelpDetailSectionHeadingText text={ __( 'Build layouts' ) } />
72
72
  <HelpDetailBodyText
73
73
  text={ __(
74
- 'Arrange your content into columns, add Call to Action buttons, and overlay images with text.'
74
+ 'Arrange your content into columns, add Call to action buttons, and overlay images with text.'
75
75
  ) }
76
76
  />
77
77
  <HelpDetailImage