@wordpress/editor 13.22.0 → 13.24.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 (137) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/entities-saved-states/index.js +15 -1
  3. package/build/components/entities-saved-states/index.js.map +1 -1
  4. package/build/components/index.js +32 -0
  5. package/build/components/index.js.map +1 -1
  6. package/build/components/page-attributes/order.js +1 -0
  7. package/build/components/page-attributes/order.js.map +1 -1
  8. package/build/components/post-author/panel.js +24 -0
  9. package/build/components/post-author/panel.js.map +1 -0
  10. package/build/components/post-featured-image/index.js +3 -1
  11. package/build/components/post-featured-image/index.js.map +1 -1
  12. package/build/components/post-panel-row/index.js +36 -0
  13. package/build/components/post-panel-row/index.js.map +1 -0
  14. package/build/components/post-saved-state/index.js +21 -16
  15. package/build/components/post-saved-state/index.js.map +1 -1
  16. package/build/components/post-schedule/panel.js +67 -0
  17. package/build/components/post-schedule/panel.js.map +1 -0
  18. package/build/components/post-sync-status/index.js +9 -5
  19. package/build/components/post-sync-status/index.js.map +1 -1
  20. package/build/components/post-title/constants.js +11 -0
  21. package/build/components/post-title/constants.js.map +1 -0
  22. package/build/components/post-title/index.js +61 -90
  23. package/build/components/post-title/index.js.map +1 -1
  24. package/build/components/post-title/index.native.js +1 -1
  25. package/build/components/post-title/index.native.js.map +1 -1
  26. package/build/components/post-title/post-title-raw.js +92 -0
  27. package/build/components/post-title/post-title-raw.js.map +1 -0
  28. package/build/components/post-title/use-post-title-focus.js +64 -0
  29. package/build/components/post-title/use-post-title-focus.js.map +1 -0
  30. package/build/components/post-title/use-post-title.js +41 -0
  31. package/build/components/post-title/use-post-title.js.map +1 -0
  32. package/build/components/post-url/panel.js +70 -0
  33. package/build/components/post-url/panel.js.map +1 -0
  34. package/build/components/provider/constants.js +9 -0
  35. package/build/components/provider/constants.js.map +1 -0
  36. package/build/components/provider/disable-non-page-content-blocks.js +63 -0
  37. package/build/components/provider/disable-non-page-content-blocks.js.map +1 -0
  38. package/build/components/provider/index.js +126 -14
  39. package/build/components/provider/index.js.map +1 -1
  40. package/build/components/provider/use-block-editor-settings.js +22 -17
  41. package/build/components/provider/use-block-editor-settings.js.map +1 -1
  42. package/build/components/provider/use-block-editor-settings.native.js +2 -2
  43. package/build/components/provider/use-block-editor-settings.native.js.map +1 -1
  44. package/build/private-apis.js +7 -1
  45. package/build/private-apis.js.map +1 -1
  46. package/build/store/actions.js +23 -2
  47. package/build/store/actions.js.map +1 -1
  48. package/build/store/reducer.js +10 -1
  49. package/build/store/reducer.js.map +1 -1
  50. package/build/store/selectors.js +16 -2
  51. package/build/store/selectors.js.map +1 -1
  52. package/build-module/components/entities-saved-states/index.js +16 -2
  53. package/build-module/components/entities-saved-states/index.js.map +1 -1
  54. package/build-module/components/index.js +4 -0
  55. package/build-module/components/index.js.map +1 -1
  56. package/build-module/components/page-attributes/order.js +1 -0
  57. package/build-module/components/page-attributes/order.js.map +1 -1
  58. package/build-module/components/post-author/panel.js +14 -0
  59. package/build-module/components/post-author/panel.js.map +1 -0
  60. package/build-module/components/post-featured-image/index.js +3 -1
  61. package/build-module/components/post-featured-image/index.js.map +1 -1
  62. package/build-module/components/post-panel-row/index.js +27 -0
  63. package/build-module/components/post-panel-row/index.js.map +1 -0
  64. package/build-module/components/post-saved-state/index.js +22 -17
  65. package/build-module/components/post-saved-state/index.js.map +1 -1
  66. package/build-module/components/post-schedule/panel.js +59 -0
  67. package/build-module/components/post-schedule/panel.js.map +1 -0
  68. package/build-module/components/post-sync-status/index.js +10 -7
  69. package/build-module/components/post-sync-status/index.js.map +1 -1
  70. package/build-module/components/post-title/constants.js +3 -0
  71. package/build-module/components/post-title/constants.js.map +1 -0
  72. package/build-module/components/post-title/index.js +62 -92
  73. package/build-module/components/post-title/index.js.map +1 -1
  74. package/build-module/components/post-title/index.native.js +3 -3
  75. package/build-module/components/post-title/index.native.js.map +1 -1
  76. package/build-module/components/post-title/post-title-raw.js +83 -0
  77. package/build-module/components/post-title/post-title-raw.js.map +1 -0
  78. package/build-module/components/post-title/use-post-title-focus.js +57 -0
  79. package/build-module/components/post-title/use-post-title-focus.js.map +1 -0
  80. package/build-module/components/post-title/use-post-title.js +33 -0
  81. package/build-module/components/post-title/use-post-title.js.map +1 -0
  82. package/build-module/components/post-url/panel.js +62 -0
  83. package/build-module/components/post-url/panel.js.map +1 -0
  84. package/build-module/components/provider/constants.js +2 -0
  85. package/build-module/components/provider/constants.js.map +1 -0
  86. package/build-module/components/provider/disable-non-page-content-blocks.js +56 -0
  87. package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -0
  88. package/build-module/components/provider/index.js +127 -15
  89. package/build-module/components/provider/index.js.map +1 -1
  90. package/build-module/components/provider/use-block-editor-settings.js +22 -17
  91. package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
  92. package/build-module/components/provider/use-block-editor-settings.native.js +2 -2
  93. package/build-module/components/provider/use-block-editor-settings.native.js.map +1 -1
  94. package/build-module/private-apis.js +6 -1
  95. package/build-module/private-apis.js.map +1 -1
  96. package/build-module/store/actions.js +21 -0
  97. package/build-module/store/actions.js.map +1 -1
  98. package/build-module/store/reducer.js +9 -1
  99. package/build-module/store/reducer.js.map +1 -1
  100. package/build-module/store/selectors.js +11 -0
  101. package/build-module/store/selectors.js.map +1 -1
  102. package/build-style/style-rtl.css +70 -10
  103. package/build-style/style.css +70 -10
  104. package/package.json +31 -31
  105. package/src/components/entities-saved-states/index.js +16 -1
  106. package/src/components/index.js +4 -0
  107. package/src/components/page-attributes/order.js +1 -0
  108. package/src/components/post-author/panel.js +18 -0
  109. package/src/components/post-author/style.scss +7 -0
  110. package/src/components/post-featured-image/index.js +3 -1
  111. package/src/components/post-panel-row/index.js +26 -0
  112. package/src/components/post-panel-row/style.scss +21 -0
  113. package/src/components/post-saved-state/index.js +46 -37
  114. package/src/components/post-schedule/panel.js +65 -0
  115. package/src/components/post-schedule/style.scss +23 -0
  116. package/src/components/post-sync-status/index.js +10 -8
  117. package/src/components/post-sync-status/style.scss +3 -18
  118. package/src/components/post-title/constants.js +4 -0
  119. package/src/components/post-title/index.js +56 -88
  120. package/src/components/post-title/index.native.js +4 -8
  121. package/src/components/post-title/post-title-raw.js +82 -0
  122. package/src/components/post-title/style.scss +5 -0
  123. package/src/components/post-title/use-post-title-focus.js +50 -0
  124. package/src/components/post-title/use-post-title.js +25 -0
  125. package/src/components/post-url/panel.js +60 -0
  126. package/src/components/post-url/style.scss +19 -0
  127. package/src/components/provider/README.md +37 -0
  128. package/src/components/provider/constants.js +5 -0
  129. package/src/components/provider/disable-non-page-content-blocks.js +55 -0
  130. package/src/components/provider/index.js +200 -14
  131. package/src/components/provider/use-block-editor-settings.js +54 -35
  132. package/src/components/provider/use-block-editor-settings.native.js +2 -2
  133. package/src/private-apis.js +6 -0
  134. package/src/store/actions.js +21 -0
  135. package/src/store/reducer.js +10 -0
  136. package/src/store/selectors.js +11 -0
  137. package/src/style.scss +4 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Flex","FlexItem","__","useDispatch","useCallback","useRef","store","coreStore","blockEditorStore","__experimentalUseDialog","useDialog","noticesStore","EntityTypeList","useIsDirty","PUBLISH_ON_SAVE_ENTITIES","kind","name","identity","values","EntitiesSavedStates","close","isDirtyProps","createElement","EntitiesSavedStatesExtensible","additionalPrompt","undefined","onSave","saveEnabled","saveEnabledProp","saveLabel","dirtyEntityRecords","isDirty","setUnselectedEntities","unselectedEntities","saveButtonRef","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","__unstableMarkLastChangeAsPersistent","createSuccessNotice","createErrorNotice","removeNotice","partitionedSavables","reduce","acc","record","push","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","filter","Array","isArray","saveCheckedEntities","saveNoticeId","entitiesToSave","key","property","some","elt","siteItemsToSave","pendingSavedRecords","forEach","typeToPublish","status","length","Promise","all","then","value","type","id","catch","error","dismissPanel","saveDialogRef","saveDialogProps","onClose","ref","className","gap","isBlock","as","variant","disabled","onClick","map","list"],"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\nimport { useIsDirty } from './hooks/use-is-dirty';\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nfunction identity( values ) {\n\treturn values;\n}\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst isDirtyProps = useIsDirty();\n\treturn (\n\t\t<EntitiesSavedStatesExtensible close={ close } { ...isDirtyProps } />\n\t);\n}\n\nexport function EntitiesSavedStatesExtensible( {\n\tadditionalPrompt = undefined,\n\tclose,\n\tonSave = identity,\n\tsaveEnabled: saveEnabledProp = undefined,\n\tsaveLabel = __( 'Save' ),\n\n\tdirtyEntityRecords,\n\tisDirty,\n\tsetUnselectedEntities,\n\tunselectedEntities,\n} ) {\n\tconst saveButtonRef = useRef();\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\t// To group entities by type.\n\tconst partitionedSavables = dirtyEntityRecords.reduce( ( acc, record ) => {\n\t\tconst { name } = record;\n\t\tif ( ! acc[ name ] ) {\n\t\t\tacc[ name ] = [];\n\t\t}\n\t\tacc[ name ].push( record );\n\t\treturn acc;\n\t}, {} );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\tconst saveEnabled = saveEnabledProp ?? isDirty;\n\n\tconst saveCheckedEntities = () => {\n\t\tconst saveNoticeId = 'site-editor-save-success';\n\t\tremoveNotice( saveNoticeId );\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! unselectedEntities.some(\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);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\treturn onSave( values );\n\t\t\t} )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: saveNoticeId,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! saveEnabled }\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ saveLabel }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t{ additionalPrompt }\n\t\t\t\t{ isDirty && (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","Flex","FlexItem","__","useSelect","useDispatch","useCallback","useRef","store","coreStore","blockEditorStore","__experimentalUseDialog","useDialog","noticesStore","EntityTypeList","useIsDirty","PUBLISH_ON_SAVE_ENTITIES","kind","name","identity","values","EntitiesSavedStates","close","isDirtyProps","createElement","EntitiesSavedStatesExtensible","additionalPrompt","undefined","onSave","saveEnabled","saveEnabledProp","saveLabel","dirtyEntityRecords","isDirty","setUnselectedEntities","unselectedEntities","saveButtonRef","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","__unstableMarkLastChangeAsPersistent","createSuccessNotice","createErrorNotice","removeNotice","partitionedSavables","reduce","acc","record","push","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","Object","filter","Array","isArray","homeUrl","select","getUnstableBase","home","saveCheckedEntities","saveNoticeId","entitiesToSave","key","property","some","elt","siteItemsToSave","pendingSavedRecords","forEach","typeToPublish","status","length","Promise","all","then","value","type","id","actions","label","url","catch","error","dismissPanel","saveDialogRef","saveDialogProps","onClose","ref","className","gap","isBlock","as","variant","disabled","onClick","map","list"],"sources":["@wordpress/editor/src/components/entities-saved-states/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\nimport { useIsDirty } from './hooks/use-is-dirty';\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nfunction identity( values ) {\n\treturn values;\n}\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst isDirtyProps = useIsDirty();\n\treturn (\n\t\t<EntitiesSavedStatesExtensible close={ close } { ...isDirtyProps } />\n\t);\n}\n\nexport function EntitiesSavedStatesExtensible( {\n\tadditionalPrompt = undefined,\n\tclose,\n\tonSave = identity,\n\tsaveEnabled: saveEnabledProp = undefined,\n\tsaveLabel = __( 'Save' ),\n\n\tdirtyEntityRecords,\n\tisDirty,\n\tsetUnselectedEntities,\n\tunselectedEntities,\n} ) {\n\tconst saveButtonRef = useRef();\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\t// To group entities by type.\n\tconst partitionedSavables = dirtyEntityRecords.reduce( ( acc, record ) => {\n\t\tconst { name } = record;\n\t\tif ( ! acc[ name ] ) {\n\t\t\tacc[ name ] = [];\n\t\t}\n\t\tacc[ name ].push( record );\n\t\treturn acc;\n\t}, {} );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\tconst saveEnabled = saveEnabledProp ?? isDirty;\n\n\tconst { homeUrl } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetUnstableBase, // Site index.\n\t\t} = select( coreStore );\n\t\treturn {\n\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t};\n\t}, [] );\n\n\tconst saveCheckedEntities = () => {\n\t\tconst saveNoticeId = 'site-editor-save-success';\n\t\tremoveNotice( saveNoticeId );\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! unselectedEntities.some(\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);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\treturn onSave( values );\n\t\t\t} )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: saveNoticeId,\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View site' ),\n\t\t\t\t\t\t\t\turl: homeUrl,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed. Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={ ! saveEnabled }\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ saveLabel }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t{ additionalPrompt }\n\t\t\t\t{ isDirty && (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
@@ -26,6 +26,7 @@ export { default as PageAttributesParent } from './page-attributes/parent';
26
26
  export { default as PageTemplate } from './post-template';
27
27
  export { default as PostAuthor } from './post-author';
28
28
  export { default as PostAuthorCheck } from './post-author/check';
29
+ export { default as PostAuthorPanel } from './post-author/panel';
29
30
  export { default as PostComments } from './post-comments';
30
31
  export { default as PostExcerpt } from './post-excerpt';
31
32
  export { default as PostExcerptCheck } from './post-excerpt/check';
@@ -47,6 +48,7 @@ export { default as PostSavedState } from './post-saved-state';
47
48
  export { default as PostSchedule } from './post-schedule';
48
49
  export { default as PostScheduleCheck } from './post-schedule/check';
49
50
  export { default as PostScheduleLabel, usePostScheduleLabel } from './post-schedule/label';
51
+ export { default as PostSchedulePanel } from './post-schedule/panel';
50
52
  export { default as PostSlug } from './post-slug';
51
53
  export { default as PostSlugCheck } from './post-slug/check';
52
54
  export { default as PostSticky } from './post-sticky';
@@ -59,12 +61,14 @@ export { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } fr
59
61
  export { default as PostTaxonomiesCheck } from './post-taxonomies/check';
60
62
  export { default as PostTextEditor } from './post-text-editor';
61
63
  export { default as PostTitle } from './post-title';
64
+ export { default as PostTitleRaw } from './post-title/post-title-raw';
62
65
  export { default as PostTrash } from './post-trash';
63
66
  export { default as PostTrashCheck } from './post-trash/check';
64
67
  export { default as PostTypeSupportCheck } from './post-type-support-check';
65
68
  export { default as PostURL } from './post-url';
66
69
  export { default as PostURLCheck } from './post-url/check';
67
70
  export { default as PostURLLabel, usePostURLLabel } from './post-url/label';
71
+ export { default as PostURLPanel } from './post-url/panel';
68
72
  export { default as PostVisibility } from './post-visibility';
69
73
  export { default as PostVisibilityLabel, usePostVisibilityLabel } from './post-visibility/label';
70
74
  export { default as PostVisibilityCheck } from './post-visibility/check';
@@ -1 +1 @@
1
- {"version":3,"names":["EditorKeyboardShortcuts","default","AutosaveMonitor","DocumentOutline","DocumentOutlineCheck","EditorKeyboardShortcutsRegister","EditorHistoryRedo","EditorHistoryUndo","EditorNotices","EditorSnackbars","EntitiesSavedStates","useIsDirty","useEntitiesSavedStatesIsDirty","ErrorBoundary","LocalAutosaveMonitor","PageAttributesCheck","PageAttributesOrder","PageAttributesParent","PageTemplate","PostAuthor","PostAuthorCheck","PostComments","PostExcerpt","PostExcerptCheck","PostFeaturedImage","PostFeaturedImageCheck","PostFormat","PostFormatCheck","PostLastRevision","PostLastRevisionCheck","PostLockedModal","PostPendingStatus","PostPendingStatusCheck","PostPingbacks","PostPreviewButton","PostPublishButton","PostPublishButtonLabel","PostPublishPanel","PostSavedState","PostSchedule","PostScheduleCheck","PostScheduleLabel","usePostScheduleLabel","PostSlug","PostSlugCheck","PostSticky","PostStickyCheck","PostSwitchToDraftButton","PostSyncStatus","PostSyncStatusModal","PostTaxonomies","FlatTermSelector","PostTaxonomiesFlatTermSelector","HierarchicalTermSelector","PostTaxonomiesHierarchicalTermSelector","PostTaxonomiesCheck","PostTextEditor","PostTitle","PostTrash","PostTrashCheck","PostTypeSupportCheck","PostURL","PostURLCheck","PostURLLabel","usePostURLLabel","PostVisibility","PostVisibilityLabel","usePostVisibilityLabel","PostVisibilityCheck","TableOfContents","ThemeSupportCheck","UnsavedChangesWarning","WordCount","TimeToRead","CharacterCount","EditorProvider","VisualEditorGlobalKeyboardShortcuts","TextEditorGlobalKeyboardShortcuts"],"sources":["@wordpress/editor/src/components/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorKeyboardShortcuts from './global-keyboard-shortcuts';\n\n// Block Creation Components.\nexport * from './autocompleters';\n\n// Post Related Components.\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { EditorKeyboardShortcuts };\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { useIsDirty as useEntitiesSavedStatesIsDirty } from './entities-saved-states/hooks/use-is-dirty';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport {\n\tdefault as PostScheduleLabel,\n\tusePostScheduleLabel,\n} from './post-schedule/label';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport {\n\tdefault as PostSyncStatus,\n\tPostSyncStatusModal,\n} from './post-sync-status';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';\nexport { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostURL } from './post-url';\nexport { default as PostURLCheck } from './post-url/check';\nexport { default as PostURLLabel, usePostURLLabel } from './post-url/label';\nexport { default as PostVisibility } from './post-visibility';\nexport {\n\tdefault as PostVisibilityLabel,\n\tusePostVisibilityLabel,\n} from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\nexport { default as TimeToRead } from './time-to-read';\nexport { default as CharacterCount } from './character-count';\n\n// State Related Components.\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\nexport const VisualEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\nexport const TextEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\n"],"mappings":"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"}
1
+ {"version":3,"names":["EditorKeyboardShortcuts","default","AutosaveMonitor","DocumentOutline","DocumentOutlineCheck","EditorKeyboardShortcutsRegister","EditorHistoryRedo","EditorHistoryUndo","EditorNotices","EditorSnackbars","EntitiesSavedStates","useIsDirty","useEntitiesSavedStatesIsDirty","ErrorBoundary","LocalAutosaveMonitor","PageAttributesCheck","PageAttributesOrder","PageAttributesParent","PageTemplate","PostAuthor","PostAuthorCheck","PostAuthorPanel","PostComments","PostExcerpt","PostExcerptCheck","PostFeaturedImage","PostFeaturedImageCheck","PostFormat","PostFormatCheck","PostLastRevision","PostLastRevisionCheck","PostLockedModal","PostPendingStatus","PostPendingStatusCheck","PostPingbacks","PostPreviewButton","PostPublishButton","PostPublishButtonLabel","PostPublishPanel","PostSavedState","PostSchedule","PostScheduleCheck","PostScheduleLabel","usePostScheduleLabel","PostSchedulePanel","PostSlug","PostSlugCheck","PostSticky","PostStickyCheck","PostSwitchToDraftButton","PostSyncStatus","PostSyncStatusModal","PostTaxonomies","FlatTermSelector","PostTaxonomiesFlatTermSelector","HierarchicalTermSelector","PostTaxonomiesHierarchicalTermSelector","PostTaxonomiesCheck","PostTextEditor","PostTitle","PostTitleRaw","PostTrash","PostTrashCheck","PostTypeSupportCheck","PostURL","PostURLCheck","PostURLLabel","usePostURLLabel","PostURLPanel","PostVisibility","PostVisibilityLabel","usePostVisibilityLabel","PostVisibilityCheck","TableOfContents","ThemeSupportCheck","UnsavedChangesWarning","WordCount","TimeToRead","CharacterCount","EditorProvider","VisualEditorGlobalKeyboardShortcuts","TextEditorGlobalKeyboardShortcuts"],"sources":["@wordpress/editor/src/components/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport EditorKeyboardShortcuts from './global-keyboard-shortcuts';\n\n// Block Creation Components.\nexport * from './autocompleters';\n\n// Post Related Components.\nexport { default as AutosaveMonitor } from './autosave-monitor';\nexport { default as DocumentOutline } from './document-outline';\nexport { default as DocumentOutlineCheck } from './document-outline/check';\nexport { EditorKeyboardShortcuts };\nexport { default as EditorKeyboardShortcutsRegister } from './global-keyboard-shortcuts/register-shortcuts';\nexport { default as EditorHistoryRedo } from './editor-history/redo';\nexport { default as EditorHistoryUndo } from './editor-history/undo';\nexport { default as EditorNotices } from './editor-notices';\nexport { default as EditorSnackbars } from './editor-snackbars';\nexport { default as EntitiesSavedStates } from './entities-saved-states';\nexport { useIsDirty as useEntitiesSavedStatesIsDirty } from './entities-saved-states/hooks/use-is-dirty';\nexport { default as ErrorBoundary } from './error-boundary';\nexport { default as LocalAutosaveMonitor } from './local-autosave-monitor';\nexport { default as PageAttributesCheck } from './page-attributes/check';\nexport { default as PageAttributesOrder } from './page-attributes/order';\nexport { default as PageAttributesParent } from './page-attributes/parent';\nexport { default as PageTemplate } from './post-template';\nexport { default as PostAuthor } from './post-author';\nexport { default as PostAuthorCheck } from './post-author/check';\nexport { default as PostAuthorPanel } from './post-author/panel';\nexport { default as PostComments } from './post-comments';\nexport { default as PostExcerpt } from './post-excerpt';\nexport { default as PostExcerptCheck } from './post-excerpt/check';\nexport { default as PostFeaturedImage } from './post-featured-image';\nexport { default as PostFeaturedImageCheck } from './post-featured-image/check';\nexport { default as PostFormat } from './post-format';\nexport { default as PostFormatCheck } from './post-format/check';\nexport { default as PostLastRevision } from './post-last-revision';\nexport { default as PostLastRevisionCheck } from './post-last-revision/check';\nexport { default as PostLockedModal } from './post-locked-modal';\nexport { default as PostPendingStatus } from './post-pending-status';\nexport { default as PostPendingStatusCheck } from './post-pending-status/check';\nexport { default as PostPingbacks } from './post-pingbacks';\nexport { default as PostPreviewButton } from './post-preview-button';\nexport { default as PostPublishButton } from './post-publish-button';\nexport { default as PostPublishButtonLabel } from './post-publish-button/label';\nexport { default as PostPublishPanel } from './post-publish-panel';\nexport { default as PostSavedState } from './post-saved-state';\nexport { default as PostSchedule } from './post-schedule';\nexport { default as PostScheduleCheck } from './post-schedule/check';\nexport {\n\tdefault as PostScheduleLabel,\n\tusePostScheduleLabel,\n} from './post-schedule/label';\nexport { default as PostSchedulePanel } from './post-schedule/panel';\nexport { default as PostSlug } from './post-slug';\nexport { default as PostSlugCheck } from './post-slug/check';\nexport { default as PostSticky } from './post-sticky';\nexport { default as PostStickyCheck } from './post-sticky/check';\nexport { default as PostSwitchToDraftButton } from './post-switch-to-draft-button';\nexport {\n\tdefault as PostSyncStatus,\n\tPostSyncStatusModal,\n} from './post-sync-status';\nexport { default as PostTaxonomies } from './post-taxonomies';\nexport { FlatTermSelector as PostTaxonomiesFlatTermSelector } from './post-taxonomies/flat-term-selector';\nexport { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } from './post-taxonomies/hierarchical-term-selector';\nexport { default as PostTaxonomiesCheck } from './post-taxonomies/check';\nexport { default as PostTextEditor } from './post-text-editor';\nexport { default as PostTitle } from './post-title';\nexport { default as PostTitleRaw } from './post-title/post-title-raw';\nexport { default as PostTrash } from './post-trash';\nexport { default as PostTrashCheck } from './post-trash/check';\nexport { default as PostTypeSupportCheck } from './post-type-support-check';\nexport { default as PostURL } from './post-url';\nexport { default as PostURLCheck } from './post-url/check';\nexport { default as PostURLLabel, usePostURLLabel } from './post-url/label';\nexport { default as PostURLPanel } from './post-url/panel';\nexport { default as PostVisibility } from './post-visibility';\nexport {\n\tdefault as PostVisibilityLabel,\n\tusePostVisibilityLabel,\n} from './post-visibility/label';\nexport { default as PostVisibilityCheck } from './post-visibility/check';\nexport { default as TableOfContents } from './table-of-contents';\nexport { default as ThemeSupportCheck } from './theme-support-check';\nexport { default as UnsavedChangesWarning } from './unsaved-changes-warning';\nexport { default as WordCount } from './word-count';\nexport { default as TimeToRead } from './time-to-read';\nexport { default as CharacterCount } from './character-count';\n\n// State Related Components.\nexport { default as EditorProvider } from './provider';\n\nexport * from './deprecated';\nexport const VisualEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\nexport const TextEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;\n"],"mappings":"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"}
@@ -32,6 +32,7 @@ function PageAttributesOrder() {
32
32
  };
33
33
  const value = orderInput !== null && orderInput !== void 0 ? orderInput : order;
34
34
  return createElement(Flex, null, createElement(FlexBlock, null, createElement(NumberControl, {
35
+ __next40pxDefaultSize: true,
35
36
  label: __('Order'),
36
37
  value: value,
37
38
  onChange: setUpdatedOrder,
@@ -1 +1 @@
1
- {"version":3,"names":["__","Flex","FlexBlock","__experimentalNumberControl","NumberControl","useSelect","useDispatch","useState","PostTypeSupportCheck","store","editorStore","PageAttributesOrder","order","select","_select$getEditedPost","getEditedPostAttribute","editPost","orderInput","setOrderInput","setUpdatedOrder","value","newOrder","Number","isInteger","trim","menu_order","createElement","label","onChange","labelPosition","onBlur","PageAttributesOrderWithChecks","supportKeys"],"sources":["@wordpress/editor/src/components/page-attributes/order.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tFlex,\n\tFlexBlock,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\nfunction PageAttributesOrder() {\n\tconst order = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'menu_order' ) ?? 0,\n\t\t[]\n\t);\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ orderInput, setOrderInput ] = useState( null );\n\n\tconst setUpdatedOrder = ( value ) => {\n\t\tsetOrderInput( value );\n\t\tconst newOrder = Number( value );\n\t\tif ( Number.isInteger( newOrder ) && value.trim?.() !== '' ) {\n\t\t\teditPost( { menu_order: newOrder } );\n\t\t}\n\t};\n\n\tconst value = orderInput ?? order;\n\n\treturn (\n\t\t<Flex>\n\t\t\t<FlexBlock>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ __( 'Order' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ setUpdatedOrder }\n\t\t\t\t\tlabelPosition=\"side\"\n\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\tsetOrderInput( null );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</FlexBlock>\n\t\t</Flex>\n\t);\n}\n\nexport default function PageAttributesOrderWithChecks() {\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"page-attributes\">\n\t\t\t<PageAttributesOrder />\n\t\t</PostTypeSupportCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,IAAI,EACJC,SAAS,EACTC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,4BAA4B;AAC7D,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,SAASC,mBAAmBA,CAAA,EAAG;EAC9B,MAAMC,KAAK,GAAGP,SAAS,CACpBQ,MAAM;IAAA,IAAAC,qBAAA;IAAA,QAAAA,qBAAA,GACPD,MAAM,CAAEH,WAAY,CAAC,CAACK,sBAAsB,CAAE,YAAa,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EAAA,GAClE,EACD,CAAC;EACD,MAAM;IAAEE;EAAS,CAAC,GAAGV,WAAW,CAAEI,WAAY,CAAC;EAC/C,MAAM,CAAEO,UAAU,EAAEC,aAAa,CAAE,GAAGX,QAAQ,CAAE,IAAK,CAAC;EAEtD,MAAMY,eAAe,GAAKC,KAAK,IAAM;IACpCF,aAAa,CAAEE,KAAM,CAAC;IACtB,MAAMC,QAAQ,GAAGC,MAAM,CAAEF,KAAM,CAAC;IAChC,IAAKE,MAAM,CAACC,SAAS,CAAEF,QAAS,CAAC,IAAID,KAAK,CAACI,IAAI,GAAG,CAAC,KAAK,EAAE,EAAG;MAC5DR,QAAQ,CAAE;QAAES,UAAU,EAAEJ;MAAS,CAAE,CAAC;IACrC;EACD,CAAC;EAED,MAAMD,KAAK,GAAGH,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAIL,KAAK;EAEjC,OACCc,aAAA,CAACzB,IAAI,QACJyB,aAAA,CAACxB,SAAS,QACTwB,aAAA,CAACtB,aAAa;IACbuB,KAAK,EAAG3B,EAAE,CAAE,OAAQ,CAAG;IACvBoB,KAAK,EAAGA,KAAO;IACfQ,QAAQ,EAAGT,eAAiB;IAC5BU,aAAa,EAAC,MAAM;IACpBC,MAAM,EAAGA,CAAA,KAAM;MACdZ,aAAa,CAAE,IAAK,CAAC;IACtB;EAAG,CACH,CACS,CACN,CAAC;AAET;AAEA,eAAe,SAASa,6BAA6BA,CAAA,EAAG;EACvD,OACCL,aAAA,CAAClB,oBAAoB;IAACwB,WAAW,EAAC;EAAiB,GAClDN,aAAA,CAACf,mBAAmB,MAAE,CACD,CAAC;AAEzB"}
1
+ {"version":3,"names":["__","Flex","FlexBlock","__experimentalNumberControl","NumberControl","useSelect","useDispatch","useState","PostTypeSupportCheck","store","editorStore","PageAttributesOrder","order","select","_select$getEditedPost","getEditedPostAttribute","editPost","orderInput","setOrderInput","setUpdatedOrder","value","newOrder","Number","isInteger","trim","menu_order","createElement","__next40pxDefaultSize","label","onChange","labelPosition","onBlur","PageAttributesOrderWithChecks","supportKeys"],"sources":["@wordpress/editor/src/components/page-attributes/order.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tFlex,\n\tFlexBlock,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\nfunction PageAttributesOrder() {\n\tconst order = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'menu_order' ) ?? 0,\n\t\t[]\n\t);\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ orderInput, setOrderInput ] = useState( null );\n\n\tconst setUpdatedOrder = ( value ) => {\n\t\tsetOrderInput( value );\n\t\tconst newOrder = Number( value );\n\t\tif ( Number.isInteger( newOrder ) && value.trim?.() !== '' ) {\n\t\t\teditPost( { menu_order: newOrder } );\n\t\t}\n\t};\n\n\tconst value = orderInput ?? order;\n\n\treturn (\n\t\t<Flex>\n\t\t\t<FlexBlock>\n\t\t\t\t<NumberControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Order' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ setUpdatedOrder }\n\t\t\t\t\tlabelPosition=\"side\"\n\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\tsetOrderInput( null );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</FlexBlock>\n\t\t</Flex>\n\t);\n}\n\nexport default function PageAttributesOrderWithChecks() {\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"page-attributes\">\n\t\t\t<PageAttributesOrder />\n\t\t</PostTypeSupportCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,IAAI,EACJC,SAAS,EACTC,2BAA2B,IAAIC,aAAa,QACtC,uBAAuB;AAC9B,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,4BAA4B;AAC7D,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;AAElD,SAASC,mBAAmBA,CAAA,EAAG;EAC9B,MAAMC,KAAK,GAAGP,SAAS,CACpBQ,MAAM;IAAA,IAAAC,qBAAA;IAAA,QAAAA,qBAAA,GACPD,MAAM,CAAEH,WAAY,CAAC,CAACK,sBAAsB,CAAE,YAAa,CAAC,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,CAAC;EAAA,GAClE,EACD,CAAC;EACD,MAAM;IAAEE;EAAS,CAAC,GAAGV,WAAW,CAAEI,WAAY,CAAC;EAC/C,MAAM,CAAEO,UAAU,EAAEC,aAAa,CAAE,GAAGX,QAAQ,CAAE,IAAK,CAAC;EAEtD,MAAMY,eAAe,GAAKC,KAAK,IAAM;IACpCF,aAAa,CAAEE,KAAM,CAAC;IACtB,MAAMC,QAAQ,GAAGC,MAAM,CAAEF,KAAM,CAAC;IAChC,IAAKE,MAAM,CAACC,SAAS,CAAEF,QAAS,CAAC,IAAID,KAAK,CAACI,IAAI,GAAG,CAAC,KAAK,EAAE,EAAG;MAC5DR,QAAQ,CAAE;QAAES,UAAU,EAAEJ;MAAS,CAAE,CAAC;IACrC;EACD,CAAC;EAED,MAAMD,KAAK,GAAGH,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAIL,KAAK;EAEjC,OACCc,aAAA,CAACzB,IAAI,QACJyB,aAAA,CAACxB,SAAS,QACTwB,aAAA,CAACtB,aAAa;IACbuB,qBAAqB;IACrBC,KAAK,EAAG5B,EAAE,CAAE,OAAQ,CAAG;IACvBoB,KAAK,EAAGA,KAAO;IACfS,QAAQ,EAAGV,eAAiB;IAC5BW,aAAa,EAAC,MAAM;IACpBC,MAAM,EAAGA,CAAA,KAAM;MACdb,aAAa,CAAE,IAAK,CAAC;IACtB;EAAG,CACH,CACS,CACN,CAAC;AAET;AAEA,eAAe,SAASc,6BAA6BA,CAAA,EAAG;EACvD,OACCN,aAAA,CAAClB,oBAAoB;IAACyB,WAAW,EAAC;EAAiB,GAClDP,aAAA,CAACf,mBAAmB,MAAE,CACD,CAAC;AAEzB"}
@@ -0,0 +1,14 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * Internal dependencies
4
+ */
5
+ import PostAuthorCheck from './check';
6
+ import PostAuthorForm from './index';
7
+ import PostPanelRow from '../post-panel-row';
8
+ export function PostAuthor() {
9
+ return createElement(PostAuthorCheck, null, createElement(PostPanelRow, {
10
+ className: "editor-post-author__panel"
11
+ }, createElement(PostAuthorForm, null)));
12
+ }
13
+ export default PostAuthor;
14
+ //# sourceMappingURL=panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PostAuthorCheck","PostAuthorForm","PostPanelRow","PostAuthor","createElement","className"],"sources":["@wordpress/editor/src/components/post-author/panel.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport PostAuthorCheck from './check';\nimport PostAuthorForm from './index';\nimport PostPanelRow from '../post-panel-row';\n\nexport function PostAuthor() {\n\treturn (\n\t\t<PostAuthorCheck>\n\t\t\t<PostPanelRow className=\"editor-post-author__panel\">\n\t\t\t\t<PostAuthorForm />\n\t\t\t</PostPanelRow>\n\t\t</PostAuthorCheck>\n\t);\n}\n\nexport default PostAuthor;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,eAAe,MAAM,SAAS;AACrC,OAAOC,cAAc,MAAM,SAAS;AACpC,OAAOC,YAAY,MAAM,mBAAmB;AAE5C,OAAO,SAASC,UAAUA,CAAA,EAAG;EAC5B,OACCC,aAAA,CAACJ,eAAe,QACfI,aAAA,CAACF,YAAY;IAACG,SAAS,EAAC;EAA2B,GAClDD,aAAA,CAACH,cAAc,MAAE,CACJ,CACE,CAAC;AAEpB;AAEA,eAAeE,UAAU"}
@@ -83,7 +83,9 @@ function PostFeaturedImage({
83
83
  setIsLoading(true);
84
84
  return;
85
85
  }
86
- onUpdateImage(image);
86
+ if (image) {
87
+ onUpdateImage(image);
88
+ }
87
89
  setIsLoading(false);
88
90
  },
89
91
  onError(message) {
@@ -1 +1 @@
1
- {"version":3,"names":["__","sprintf","applyFilters","DropZone","Button","Spinner","ResponsiveWrapper","withNotices","withFilters","__experimentalHStack","HStack","isBlobURL","useState","useRef","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","instructions","createElement","getMediaDetails","media","postId","_media$media_details$","_media$media_details$2","defaultSize","id","media_details","sizes","mediaWidth","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","toggleRef","isLoading","setIsLoading","mediaUpload","select","getSettings","onDropFiles","filesList","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","className","alt_text","full","file","slug","fallback","title","labels","featured_image","onSelect","unstableFeaturedImageFlow","modalClass","render","open","ref","onClick","naturalWidth","naturalHeight","isInline","src","alt","set_featured_image","current","focus","onFilesDrop","value","applyWithSelect","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState, useRef } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst toggleRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst { mediaWidth, mediaHeight, mediaSourceUrl } = getMediaDetails(\n\t\tmedia,\n\t\tcurrentPostId\n\t);\n\n\tfunction onDropFiles( filesList ) {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdateImage( image );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostType?.labels?.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or replace the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postType?.labels\n\t\t\t\t\t\t\t\t\t\t\t?.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t\t\t\t\t<HStack className=\"editor-post-featured-image__actions\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t// Prefer that screen readers use the .editor-post-featured-image__preview button.\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t\t\t\t\t\t\ttoggleRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","sprintf","applyFilters","DropZone","Button","Spinner","ResponsiveWrapper","withNotices","withFilters","__experimentalHStack","HStack","isBlobURL","useState","useRef","compose","useSelect","withDispatch","withSelect","MediaUpload","MediaUploadCheck","store","blockEditorStore","coreStore","PostFeaturedImageCheck","editorStore","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","instructions","createElement","getMediaDetails","media","postId","_media$media_details$","_media$media_details$2","defaultSize","id","media_details","sizes","mediaWidth","width","mediaHeight","height","mediaSourceUrl","source_url","fallbackSize","PostFeaturedImage","currentPostId","featuredImageId","onUpdateImage","onRemoveImage","postType","noticeUI","noticeOperations","toggleRef","isLoading","setIsLoading","mediaUpload","select","getSettings","onDropFiles","filesList","allowedTypes","onFileChange","image","url","onError","message","removeAllNotices","createErrorNotice","className","alt_text","full","file","slug","fallback","title","labels","featured_image","onSelect","unstableFeaturedImageFlow","modalClass","render","open","ref","onClick","naturalWidth","naturalHeight","isInline","src","alt","set_featured_image","current","focus","onFilesDrop","value","applyWithSelect","getMedia","getPostType","getCurrentPostId","getEditedPostAttribute","context","applyWithDispatch","dispatch","editPost","featured_media","onDropImage"],"sources":["@wordpress/editor/src/components/post-featured-image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState, useRef } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst toggleRef = useRef();\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst { mediaWidth, mediaHeight, mediaSourceUrl } = getMediaDetails(\n\t\tmedia,\n\t\tcurrentPostId\n\t);\n\n\tfunction onDropFiles( filesList ) {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ( image ) {\n\t\t\t\t\tonUpdateImage( image );\n\t\t\t\t}\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostType?.labels?.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or replace the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postType?.labels\n\t\t\t\t\t\t\t\t\t\t\t?.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t\t\t\t\t<HStack className=\"editor-post-featured-image__actions\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t// Prefer that screen readers use the .editor-post-featured-image__preview button.\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"editor-post-featured-image__action\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t\t\t\t\t\t\ttoggleRef.current.focus();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * External dependencies
4
+ */
5
+ import classnames from 'classnames';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { __experimentalHStack as HStack } from '@wordpress/components';
11
+ import { forwardRef } from '@wordpress/element';
12
+ const PostPanelRow = forwardRef(({
13
+ className,
14
+ label,
15
+ children
16
+ }, ref) => {
17
+ return createElement(HStack, {
18
+ className: classnames('editor-post-panel__row', className),
19
+ ref: ref
20
+ }, label && createElement("div", {
21
+ className: "editor-post-panel__row-label"
22
+ }, label), createElement("div", {
23
+ className: "editor-post-panel__row-control"
24
+ }, children));
25
+ });
26
+ export default PostPanelRow;
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["classnames","__experimentalHStack","HStack","forwardRef","PostPanelRow","className","label","children","ref","createElement"],"sources":["@wordpress/editor/src/components/post-panel-row/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\n\nconst PostPanelRow = forwardRef( ( { className, label, children }, ref ) => {\n\treturn (\n\t\t<HStack\n\t\t\tclassName={ classnames( 'editor-post-panel__row', className ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t{ label && (\n\t\t\t\t<div className=\"editor-post-panel__row-label\">{ label }</div>\n\t\t\t) }\n\t\t\t<div className=\"editor-post-panel__row-control\">{ children }</div>\n\t\t</HStack>\n\t);\n} );\n\nexport default PostPanelRow;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,UAAU,QAAQ,oBAAoB;AAE/C,MAAMC,YAAY,GAAGD,UAAU,CAAE,CAAE;EAAEE,SAAS;EAAEC,KAAK;EAAEC;AAAS,CAAC,EAAEC,GAAG,KAAM;EAC3E,OACCC,aAAA,CAACP,MAAM;IACNG,SAAS,EAAGL,UAAU,CAAE,wBAAwB,EAAEK,SAAU,CAAG;IAC/DG,GAAG,EAAGA;EAAK,GAETF,KAAK,IACNG,aAAA;IAAKJ,SAAS,EAAC;EAA8B,GAAGC,KAAY,CAC5D,EACDG,aAAA;IAAKJ,SAAS,EAAC;EAAgC,GAAGE,QAAe,CAC1D,CAAC;AAEX,CAAE,CAAC;AAEH,eAAeH,YAAY"}
@@ -7,7 +7,7 @@ import classnames from 'classnames';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { __unstableGetAnimateClassName as getAnimateClassName, Button } from '@wordpress/components';
10
+ import { __unstableGetAnimateClassName as getAnimateClassName, Button, Tooltip } from '@wordpress/components';
11
11
  import { usePrevious, useViewportMatch } from '@wordpress/compose';
12
12
  import { useDispatch, useSelect } from '@wordpress/data';
13
13
  import { useEffect, useState } from '@wordpress/element';
@@ -113,10 +113,27 @@ export default function PostSavedState({
113
113
  } else if (showIconLabels) {
114
114
  text = shortLabel;
115
115
  }
116
+ const buttonAccessibleLabel = text || label;
117
+
118
+ /**
119
+ * The tooltip needs to be enabled only if the button is not disabled. When
120
+ * relying on the internal Button tooltip functionality, this causes the
121
+ * resulting `button` element to be always removed and re-added to the DOM,
122
+ * causing focus loss. An alternative approach to circumvent the issue
123
+ * is not to use the `label` and `shortcut` props on `Button` (which would
124
+ * trigger the tooltip), and instead manually wrap the `Button` in a separate
125
+ * `Tooltip` component.
126
+ */
127
+ const tooltipProps = isDisabled ? undefined : {
128
+ text: buttonAccessibleLabel,
129
+ shortcut: displayShortcut.primary('s')
130
+ };
116
131
 
117
132
  // Use common Button instance for all saved states so that focus is not
118
133
  // lost.
119
- return createElement(Button, {
134
+ return createElement(Tooltip, {
135
+ ...tooltipProps
136
+ }, createElement(Button, {
120
137
  className: isSaveable || isSaving ? classnames({
121
138
  'editor-post-save-draft': !isSavedState,
122
139
  'editor-post-saved-state': isSavedState,
@@ -127,27 +144,15 @@ export default function PostSavedState({
127
144
  type: 'loading'
128
145
  })]: isSaving
129
146
  }) : undefined,
130
- onClick: isDisabled ? undefined : () => savePost()
131
- /*
132
- * We want the tooltip to show the keyboard shortcut only when the
133
- * button does something, i.e. when it's not disabled.
134
- */,
135
- shortcut: isDisabled ? undefined : displayShortcut.primary('s')
136
- /*
137
- * Displaying the keyboard shortcut conditionally makes the tooltip
138
- * itself show conditionally. This would trigger a full-rerendering
139
- * of the button that we want to avoid. By setting `showTooltip`,
140
- & the tooltip is always rendered even when there's no keyboard shortcut.
141
- */,
142
- showTooltip: true,
147
+ onClick: isDisabled ? undefined : () => savePost(),
143
148
  variant: "tertiary",
144
149
  icon: isLargeViewport ? undefined : cloudUpload
145
150
  // Make sure the aria-label has always a value, as the default `text` is undefined on small screens.
146
151
  ,
147
- label: text || label,
152
+ "aria-label": buttonAccessibleLabel,
148
153
  "aria-disabled": isDisabled
149
154
  }, isSavedState && createElement(Icon, {
150
155
  icon: isSaved ? check : cloud
151
- }), text);
156
+ }), text));
152
157
  }
153
158
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__unstableGetAnimateClassName","getAnimateClassName","Button","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","editorStore","PostSavedState","forceIsDirty","showIconLabels","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPending","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","_links","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","label","shortLabel","isSaved","isSavedState","isDisabled","text","createElement","className","type","undefined","onClick","shortcut","primary","showTooltip","variant","icon"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @param {?boolean} props.showIconLabels Whether interface buttons show labels instead of icons\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( {\n\tforceIsDirty,\n\tshowIconLabels = false,\n} ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPending,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t} = select( editorStore );\n\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPending: 'pending' === getEditedPostAttribute( 'status' ),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif ( isPublished || isScheduled ) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Button\n\t\t\tclassName={\n\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t? classnames( {\n\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t/*\n\t\t\t * We want the tooltip to show the keyboard shortcut only when the\n\t\t\t * button does something, i.e. when it's not disabled.\n\t\t\t */\n\t\t\tshortcut={ isDisabled ? undefined : displayShortcut.primary( 's' ) }\n\t\t\t/*\n\t\t\t * Displaying the keyboard shortcut conditionally makes the tooltip\n\t\t\t * itself show conditionally. This would trigger a full-rerendering\n\t\t\t * of the button that we want to avoid. By setting `showTooltip`,\n\t\t\t & the tooltip is always rendered even when there's no keyboard shortcut.\n\t\t\t */\n\t\t\tshowTooltip\n\t\t\tvariant=\"tertiary\"\n\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\t// Make sure the aria-label has always a value, as the default `text` is undefined on small screens.\n\t\t\tlabel={ text || label }\n\t\t\taria-disabled={ isDisabled }\n\t\t>\n\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t{ text }\n\t\t</Button>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,6BAA6B,IAAIC,mBAAmB,EACpDC,MAAM,QACA,uBAAuB;AAC9B,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,oBAAoB;AAClE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AACxD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,oBAAoB;AACxD,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,IAAI,EAAEC,KAAK,EAAEC,KAAK,EAAEC,WAAW,QAAQ,kBAAkB;AAClE,SAASC,eAAe,QAAQ,qBAAqB;;AAErD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,WAAW,QAAQ,aAAa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAAE;EACvCC,YAAY;EACZC,cAAc,GAAG;AAClB,CAAC,EAAG;EACH,MAAM,CAAEC,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGb,QAAQ,CAAE,KAAM,CAAC;EACrE,MAAMc,eAAe,GAAGlB,gBAAgB,CAAE,OAAQ,CAAC;EAEnD,MAAM;IACLmB,YAAY;IACZC,OAAO;IACPC,KAAK;IACLC,SAAS;IACTC,WAAW;IACXC,UAAU;IACVC,QAAQ;IACRC,WAAW;IACXC;EACD,CAAC,GAAGzB,SAAS,CACV0B,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MACLC,eAAe;MACfC,sBAAsB;MACtBC,sBAAsB;MACtBC,iBAAiB;MACjBC,YAAY;MACZC,oBAAoB;MACpBC,cAAc;MACdC,gBAAgB;MAChBC;IACD,CAAC,GAAGV,MAAM,CAAEhB,WAAY,CAAC;IAEzB,OAAO;MACNO,YAAY,EAAEkB,gBAAgB,CAAC,CAAC;MAChCjB,OAAO,EAAEN,YAAY,IAAImB,iBAAiB,CAAC,CAAC;MAC5CZ,KAAK,EAAES,eAAe,CAAC,CAAC;MACxBR,SAAS,EAAE,SAAS,KAAKgB,sBAAsB,CAAE,QAAS,CAAC;MAC3Df,WAAW,EAAEQ,sBAAsB,CAAC,CAAC;MACrCN,QAAQ,EAAES,YAAY,CAAC,CAAC;MACxBV,UAAU,EAAEW,oBAAoB,CAAC,CAAC;MAClCT,WAAW,EAAEM,sBAAsB,CAAC,CAAC;MACrCL,gBAAgB,GAAAE,qBAAA,GACfO,cAAc,CAAC,CAAC,EAAEG,MAAM,GAAI,mBAAmB,CAAE,cAAAV,qBAAA,cAAAA,qBAAA,GAAI;IACvD,CAAC;EACF,CAAC,EACD,CAAEf,YAAY,CACf,CAAC;EAED,MAAM;IAAE0B;EAAS,CAAC,GAAGvC,WAAW,CAAEW,WAAY,CAAC;EAE/C,MAAM6B,SAAS,GAAG1C,WAAW,CAAE0B,QAAS,CAAC;EAEzCtB,SAAS,CAAE,MAAM;IAChB,IAAIuC,SAAS;IAEb,IAAKD,SAAS,IAAI,CAAEhB,QAAQ,EAAG;MAC9BR,oBAAoB,CAAE,IAAK,CAAC;MAC5ByB,SAAS,GAAGC,UAAU,CAAE,MAAM;QAC7B1B,oBAAoB,CAAE,KAAM,CAAC;MAC9B,CAAC,EAAE,IAAK,CAAC;IACV;IAEA,OAAO,MAAM2B,YAAY,CAAEF,SAAU,CAAC;EACvC,CAAC,EAAE,CAAEjB,QAAQ,CAAG,CAAC;;EAEjB;EACA;EACA,IAAK,CAAEE,gBAAgB,IAAIL,SAAS,EAAG;IACtC,OAAO,IAAI;EACZ;EAEA,IAAKC,WAAW,IAAIG,WAAW,EAAG;IACjC,OAAO,IAAI;EACZ;;EAEA;EACA,MAAMmB,KAAK,GAAGvB,SAAS,GAAGjB,EAAE,CAAE,iBAAkB,CAAC,GAAGA,EAAE,CAAE,YAAa,CAAC;;EAEtE;EACA,MAAMyC,UAAU,GAAGzC,EAAE,CAAE,MAAO,CAAC;EAE/B,MAAM0C,OAAO,GAAG/B,iBAAiB,IAAM,CAAEK,KAAK,IAAI,CAAED,OAAS;EAC7D,MAAM4B,YAAY,GAAGvB,QAAQ,IAAIsB,OAAO;EACxC,MAAME,UAAU,GAAGxB,QAAQ,IAAIsB,OAAO,IAAI,CAAEvB,UAAU;EAEtD,IAAI0B,IAAI;EAER,IAAKzB,QAAQ,EAAG;IACfyB,IAAI,GAAG/B,YAAY,GAAGd,EAAE,CAAE,YAAa,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;EAC1D,CAAC,MAAM,IAAK0C,OAAO,EAAG;IACrBG,IAAI,GAAG7C,EAAE,CAAE,OAAQ,CAAC;EACrB,CAAC,MAAM,IAAKa,eAAe,EAAG;IAC7BgC,IAAI,GAAGL,KAAK;EACb,CAAC,MAAM,IAAK9B,cAAc,EAAG;IAC5BmC,IAAI,GAAGJ,UAAU;EAClB;;EAEA;EACA;EACA,OACCK,aAAA,CAACrD,MAAM;IACNsD,SAAS,EACR5B,UAAU,IAAIC,QAAQ,GACnB9B,UAAU,CAAE;MACZ,wBAAwB,EAAE,CAAEqD,YAAY;MACxC,yBAAyB,EAAEA,YAAY;MACvC,WAAW,EAAEvB,QAAQ;MACrB,eAAe,EAAEN,YAAY;MAC7B,UAAU,EAAE4B,OAAO;MACnB,CAAElD,mBAAmB,CAAE;QACtBwD,IAAI,EAAE;MACP,CAAE,CAAC,GAAI5B;IACP,CAAE,CAAC,GACH6B,SACH;IACDC,OAAO,EAAGN,UAAU,GAAGK,SAAS,GAAG,MAAMd,QAAQ,CAAC;IAClD;AACH;AACA;AACA,OAHG;IAIAgB,QAAQ,EAAGP,UAAU,GAAGK,SAAS,GAAG5C,eAAe,CAAC+C,OAAO,CAAE,GAAI;IACjE;AACH;AACA;AACA;AACA;AACA,OALG;IAMAC,WAAW;IACXC,OAAO,EAAC,UAAU;IAClBC,IAAI,EAAG1C,eAAe,GAAGoC,SAAS,GAAG7C;IACrC;IAAA;IACAoC,KAAK,EAAGK,IAAI,IAAIL,KAAO;IACvB,iBAAgBI;EAAY,GAE1BD,YAAY,IAAIG,aAAA,CAAC7C,IAAI;IAACsD,IAAI,EAAGb,OAAO,GAAGxC,KAAK,GAAGC;EAAO,CAAE,CAAC,EACzD0C,IACK,CAAC;AAEX"}
1
+ {"version":3,"names":["classnames","__unstableGetAnimateClassName","getAnimateClassName","Button","Tooltip","usePrevious","useViewportMatch","useDispatch","useSelect","useEffect","useState","__","Icon","check","cloud","cloudUpload","displayShortcut","store","editorStore","PostSavedState","forceIsDirty","showIconLabels","forceSavedMessage","setForceSavedMessage","isLargeViewport","isAutosaving","isDirty","isNew","isPending","isPublished","isSaveable","isSaving","isScheduled","hasPublishAction","select","_getCurrentPost$_link","isEditedPostNew","isCurrentPostPublished","isCurrentPostScheduled","isEditedPostDirty","isSavingPost","isEditedPostSaveable","getCurrentPost","isAutosavingPost","getEditedPostAttribute","_links","savePost","wasSaving","timeoutId","setTimeout","clearTimeout","label","shortLabel","isSaved","isSavedState","isDisabled","text","buttonAccessibleLabel","tooltipProps","undefined","shortcut","primary","createElement","className","type","onClick","variant","icon"],"sources":["@wordpress/editor/src/components/post-saved-state/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object} props Component props.\n * @param {?boolean} props.forceIsDirty Whether to force the post to be marked\n * as dirty.\n * @param {?boolean} props.showIconLabels Whether interface buttons show labels instead of icons\n * @return {import('react').ComponentType} The component.\n */\nexport default function PostSavedState( {\n\tforceIsDirty,\n\tshowIconLabels = false,\n} ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPending,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t} = select( editorStore );\n\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPending: 'pending' === getEditedPostAttribute( 'status' ),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty ]\n\t);\n\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif ( isPublished || isScheduled ) {\n\t\treturn null;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\tconst buttonAccessibleLabel = text || label;\n\n\t/**\n\t * The tooltip needs to be enabled only if the button is not disabled. When\n\t * relying on the internal Button tooltip functionality, this causes the\n\t * resulting `button` element to be always removed and re-added to the DOM,\n\t * causing focus loss. An alternative approach to circumvent the issue\n\t * is not to use the `label` and `shortcut` props on `Button` (which would\n\t * trigger the tooltip), and instead manually wrap the `Button` in a separate\n\t * `Tooltip` component.\n\t */\n\tconst tooltipProps = isDisabled\n\t\t? undefined\n\t\t: {\n\t\t\t\ttext: buttonAccessibleLabel,\n\t\t\t\tshortcut: displayShortcut.primary( 's' ),\n\t\t };\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Tooltip { ...tooltipProps }>\n\t\t\t<Button\n\t\t\t\tclassName={\n\t\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t\t? classnames( {\n\t\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\t\t// Make sure the aria-label has always a value, as the default `text` is undefined on small screens.\n\t\t\t\taria-label={ buttonAccessibleLabel }\n\t\t\t\taria-disabled={ isDisabled }\n\t\t\t>\n\t\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t\t{ text }\n\t\t\t</Button>\n\t\t</Tooltip>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * WordPress dependencies
4
+ */
5
+ import { Button, Dropdown } from '@wordpress/components';
6
+ import { __, sprintf } from '@wordpress/i18n';
7
+ import { useState, useMemo } from '@wordpress/element';
8
+
9
+ /**
10
+ * Internal dependencies
11
+ */
12
+ import PostScheduleCheck from './check';
13
+ import PostScheduleForm from './index';
14
+ import { usePostScheduleLabel } from './label';
15
+ import PostPanelRow from '../post-panel-row';
16
+ export default function PostSchedulePanel() {
17
+ const [popoverAnchor, setPopoverAnchor] = useState(null);
18
+ // Memoize popoverProps to avoid returning a new object every time.
19
+ const popoverProps = useMemo(() => ({
20
+ // Anchor the popover to the middle of the entire row so that it doesn't
21
+ // move around when the label changes.
22
+ anchor: popoverAnchor,
23
+ 'aria-label': __('Change publish date'),
24
+ placement: 'bottom-end'
25
+ }), [popoverAnchor]);
26
+ const label = usePostScheduleLabel();
27
+ const fullLabel = usePostScheduleLabel({
28
+ full: true
29
+ });
30
+ return createElement(PostScheduleCheck, null, createElement(PostPanelRow, {
31
+ label: __('Publish'),
32
+ ref: setPopoverAnchor
33
+ }, createElement(Dropdown, {
34
+ popoverProps: popoverProps,
35
+ focusOnMount: true,
36
+ className: "editor-post-schedule__panel-dropdown",
37
+ contentClassName: "editor-post-schedule__dialog",
38
+ renderToggle: ({
39
+ onToggle,
40
+ isOpen
41
+ }) => createElement(Button, {
42
+ className: "editor-post-schedule__dialog-toggle",
43
+ variant: "tertiary",
44
+ onClick: onToggle,
45
+ "aria-label": sprintf(
46
+ // translators: %s: Current post date.
47
+ __('Change date: %s'), label),
48
+ label: fullLabel,
49
+ showTooltip: true,
50
+ "aria-expanded": isOpen
51
+ }, label),
52
+ renderContent: ({
53
+ onClose
54
+ }) => createElement(PostScheduleForm, {
55
+ onClose: onClose
56
+ })
57
+ })));
58
+ }
59
+ //# sourceMappingURL=panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Button","Dropdown","__","sprintf","useState","useMemo","PostScheduleCheck","PostScheduleForm","usePostScheduleLabel","PostPanelRow","PostSchedulePanel","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","label","fullLabel","full","createElement","ref","focusOnMount","className","contentClassName","renderToggle","onToggle","isOpen","variant","onClick","showTooltip","renderContent","onClose"],"sources":["@wordpress/editor/src/components/post-schedule/panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Dropdown } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleCheck from './check';\nimport PostScheduleForm from './index';\nimport { usePostScheduleLabel } from './label';\nimport PostPanelRow from '../post-panel-row';\n\nexport default function PostSchedulePanel() {\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\t'aria-label': __( 'Change publish date' ),\n\t\t\tplacement: 'bottom-end',\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst label = usePostScheduleLabel();\n\tconst fullLabel = usePostScheduleLabel( { full: true } );\n\n\treturn (\n\t\t<PostScheduleCheck>\n\t\t\t<PostPanelRow label={ __( 'Publish' ) } ref={ setPopoverAnchor }>\n\t\t\t\t<Dropdown\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\tclassName=\"editor-post-schedule__panel-dropdown\"\n\t\t\t\t\tcontentClassName=\"editor-post-schedule__dialog\"\n\t\t\t\t\trenderToggle={ ( { onToggle, isOpen } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"editor-post-schedule__dialog-toggle\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Current post date.\n\t\t\t\t\t\t\t\t__( 'Change date: %s' ),\n\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tlabel={ fullLabel }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<PostScheduleForm onClose={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</PostPanelRow>\n\t\t</PostScheduleCheck>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;;AAEtD;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,SAAS;AACvC,OAAOC,gBAAgB,MAAM,SAAS;AACtC,SAASC,oBAAoB,QAAQ,SAAS;AAC9C,OAAOC,YAAY,MAAM,mBAAmB;AAE5C,eAAe,SAASC,iBAAiBA,CAAA,EAAG;EAC3C,MAAM,CAAEC,aAAa,EAAEC,gBAAgB,CAAE,GAAGR,QAAQ,CAAE,IAAK,CAAC;EAC5D;EACA,MAAMS,YAAY,GAAGR,OAAO,CAC3B,OAAQ;IACP;IACA;IACAS,MAAM,EAAEH,aAAa;IACrB,YAAY,EAAET,EAAE,CAAE,qBAAsB,CAAC;IACzCa,SAAS,EAAE;EACZ,CAAC,CAAE,EACH,CAAEJ,aAAa,CAChB,CAAC;EAED,MAAMK,KAAK,GAAGR,oBAAoB,CAAC,CAAC;EACpC,MAAMS,SAAS,GAAGT,oBAAoB,CAAE;IAAEU,IAAI,EAAE;EAAK,CAAE,CAAC;EAExD,OACCC,aAAA,CAACb,iBAAiB,QACjBa,aAAA,CAACV,YAAY;IAACO,KAAK,EAAGd,EAAE,CAAE,SAAU,CAAG;IAACkB,GAAG,EAAGR;EAAkB,GAC/DO,aAAA,CAAClB,QAAQ;IACRY,YAAY,EAAGA,YAAc;IAC7BQ,YAAY;IACZC,SAAS,EAAC,sCAAsC;IAChDC,gBAAgB,EAAC,8BAA8B;IAC/CC,YAAY,EAAGA,CAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,KACpCP,aAAA,CAACnB,MAAM;MACNsB,SAAS,EAAC,qCAAqC;MAC/CK,OAAO,EAAC,UAAU;MAClBC,OAAO,EAAGH,QAAU;MACpB,cAAatB,OAAO;MACnB;MACAD,EAAE,CAAE,iBAAkB,CAAC,EACvBc,KACD,CAAG;MACHA,KAAK,EAAGC,SAAW;MACnBY,WAAW;MACX,iBAAgBH;IAAQ,GAEtBV,KACK,CACN;IACHc,aAAa,EAAGA,CAAE;MAAEC;IAAQ,CAAC,KAC5BZ,aAAA,CAACZ,gBAAgB;MAACwB,OAAO,EAAGA;IAAS,CAAE;EACrC,CACH,CACY,CACI,CAAC;AAEtB"}
@@ -3,14 +3,15 @@ import { createElement, Fragment } from "react";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { useSelect, useDispatch } from '@wordpress/data';
6
- import { __ } from '@wordpress/i18n';
7
- import { PanelRow, Modal, Button, __experimentalHStack as HStack, __experimentalVStack as VStack, ToggleControl } from '@wordpress/components';
6
+ import { __, _x } from '@wordpress/i18n';
7
+ import { Modal, Button, __experimentalHStack as HStack, __experimentalVStack as VStack, ToggleControl } from '@wordpress/components';
8
8
  import { useEffect, useState } from '@wordpress/element';
9
9
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
10
10
 
11
11
  /**
12
12
  * Internal dependencies
13
13
  */
14
+ import PostPanelRow from '../post-panel-row';
14
15
  import { store as editorStore } from '../../store';
15
16
  import { unlock } from '../../lock-unlock';
16
17
  const {
@@ -36,9 +37,11 @@ export default function PostSyncStatus() {
36
37
  if (postType !== 'wp_block') {
37
38
  return null;
38
39
  }
39
- return createElement(PanelRow, {
40
- className: "edit-post-sync-status"
41
- }, createElement("span", null, __('Sync status')), createElement("div", null, syncStatus === 'unsynced' ? __('Not synced') : __('Fully synced')));
40
+ return createElement(PostPanelRow, {
41
+ label: __('Sync status')
42
+ }, createElement("div", {
43
+ className: "editor-post-sync-status__value"
44
+ }, syncStatus === 'unsynced' ? __('Not synced') : __('Fully synced')));
42
45
  }
43
46
  export function PostSyncStatusModal() {
44
47
  const {
@@ -91,8 +94,8 @@ export function PostSyncStatusModal() {
91
94
  }, createElement(VStack, {
92
95
  spacing: "5"
93
96
  }, createElement(ReusableBlocksRenameHint, null), createElement(ToggleControl, {
94
- label: __('Synced'),
95
- help: __('Editing the pattern will update it anywhere it is used.'),
97
+ label: _x('Synced', 'Option that makes an individual pattern synchronized'),
98
+ help: __('Sync this pattern across multiple locations.'),
96
99
  checked: !syncType,
97
100
  onChange: () => {
98
101
  setSyncType(!syncType ? 'unsynced' : undefined);