@wordpress/edit-site 5.15.0 → 5.16.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 (229) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/add-new-pattern/index.js +2 -1
  3. package/build/components/add-new-pattern/index.js.map +1 -1
  4. package/build/components/block-editor/use-site-editor-settings.js +29 -2
  5. package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
  6. package/build/components/editor/index.js +4 -4
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/global-styles/global-styles-provider.js +12 -7
  9. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  10. package/build/components/global-styles/screen-block.js +16 -0
  11. package/build/components/global-styles/screen-block.js.map +1 -1
  12. package/build/components/global-styles/screen-revisions/index.js +12 -5
  13. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  14. package/build/components/global-styles/screen-revisions/revisions-buttons.js +10 -22
  15. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  16. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +32 -25
  17. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  18. package/build/components/global-styles/style-variations-container.js +5 -3
  19. package/build/components/global-styles/style-variations-container.js.map +1 -1
  20. package/build/components/header-edit-mode/document-actions/index.js +4 -2
  21. package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
  22. package/build/components/keyboard-shortcuts/edit-mode.js +7 -5
  23. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  24. package/build/components/layout/index.js +9 -2
  25. package/build/components/layout/index.js.map +1 -1
  26. package/build/components/page/index.js +3 -3
  27. package/build/components/page/index.js.map +1 -1
  28. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +1 -1
  29. package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  30. package/build/components/page-patterns/patterns-list.js +18 -4
  31. package/build/components/page-patterns/patterns-list.js.map +1 -1
  32. package/build/components/page-patterns/use-patterns.js +20 -3
  33. package/build/components/page-patterns/use-patterns.js.map +1 -1
  34. package/build/components/page-template-parts/index.js +1 -2
  35. package/build/components/page-template-parts/index.js.map +1 -1
  36. package/build/components/page-templates/index.js +1 -16
  37. package/build/components/page-templates/index.js.map +1 -1
  38. package/build/components/resizable-frame/index.js +11 -19
  39. package/build/components/resizable-frame/index.js.map +1 -1
  40. package/build/components/save-button/index.js +4 -2
  41. package/build/components/save-button/index.js.map +1 -1
  42. package/build/components/save-hub/index.js +10 -4
  43. package/build/components/save-hub/index.js.map +1 -1
  44. package/build/components/sidebar-edit-mode/template-panel/index.js +15 -8
  45. package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  46. package/build/components/sidebar-navigation-screen/index.js +24 -14
  47. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  48. package/build/components/sidebar-navigation-screen-global-styles/index.js +34 -40
  49. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  50. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  51. package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  52. package/build/components/sidebar-navigation-screen-navigation-menus/index.js +4 -4
  53. package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  54. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +8 -0
  55. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  56. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +1 -1
  57. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  58. package/build/components/sidebar-navigation-screen-pages/index.js +2 -0
  59. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  60. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  61. package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  62. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +8 -1
  63. package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  64. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +50 -26
  65. package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  66. package/build/components/sidebar-navigation-screen-patterns/category-item.js +0 -5
  67. package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  68. package/build/components/sidebar-navigation-screen-patterns/index.js +0 -9
  69. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  70. package/build/components/sidebar-navigation-screen-templates/index.js +1 -10
  71. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  72. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -0
  73. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  74. package/build/components/site-hub/index.js +5 -2
  75. package/build/components/site-hub/index.js.map +1 -1
  76. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +1 -1
  77. package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  78. package/build/hooks/commands/use-common-commands.js +57 -27
  79. package/build/hooks/commands/use-common-commands.js.map +1 -1
  80. package/build/hooks/commands/use-edit-mode-commands.js +65 -7
  81. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  82. package/build/hooks/push-changes-to-global-styles/index.js +84 -49
  83. package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
  84. package/build/store/private-actions.js +2 -1
  85. package/build/store/private-actions.js.map +1 -1
  86. package/build/utils/use-debounced-input.js +5 -7
  87. package/build/utils/use-debounced-input.js.map +1 -1
  88. package/build-module/components/add-new-pattern/index.js +2 -1
  89. package/build-module/components/add-new-pattern/index.js.map +1 -1
  90. package/build-module/components/block-editor/use-site-editor-settings.js +29 -2
  91. package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
  92. package/build-module/components/editor/index.js +4 -4
  93. package/build-module/components/editor/index.js.map +1 -1
  94. package/build-module/components/global-styles/global-styles-provider.js +12 -7
  95. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  96. package/build-module/components/global-styles/screen-block.js +16 -0
  97. package/build-module/components/global-styles/screen-block.js.map +1 -1
  98. package/build-module/components/global-styles/screen-revisions/index.js +13 -6
  99. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  100. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +10 -22
  101. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  102. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +28 -21
  103. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  104. package/build-module/components/global-styles/style-variations-container.js +5 -3
  105. package/build-module/components/global-styles/style-variations-container.js.map +1 -1
  106. package/build-module/components/header-edit-mode/document-actions/index.js +6 -4
  107. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
  108. package/build-module/components/keyboard-shortcuts/edit-mode.js +7 -5
  109. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  110. package/build-module/components/layout/index.js +9 -2
  111. package/build-module/components/layout/index.js.map +1 -1
  112. package/build-module/components/page/index.js +3 -3
  113. package/build-module/components/page/index.js.map +1 -1
  114. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +1 -1
  115. package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
  116. package/build-module/components/page-patterns/patterns-list.js +19 -5
  117. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  118. package/build-module/components/page-patterns/use-patterns.js +19 -3
  119. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  120. package/build-module/components/page-template-parts/index.js +1 -2
  121. package/build-module/components/page-template-parts/index.js.map +1 -1
  122. package/build-module/components/page-templates/index.js +2 -15
  123. package/build-module/components/page-templates/index.js.map +1 -1
  124. package/build-module/components/resizable-frame/index.js +12 -20
  125. package/build-module/components/resizable-frame/index.js.map +1 -1
  126. package/build-module/components/save-button/index.js +4 -2
  127. package/build-module/components/save-button/index.js.map +1 -1
  128. package/build-module/components/save-hub/index.js +10 -4
  129. package/build-module/components/save-hub/index.js.map +1 -1
  130. package/build-module/components/sidebar-edit-mode/template-panel/index.js +15 -9
  131. package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
  132. package/build-module/components/sidebar-navigation-screen/index.js +21 -14
  133. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  134. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +34 -40
  135. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  136. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -1
  137. package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
  138. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +4 -4
  139. package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
  140. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +7 -0
  141. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  142. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +2 -2
  143. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  144. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -0
  145. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  146. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  147. package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
  148. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +7 -1
  149. package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
  150. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +49 -26
  151. package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
  152. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js +0 -5
  153. package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
  154. package/build-module/components/sidebar-navigation-screen-patterns/index.js +0 -7
  155. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  156. package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -8
  157. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  158. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -0
  159. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  160. package/build-module/components/site-hub/index.js +4 -2
  161. package/build-module/components/site-hub/index.js.map +1 -1
  162. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +1 -1
  163. package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
  164. package/build-module/hooks/commands/use-common-commands.js +57 -27
  165. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  166. package/build-module/hooks/commands/use-edit-mode-commands.js +65 -9
  167. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  168. package/build-module/hooks/push-changes-to-global-styles/index.js +84 -49
  169. package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
  170. package/build-module/store/private-actions.js +2 -1
  171. package/build-module/store/private-actions.js.map +1 -1
  172. package/build-module/utils/use-debounced-input.js +5 -7
  173. package/build-module/utils/use-debounced-input.js.map +1 -1
  174. package/build-style/style-rtl.css +67 -47
  175. package/build-style/style.css +67 -47
  176. package/package.json +39 -39
  177. package/src/components/add-new-pattern/index.js +2 -0
  178. package/src/components/block-editor/use-site-editor-settings.js +22 -2
  179. package/src/components/editor/index.js +3 -3
  180. package/src/components/global-styles/global-styles-provider.js +7 -2
  181. package/src/components/global-styles/screen-block.js +15 -0
  182. package/src/components/global-styles/screen-revisions/index.js +64 -58
  183. package/src/components/global-styles/screen-revisions/revisions-buttons.js +17 -31
  184. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +14 -1
  185. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +64 -48
  186. package/src/components/global-styles/style-variations-container.js +2 -0
  187. package/src/components/header-edit-mode/document-actions/index.js +8 -4
  188. package/src/components/header-edit-mode/document-actions/style.scss +41 -28
  189. package/src/components/keyboard-shortcuts/edit-mode.js +4 -5
  190. package/src/components/layout/index.js +33 -20
  191. package/src/components/layout/style.scss +2 -2
  192. package/src/components/page/index.js +8 -8
  193. package/src/components/page/style.scss +8 -5
  194. package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +1 -1
  195. package/src/components/page-patterns/patterns-list.js +25 -12
  196. package/src/components/page-patterns/style.scss +9 -8
  197. package/src/components/page-patterns/use-patterns.js +19 -3
  198. package/src/components/page-template-parts/index.js +0 -1
  199. package/src/components/page-templates/index.js +6 -19
  200. package/src/components/resizable-frame/index.js +10 -25
  201. package/src/components/save-button/index.js +2 -0
  202. package/src/components/save-hub/index.js +6 -1
  203. package/src/components/save-hub/style.scss +1 -1
  204. package/src/components/sidebar-edit-mode/template-panel/index.js +15 -11
  205. package/src/components/sidebar-navigation-screen/index.js +24 -16
  206. package/src/components/sidebar-navigation-screen/style.scss +4 -0
  207. package/src/components/sidebar-navigation-screen-details-panel/style.scss +1 -0
  208. package/src/components/sidebar-navigation-screen-global-styles/index.js +48 -44
  209. package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +1 -2
  210. package/src/components/sidebar-navigation-screen-navigation-menus/index.js +4 -4
  211. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +27 -15
  212. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +1 -4
  213. package/src/components/sidebar-navigation-screen-pages/index.js +9 -4
  214. package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +1 -1
  215. package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +11 -1
  216. package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +69 -41
  217. package/src/components/sidebar-navigation-screen-patterns/category-item.js +5 -13
  218. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -8
  219. package/src/components/sidebar-navigation-screen-templates/index.js +1 -9
  220. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -0
  221. package/src/components/site-hub/index.js +3 -1
  222. package/src/components/site-hub/style.scss +1 -2
  223. package/src/components/sync-state-with-url/use-sync-canvas-mode-with-url.js +1 -4
  224. package/src/components/table/style.scss +1 -0
  225. package/src/hooks/commands/use-common-commands.js +63 -23
  226. package/src/hooks/commands/use-edit-mode-commands.js +94 -23
  227. package/src/hooks/push-changes-to-global-styles/index.js +83 -46
  228. package/src/store/private-actions.js +5 -1
  229. package/src/utils/use-debounced-input.js +8 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/resizable-frame/index.js"],"names":["HANDLE_STYLES_OVERRIDE","position","undefined","userSelect","cursor","width","height","top","right","bottom","left","FRAME_MIN_WIDTH","FRAME_REFERENCE_WIDTH","FRAME_TARGET_ASPECT_RATIO","SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD","INITIAL_FRAME_SIZE","calculateNewHeight","initialAspectRatio","lerp","a","b","amount","lerpFactor","Math","max","min","intermediateAspectRatio","ResizableFrame","isFullWidth","isOversized","setIsOversized","isReady","children","innerContentStyle","frameSize","setFrameSize","startingWidth","setStartingWidth","isResizing","setIsResizing","shouldShowHandle","setShouldShowHandle","resizeRatio","setResizeRatio","canvasMode","select","editSiteStore","getCanvasMode","setCanvasMode","initialAspectRatioRef","initialComputedWidthRef","FRAME_TRANSITION","type","duration","frameRef","resizableHandleHelpId","offsetWidth","offsetHeight","current","resizable","handleResizeStart","_event","_direction","ref","handleResize","_ref","delta","normalizedDelta","deltaAbs","abs","maxDoubledDelta","deltaToDouble","doubleSegment","singleSegment","updatedWidth","handleResizeStop","remainingWidth","ownerDocument","documentElement","handleResizableHandleKeyDown","event","includes","key","preventDefault","step","shiftKey","newWidth","frameAnimationVariants","default","flexGrow","fullWidth","resizeHandleVariants","hidden","opacity","visible","active","scaleY","currentResizeHandleVariant","motion","div","definition","topRight","bottomRight","bottomLeft","topLeft","borderRadius"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport {\n\tResizableBox,\n\tTooltip,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\n// The minimum width of the frame (in px) while resizing.\nconst FRAME_MIN_WIDTH = 320;\n// The reference width of the frame (in px) used to calculate the aspect ratio.\nconst FRAME_REFERENCE_WIDTH = 1300;\n// 9 : 19.5 is the target aspect ratio enforced (when possible) while resizing.\nconst FRAME_TARGET_ASPECT_RATIO = 9 / 19.5;\n// The minimum distance (in px) between the frame resize handle and the\n// viewport's edge. If the frame is resized to be closer to the viewport's edge\n// than this distance, then \"canvas mode\" will be enabled.\nconst SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD = 200;\n// Default size for the `frameSize` state.\nconst INITIAL_FRAME_SIZE = { width: '100%', height: '100%' };\n\nfunction calculateNewHeight( width, initialAspectRatio ) {\n\tconst lerp = ( a, b, amount ) => {\n\t\treturn a + ( b - a ) * amount;\n\t};\n\n\t// Calculate the intermediate aspect ratio based on the current width.\n\tconst lerpFactor =\n\t\t1 -\n\t\tMath.max(\n\t\t\t0,\n\t\t\tMath.min(\n\t\t\t\t1,\n\t\t\t\t( width - FRAME_MIN_WIDTH ) /\n\t\t\t\t\t( FRAME_REFERENCE_WIDTH - FRAME_MIN_WIDTH )\n\t\t\t)\n\t\t);\n\n\t// Calculate the height based on the intermediate aspect ratio\n\t// ensuring the frame arrives at the target aspect ratio.\n\tconst intermediateAspectRatio = lerp(\n\t\tinitialAspectRatio,\n\t\tFRAME_TARGET_ASPECT_RATIO,\n\t\tlerpFactor\n\t);\n\n\treturn width / intermediateAspectRatio;\n}\n\nfunction ResizableFrame( {\n\tisFullWidth,\n\tisOversized,\n\tsetIsOversized,\n\tisReady,\n\tchildren,\n\tinnerContentStyle,\n} ) {\n\tconst [ frameSize, setFrameSize ] = useState( INITIAL_FRAME_SIZE );\n\t// The width of the resizable frame when a new resize gesture starts.\n\tconst [ startingWidth, setStartingWidth ] = useState();\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ shouldShowHandle, setShouldShowHandle ] = useState( false );\n\tconst [ resizeRatio, setResizeRatio ] = useState( 1 );\n\tconst canvasMode = useSelect(\n\t\t( select ) => unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t[]\n\t);\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst initialAspectRatioRef = useRef( null );\n\t// The width of the resizable frame on initial render.\n\tconst initialComputedWidthRef = useRef( null );\n\tconst FRAME_TRANSITION = { type: 'tween', duration: isResizing ? 0 : 0.5 };\n\tconst frameRef = useRef( null );\n\tconst resizableHandleHelpId = useInstanceId(\n\t\tResizableFrame,\n\t\t'edit-site-resizable-frame-handle-help'\n\t);\n\n\t// Remember frame dimensions on initial render.\n\tuseEffect( () => {\n\t\tconst { offsetWidth, offsetHeight } = frameRef.current.resizable;\n\t\tinitialComputedWidthRef.current = offsetWidth;\n\t\tinitialAspectRatioRef.current = offsetWidth / offsetHeight;\n\t}, [] );\n\n\tconst handleResizeStart = ( _event, _direction, ref ) => {\n\t\t// Remember the starting width so we don't have to get `ref.offsetWidth` on\n\t\t// every resize event thereafter, which will cause layout thrashing.\n\t\tsetStartingWidth( ref.offsetWidth );\n\t\tsetIsResizing( true );\n\t};\n\n\t// Calculate the frame size based on the window width as its resized.\n\tconst handleResize = ( _event, _direction, _ref, delta ) => {\n\t\tconst normalizedDelta = delta.width / resizeRatio;\n\t\tconst deltaAbs = Math.abs( normalizedDelta );\n\t\tconst maxDoubledDelta =\n\t\t\tdelta.width < 0 // is shrinking\n\t\t\t\t? deltaAbs\n\t\t\t\t: ( initialComputedWidthRef.current - startingWidth ) / 2;\n\t\tconst deltaToDouble = Math.min( deltaAbs, maxDoubledDelta );\n\t\tconst doubleSegment = deltaAbs === 0 ? 0 : deltaToDouble / deltaAbs;\n\t\tconst singleSegment = 1 - doubleSegment;\n\n\t\tsetResizeRatio( singleSegment + doubleSegment * 2 );\n\n\t\tconst updatedWidth = startingWidth + delta.width;\n\n\t\tsetIsOversized( updatedWidth > initialComputedWidthRef.current );\n\n\t\t// Width will be controlled by the library (via `resizeRatio`),\n\t\t// so we only need to update the height.\n\t\tsetFrameSize( {\n\t\t\theight: isOversized\n\t\t\t\t? '100%'\n\t\t\t\t: calculateNewHeight(\n\t\t\t\t\t\tupdatedWidth,\n\t\t\t\t\t\tinitialAspectRatioRef.current\n\t\t\t\t ),\n\t\t} );\n\t};\n\n\tconst handleResizeStop = ( _event, _direction, ref ) => {\n\t\tsetIsResizing( false );\n\n\t\tif ( ! isOversized ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsOversized( false );\n\n\t\tconst remainingWidth =\n\t\t\tref.ownerDocument.documentElement.offsetWidth - ref.offsetWidth;\n\n\t\tif ( remainingWidth > SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD ) {\n\t\t\t// Reset the initial aspect ratio if the frame is resized slightly\n\t\t\t// above the sidebar but not far enough to trigger full screen.\n\t\t\tsetFrameSize( INITIAL_FRAME_SIZE );\n\t\t} else {\n\t\t\t// Trigger full screen if the frame is resized far enough to the left.\n\t\t\tsetCanvasMode( 'edit' );\n\t\t}\n\t};\n\n\t// Handle resize by arrow keys\n\tconst handleResizableHandleKeyDown = ( event ) => {\n\t\tif ( ! [ 'ArrowLeft', 'ArrowRight' ].includes( event.key ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst step = 20 * ( event.shiftKey ? 5 : 1 );\n\t\tconst delta = step * ( event.key === 'ArrowLeft' ? 1 : -1 );\n\t\tconst newWidth = Math.min(\n\t\t\tMath.max(\n\t\t\t\tFRAME_MIN_WIDTH,\n\t\t\t\tframeRef.current.resizable.offsetWidth + delta\n\t\t\t),\n\t\t\tinitialComputedWidthRef.current\n\t\t);\n\n\t\tsetFrameSize( {\n\t\t\twidth: newWidth,\n\t\t\theight: calculateNewHeight(\n\t\t\t\tnewWidth,\n\t\t\t\tinitialAspectRatioRef.current\n\t\t\t),\n\t\t} );\n\t};\n\n\tconst frameAnimationVariants = {\n\t\tdefault: {\n\t\t\tflexGrow: 0,\n\t\t\theight: frameSize.height,\n\t\t},\n\t\tfullWidth: {\n\t\t\tflexGrow: 1,\n\t\t\theight: frameSize.height,\n\t\t},\n\t};\n\n\tconst resizeHandleVariants = {\n\t\thidden: {\n\t\t\topacity: 0,\n\t\t\tleft: 0,\n\t\t},\n\t\tvisible: {\n\t\t\topacity: 1,\n\t\t\tleft: -16,\n\t\t},\n\t\tactive: {\n\t\t\topacity: 1,\n\t\t\tleft: -16,\n\t\t\tscaleY: 1.3,\n\t\t},\n\t};\n\tconst currentResizeHandleVariant = ( () => {\n\t\tif ( isResizing ) {\n\t\t\treturn 'active';\n\t\t}\n\t\treturn shouldShowHandle ? 'visible' : 'hidden';\n\t} )();\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tas={ motion.div }\n\t\t\tref={ frameRef }\n\t\t\tinitial={ false }\n\t\t\tvariants={ frameAnimationVariants }\n\t\t\tanimate={ isFullWidth ? 'fullWidth' : 'default' }\n\t\t\tonAnimationComplete={ ( definition ) => {\n\t\t\t\tif ( definition === 'fullWidth' )\n\t\t\t\t\tsetFrameSize( { width: '100%', height: '100%' } );\n\t\t\t} }\n\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\tsize={ frameSize }\n\t\t\tenable={ {\n\t\t\t\ttop: false,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\t// Resizing will be disabled until the editor content is loaded.\n\t\t\t\tleft: isReady,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t} }\n\t\t\tresizeRatio={ resizeRatio }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t\tminWidth={ FRAME_MIN_WIDTH }\n\t\t\tmaxWidth={ isFullWidth ? '100%' : '150%' }\n\t\t\tmaxHeight={ '100%' }\n\t\t\tonFocus={ () => setShouldShowHandle( true ) }\n\t\t\tonBlur={ () => setShouldShowHandle( false ) }\n\t\t\tonMouseOver={ () => setShouldShowHandle( true ) }\n\t\t\tonMouseOut={ () => setShouldShowHandle( false ) }\n\t\t\thandleComponent={ {\n\t\t\t\tleft: canvasMode === 'view' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Tooltip text={ __( 'Drag to resize' ) }>\n\t\t\t\t\t\t\t{ /* Disable reason: role=\"separator\" does in fact support aria-valuenow */ }\n\t\t\t\t\t\t\t{ /* eslint-disable-next-line jsx-a11y/role-supports-aria-props */ }\n\t\t\t\t\t\t\t<motion.button\n\t\t\t\t\t\t\t\tkey=\"handle\"\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'edit-site-resizable-frame__handle',\n\t\t\t\t\t\t\t\t\t{ 'is-resizing': isResizing }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvariants={ resizeHandleVariants }\n\t\t\t\t\t\t\t\tanimate={ currentResizeHandleVariant }\n\t\t\t\t\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\t\t\t\t\taria-describedby={ resizableHandleHelpId }\n\t\t\t\t\t\t\t\taria-valuenow={\n\t\t\t\t\t\t\t\t\tframeRef.current?.resizable?.offsetWidth ||\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-valuemin={ FRAME_MIN_WIDTH }\n\t\t\t\t\t\t\t\taria-valuemax={\n\t\t\t\t\t\t\t\t\tinitialComputedWidthRef.current\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonKeyDown={ handleResizableHandleKeyDown }\n\t\t\t\t\t\t\t\tinitial=\"hidden\"\n\t\t\t\t\t\t\t\texit=\"hidden\"\n\t\t\t\t\t\t\t\twhileFocus=\"active\"\n\t\t\t\t\t\t\t\twhileHover=\"active\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t<div hidden id={ resizableHandleHelpId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Use left and right arrow keys to resize the canvas. Hold shift to resize in larger increments.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonResizeStart={ handleResizeStart }\n\t\t\tonResize={ handleResize }\n\t\t\tonResizeStop={ handleResizeStop }\n\t\t\tclassName={ classnames( 'edit-site-resizable-frame__inner', {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tclassName=\"edit-site-resizable-frame__inner-content\"\n\t\t\t\tanimate={ {\n\t\t\t\t\tborderRadius: isFullWidth ? 0 : 8,\n\t\t\t\t} }\n\t\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\t\tstyle={ innerContentStyle }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</motion.div>\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableFrame;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/resizable-frame/index.js"],"names":["HANDLE_STYLES_OVERRIDE","position","undefined","userSelect","cursor","width","height","top","right","bottom","left","FRAME_MIN_WIDTH","FRAME_REFERENCE_WIDTH","FRAME_TARGET_ASPECT_RATIO","SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD","INITIAL_FRAME_SIZE","calculateNewHeight","initialAspectRatio","lerp","a","b","amount","lerpFactor","Math","max","min","intermediateAspectRatio","ResizableFrame","isFullWidth","isOversized","setIsOversized","isReady","children","defaultSize","innerContentStyle","frameSize","setFrameSize","startingWidth","setStartingWidth","isResizing","setIsResizing","shouldShowHandle","setShouldShowHandle","resizeRatio","setResizeRatio","canvasMode","select","editSiteStore","getCanvasMode","setCanvasMode","FRAME_TRANSITION","type","duration","frameRef","resizableHandleHelpId","defaultAspectRatio","handleResizeStart","_event","_direction","ref","offsetWidth","handleResize","_ref","delta","normalizedDelta","deltaAbs","abs","maxDoubledDelta","deltaToDouble","doubleSegment","singleSegment","updatedWidth","handleResizeStop","remainingWidth","ownerDocument","documentElement","handleResizableHandleKeyDown","event","includes","key","preventDefault","step","shiftKey","newWidth","current","resizable","frameAnimationVariants","default","flexGrow","fullWidth","resizeHandleVariants","hidden","opacity","visible","active","scaleY","currentResizeHandleVariant","motion","div","definition","topRight","bottomRight","bottomLeft","topLeft","borderRadius"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef } from '@wordpress/element';\nimport {\n\tResizableBox,\n\tTooltip,\n\t__unstableMotion as motion,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\n// The minimum width of the frame (in px) while resizing.\nconst FRAME_MIN_WIDTH = 320;\n// The reference width of the frame (in px) used to calculate the aspect ratio.\nconst FRAME_REFERENCE_WIDTH = 1300;\n// 9 : 19.5 is the target aspect ratio enforced (when possible) while resizing.\nconst FRAME_TARGET_ASPECT_RATIO = 9 / 19.5;\n// The minimum distance (in px) between the frame resize handle and the\n// viewport's edge. If the frame is resized to be closer to the viewport's edge\n// than this distance, then \"canvas mode\" will be enabled.\nconst SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD = 200;\n// Default size for the `frameSize` state.\nconst INITIAL_FRAME_SIZE = { width: '100%', height: '100%' };\n\nfunction calculateNewHeight( width, initialAspectRatio ) {\n\tconst lerp = ( a, b, amount ) => {\n\t\treturn a + ( b - a ) * amount;\n\t};\n\n\t// Calculate the intermediate aspect ratio based on the current width.\n\tconst lerpFactor =\n\t\t1 -\n\t\tMath.max(\n\t\t\t0,\n\t\t\tMath.min(\n\t\t\t\t1,\n\t\t\t\t( width - FRAME_MIN_WIDTH ) /\n\t\t\t\t\t( FRAME_REFERENCE_WIDTH - FRAME_MIN_WIDTH )\n\t\t\t)\n\t\t);\n\n\t// Calculate the height based on the intermediate aspect ratio\n\t// ensuring the frame arrives at the target aspect ratio.\n\tconst intermediateAspectRatio = lerp(\n\t\tinitialAspectRatio,\n\t\tFRAME_TARGET_ASPECT_RATIO,\n\t\tlerpFactor\n\t);\n\n\treturn width / intermediateAspectRatio;\n}\n\nfunction ResizableFrame( {\n\tisFullWidth,\n\tisOversized,\n\tsetIsOversized,\n\tisReady,\n\tchildren,\n\t/** The default (unresized) width/height of the frame, based on the space availalbe in the viewport. */\n\tdefaultSize,\n\tinnerContentStyle,\n} ) {\n\tconst [ frameSize, setFrameSize ] = useState( INITIAL_FRAME_SIZE );\n\t// The width of the resizable frame when a new resize gesture starts.\n\tconst [ startingWidth, setStartingWidth ] = useState();\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ shouldShowHandle, setShouldShowHandle ] = useState( false );\n\tconst [ resizeRatio, setResizeRatio ] = useState( 1 );\n\tconst canvasMode = useSelect(\n\t\t( select ) => unlock( select( editSiteStore ) ).getCanvasMode(),\n\t\t[]\n\t);\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst FRAME_TRANSITION = { type: 'tween', duration: isResizing ? 0 : 0.5 };\n\tconst frameRef = useRef( null );\n\tconst resizableHandleHelpId = useInstanceId(\n\t\tResizableFrame,\n\t\t'edit-site-resizable-frame-handle-help'\n\t);\n\tconst defaultAspectRatio = defaultSize.width / defaultSize.height;\n\n\tconst handleResizeStart = ( _event, _direction, ref ) => {\n\t\t// Remember the starting width so we don't have to get `ref.offsetWidth` on\n\t\t// every resize event thereafter, which will cause layout thrashing.\n\t\tsetStartingWidth( ref.offsetWidth );\n\t\tsetIsResizing( true );\n\t};\n\n\t// Calculate the frame size based on the window width as its resized.\n\tconst handleResize = ( _event, _direction, _ref, delta ) => {\n\t\tconst normalizedDelta = delta.width / resizeRatio;\n\t\tconst deltaAbs = Math.abs( normalizedDelta );\n\t\tconst maxDoubledDelta =\n\t\t\tdelta.width < 0 // is shrinking\n\t\t\t\t? deltaAbs\n\t\t\t\t: ( defaultSize.width - startingWidth ) / 2;\n\t\tconst deltaToDouble = Math.min( deltaAbs, maxDoubledDelta );\n\t\tconst doubleSegment = deltaAbs === 0 ? 0 : deltaToDouble / deltaAbs;\n\t\tconst singleSegment = 1 - doubleSegment;\n\n\t\tsetResizeRatio( singleSegment + doubleSegment * 2 );\n\n\t\tconst updatedWidth = startingWidth + delta.width;\n\n\t\tsetIsOversized( updatedWidth > defaultSize.width );\n\n\t\t// Width will be controlled by the library (via `resizeRatio`),\n\t\t// so we only need to update the height.\n\t\tsetFrameSize( {\n\t\t\theight: isOversized\n\t\t\t\t? '100%'\n\t\t\t\t: calculateNewHeight( updatedWidth, defaultAspectRatio ),\n\t\t} );\n\t};\n\n\tconst handleResizeStop = ( _event, _direction, ref ) => {\n\t\tsetIsResizing( false );\n\n\t\tif ( ! isOversized ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsOversized( false );\n\n\t\tconst remainingWidth =\n\t\t\tref.ownerDocument.documentElement.offsetWidth - ref.offsetWidth;\n\n\t\tif ( remainingWidth > SNAP_TO_EDIT_CANVAS_MODE_THRESHOLD ) {\n\t\t\t// Reset the initial aspect ratio if the frame is resized slightly\n\t\t\t// above the sidebar but not far enough to trigger full screen.\n\t\t\tsetFrameSize( INITIAL_FRAME_SIZE );\n\t\t} else {\n\t\t\t// Trigger full screen if the frame is resized far enough to the left.\n\t\t\tsetCanvasMode( 'edit' );\n\t\t}\n\t};\n\n\t// Handle resize by arrow keys\n\tconst handleResizableHandleKeyDown = ( event ) => {\n\t\tif ( ! [ 'ArrowLeft', 'ArrowRight' ].includes( event.key ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst step = 20 * ( event.shiftKey ? 5 : 1 );\n\t\tconst delta = step * ( event.key === 'ArrowLeft' ? 1 : -1 );\n\t\tconst newWidth = Math.min(\n\t\t\tMath.max(\n\t\t\t\tFRAME_MIN_WIDTH,\n\t\t\t\tframeRef.current.resizable.offsetWidth + delta\n\t\t\t),\n\t\t\tdefaultSize.width\n\t\t);\n\n\t\tsetFrameSize( {\n\t\t\twidth: newWidth,\n\t\t\theight: calculateNewHeight( newWidth, defaultAspectRatio ),\n\t\t} );\n\t};\n\n\tconst frameAnimationVariants = {\n\t\tdefault: {\n\t\t\tflexGrow: 0,\n\t\t\theight: frameSize.height,\n\t\t},\n\t\tfullWidth: {\n\t\t\tflexGrow: 1,\n\t\t\theight: frameSize.height,\n\t\t},\n\t};\n\n\tconst resizeHandleVariants = {\n\t\thidden: {\n\t\t\topacity: 0,\n\t\t\tleft: 0,\n\t\t},\n\t\tvisible: {\n\t\t\topacity: 1,\n\t\t\tleft: -16,\n\t\t},\n\t\tactive: {\n\t\t\topacity: 1,\n\t\t\tleft: -16,\n\t\t\tscaleY: 1.3,\n\t\t},\n\t};\n\tconst currentResizeHandleVariant = ( () => {\n\t\tif ( isResizing ) {\n\t\t\treturn 'active';\n\t\t}\n\t\treturn shouldShowHandle ? 'visible' : 'hidden';\n\t} )();\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tas={ motion.div }\n\t\t\tref={ frameRef }\n\t\t\tinitial={ false }\n\t\t\tvariants={ frameAnimationVariants }\n\t\t\tanimate={ isFullWidth ? 'fullWidth' : 'default' }\n\t\t\tonAnimationComplete={ ( definition ) => {\n\t\t\t\tif ( definition === 'fullWidth' )\n\t\t\t\t\tsetFrameSize( { width: '100%', height: '100%' } );\n\t\t\t} }\n\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\tsize={ frameSize }\n\t\t\tenable={ {\n\t\t\t\ttop: false,\n\t\t\t\tright: false,\n\t\t\t\tbottom: false,\n\t\t\t\t// Resizing will be disabled until the editor content is loaded.\n\t\t\t\tleft: isReady,\n\t\t\t\ttopRight: false,\n\t\t\t\tbottomRight: false,\n\t\t\t\tbottomLeft: false,\n\t\t\t\ttopLeft: false,\n\t\t\t} }\n\t\t\tresizeRatio={ resizeRatio }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t\tminWidth={ FRAME_MIN_WIDTH }\n\t\t\tmaxWidth={ isFullWidth ? '100%' : '150%' }\n\t\t\tmaxHeight={ '100%' }\n\t\t\tonFocus={ () => setShouldShowHandle( true ) }\n\t\t\tonBlur={ () => setShouldShowHandle( false ) }\n\t\t\tonMouseOver={ () => setShouldShowHandle( true ) }\n\t\t\tonMouseOut={ () => setShouldShowHandle( false ) }\n\t\t\thandleComponent={ {\n\t\t\t\tleft: canvasMode === 'view' && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Tooltip text={ __( 'Drag to resize' ) }>\n\t\t\t\t\t\t\t{ /* Disable reason: role=\"separator\" does in fact support aria-valuenow */ }\n\t\t\t\t\t\t\t{ /* eslint-disable-next-line jsx-a11y/role-supports-aria-props */ }\n\t\t\t\t\t\t\t<motion.button\n\t\t\t\t\t\t\t\tkey=\"handle\"\n\t\t\t\t\t\t\t\trole=\"separator\"\n\t\t\t\t\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t'edit-site-resizable-frame__handle',\n\t\t\t\t\t\t\t\t\t{ 'is-resizing': isResizing }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvariants={ resizeHandleVariants }\n\t\t\t\t\t\t\t\tanimate={ currentResizeHandleVariant }\n\t\t\t\t\t\t\t\taria-label={ __( 'Drag to resize' ) }\n\t\t\t\t\t\t\t\taria-describedby={ resizableHandleHelpId }\n\t\t\t\t\t\t\t\taria-valuenow={\n\t\t\t\t\t\t\t\t\tframeRef.current?.resizable?.offsetWidth ||\n\t\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-valuemin={ FRAME_MIN_WIDTH }\n\t\t\t\t\t\t\t\taria-valuemax={ defaultSize.width }\n\t\t\t\t\t\t\t\tonKeyDown={ handleResizableHandleKeyDown }\n\t\t\t\t\t\t\t\tinitial=\"hidden\"\n\t\t\t\t\t\t\t\texit=\"hidden\"\n\t\t\t\t\t\t\t\twhileFocus=\"active\"\n\t\t\t\t\t\t\t\twhileHover=\"active\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t<div hidden id={ resizableHandleHelpId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Use left and right arrow keys to resize the canvas. Hold shift to resize in larger increments.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t),\n\t\t\t} }\n\t\t\tonResizeStart={ handleResizeStart }\n\t\t\tonResize={ handleResize }\n\t\t\tonResizeStop={ handleResizeStop }\n\t\t\tclassName={ classnames( 'edit-site-resizable-frame__inner', {\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t} ) }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tclassName=\"edit-site-resizable-frame__inner-content\"\n\t\t\t\tanimate={ {\n\t\t\t\t\tborderRadius: isFullWidth ? 0 : 8,\n\t\t\t\t} }\n\t\t\t\ttransition={ FRAME_TRANSITION }\n\t\t\t\tstyle={ innerContentStyle }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</motion.div>\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableFrame;\n"]}
@@ -33,7 +33,8 @@ function SaveButton({
33
33
  variant = 'primary',
34
34
  showTooltip = true,
35
35
  defaultLabel,
36
- icon
36
+ icon,
37
+ __next40pxDefaultSize = false
37
38
  }) {
38
39
  const {
39
40
  isDirty,
@@ -109,7 +110,8 @@ function SaveButton({
109
110
  */
110
111
  ,
111
112
  showTooltip: showTooltip,
112
- icon: icon
113
+ icon: icon,
114
+ __next40pxDefaultSize: __next40pxDefaultSize
113
115
  }, label);
114
116
  }
115
117
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/save-button/index.js"],"names":["SaveButton","className","variant","showTooltip","defaultLabel","icon","isDirty","isSaving","isSaveViewOpen","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","isSaveViewOpened","editSiteStore","length","some","record","kind","name","key","setIsSaveViewOpened","activateSaveEnabled","disabled","getLabel","label","undefined","displayShortcut","primary"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIe,SAASA,UAAT,CAAqB;AACnCC,EAAAA,SAAS,GAAG,+BADuB;AAEnCC,EAAAA,OAAO,GAAG,SAFyB;AAGnCC,EAAAA,WAAW,GAAG,IAHqB;AAInCC,EAAAA,YAJmC;AAKnCC,EAAAA;AALmC,CAArB,EAMX;AACH,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,MAAwC,qBAAaC,MAAF,IAAc;AACtE,UAAM;AAAEC,MAAAA,mCAAF;AAAuCC,MAAAA;AAAvC,QACLF,MAAM,CAAEG,eAAF,CADP;;AAEA,UAAMC,kBAAkB,GAAGH,mCAAmC,EAA9D;;AACA,UAAM;AAAEI,MAAAA;AAAF,QAAuBL,MAAM,CAAEM,YAAF,CAAnC;AACA,WAAO;AACNT,MAAAA,OAAO,EAAEO,kBAAkB,CAACG,MAAnB,GAA4B,CAD/B;AAENT,MAAAA,QAAQ,EAAEM,kBAAkB,CAACI,IAAnB,CAA2BC,MAAF,IAClCP,oBAAoB,CAAEO,MAAM,CAACC,IAAT,EAAeD,MAAM,CAACE,IAAtB,EAA4BF,MAAM,CAACG,GAAnC,CADX,CAFJ;AAKNb,MAAAA,cAAc,EAAEM,gBAAgB;AAL1B,KAAP;AAOA,GAZ6C,EAY3C,EAZ2C,CAA9C;AAaA,QAAM;AAAEQ,IAAAA;AAAF,MAA0B,uBAAaP,YAAb,CAAhC;AAEA,QAAMQ,mBAAmB,GAAG,+CAAuBjB,OAAnD;AACA,QAAMkB,QAAQ,GAAGjB,QAAQ,IAAI,CAAEgB,mBAA/B;;AAEA,QAAME,QAAQ,GAAG,MAAM;AACtB,QAAK,2CAAL,EAA2B;AAC1B,UAAKlB,QAAL,EAAgB;AACf,eAAO,cAAI,YAAJ,CAAP;AACA,OAFD,MAEO,IAAKiB,QAAL,EAAgB;AACtB,eAAO,cAAI,OAAJ,CAAP;AACA,OAFM,MAEA,IAAKlB,OAAL,EAAe;AACrB,eAAO,cAAI,iBAAJ,CAAP;AACA;;AACD,aAAO,cAAI,UAAJ,CAAP;AACA;;AAED,QAAKC,QAAL,EAAgB;AACf,aAAO,cAAI,QAAJ,CAAP;AACA,KAFD,MAEO,IAAKiB,QAAL,EAAgB;AACtB,aAAO,cAAI,OAAJ,CAAP;AACA,KAFM,MAEA,IAAKpB,YAAL,EAAoB;AAC1B,aAAOA,YAAP;AACA;;AACD,WAAO,cAAI,MAAJ,CAAP;AACA,GApBD;;AAqBA,QAAMsB,KAAK,GAAGD,QAAQ,EAAtB;AAEA,SACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAGvB,OADX;AAEC,IAAA,SAAS,EAAGD,SAFb;AAGC,qBAAgBuB,QAHjB;AAIC,qBAAgBhB,cAJjB;AAKC,IAAA,MAAM,EAAGD,QALV;AAMC,IAAA,OAAO,EAAGiB,QAAQ,GAAGG,SAAH,GAAe,MAAML,mBAAmB,CAAE,IAAF,CAN3D;AAOC,IAAA,KAAK,EAAGI;AACR;AACH;AACA;AACA;AAXE;AAYC,IAAA,QAAQ,EAAGF,QAAQ,GAAGG,SAAH,GAAeC,0BAAgBC,OAAhB,CAAyB,GAAzB;AAClC;AACH;AACA;AACA;AACA;AACA;AAlBE;AAmBC,IAAA,WAAW,EAAG1B,WAnBf;AAoBC,IAAA,IAAI,EAAGE;AApBR,KAsBGqB,KAtBH,CADD;AA0BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\treturn {\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t),\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn __( 'Activating' );\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn __( 'Activate & Save' );\n\t\t\t}\n\t\t\treturn __( 'Activate' );\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\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={ disabled ? 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={ showTooltip }\n\t\t\ticon={ icon }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/save-button/index.js"],"names":["SaveButton","className","variant","showTooltip","defaultLabel","icon","__next40pxDefaultSize","isDirty","isSaving","isSaveViewOpen","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","isSaveViewOpened","editSiteStore","length","some","record","kind","name","key","setIsSaveViewOpened","activateSaveEnabled","disabled","getLabel","label","undefined","displayShortcut","primary"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIe,SAASA,UAAT,CAAqB;AACnCC,EAAAA,SAAS,GAAG,+BADuB;AAEnCC,EAAAA,OAAO,GAAG,SAFyB;AAGnCC,EAAAA,WAAW,GAAG,IAHqB;AAInCC,EAAAA,YAJmC;AAKnCC,EAAAA,IALmC;AAMnCC,EAAAA,qBAAqB,GAAG;AANW,CAArB,EAOX;AACH,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA;AAArB,MAAwC,qBAAaC,MAAF,IAAc;AACtE,UAAM;AAAEC,MAAAA,mCAAF;AAAuCC,MAAAA;AAAvC,QACLF,MAAM,CAAEG,eAAF,CADP;;AAEA,UAAMC,kBAAkB,GAAGH,mCAAmC,EAA9D;;AACA,UAAM;AAAEI,MAAAA;AAAF,QAAuBL,MAAM,CAAEM,YAAF,CAAnC;AACA,WAAO;AACNT,MAAAA,OAAO,EAAEO,kBAAkB,CAACG,MAAnB,GAA4B,CAD/B;AAENT,MAAAA,QAAQ,EAAEM,kBAAkB,CAACI,IAAnB,CAA2BC,MAAF,IAClCP,oBAAoB,CAAEO,MAAM,CAACC,IAAT,EAAeD,MAAM,CAACE,IAAtB,EAA4BF,MAAM,CAACG,GAAnC,CADX,CAFJ;AAKNb,MAAAA,cAAc,EAAEM,gBAAgB;AAL1B,KAAP;AAOA,GAZ6C,EAY3C,EAZ2C,CAA9C;AAaA,QAAM;AAAEQ,IAAAA;AAAF,MAA0B,uBAAaP,YAAb,CAAhC;AAEA,QAAMQ,mBAAmB,GAAG,+CAAuBjB,OAAnD;AACA,QAAMkB,QAAQ,GAAGjB,QAAQ,IAAI,CAAEgB,mBAA/B;;AAEA,QAAME,QAAQ,GAAG,MAAM;AACtB,QAAK,2CAAL,EAA2B;AAC1B,UAAKlB,QAAL,EAAgB;AACf,eAAO,cAAI,YAAJ,CAAP;AACA,OAFD,MAEO,IAAKiB,QAAL,EAAgB;AACtB,eAAO,cAAI,OAAJ,CAAP;AACA,OAFM,MAEA,IAAKlB,OAAL,EAAe;AACrB,eAAO,cAAI,iBAAJ,CAAP;AACA;;AACD,aAAO,cAAI,UAAJ,CAAP;AACA;;AAED,QAAKC,QAAL,EAAgB;AACf,aAAO,cAAI,QAAJ,CAAP;AACA,KAFD,MAEO,IAAKiB,QAAL,EAAgB;AACtB,aAAO,cAAI,OAAJ,CAAP;AACA,KAFM,MAEA,IAAKrB,YAAL,EAAoB;AAC1B,aAAOA,YAAP;AACA;;AACD,WAAO,cAAI,MAAJ,CAAP;AACA,GApBD;;AAqBA,QAAMuB,KAAK,GAAGD,QAAQ,EAAtB;AAEA,SACC,4BAAC,kBAAD;AACC,IAAA,OAAO,EAAGxB,OADX;AAEC,IAAA,SAAS,EAAGD,SAFb;AAGC,qBAAgBwB,QAHjB;AAIC,qBAAgBhB,cAJjB;AAKC,IAAA,MAAM,EAAGD,QALV;AAMC,IAAA,OAAO,EAAGiB,QAAQ,GAAGG,SAAH,GAAe,MAAML,mBAAmB,CAAE,IAAF,CAN3D;AAOC,IAAA,KAAK,EAAGI;AACR;AACH;AACA;AACA;AAXE;AAYC,IAAA,QAAQ,EAAGF,QAAQ,GAAGG,SAAH,GAAeC,0BAAgBC,OAAhB,CAAyB,GAAzB;AAClC;AACH;AACA;AACA;AACA;AACA;AAlBE;AAmBC,IAAA,WAAW,EAAG3B,WAnBf;AAoBC,IAAA,IAAI,EAAGE,IApBR;AAqBC,IAAA,qBAAqB,EAAGC;AArBzB,KAuBGqB,KAvBH,CADD;AA2BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\n\nexport default function SaveButton( {\n\tclassName = 'edit-site-save-button__button',\n\tvariant = 'primary',\n\tshowTooltip = true,\n\tdefaultLabel,\n\ticon,\n\t__next40pxDefaultSize = false,\n} ) {\n\tconst { isDirty, isSaving, isSaveViewOpen } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetDirtyEntityRecords, isSavingEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\tconst { isSaveViewOpened } = select( editSiteStore );\n\t\treturn {\n\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\tisSavingEntityRecord( record.kind, record.name, record.key )\n\t\t\t),\n\t\t\tisSaveViewOpen: isSaveViewOpened(),\n\t\t};\n\t}, [] );\n\tconst { setIsSaveViewOpened } = useDispatch( editSiteStore );\n\n\tconst activateSaveEnabled = isPreviewingTheme() || isDirty;\n\tconst disabled = isSaving || ! activateSaveEnabled;\n\n\tconst getLabel = () => {\n\t\tif ( isPreviewingTheme() ) {\n\t\t\tif ( isSaving ) {\n\t\t\t\treturn __( 'Activating' );\n\t\t\t} else if ( disabled ) {\n\t\t\t\treturn __( 'Saved' );\n\t\t\t} else if ( isDirty ) {\n\t\t\t\treturn __( 'Activate & Save' );\n\t\t\t}\n\t\t\treturn __( 'Activate' );\n\t\t}\n\n\t\tif ( isSaving ) {\n\t\t\treturn __( 'Saving' );\n\t\t} else if ( disabled ) {\n\t\t\treturn __( 'Saved' );\n\t\t} else if ( defaultLabel ) {\n\t\t\treturn defaultLabel;\n\t\t}\n\t\treturn __( 'Save' );\n\t};\n\tconst label = getLabel();\n\n\treturn (\n\t\t<Button\n\t\t\tvariant={ variant }\n\t\t\tclassName={ className }\n\t\t\taria-disabled={ disabled }\n\t\t\taria-expanded={ isSaveViewOpen }\n\t\t\tisBusy={ isSaving }\n\t\t\tonClick={ disabled ? undefined : () => setIsSaveViewOpened( true ) }\n\t\t\tlabel={ label }\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={ disabled ? 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={ showTooltip }\n\t\t\ticon={ icon }\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t>\n\t\t\t{ label }\n\t\t</Button>\n\t);\n}\n"]}
@@ -47,6 +47,7 @@ const PUBLISH_ON_SAVE_ENTITIES = [{
47
47
  }];
48
48
 
49
49
  function SaveHub() {
50
+ const saveNoticeId = 'site-edit-save-notice';
50
51
  const {
51
52
  params
52
53
  } = useLocation();
@@ -55,7 +56,8 @@ function SaveHub() {
55
56
  } = (0, _data.useDispatch)(_blockEditor.store);
56
57
  const {
57
58
  createSuccessNotice,
58
- createErrorNotice
59
+ createErrorNotice,
60
+ removeNotice
59
61
  } = (0, _data.useDispatch)(_notices.store);
60
62
  const {
61
63
  dirtyCurrentEntity,
@@ -105,6 +107,7 @@ function SaveHub() {
105
107
 
106
108
  const saveCurrentEntity = async () => {
107
109
  if (!dirtyCurrentEntity) return;
110
+ removeNotice(saveNoticeId);
108
111
  const {
109
112
  kind,
110
113
  name,
@@ -128,7 +131,8 @@ function SaveHub() {
128
131
  __unstableMarkLastChangeAsPersistent();
129
132
 
130
133
  createSuccessNotice((0, _i18n.__)('Site updated.'), {
131
- type: 'snackbar'
134
+ type: 'snackbar',
135
+ id: saveNoticeId
132
136
  });
133
137
  } catch (error) {
134
138
  createErrorNotice(`${(0, _i18n.__)('Saving failed.')} ${error}`);
@@ -145,13 +149,15 @@ function SaveHub() {
145
149
  isBusy: isSaving,
146
150
  disabled: isSaving,
147
151
  "aria-disabled": isSaving,
148
- className: "edit-site-save-hub__button"
152
+ className: "edit-site-save-hub__button",
153
+ __next40pxDefaultSize: true
149
154
  }, label) : (0, _element.createElement)(_saveButton.default, {
150
155
  className: "edit-site-save-hub__button",
151
156
  variant: disabled ? null : 'primary',
152
157
  showTooltip: false,
153
158
  icon: disabled && !isSaving ? _icons.check : null,
154
- defaultLabel: label
159
+ defaultLabel: label,
160
+ __next40pxDefaultSize: true
155
161
  }));
156
162
  }
157
163
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/save-hub/index.js"],"names":["useLocation","routerPrivateApis","PUBLISH_ON_SAVE_ENTITIES","kind","name","SaveHub","params","__unstableMarkLastChangeAsPersistent","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","dirtyCurrentEntity","countUnsavedChanges","isDirty","isSaving","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","calcDirtyCurrentEntity","length","path","includes","find","record","postId","postType","String","key","some","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","disabled","label","saveCurrentEntity","property","undefined","typeToPublish","status","type","error","check"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { check } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function SaveHub() {\n\tconst { params } = useLocation();\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { dirtyCurrentEntity, countUnsavedChanges, isDirty, isSaving } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tconst dirtyEntityRecords =\n\t\t\t\t\t__experimentalGetDirtyEntityRecords();\n\t\t\t\tlet calcDirtyCurrentEntity = null;\n\n\t\t\t\tif ( dirtyEntityRecords.length === 1 ) {\n\t\t\t\t\t// if we are on global styles\n\t\t\t\t\tif ( params.path?.includes( 'wp_global_styles' ) ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) => record.name === 'globalStyles'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// if we are on pages\n\t\t\t\t\telse if ( params.postId ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) =>\n\t\t\t\t\t\t\t\trecord.name === params.postType &&\n\t\t\t\t\t\t\t\tString( record.key ) === params.postId\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdirtyCurrentEntity: calcDirtyCurrentEntity,\n\t\t\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\t\tisSavingEntityRecord(\n\t\t\t\t\t\t\trecord.kind,\n\t\t\t\t\t\t\trecord.name,\n\t\t\t\t\t\t\trecord.key\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\tcountUnsavedChanges: dirtyEntityRecords.length,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ params.path, params.postType, params.postId ]\n\t\t);\n\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst disabled = isSaving || ( ! isDirty && ! isPreviewingTheme() );\n\n\t// if we have only one unsaved change and it matches current context, we can show a more specific label\n\tlet label = dirtyCurrentEntity\n\t\t? __( 'Save' )\n\t\t: sprintf(\n\t\t\t\t// translators: %d: number of unsaved changes (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Review %d change…',\n\t\t\t\t\t'Review %d changes…',\n\t\t\t\t\tcountUnsavedChanges\n\t\t\t\t),\n\t\t\t\tcountUnsavedChanges\n\t\t );\n\n\tif ( isSaving ) {\n\t\tlabel = __( 'Saving' );\n\t}\n\n\tconst saveCurrentEntity = async () => {\n\t\tif ( ! dirtyCurrentEntity ) return;\n\n\t\tconst { kind, name, key, property } = dirtyCurrentEntity;\n\n\t\ttry {\n\t\t\tif ( 'root' === dirtyCurrentEntity.kind && 'site' === name ) {\n\t\t\t\tawait saveSpecifiedEntityEdits( 'root', 'site', undefined, [\n\t\t\t\t\tproperty,\n\t\t\t\t] );\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\tawait saveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` );\n\t\t}\n\t};\n\n\treturn (\n\t\t<HStack className=\"edit-site-save-hub\" alignment=\"right\" spacing={ 4 }>\n\t\t\t{ dirtyCurrentEntity ? (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveCurrentEntity }\n\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\taria-disabled={ isSaving }\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Button>\n\t\t\t) : (\n\t\t\t\t<SaveButton\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\tvariant={ disabled ? null : 'primary' }\n\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\ticon={ disabled && ! isSaving ? check : null }\n\t\t\t\t\tdefaultLabel={ label }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/save-hub/index.js"],"names":["useLocation","routerPrivateApis","PUBLISH_ON_SAVE_ENTITIES","kind","name","SaveHub","saveNoticeId","params","__unstableMarkLastChangeAsPersistent","blockEditorStore","createSuccessNotice","createErrorNotice","removeNotice","noticesStore","dirtyCurrentEntity","countUnsavedChanges","isDirty","isSaving","select","__experimentalGetDirtyEntityRecords","isSavingEntityRecord","coreStore","dirtyEntityRecords","calcDirtyCurrentEntity","length","path","includes","find","record","postId","postType","String","key","some","editEntityRecord","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","disabled","label","saveCurrentEntity","property","undefined","typeToPublish","status","type","id","error","check"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { Button, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { check } from '@wordpress/icons';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport SaveButton from '../save-button';\nimport { isPreviewingTheme } from '../../utils/is-previewing-theme';\nimport { unlock } from '../../lock-unlock';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function SaveHub() {\n\tconst saveNoticeId = 'site-edit-save-notice';\n\tconst { params } = useLocation();\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice, removeNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { dirtyCurrentEntity, countUnsavedChanges, isDirty, isSaving } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalGetDirtyEntityRecords,\n\t\t\t\t\tisSavingEntityRecord,\n\t\t\t\t} = select( coreStore );\n\t\t\t\tconst dirtyEntityRecords =\n\t\t\t\t\t__experimentalGetDirtyEntityRecords();\n\t\t\t\tlet calcDirtyCurrentEntity = null;\n\n\t\t\t\tif ( dirtyEntityRecords.length === 1 ) {\n\t\t\t\t\t// if we are on global styles\n\t\t\t\t\tif ( params.path?.includes( 'wp_global_styles' ) ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) => record.name === 'globalStyles'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// if we are on pages\n\t\t\t\t\telse if ( params.postId ) {\n\t\t\t\t\t\tcalcDirtyCurrentEntity = dirtyEntityRecords.find(\n\t\t\t\t\t\t\t( record ) =>\n\t\t\t\t\t\t\t\trecord.name === params.postType &&\n\t\t\t\t\t\t\t\tString( record.key ) === params.postId\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdirtyCurrentEntity: calcDirtyCurrentEntity,\n\t\t\t\t\tisDirty: dirtyEntityRecords.length > 0,\n\t\t\t\t\tisSaving: dirtyEntityRecords.some( ( record ) =>\n\t\t\t\t\t\tisSavingEntityRecord(\n\t\t\t\t\t\t\trecord.kind,\n\t\t\t\t\t\t\trecord.name,\n\t\t\t\t\t\t\trecord.key\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\tcountUnsavedChanges: dirtyEntityRecords.length,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ params.path, params.postType, params.postId ]\n\t\t);\n\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst disabled = isSaving || ( ! isDirty && ! isPreviewingTheme() );\n\n\t// if we have only one unsaved change and it matches current context, we can show a more specific label\n\tlet label = dirtyCurrentEntity\n\t\t? __( 'Save' )\n\t\t: sprintf(\n\t\t\t\t// translators: %d: number of unsaved changes (number).\n\t\t\t\t_n(\n\t\t\t\t\t'Review %d change…',\n\t\t\t\t\t'Review %d changes…',\n\t\t\t\t\tcountUnsavedChanges\n\t\t\t\t),\n\t\t\t\tcountUnsavedChanges\n\t\t );\n\n\tif ( isSaving ) {\n\t\tlabel = __( 'Saving' );\n\t}\n\n\tconst saveCurrentEntity = async () => {\n\t\tif ( ! dirtyCurrentEntity ) return;\n\n\t\tremoveNotice( saveNoticeId );\n\t\tconst { kind, name, key, property } = dirtyCurrentEntity;\n\n\t\ttry {\n\t\t\tif ( 'root' === dirtyCurrentEntity.kind && 'site' === name ) {\n\t\t\t\tawait saveSpecifiedEntityEdits( 'root', 'site', undefined, [\n\t\t\t\t\tproperty,\n\t\t\t\t] );\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\tawait saveEditedEntityRecord( kind, name, key );\n\t\t\t}\n\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: saveNoticeId,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` );\n\t\t}\n\t};\n\n\treturn (\n\t\t<HStack className=\"edit-site-save-hub\" alignment=\"right\" spacing={ 4 }>\n\t\t\t{ dirtyCurrentEntity ? (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tonClick={ saveCurrentEntity }\n\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\taria-disabled={ isSaving }\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</Button>\n\t\t\t) : (\n\t\t\t\t<SaveButton\n\t\t\t\t\tclassName=\"edit-site-save-hub__button\"\n\t\t\t\t\tvariant={ disabled ? null : 'primary' }\n\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\ticon={ disabled && ! isSaving ? check : null }\n\t\t\t\t\tdefaultLabel={ label }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"]}
@@ -40,13 +40,18 @@ var _sidebarCard = _interopRequireDefault(require("../sidebar-card"));
40
40
  /**
41
41
  * Internal dependencies
42
42
  */
43
+ const CARD_ICONS = {
44
+ wp_block: _icons.symbol,
45
+ wp_navigation: _icons.navigation
46
+ };
47
+
43
48
  function TemplatePanel() {
49
+ var _CARD_ICONS$record$ty;
50
+
44
51
  const {
45
- info: {
46
- title,
47
- description,
48
- icon
49
- },
52
+ title,
53
+ description,
54
+ icon,
50
55
  record
51
56
  } = (0, _data.useSelect)(select => {
52
57
  const {
@@ -64,9 +69,11 @@ function TemplatePanel() {
64
69
 
65
70
  const _record = getEditedEntityRecord('postType', postType, postId);
66
71
 
67
- const info = _record ? getTemplateInfo(_record) : {};
72
+ const info = getTemplateInfo(_record);
68
73
  return {
69
- info,
74
+ title: info.title,
75
+ description: info.description,
76
+ icon: info.icon,
70
77
  record: _record
71
78
  };
72
79
  }, []);
@@ -80,7 +87,7 @@ function TemplatePanel() {
80
87
  }, (0, _element.createElement)(_sidebarCard.default, {
81
88
  className: "edit-site-template-card",
82
89
  title: (0, _htmlEntities.decodeEntities)(title),
83
- icon: record?.type === 'wp_navigation' ? _icons.navigation : icon,
90
+ icon: (_CARD_ICONS$record$ty = CARD_ICONS[record?.type]) !== null && _CARD_ICONS$record$ty !== void 0 ? _CARD_ICONS$record$ty : icon,
84
91
  description: (0, _htmlEntities.decodeEntities)(description),
85
92
  actions: (0, _element.createElement)(_templateActions.default, {
86
93
  template: record
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/index.js"],"names":["TemplatePanel","info","title","description","icon","record","select","getEditedPostType","getEditedPostId","editSiteStore","getEditedEntityRecord","coreStore","__experimentalGetTemplateInfo","getTemplateInfo","editorStore","postType","postId","_record","type","navigationIcon"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAlBA;AACA;AACA;;AASA;AACA;AACA;AAOe,SAASA,aAAT,GAAyB;AACvC,QAAM;AACLC,IAAAA,IAAI,EAAE;AAAEC,MAAAA,KAAF;AAASC,MAAAA,WAAT;AAAsBC,MAAAA;AAAtB,KADD;AAELC,IAAAA;AAFK,MAGF,qBAAaC,MAAF,IAAc;AAC5B,UAAM;AAAEC,MAAAA,iBAAF;AAAqBC,MAAAA;AAArB,QAAyCF,MAAM,CAAEG,YAAF,CAArD;AACA,UAAM;AAAEC,MAAAA;AAAF,QAA4BJ,MAAM,CAAEK,eAAF,CAAxC;AACA,UAAM;AAAEC,MAAAA,6BAA6B,EAAEC;AAAjC,QACLP,MAAM,CAAEQ,aAAF,CADP;AAGA,UAAMC,QAAQ,GAAGR,iBAAiB,EAAlC;AACA,UAAMS,MAAM,GAAGR,eAAe,EAA9B;;AACA,UAAMS,OAAO,GAAGP,qBAAqB,CAAE,UAAF,EAAcK,QAAd,EAAwBC,MAAxB,CAArC;;AAEA,UAAMf,IAAI,GAAGgB,OAAO,GAAGJ,eAAe,CAAEI,OAAF,CAAlB,GAAgC,EAApD;AAEA,WAAO;AAAEhB,MAAAA,IAAF;AAAQI,MAAAA,MAAM,EAAEY;AAAhB,KAAP;AACA,GAbG,EAaD,EAbC,CAHJ;;AAkBA,MAAK,CAAEf,KAAF,IAAW,CAAEC,WAAlB,EAAgC;AAC/B,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,qBAAD;AAAW,IAAA,SAAS,EAAC;AAArB,KACC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAC,yBADX;AAEC,IAAA,KAAK,EAAG,kCAAgBD,KAAhB,CAFT;AAGC,IAAA,IAAI,EACHG,MAAM,EAAEa,IAAR,KAAiB,eAAjB,GAAmCC,iBAAnC,GAAoDf,IAJtD;AAMC,IAAA,WAAW,EAAG,kCAAgBD,WAAhB,CANf;AAOC,IAAA,OAAO,EAAG,4BAAC,wBAAD;AAAiB,MAAA,QAAQ,EAAGE;AAA5B;AAPX,KASC,4BAAC,sBAAD,OATD,CADD,EAYC,4BAAC,oBAAD;AACC,IAAA,MAAM,EAAG,cAAI,iBAAJ,CADV;AAEC,IAAA,SAAS,EAAC;AAFX,KAIC,4BAAC,qBAAD,OAJD,CAZD,CADD;AAqBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { PanelRow, PanelBody } from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { navigation as navigationIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport TemplateActions from './template-actions';\nimport TemplateAreas from './template-areas';\nimport LastRevision from './last-revision';\nimport SidebarCard from '../sidebar-card';\n\nexport default function TemplatePanel() {\n\tconst {\n\t\tinfo: { title, description, icon },\n\t\trecord,\n\t} = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\n\t\tconst postType = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\t\tconst _record = getEditedEntityRecord( 'postType', postType, postId );\n\n\t\tconst info = _record ? getTemplateInfo( _record ) : {};\n\n\t\treturn { info, record: _record };\n\t}, [] );\n\n\tif ( ! title && ! description ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody className=\"edit-site-template-panel\">\n\t\t\t<SidebarCard\n\t\t\t\tclassName=\"edit-site-template-card\"\n\t\t\t\ttitle={ decodeEntities( title ) }\n\t\t\t\ticon={\n\t\t\t\t\trecord?.type === 'wp_navigation' ? navigationIcon : icon\n\t\t\t\t}\n\t\t\t\tdescription={ decodeEntities( description ) }\n\t\t\t\tactions={ <TemplateActions template={ record } /> }\n\t\t\t>\n\t\t\t\t<TemplateAreas />\n\t\t\t</SidebarCard>\n\t\t\t<PanelRow\n\t\t\t\theader={ __( 'Editing history' ) }\n\t\t\t\tclassName=\"edit-site-template-revisions\"\n\t\t\t>\n\t\t\t\t<LastRevision />\n\t\t\t</PanelRow>\n\t\t</PanelBody>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-edit-mode/template-panel/index.js"],"names":["CARD_ICONS","wp_block","symbol","wp_navigation","navigation","TemplatePanel","title","description","icon","record","select","getEditedPostType","getEditedPostId","editSiteStore","getEditedEntityRecord","coreStore","__experimentalGetTemplateInfo","getTemplateInfo","editorStore","postType","postId","_record","info","type"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAlBA;AACA;AACA;;AASA;AACA;AACA;AAOA,MAAMA,UAAU,GAAG;AAClBC,EAAAA,QAAQ,EAAEC,aADQ;AAElBC,EAAAA,aAAa,EAAEC;AAFG,CAAnB;;AAKe,SAASC,aAAT,GAAyB;AAAA;;AACvC,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,WAAT;AAAsBC,IAAAA,IAAtB;AAA4BC,IAAAA;AAA5B,MAAuC,qBAAaC,MAAF,IAAc;AACrE,UAAM;AAAEC,MAAAA,iBAAF;AAAqBC,MAAAA;AAArB,QAAyCF,MAAM,CAAEG,YAAF,CAArD;AACA,UAAM;AAAEC,MAAAA;AAAF,QAA4BJ,MAAM,CAAEK,eAAF,CAAxC;AACA,UAAM;AAAEC,MAAAA,6BAA6B,EAAEC;AAAjC,QACLP,MAAM,CAAEQ,aAAF,CADP;AAGA,UAAMC,QAAQ,GAAGR,iBAAiB,EAAlC;AACA,UAAMS,MAAM,GAAGR,eAAe,EAA9B;;AACA,UAAMS,OAAO,GAAGP,qBAAqB,CAAE,UAAF,EAAcK,QAAd,EAAwBC,MAAxB,CAArC;;AACA,UAAME,IAAI,GAAGL,eAAe,CAAEI,OAAF,CAA5B;AAEA,WAAO;AACNf,MAAAA,KAAK,EAAEgB,IAAI,CAAChB,KADN;AAENC,MAAAA,WAAW,EAAEe,IAAI,CAACf,WAFZ;AAGNC,MAAAA,IAAI,EAAEc,IAAI,CAACd,IAHL;AAINC,MAAAA,MAAM,EAAEY;AAJF,KAAP;AAMA,GAjB4C,EAiB1C,EAjB0C,CAA7C;;AAmBA,MAAK,CAAEf,KAAF,IAAW,CAAEC,WAAlB,EAAgC;AAC/B,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,qBAAD;AAAW,IAAA,SAAS,EAAC;AAArB,KACC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAC,yBADX;AAEC,IAAA,KAAK,EAAG,kCAAgBD,KAAhB,CAFT;AAGC,IAAA,IAAI,2BAAGN,UAAU,CAAES,MAAM,EAAEc,IAAV,CAAb,yEAAiCf,IAHtC;AAIC,IAAA,WAAW,EAAG,kCAAgBD,WAAhB,CAJf;AAKC,IAAA,OAAO,EAAG,4BAAC,wBAAD;AAAiB,MAAA,QAAQ,EAAGE;AAA5B;AALX,KAOC,4BAAC,sBAAD,OAPD,CADD,EAUC,4BAAC,oBAAD;AACC,IAAA,MAAM,EAAG,cAAI,iBAAJ,CADV;AAEC,IAAA,SAAS,EAAC;AAFX,KAIC,4BAAC,qBAAD,OAJD,CAVD,CADD;AAmBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { PanelRow, PanelBody } from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, symbol } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../../store';\nimport TemplateActions from './template-actions';\nimport TemplateAreas from './template-areas';\nimport LastRevision from './last-revision';\nimport SidebarCard from '../sidebar-card';\n\nconst CARD_ICONS = {\n\twp_block: symbol,\n\twp_navigation: navigation,\n};\n\nexport default function TemplatePanel() {\n\tconst { title, description, icon, record } = useSelect( ( select ) => {\n\t\tconst { getEditedPostType, getEditedPostId } = select( editSiteStore );\n\t\tconst { getEditedEntityRecord } = select( coreStore );\n\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\tselect( editorStore );\n\n\t\tconst postType = getEditedPostType();\n\t\tconst postId = getEditedPostId();\n\t\tconst _record = getEditedEntityRecord( 'postType', postType, postId );\n\t\tconst info = getTemplateInfo( _record );\n\n\t\treturn {\n\t\t\ttitle: info.title,\n\t\t\tdescription: info.description,\n\t\t\ticon: info.icon,\n\t\t\trecord: _record,\n\t\t};\n\t}, [] );\n\n\tif ( ! title && ! description ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody className=\"edit-site-template-panel\">\n\t\t\t<SidebarCard\n\t\t\t\tclassName=\"edit-site-template-card\"\n\t\t\t\ttitle={ decodeEntities( title ) }\n\t\t\t\ticon={ CARD_ICONS[ record?.type ] ?? icon }\n\t\t\t\tdescription={ decodeEntities( description ) }\n\t\t\t\tactions={ <TemplateActions template={ record } /> }\n\t\t\t>\n\t\t\t\t<TemplateAreas />\n\t\t\t</SidebarCard>\n\t\t\t<PanelRow\n\t\t\t\theader={ __( 'Editing history' ) }\n\t\t\t\tclassName=\"edit-site-template-revisions\"\n\t\t\t>\n\t\t\t\t<LastRevision />\n\t\t\t</PanelRow>\n\t\t</PanelBody>\n\t);\n}\n"]}
@@ -9,6 +9,8 @@ exports.default = SidebarNavigationScreen;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
12
14
  var _components = require("@wordpress/components");
13
15
 
14
16
  var _i18n = require("@wordpress/i18n");
@@ -19,6 +21,8 @@ var _coreData = require("@wordpress/core-data");
19
21
 
20
22
  var _data = require("@wordpress/data");
21
23
 
24
+ var _router = require("@wordpress/router");
25
+
22
26
  var _store = require("../../store");
23
27
 
24
28
  var _lockUnlock = require("../../lock-unlock");
@@ -27,6 +31,10 @@ var _sidebarButton = _interopRequireDefault(require("../sidebar-button"));
27
31
 
28
32
  var _isPreviewingTheme = require("../../utils/is-previewing-theme");
29
33
 
34
+ /**
35
+ * External dependencies
36
+ */
37
+
30
38
  /**
31
39
  * WordPress dependencies
32
40
  */
@@ -34,6 +42,10 @@ var _isPreviewingTheme = require("../../utils/is-previewing-theme");
34
42
  /**
35
43
  * Internal dependencies
36
44
  */
45
+ const {
46
+ useLocation
47
+ } = (0, _lockUnlock.unlock)(_router.privateApis);
48
+
37
49
  function SidebarNavigationScreen({
38
50
  isRoot,
39
51
  title,
@@ -42,7 +54,7 @@ function SidebarNavigationScreen({
42
54
  content,
43
55
  footer,
44
56
  description,
45
- backPath
57
+ backPath: backPathProp
46
58
  }) {
47
59
  const {
48
60
  dashboardLink
@@ -57,37 +69,35 @@ function SidebarNavigationScreen({
57
69
  const {
58
70
  getTheme
59
71
  } = (0, _data.useSelect)(_coreData.store);
72
+ const location = useLocation();
60
73
  const navigator = (0, _components.__experimentalUseNavigator)();
61
74
  const theme = getTheme((0, _isPreviewingTheme.currentlyPreviewingTheme)());
62
75
  const icon = (0, _i18n.isRTL)() ? _icons.chevronRight : _icons.chevronLeft;
63
76
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalVStack, {
64
- className: "edit-site-sidebar-navigation-screen__main",
77
+ className: (0, _classnames.default)('edit-site-sidebar-navigation-screen__main', {
78
+ 'has-footer': !!footer
79
+ }),
65
80
  spacing: 0,
66
81
  justify: "flex-start"
67
82
  }, (0, _element.createElement)(_components.__experimentalHStack, {
68
83
  spacing: 4,
69
84
  alignment: "flex-start",
70
85
  className: "edit-site-sidebar-navigation-screen__title-icon"
71
- }, !isRoot && !backPath && (0, _element.createElement)(_sidebarButton.default, {
86
+ }, !isRoot && (0, _element.createElement)(_sidebarButton.default, {
72
87
  onClick: () => {
73
- if (navigator.location.isInitial) {
74
- navigator.goToParent({
75
- replace: true
88
+ const backPath = backPathProp !== null && backPathProp !== void 0 ? backPathProp : location.state?.backPath;
89
+
90
+ if (backPath) {
91
+ navigator.goTo(backPath, {
92
+ isBack: true
76
93
  });
77
94
  } else {
78
- navigator.goBack();
95
+ navigator.goToParent();
79
96
  }
80
97
  },
81
98
  icon: icon,
82
99
  label: (0, _i18n.__)('Back'),
83
100
  showTooltip: false
84
- }), !isRoot && backPath && (0, _element.createElement)(_sidebarButton.default, {
85
- onClick: () => navigator.goTo(backPath, {
86
- isBack: true
87
- }),
88
- icon: icon,
89
- label: (0, _i18n.__)('Back'),
90
- showTooltip: false
91
101
  }), isRoot && (0, _element.createElement)(_sidebarButton.default, {
92
102
  icon: icon,
93
103
  label: !(0, _isPreviewingTheme.isPreviewingTheme)() ? (0, _i18n.__)('Go to the Dashboard') : (0, _i18n.__)('Go back to the theme showcase'),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen/index.js"],"names":["SidebarNavigationScreen","isRoot","title","actions","meta","content","footer","description","backPath","dashboardLink","select","getSettings","editSiteStore","__experimentalDashboardLink","getTheme","coreStore","navigator","theme","icon","chevronRight","chevronLeft","location","isInitial","goToParent","replace","goBack","goTo","isBack","name","rendered"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { isRTL, __, sprintf } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport SidebarButton from '../sidebar-button';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\n\nexport default function SidebarNavigationScreen( {\n\tisRoot,\n\ttitle,\n\tactions,\n\tmeta,\n\tcontent,\n\tfooter,\n\tdescription,\n\tbackPath,\n} ) {\n\tconst { dashboardLink } = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\treturn {\n\t\t\tdashboardLink: getSettings().__experimentalDashboardLink,\n\t\t};\n\t}, [] );\n\tconst { getTheme } = useSelect( coreStore );\n\tconst navigator = useNavigator();\n\tconst theme = getTheme( currentlyPreviewingTheme() );\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\n\treturn (\n\t\t<>\n\t\t\t<VStack\n\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__main\"\n\t\t\t\tspacing={ 0 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__title-icon\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isRoot && ! backPath && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( navigator.location.isInitial ) {\n\t\t\t\t\t\t\t\t\tnavigator.goToParent( { replace: true } );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnavigator.goBack();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isRoot && backPath && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tnavigator.goTo( backPath, { isBack: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isRoot && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t! isPreviewingTheme()\n\t\t\t\t\t\t\t\t\t? __( 'Go to the Dashboard' )\n\t\t\t\t\t\t\t\t\t: __( 'Go back to the theme showcase' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t! isPreviewingTheme()\n\t\t\t\t\t\t\t\t\t? dashboardLink || 'index.php'\n\t\t\t\t\t\t\t\t\t: 'themes.php'\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\t<Heading\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__title\"\n\t\t\t\t\t\tcolor={ '#e0e0e0' /* $gray-200 */ }\n\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\tsize={ 20 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isPreviewingTheme()\n\t\t\t\t\t\t\t? title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t'Previewing %1$s: %2$s',\n\t\t\t\t\t\t\t\t\ttheme?.name?.rendered,\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ actions && (\n\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__actions\">\n\t\t\t\t\t\t\t{ actions }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t\t{ meta && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__meta\">\n\t\t\t\t\t\t\t{ meta }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__content\">\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<p className=\"edit-site-sidebar-navigation-screen__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t\t{ content }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t\t{ footer && (\n\t\t\t\t<footer className=\"edit-site-sidebar-navigation-screen__footer\">\n\t\t\t\t\t{ footer }\n\t\t\t\t</footer>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/sidebar-navigation-screen/index.js"],"names":["useLocation","routerPrivateApis","SidebarNavigationScreen","isRoot","title","actions","meta","content","footer","description","backPath","backPathProp","dashboardLink","select","getSettings","editSiteStore","__experimentalDashboardLink","getTheme","coreStore","location","navigator","theme","icon","chevronRight","chevronLeft","state","goTo","isBack","goToParent","name","rendered"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { isRTL, __, sprintf } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport { store as editSiteStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport SidebarButton from '../sidebar-button';\nimport {\n\tisPreviewingTheme,\n\tcurrentlyPreviewingTheme,\n} from '../../utils/is-previewing-theme';\n\nconst { useLocation } = unlock( routerPrivateApis );\n\nexport default function SidebarNavigationScreen( {\n\tisRoot,\n\ttitle,\n\tactions,\n\tmeta,\n\tcontent,\n\tfooter,\n\tdescription,\n\tbackPath: backPathProp,\n} ) {\n\tconst { dashboardLink } = useSelect( ( select ) => {\n\t\tconst { getSettings } = unlock( select( editSiteStore ) );\n\t\treturn {\n\t\t\tdashboardLink: getSettings().__experimentalDashboardLink,\n\t\t};\n\t}, [] );\n\tconst { getTheme } = useSelect( coreStore );\n\tconst location = useLocation();\n\tconst navigator = useNavigator();\n\tconst theme = getTheme( currentlyPreviewingTheme() );\n\tconst icon = isRTL() ? chevronRight : chevronLeft;\n\n\treturn (\n\t\t<>\n\t\t\t<VStack\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'edit-site-sidebar-navigation-screen__main',\n\t\t\t\t\t{\n\t\t\t\t\t\t'has-footer': !! footer,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\tspacing={ 0 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 4 }\n\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__title-icon\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isRoot && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst backPath =\n\t\t\t\t\t\t\t\t\tbackPathProp ?? location.state?.backPath;\n\t\t\t\t\t\t\t\tif ( backPath ) {\n\t\t\t\t\t\t\t\t\tnavigator.goTo( backPath, {\n\t\t\t\t\t\t\t\t\t\tisBack: true,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnavigator.goToParent();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isRoot && (\n\t\t\t\t\t\t<SidebarButton\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t! isPreviewingTheme()\n\t\t\t\t\t\t\t\t\t? __( 'Go to the Dashboard' )\n\t\t\t\t\t\t\t\t\t: __( 'Go back to the theme showcase' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t! isPreviewingTheme()\n\t\t\t\t\t\t\t\t\t? dashboardLink || 'index.php'\n\t\t\t\t\t\t\t\t\t: 'themes.php'\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\t<Heading\n\t\t\t\t\t\tclassName=\"edit-site-sidebar-navigation-screen__title\"\n\t\t\t\t\t\tcolor={ '#e0e0e0' /* $gray-200 */ }\n\t\t\t\t\t\tlevel={ 1 }\n\t\t\t\t\t\tsize={ 20 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isPreviewingTheme()\n\t\t\t\t\t\t\t? title\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t'Previewing %1$s: %2$s',\n\t\t\t\t\t\t\t\t\ttheme?.name?.rendered,\n\t\t\t\t\t\t\t\t\ttitle\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t{ actions && (\n\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__actions\">\n\t\t\t\t\t\t\t{ actions }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t\t{ meta && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__meta\">\n\t\t\t\t\t\t\t{ meta }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<div className=\"edit-site-sidebar-navigation-screen__content\">\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<p className=\"edit-site-sidebar-navigation-screen__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t\t{ content }\n\t\t\t\t</div>\n\t\t\t</VStack>\n\t\t\t{ footer && (\n\t\t\t\t<footer className=\"edit-site-sidebar-navigation-screen__footer\">\n\t\t\t\t\t{ footer }\n\t\t\t\t</footer>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -69,10 +69,10 @@ function SidebarNavigationItemGlobalStyles(props) {
69
69
  set: setPreference
70
70
  } = (0, _data.useDispatch)(_preferences.store);
71
71
  const {
72
- get: getPrefference
72
+ get: getPreference
73
73
  } = (0, _data.useSelect)(_preferences.store);
74
74
  const turnOffDistractionFreeMode = (0, _element.useCallback)(() => {
75
- const isDistractionFree = getPrefference(_store.store.name, 'distractionFree');
75
+ const isDistractionFree = getPreference(_store.store.name, 'distractionFree');
76
76
 
77
77
  if (!isDistractionFree) {
78
78
  return;
@@ -83,7 +83,7 @@ function SidebarNavigationItemGlobalStyles(props) {
83
83
  isDismissible: true,
84
84
  type: 'snackbar'
85
85
  });
86
- }, [createNotice, setPreference, getPrefference]);
86
+ }, [createNotice, setPreference, getPreference]);
87
87
  const hasGlobalStyleVariations = (0, _data.useSelect)(select => !!select(_coreData.store).__experimentalGetCurrentThemeGlobalStylesVariations()?.length, []);
88
88
 
89
89
  if (hasGlobalStyleVariations) {
@@ -128,36 +128,9 @@ function SidebarNavigationScreenGlobalStylesContent() {
128
128
  }
129
129
 
130
130
  function SidebarNavigationScreenGlobalStylesFooter({
131
+ modifiedDateTime,
131
132
  onClickRevisions
132
133
  }) {
133
- const {
134
- revisions,
135
- isLoading
136
- } = (0, _useGlobalStylesRevisions.default)();
137
- const {
138
- revisionsCount
139
- } = (0, _data.useSelect)(select => {
140
- var _globalStyles$_links$;
141
-
142
- const {
143
- getEntityRecord,
144
- __experimentalGetCurrentGlobalStylesId
145
- } = select(_coreData.store);
146
-
147
- const globalStylesId = __experimentalGetCurrentGlobalStylesId();
148
-
149
- const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
150
- return {
151
- revisionsCount: (_globalStyles$_links$ = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : 0
152
- };
153
- }, []);
154
- const hasRevisions = revisionsCount >= 2;
155
- const modified = revisions?.[0]?.modified;
156
-
157
- if (!hasRevisions || isLoading || !modified) {
158
- return null;
159
- }
160
-
161
134
  return (0, _element.createElement)(_components.__experimentalVStack, {
162
135
  className: "edit-site-sidebar-navigation-screen-global-styles__footer"
163
136
  }, (0, _element.createElement)(_sidebarNavigationItem.default, {
@@ -173,8 +146,8 @@ function SidebarNavigationScreenGlobalStylesFooter({
173
146
  }, (0, _element.createElement)("span", {
174
147
  className: "edit-site-sidebar-navigation-screen-global-styles__revisions__label"
175
148
  }, (0, _i18n.__)('Last modified')), (0, _element.createElement)("span", null, (0, _element.createElement)("time", {
176
- dateTime: modified
177
- }, (0, _date.humanTimeDiff)(modified))), (0, _element.createElement)(_components.Icon, {
149
+ dateTime: modifiedDateTime
150
+ }, (0, _date.humanTimeDiff)(modifiedDateTime))), (0, _element.createElement)(_components.Icon, {
178
151
  icon: _icons.backup,
179
152
  style: {
180
153
  fill: 'currentcolor'
@@ -183,6 +156,10 @@ function SidebarNavigationScreenGlobalStylesFooter({
183
156
  }
184
157
 
185
158
  function SidebarNavigationScreenGlobalStyles() {
159
+ const {
160
+ revisions,
161
+ isLoading: isLoadingRevisions
162
+ } = (0, _useGlobalStylesRevisions.default)();
186
163
  const {
187
164
  openGeneralSidebar,
188
165
  setIsListViewOpened
@@ -199,23 +176,35 @@ function SidebarNavigationScreenGlobalStyles() {
199
176
  set: setPreference
200
177
  } = (0, _data.useDispatch)(_preferences.store);
201
178
  const {
202
- get: getPrefference
179
+ get: getPreference
203
180
  } = (0, _data.useSelect)(_preferences.store);
204
181
  const {
205
182
  isViewMode,
206
- isStyleBookOpened
183
+ isStyleBookOpened,
184
+ revisionsCount
207
185
  } = (0, _data.useSelect)(select => {
186
+ var _globalStyles$_links$;
187
+
208
188
  const {
209
189
  getCanvasMode,
210
190
  getEditorCanvasContainerView
211
191
  } = (0, _lockUnlock.unlock)(select(_store.store));
192
+ const {
193
+ getEntityRecord,
194
+ __experimentalGetCurrentGlobalStylesId
195
+ } = select(_coreData.store);
196
+
197
+ const globalStylesId = __experimentalGetCurrentGlobalStylesId();
198
+
199
+ const globalStyles = globalStylesId ? getEntityRecord('root', 'globalStyles', globalStylesId) : undefined;
212
200
  return {
213
201
  isViewMode: 'view' === getCanvasMode(),
214
- isStyleBookOpened: 'style-book' === getEditorCanvasContainerView()
202
+ isStyleBookOpened: 'style-book' === getEditorCanvasContainerView(),
203
+ revisionsCount: (_globalStyles$_links$ = globalStyles?._links?.['version-history']?.[0]?.count) !== null && _globalStyles$_links$ !== void 0 ? _globalStyles$_links$ : 0
215
204
  };
216
205
  }, []);
217
206
  const turnOffDistractionFreeMode = (0, _element.useCallback)(() => {
218
- const isDistractionFree = getPrefference(_store.store.name, 'distractionFree');
207
+ const isDistractionFree = getPreference(_store.store.name, 'distractionFree');
219
208
 
220
209
  if (!isDistractionFree) {
221
210
  return;
@@ -226,7 +215,7 @@ function SidebarNavigationScreenGlobalStyles() {
226
215
  isDismissible: true,
227
216
  type: 'snackbar'
228
217
  });
229
- }, [createNotice, setPreference, getPrefference]);
218
+ }, [createNotice, setPreference, getPreference]);
230
219
  const openGlobalStyles = (0, _element.useCallback)(async () => {
231
220
  turnOffDistractionFreeMode();
232
221
  return Promise.all([setCanvasMode('edit'), openGeneralSidebar('edit-site/global-styles')]);
@@ -246,12 +235,17 @@ function SidebarNavigationScreenGlobalStyles() {
246
235
  // has been set to 'global-styles-revisions'.
247
236
 
248
237
  setEditorCanvasContainerView('global-styles-revisions');
249
- }, [openGlobalStyles, setEditorCanvasContainerView]);
238
+ }, [openGlobalStyles, setEditorCanvasContainerView]); // If there are no revisions, do not render a footer.
239
+
240
+ const hasRevisions = revisionsCount >= 2;
241
+ const modifiedDateTime = revisions?.[0]?.modified;
242
+ const shouldShowGlobalStylesFooter = hasRevisions && !isLoadingRevisions && modifiedDateTime;
250
243
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_sidebarNavigationScreen.default, {
251
244
  title: (0, _i18n.__)('Styles'),
252
245
  description: (0, _i18n.__)('Choose a different style combination for the theme styles.'),
253
246
  content: (0, _element.createElement)(SidebarNavigationScreenGlobalStylesContent, null),
254
- footer: (0, _element.createElement)(SidebarNavigationScreenGlobalStylesFooter, {
247
+ footer: shouldShowGlobalStylesFooter && (0, _element.createElement)(SidebarNavigationScreenGlobalStylesFooter, {
248
+ modifiedDateTime: modifiedDateTime,
255
249
  onClickRevisions: openRevisions
256
250
  }),
257
251
  actions: (0, _element.createElement)(_element.Fragment, null, !isMobileViewport && (0, _element.createElement)(_sidebarButton.default, {