@wordpress/edit-site 6.11.0 → 6.12.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 (190) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/app/index.js +0 -2
  3. package/build/components/app/index.js.map +1 -1
  4. package/build/components/block-editor/use-editor-iframe-props.js +6 -8
  5. package/build/components/block-editor/use-editor-iframe-props.js.map +1 -1
  6. package/build/components/editor/index.js +9 -4
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/editor/use-editor-title.js +29 -12
  9. package/build/components/editor/use-editor-title.js.map +1 -1
  10. package/build/components/global-styles/screen-revisions/revisions-buttons.js +24 -22
  11. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  12. package/build/components/global-styles/shadows-edit-panel.js +2 -3
  13. package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
  14. package/build/components/global-styles/ui.js +42 -2
  15. package/build/components/global-styles/ui.js.map +1 -1
  16. package/build/components/global-styles-renderer/index.js +6 -8
  17. package/build/components/global-styles-renderer/index.js.map +1 -1
  18. package/build/components/layout/hooks.js +1 -10
  19. package/build/components/layout/hooks.js.map +1 -1
  20. package/build/components/layout/index.js +1 -0
  21. package/build/components/layout/index.js.map +1 -1
  22. package/build/components/page-patterns/fields.js +3 -7
  23. package/build/components/page-patterns/fields.js.map +1 -1
  24. package/build/components/page-templates/fields.js +1 -2
  25. package/build/components/page-templates/fields.js.map +1 -1
  26. package/build/components/post-edit/index.js +14 -8
  27. package/build/components/post-edit/index.js.map +1 -1
  28. package/build/components/post-fields/index.js +3 -197
  29. package/build/components/post-fields/index.js.map +1 -1
  30. package/build/components/post-list/index.js +11 -1
  31. package/build/components/post-list/index.js.map +1 -1
  32. package/build/components/sidebar/index.js +11 -3
  33. package/build/components/sidebar/index.js.map +1 -1
  34. package/build/components/sidebar-global-styles-wrapper/index.js +129 -0
  35. package/build/components/sidebar-global-styles-wrapper/index.js.map +1 -0
  36. package/build/components/sidebar-navigation-screen-global-styles/index.js +14 -72
  37. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  38. package/build/components/sidebar-navigation-screen-main/index.js +43 -42
  39. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  40. package/build/components/site-editor-routes/styles-edit.js +6 -1
  41. package/build/components/site-editor-routes/styles-edit.js.map +1 -1
  42. package/build/components/site-editor-routes/styles-view.js +8 -2
  43. package/build/components/site-editor-routes/styles-view.js.map +1 -1
  44. package/build/components/site-hub/index.js +19 -6
  45. package/build/components/site-hub/index.js.map +1 -1
  46. package/build/components/style-book/constants.js +10 -3
  47. package/build/components/style-book/constants.js.map +1 -1
  48. package/build/components/style-book/examples.js +71 -1
  49. package/build/components/style-book/examples.js.map +1 -1
  50. package/build/components/style-book/index.js +70 -11
  51. package/build/components/style-book/index.js.map +1 -1
  52. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +32 -32
  53. package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  54. package/build/components/welcome-guide/index.js +4 -2
  55. package/build/components/welcome-guide/index.js.map +1 -1
  56. package/build/components/welcome-guide/page.js +1 -9
  57. package/build/components/welcome-guide/page.js.map +1 -1
  58. package/build/components/welcome-guide/template.js +1 -12
  59. package/build/components/welcome-guide/template.js.map +1 -1
  60. package/build/hooks/commands/use-common-commands.js +15 -15
  61. package/build/hooks/commands/use-common-commands.js.map +1 -1
  62. package/build/index.js +1 -0
  63. package/build/index.js.map +1 -1
  64. package/build/posts.js +1 -0
  65. package/build/posts.js.map +1 -1
  66. package/build-module/components/app/index.js +0 -2
  67. package/build-module/components/app/index.js.map +1 -1
  68. package/build-module/components/block-editor/use-editor-iframe-props.js +6 -8
  69. package/build-module/components/block-editor/use-editor-iframe-props.js.map +1 -1
  70. package/build-module/components/editor/index.js +9 -4
  71. package/build-module/components/editor/index.js.map +1 -1
  72. package/build-module/components/editor/use-editor-title.js +29 -12
  73. package/build-module/components/editor/use-editor-title.js.map +1 -1
  74. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +25 -23
  75. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  76. package/build-module/components/global-styles/shadows-edit-panel.js +2 -3
  77. package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
  78. package/build-module/components/global-styles/ui.js +43 -3
  79. package/build-module/components/global-styles/ui.js.map +1 -1
  80. package/build-module/components/global-styles-renderer/index.js +6 -8
  81. package/build-module/components/global-styles-renderer/index.js.map +1 -1
  82. package/build-module/components/layout/hooks.js +1 -9
  83. package/build-module/components/layout/hooks.js.map +1 -1
  84. package/build-module/components/layout/index.js +1 -0
  85. package/build-module/components/layout/index.js.map +1 -1
  86. package/build-module/components/page-patterns/fields.js +4 -8
  87. package/build-module/components/page-patterns/fields.js.map +1 -1
  88. package/build-module/components/page-templates/fields.js +1 -2
  89. package/build-module/components/page-templates/fields.js.map +1 -1
  90. package/build-module/components/post-edit/index.js +14 -8
  91. package/build-module/components/post-edit/index.js.map +1 -1
  92. package/build-module/components/post-fields/index.js +7 -202
  93. package/build-module/components/post-fields/index.js.map +1 -1
  94. package/build-module/components/post-list/index.js +11 -1
  95. package/build-module/components/post-list/index.js.map +1 -1
  96. package/build-module/components/sidebar/index.js +11 -3
  97. package/build-module/components/sidebar/index.js.map +1 -1
  98. package/build-module/components/sidebar-global-styles-wrapper/index.js +121 -0
  99. package/build-module/components/sidebar-global-styles-wrapper/index.js.map +1 -0
  100. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +15 -73
  101. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
  102. package/build-module/components/sidebar-navigation-screen-main/index.js +43 -43
  103. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  104. package/build-module/components/site-editor-routes/styles-edit.js +6 -1
  105. package/build-module/components/site-editor-routes/styles-edit.js.map +1 -1
  106. package/build-module/components/site-editor-routes/styles-view.js +8 -2
  107. package/build-module/components/site-editor-routes/styles-view.js.map +1 -1
  108. package/build-module/components/site-hub/index.js +19 -6
  109. package/build-module/components/site-hub/index.js.map +1 -1
  110. package/build-module/components/style-book/constants.js +10 -3
  111. package/build-module/components/style-book/constants.js.map +1 -1
  112. package/build-module/components/style-book/examples.js +71 -1
  113. package/build-module/components/style-book/examples.js.map +1 -1
  114. package/build-module/components/style-book/index.js +71 -12
  115. package/build-module/components/style-book/index.js.map +1 -1
  116. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +32 -32
  117. package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
  118. package/build-module/components/welcome-guide/index.js +4 -2
  119. package/build-module/components/welcome-guide/index.js.map +1 -1
  120. package/build-module/components/welcome-guide/page.js +1 -9
  121. package/build-module/components/welcome-guide/page.js.map +1 -1
  122. package/build-module/components/welcome-guide/template.js +1 -11
  123. package/build-module/components/welcome-guide/template.js.map +1 -1
  124. package/build-module/hooks/commands/use-common-commands.js +15 -15
  125. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  126. package/build-module/index.js +1 -0
  127. package/build-module/index.js.map +1 -1
  128. package/build-module/posts.js +1 -0
  129. package/build-module/posts.js.map +1 -1
  130. package/build-style/posts-rtl.css +54 -5
  131. package/build-style/posts.css +54 -5
  132. package/build-style/style-rtl.css +109 -28
  133. package/build-style/style.css +109 -28
  134. package/package.json +3 -4
  135. package/src/components/app/index.js +0 -2
  136. package/src/components/block-editor/use-editor-iframe-props.js +2 -3
  137. package/src/components/editor/index.js +16 -4
  138. package/src/components/editor/use-editor-title.js +37 -13
  139. package/src/components/editor-canvas-container/style.scss +0 -1
  140. package/src/components/global-styles/screen-revisions/revisions-buttons.js +28 -31
  141. package/src/components/global-styles/screen-revisions/style.scss +11 -17
  142. package/src/components/global-styles/shadows-edit-panel.js +4 -2
  143. package/src/components/global-styles/ui.js +42 -2
  144. package/src/components/global-styles-renderer/index.js +4 -10
  145. package/src/components/layout/hooks.js +1 -7
  146. package/src/components/layout/index.js +6 -1
  147. package/src/components/page-patterns/fields.js +6 -12
  148. package/src/components/page-patterns/style.scss +0 -5
  149. package/src/components/page-templates/fields.js +2 -3
  150. package/src/components/post-edit/index.js +38 -30
  151. package/src/components/post-edit/style.scss +7 -0
  152. package/src/components/post-fields/index.js +19 -273
  153. package/src/components/post-list/index.js +9 -3
  154. package/src/components/post-list/style.scss +29 -3
  155. package/src/components/sidebar/index.js +23 -7
  156. package/src/components/sidebar-global-styles-wrapper/index.js +150 -0
  157. package/src/components/sidebar-global-styles-wrapper/style.scss +35 -0
  158. package/src/components/sidebar-navigation-item/style.scss +2 -2
  159. package/src/components/sidebar-navigation-screen-global-styles/index.js +13 -88
  160. package/src/components/sidebar-navigation-screen-main/index.js +46 -45
  161. package/src/components/site-editor-routes/styles-edit.js +10 -1
  162. package/src/components/site-editor-routes/styles-view.js +11 -1
  163. package/src/components/site-hub/index.js +33 -16
  164. package/src/components/site-icon/style.scss +16 -0
  165. package/src/components/style-book/constants.ts +11 -3
  166. package/src/components/style-book/examples.tsx +105 -1
  167. package/src/components/style-book/index.js +86 -8
  168. package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +54 -64
  169. package/src/components/welcome-guide/index.js +3 -3
  170. package/src/components/welcome-guide/page.js +1 -7
  171. package/src/components/welcome-guide/template.js +1 -8
  172. package/src/hooks/commands/use-common-commands.js +253 -246
  173. package/src/index.js +1 -0
  174. package/src/posts.js +1 -0
  175. package/src/style.scss +2 -3
  176. package/build/components/async/index.js +0 -51
  177. package/build/components/async/index.js.map +0 -1
  178. package/build/components/use-edited-entity-record/index.js +0 -60
  179. package/build/components/use-edited-entity-record/index.js.map +0 -1
  180. package/build/hooks/commands/use-edit-mode-commands.js +0 -179
  181. package/build/hooks/commands/use-edit-mode-commands.js.map +0 -1
  182. package/build-module/components/async/index.js +0 -44
  183. package/build-module/components/async/index.js.map +0 -1
  184. package/build-module/components/use-edited-entity-record/index.js +0 -53
  185. package/build-module/components/use-edited-entity-record/index.js.map +0 -1
  186. package/build-module/hooks/commands/use-edit-mode-commands.js +0 -171
  187. package/build-module/hooks/commands/use-edit-mode-commands.js.map +0 -1
  188. package/src/components/async/index.js +0 -43
  189. package/src/components/use-edited-entity-record/index.js +0 -58
  190. package/src/hooks/commands/use-edit-mode-commands.js +0 -168
@@ -2,30 +2,47 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { _x, sprintf } from '@wordpress/i18n';
5
+ import { useSelect } from '@wordpress/data';
6
+ import { store as coreStore } from '@wordpress/core-data';
7
+ import { store as editorStore } from '@wordpress/editor';
8
+ import { decodeEntities } from '@wordpress/html-entities';
5
9
 
6
10
  /**
7
11
  * Internal dependencies
8
12
  */
9
- import useEditedEntityRecord from '../use-edited-entity-record';
10
13
  import useTitle from '../routes/use-title';
11
14
  import { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';
12
- function useEditorTitle() {
15
+ function useEditorTitle(postType, postId) {
13
16
  const {
14
- record: editedPost,
15
- getTitle,
16
- isLoaded: hasLoadedPost
17
- } = useEditedEntityRecord();
18
- let title;
19
- if (hasLoadedPost) {
20
- var _POST_TYPE_LABELS$edi;
21
- title = sprintf(
17
+ title,
18
+ isLoaded
19
+ } = useSelect(select => {
20
+ const {
21
+ getEditedEntityRecord,
22
+ hasFinishedResolution
23
+ } = select(coreStore);
24
+ const {
25
+ __experimentalGetTemplateInfo: getTemplateInfo
26
+ } = select(editorStore);
27
+ const _record = getEditedEntityRecord('postType', postType, postId);
28
+ const _isLoaded = hasFinishedResolution('getEditedEntityRecord', ['postType', postType, postId]);
29
+ const templateInfo = getTemplateInfo(_record);
30
+ return {
31
+ title: templateInfo.title,
32
+ isLoaded: _isLoaded
33
+ };
34
+ }, [postType, postId]);
35
+ let editorTitle;
36
+ if (isLoaded) {
37
+ var _POST_TYPE_LABELS$pos;
38
+ editorTitle = sprintf(
22
39
  // translators: A breadcrumb trail for the Admin document title. 1: title of template being edited, 2: type of template (Template or Template Part).
23
- _x('%1$s ‹ %2$s', 'breadcrumb trail'), getTitle(), (_POST_TYPE_LABELS$edi = POST_TYPE_LABELS[editedPost.type]) !== null && _POST_TYPE_LABELS$edi !== void 0 ? _POST_TYPE_LABELS$edi : POST_TYPE_LABELS[TEMPLATE_POST_TYPE]);
40
+ _x('%1$s ‹ %2$s', 'breadcrumb trail'), decodeEntities(title), (_POST_TYPE_LABELS$pos = POST_TYPE_LABELS[postType]) !== null && _POST_TYPE_LABELS$pos !== void 0 ? _POST_TYPE_LABELS$pos : POST_TYPE_LABELS[TEMPLATE_POST_TYPE]);
24
41
  }
25
42
 
26
43
  // Only announce the title once the editor is ready to prevent "Replace"
27
44
  // action in <URLQueryController> from double-announcing.
28
- useTitle(hasLoadedPost && title);
45
+ useTitle(isLoaded && editorTitle);
29
46
  }
30
47
  export default useEditorTitle;
31
48
  //# sourceMappingURL=use-editor-title.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_x","sprintf","useEditedEntityRecord","useTitle","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useEditorTitle","record","editedPost","getTitle","isLoaded","hasLoadedPost","title","_POST_TYPE_LABELS$edi","type"],"sources":["@wordpress/edit-site/src/components/editor/use-editor-title.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useEditedEntityRecord from '../use-edited-entity-record';\nimport useTitle from '../routes/use-title';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nfunction useEditorTitle() {\n\tconst {\n\t\trecord: editedPost,\n\t\tgetTitle,\n\t\tisLoaded: hasLoadedPost,\n\t} = useEditedEntityRecord();\n\tlet title;\n\tif ( hasLoadedPost ) {\n\t\ttitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. 1: title of template being edited, 2: type of template (Template or Template Part).\n\t\t\t_x( '%1$s ‹ %2$s', 'breadcrumb trail' ),\n\t\t\tgetTitle(),\n\t\t\tPOST_TYPE_LABELS[ editedPost.type ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( hasLoadedPost && title );\n}\n\nexport default useEditorTitle;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA,OAAOC,qBAAqB,MAAM,6BAA6B;AAC/D,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,uBAAuB;AAE5E,SAASC,cAAcA,CAAA,EAAG;EACzB,MAAM;IACLC,MAAM,EAAEC,UAAU;IAClBC,QAAQ;IACRC,QAAQ,EAAEC;EACX,CAAC,GAAGT,qBAAqB,CAAC,CAAC;EAC3B,IAAIU,KAAK;EACT,IAAKD,aAAa,EAAG;IAAA,IAAAE,qBAAA;IACpBD,KAAK,GAAGX,OAAO;IACd;IACAD,EAAE,CAAE,aAAa,EAAE,kBAAmB,CAAC,EACvCS,QAAQ,CAAC,CAAC,GAAAI,qBAAA,GACVT,gBAAgB,CAAEI,UAAU,CAACM,IAAI,CAAE,cAAAD,qBAAA,cAAAA,qBAAA,GAClCT,gBAAgB,CAAEC,kBAAkB,CACtC,CAAC;EACF;;EAEA;EACA;EACAF,QAAQ,CAAEQ,aAAa,IAAIC,KAAM,CAAC;AACnC;AAEA,eAAeN,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["_x","sprintf","useSelect","store","coreStore","editorStore","decodeEntities","useTitle","POST_TYPE_LABELS","TEMPLATE_POST_TYPE","useEditorTitle","postType","postId","title","isLoaded","select","getEditedEntityRecord","hasFinishedResolution","__experimentalGetTemplateInfo","getTemplateInfo","_record","_isLoaded","templateInfo","editorTitle","_POST_TYPE_LABELS$pos"],"sources":["@wordpress/edit-site/src/components/editor/use-editor-title.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, sprintf } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport useTitle from '../routes/use-title';\nimport { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nfunction useEditorTitle( postType, postId ) {\n\tconst { title, isLoaded } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { __experimentalGetTemplateInfo: getTemplateInfo } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst _record = getEditedEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t);\n\t\t\tconst _isLoaded = hasFinishedResolution( 'getEditedEntityRecord', [\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t] );\n\t\t\tconst templateInfo = getTemplateInfo( _record );\n\n\t\t\treturn {\n\t\t\t\ttitle: templateInfo.title,\n\t\t\t\tisLoaded: _isLoaded,\n\t\t\t};\n\t\t},\n\t\t[ postType, postId ]\n\t);\n\n\tlet editorTitle;\n\tif ( isLoaded ) {\n\t\teditorTitle = sprintf(\n\t\t\t// translators: A breadcrumb trail for the Admin document title. 1: title of template being edited, 2: type of template (Template or Template Part).\n\t\t\t_x( '%1$s ‹ %2$s', 'breadcrumb trail' ),\n\t\t\tdecodeEntities( title ),\n\t\t\tPOST_TYPE_LABELS[ postType ] ??\n\t\t\t\tPOST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]\n\t\t);\n\t}\n\n\t// Only announce the title once the editor is ready to prevent \"Replace\"\n\t// action in <URLQueryController> from double-announcing.\n\tuseTitle( isLoaded && editorTitle );\n}\n\nexport default useEditorTitle;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASD,KAAK,IAAIE,WAAW,QAAQ,mBAAmB;AACxD,SAASC,cAAc,QAAQ,0BAA0B;;AAEzD;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,gBAAgB,EAAEC,kBAAkB,QAAQ,uBAAuB;AAE5E,SAASC,cAAcA,CAAEC,QAAQ,EAAEC,MAAM,EAAG;EAC3C,MAAM;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGZ,SAAS,CAClCa,MAAM,IAAM;IACb,MAAM;MAAEC,qBAAqB;MAAEC;IAAsB,CAAC,GACrDF,MAAM,CAAEX,SAAU,CAAC;IACpB,MAAM;MAAEc,6BAA6B,EAAEC;IAAgB,CAAC,GACvDJ,MAAM,CAAEV,WAAY,CAAC;IACtB,MAAMe,OAAO,GAAGJ,qBAAqB,CACpC,UAAU,EACVL,QAAQ,EACRC,MACD,CAAC;IACD,MAAMS,SAAS,GAAGJ,qBAAqB,CAAE,uBAAuB,EAAE,CACjE,UAAU,EACVN,QAAQ,EACRC,MAAM,CACL,CAAC;IACH,MAAMU,YAAY,GAAGH,eAAe,CAAEC,OAAQ,CAAC;IAE/C,OAAO;MACNP,KAAK,EAAES,YAAY,CAACT,KAAK;MACzBC,QAAQ,EAAEO;IACX,CAAC;EACF,CAAC,EACD,CAAEV,QAAQ,EAAEC,MAAM,CACnB,CAAC;EAED,IAAIW,WAAW;EACf,IAAKT,QAAQ,EAAG;IAAA,IAAAU,qBAAA;IACfD,WAAW,GAAGtB,OAAO;IACpB;IACAD,EAAE,CAAE,aAAa,EAAE,kBAAmB,CAAC,EACvCM,cAAc,CAAEO,KAAM,CAAC,GAAAW,qBAAA,GACvBhB,gBAAgB,CAAEG,QAAQ,CAAE,cAAAa,qBAAA,cAAAA,qBAAA,GAC3BhB,gBAAgB,CAAEC,kBAAkB,CACtC,CAAC;EACF;;EAEA;EACA;EACAF,QAAQ,CAAEO,QAAQ,IAAIS,WAAY,CAAC;AACpC;AAEA,eAAeb,cAAc","ignoreList":[]}
@@ -1,18 +1,13 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
4
  import { __, sprintf } from '@wordpress/i18n';
10
- import { Button } from '@wordpress/components';
5
+ import { Button, Composite } from '@wordpress/components';
11
6
  import { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';
12
7
  import { store as coreStore } from '@wordpress/core-data';
13
8
  import { useSelect } from '@wordpress/data';
14
9
  import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
15
-
10
+ import { ENTER, SPACE } from '@wordpress/keycodes';
16
11
  /**
17
12
  * Internal dependencies
18
13
  */
@@ -101,10 +96,11 @@ function RevisionsButtons({
101
96
  const {
102
97
  datetimeAbbreviated
103
98
  } = getSettings().formats;
104
- return /*#__PURE__*/_jsx("ol", {
99
+ return /*#__PURE__*/_jsx(Composite, {
100
+ orientation: "vertical",
105
101
  className: "edit-site-global-styles-screen-revisions__revisions-list",
106
102
  "aria-label": __('Global styles revisions list'),
107
- role: "group",
103
+ role: "listbox",
108
104
  children: userRevisions.map((revision, index) => {
109
105
  const {
110
106
  id,
@@ -123,22 +119,27 @@ function RevisionsButtons({
123
119
  const modifiedDate = getDate(modified);
124
120
  const displayDate = modified && dateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS ? dateI18n(datetimeAbbreviated, modifiedDate) : humanTimeDiff(modified);
125
121
  const revisionLabel = getRevisionLabel(id, authorDisplayName, dateI18n(datetimeAbbreviated, modifiedDate), areStylesEqual);
126
- return /*#__PURE__*/_jsxs("li", {
127
- className: clsx('edit-site-global-styles-screen-revisions__revision-item', {
128
- 'is-selected': isSelected,
129
- 'is-active': areStylesEqual,
130
- 'is-reset': isReset
131
- }),
122
+ return /*#__PURE__*/_jsxs(Composite.Item, {
123
+ className: "edit-site-global-styles-screen-revisions__revision-item",
132
124
  "aria-current": isSelected,
133
- children: [/*#__PURE__*/_jsx(Button, {
134
- __next40pxDefaultSize: true,
135
- className: "edit-site-global-styles-screen-revisions__revision-button",
136
- accessibleWhenDisabled: true,
137
- disabled: isSelected,
138
- onClick: () => {
125
+ role: "option",
126
+ onKeyDown: event => {
127
+ const {
128
+ keyCode
129
+ } = event;
130
+ if (keyCode === ENTER || keyCode === SPACE) {
139
131
  onChange(revision);
140
- },
141
- "aria-label": revisionLabel,
132
+ }
133
+ },
134
+ onClick: event => {
135
+ event.preventDefault();
136
+ onChange(revision);
137
+ },
138
+ "aria-selected": isSelected,
139
+ "aria-label": revisionLabel,
140
+ render: /*#__PURE__*/_jsx("div", {}),
141
+ children: [/*#__PURE__*/_jsx("span", {
142
+ className: "edit-site-global-styles-screen-revisions__revision-item-wrapper",
142
143
  children: isReset ? /*#__PURE__*/_jsxs("span", {
143
144
  className: "edit-site-global-styles-screen-revisions__description",
144
145
  children: [__('Default styles'), /*#__PURE__*/_jsx("span", {
@@ -173,6 +174,7 @@ function RevisionsButtons({
173
174
  variant: "primary",
174
175
  className: "edit-site-global-styles-screen-revisions__apply-button",
175
176
  onClick: onApplyRevision,
177
+ "aria-label": __('Apply the selected revision to your site.'),
176
178
  children: isReset ? __('Reset to defaults') : __('Apply')
177
179
  }))]
178
180
  }, id);
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","sprintf","Button","dateI18n","getDate","humanTimeDiff","getSettings","store","coreStore","useSelect","privateApis","blockEditorPrivateApis","unlock","jsx","_jsx","jsxs","_jsxs","DAY_IN_MILLISECONDS","getGlobalStylesChanges","ChangesSummary","revision","previousRevision","changes","maxResults","length","className","children","map","change","getRevisionLabel","id","authorDisplayName","formattedModifiedDate","areStylesEqual","RevisionsButtons","userRevisions","selectedRevisionId","onChange","canApplyRevision","onApplyRevision","currentThemeName","currentUser","select","getCurrentTheme","getCurrentUser","currentTheme","name","rendered","stylesheet","dateNowInMs","getTime","datetimeAbbreviated","formats","role","index","author","modified","isUnsaved","revisionAuthor","authorAvatar","avatar_urls","isFirstItem","isSelected","isReset","modifiedDate","displayDate","revisionLabel","__next40pxDefaultSize","accessibleWhenDisabled","disabled","onClick","dateTime","alt","src","size","variant"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst { getGlobalStylesChanges } = unlock( blockEditorPrivateApis );\n\nfunction ChangesSummary( { revision, previousRevision } ) {\n\tconst changes = getGlobalStylesChanges( revision, previousRevision, {\n\t\tmaxResults: 7,\n\t} );\n\n\tif ( ! changes.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ul\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.map( ( change ) => (\n\t\t\t\t<li key={ change }>{ change }</li>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id A revision object.\n * @param {string} authorDisplayName Author name.\n * @param {string} formattedModifiedDate Revision modified date formatted.\n * @param {boolean} areStylesEqual Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: 1: author display name. 2: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: 1: author display name. 2: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions A collection of user revisions.\n * @property {number} selectedRevisionId The id of the currently-selected revision.\n * @property {Function} onChange Callback fired when a revision is selected.\n *\n * @param {props} Component props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n\tonApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<ol\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions list' ) }\n\t\t\trole=\"group\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'edit-site-global-styles-screen-revisions__revision-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t\t'is-active': areStylesEqual,\n\t\t\t\t\t\t\t\t'is-reset': isReset,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\taria-current={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-button\"\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t( areStylesEqual ? (\n\t\t\t\t\t\t\t\t<p className=\"edit-site-global-styles-screen-revisions__applied-text\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'These styles are already applied to your site.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__apply-button\"\n\t\t\t\t\t\t\t\t\tonClick={ onApplyRevision }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isReset\n\t\t\t\t\t\t\t\t\t\t? __( 'Reset to defaults' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Apply' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ol>\n\t);\n}\n\nexport default RevisionsButtons;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","sprintf","Button","Composite","dateI18n","getDate","humanTimeDiff","getSettings","store","coreStore","useSelect","privateApis","blockEditorPrivateApis","ENTER","SPACE","unlock","jsx","_jsx","jsxs","_jsxs","DAY_IN_MILLISECONDS","getGlobalStylesChanges","ChangesSummary","revision","previousRevision","changes","maxResults","length","className","children","map","change","getRevisionLabel","id","authorDisplayName","formattedModifiedDate","areStylesEqual","RevisionsButtons","userRevisions","selectedRevisionId","onChange","canApplyRevision","onApplyRevision","currentThemeName","currentUser","select","getCurrentTheme","getCurrentUser","currentTheme","name","rendered","stylesheet","dateNowInMs","getTime","datetimeAbbreviated","formats","orientation","role","index","author","modified","isUnsaved","revisionAuthor","authorAvatar","avatar_urls","isFirstItem","isSelected","isReset","modifiedDate","displayDate","revisionLabel","Item","onKeyDown","event","keyCode","onClick","preventDefault","render","dateTime","alt","src","size","variant"],"sources":["@wordpress/edit-site/src/components/global-styles/screen-revisions/revisions-buttons.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button, Composite } from '@wordpress/components';\nimport { dateI18n, getDate, humanTimeDiff, getSettings } from '@wordpress/date';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\n\nconst DAY_IN_MILLISECONDS = 60 * 60 * 1000 * 24;\nconst { getGlobalStylesChanges } = unlock( blockEditorPrivateApis );\n\nfunction ChangesSummary( { revision, previousRevision } ) {\n\tconst changes = getGlobalStylesChanges( revision, previousRevision, {\n\t\tmaxResults: 7,\n\t} );\n\n\tif ( ! changes.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ul\n\t\t\tdata-testid=\"global-styles-revision-changes\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__changes\"\n\t\t>\n\t\t\t{ changes.map( ( change ) => (\n\t\t\t\t<li key={ change }>{ change }</li>\n\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n\n/**\n * Returns a button label for the revision.\n *\n * @param {string|number} id A revision object.\n * @param {string} authorDisplayName Author name.\n * @param {string} formattedModifiedDate Revision modified date formatted.\n * @param {boolean} areStylesEqual Whether the revision matches the current editor styles.\n * @return {string} Translated label.\n */\nfunction getRevisionLabel(\n\tid,\n\tauthorDisplayName,\n\tformattedModifiedDate,\n\tareStylesEqual\n) {\n\tif ( 'parent' === id ) {\n\t\treturn __( 'Reset the styles to the theme defaults' );\n\t}\n\n\tif ( 'unsaved' === id ) {\n\t\treturn sprintf(\n\t\t\t/* translators: %s: author display name */\n\t\t\t__( 'Unsaved changes by %s' ),\n\t\t\tauthorDisplayName\n\t\t);\n\t}\n\n\treturn areStylesEqual\n\t\t? sprintf(\n\t\t\t\t// translators: 1: author display name. 2: revision creation date.\n\t\t\t\t__(\n\t\t\t\t\t'Changes saved by %1$s on %2$s. This revision matches current editor styles.'\n\t\t\t\t),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t )\n\t\t: sprintf(\n\t\t\t\t// translators: 1: author display name. 2: revision creation date.\n\t\t\t\t__( 'Changes saved by %1$s on %2$s' ),\n\t\t\t\tauthorDisplayName,\n\t\t\t\tformattedModifiedDate\n\t\t );\n}\n\n/**\n * Returns a rendered list of revisions buttons.\n *\n * @typedef {Object} props\n * @property {Array<Object>} userRevisions A collection of user revisions.\n * @property {number} selectedRevisionId The id of the currently-selected revision.\n * @property {Function} onChange Callback fired when a revision is selected.\n *\n * @param {props} Component props.\n * @return {JSX.Element} The modal component.\n */\nfunction RevisionsButtons( {\n\tuserRevisions,\n\tselectedRevisionId,\n\tonChange,\n\tcanApplyRevision,\n\tonApplyRevision,\n} ) {\n\tconst { currentThemeName, currentUser } = useSelect( ( select ) => {\n\t\tconst { getCurrentTheme, getCurrentUser } = select( coreStore );\n\t\tconst currentTheme = getCurrentTheme();\n\t\treturn {\n\t\t\tcurrentThemeName:\n\t\t\t\tcurrentTheme?.name?.rendered || currentTheme?.stylesheet,\n\t\t\tcurrentUser: getCurrentUser(),\n\t\t};\n\t}, [] );\n\tconst dateNowInMs = getDate().getTime();\n\tconst { datetimeAbbreviated } = getSettings().formats;\n\n\treturn (\n\t\t<Composite\n\t\t\torientation=\"vertical\"\n\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revisions-list\"\n\t\t\taria-label={ __( 'Global styles revisions list' ) }\n\t\t\trole=\"listbox\"\n\t\t>\n\t\t\t{ userRevisions.map( ( revision, index ) => {\n\t\t\t\tconst { id, author, modified } = revision;\n\t\t\t\tconst isUnsaved = 'unsaved' === id;\n\t\t\t\t// Unsaved changes are created by the current user.\n\t\t\t\tconst revisionAuthor = isUnsaved ? currentUser : author;\n\t\t\t\tconst authorDisplayName = revisionAuthor?.name || __( 'User' );\n\t\t\t\tconst authorAvatar = revisionAuthor?.avatar_urls?.[ '48' ];\n\t\t\t\tconst isFirstItem = index === 0;\n\t\t\t\tconst isSelected = selectedRevisionId\n\t\t\t\t\t? selectedRevisionId === id\n\t\t\t\t\t: isFirstItem;\n\t\t\t\tconst areStylesEqual = ! canApplyRevision && isSelected;\n\t\t\t\tconst isReset = 'parent' === id;\n\t\t\t\tconst modifiedDate = getDate( modified );\n\t\t\t\tconst displayDate =\n\t\t\t\t\tmodified &&\n\t\t\t\t\tdateNowInMs - modifiedDate.getTime() > DAY_IN_MILLISECONDS\n\t\t\t\t\t\t? dateI18n( datetimeAbbreviated, modifiedDate )\n\t\t\t\t\t\t: humanTimeDiff( modified );\n\t\t\t\tconst revisionLabel = getRevisionLabel(\n\t\t\t\t\tid,\n\t\t\t\t\tauthorDisplayName,\n\t\t\t\t\tdateI18n( datetimeAbbreviated, modifiedDate ),\n\t\t\t\t\tareStylesEqual\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__revision-item\"\n\t\t\t\t\t\taria-current={ isSelected }\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER || keyCode === SPACE ) {\n\t\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonChange( revision );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-selected={ isSelected }\n\t\t\t\t\t\taria-label={ revisionLabel }\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__revision-item-wrapper\">\n\t\t\t\t\t\t\t{ isReset ? (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ __( 'Default styles' ) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t{ currentThemeName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__description\">\n\t\t\t\t\t\t\t\t\t{ isUnsaved ? (\n\t\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__date\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( '(Unsaved)' ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__date\"\n\t\t\t\t\t\t\t\t\t\t\tdateTime={ modified }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ displayDate }\n\t\t\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t<span className=\"edit-site-global-styles-screen-revisions__meta\">\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\talt={ authorDisplayName }\n\t\t\t\t\t\t\t\t\t\t\tsrc={ authorAvatar }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{ authorDisplayName }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t\t\t<ChangesSummary\n\t\t\t\t\t\t\t\t\t\t\trevision={ revision }\n\t\t\t\t\t\t\t\t\t\t\tpreviousRevision={\n\t\t\t\t\t\t\t\t\t\t\t\tindex < userRevisions.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t? userRevisions[ index + 1 ]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: {}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t( areStylesEqual ? (\n\t\t\t\t\t\t\t\t<p className=\"edit-site-global-styles-screen-revisions__applied-text\">\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'These styles are already applied to your site.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-screen-revisions__apply-button\"\n\t\t\t\t\t\t\t\t\tonClick={ onApplyRevision }\n\t\t\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t\t\t'Apply the selected revision to your site.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ isReset\n\t\t\t\t\t\t\t\t\t\t? __( 'Reset to defaults' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Apply' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Composite.Item>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default RevisionsButtons;\n"],"mappings":"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","ignoreList":[]}
@@ -156,9 +156,8 @@ export default function ShadowsEditPanel() {
156
156
  },
157
157
  confirmButtonText: __('Delete'),
158
158
  size: "medium",
159
- children: sprintf(
160
- // translators: %s: name of the shadow
161
- 'Are you sure you want to delete "%s"?', selectedShadow.name)
159
+ children: sprintf(/* translators: %s: Name of the shadow preset. */
160
+ __('Are you sure you want to delete "%s" shadow preset?'), selectedShadow.name)
162
161
  }), isRenameModalVisible && /*#__PURE__*/_jsx(Modal, {
163
162
  title: __('Rename'),
164
163
  onRequestClose: () => setIsRenameModalVisible(false),
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalItemGroup","ItemGroup","__experimentalInputControl","InputControl","__experimentalUnitControl","UnitControl","__experimentalGrid","Grid","__experimentalDropdownContentWrapper","DropdownContentWrapper","useNavigator","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalConfirmDialog","ConfirmDialog","Dropdown","Button","Flex","FlexItem","ColorPalette","Modal","privateApis","componentsPrivateApis","__","sprintf","blockEditorPrivateApis","plus","shadow","shadowIcon","reset","moreVertical","useState","useMemo","useEffect","unlock","Subtitle","ScreenHeader","defaultShadow","getShadowParts","shadowStringToObject","shadowObjectToString","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","Menu","customShadowMenuItems","label","action","presetShadowMenuItems","ShadowsEditPanel","goBack","params","category","slug","shadows","setShadows","hasCurrentShadow","some","baseShadows","undefined","selectedShadow","setSelectedShadow","find","baseSelectedShadow","b","isConfirmDialogVisible","setIsConfirmDialogVisible","isRenameModalVisible","setIsRenameModalVisible","shadowName","setShadowName","name","onShadowChange","updatedShadows","map","s","onMenuClick","handleShadowDelete","filter","handleShadowRename","newName","title","children","justify","marginTop","marginBottom","paddingX","trigger","size","icon","item","Item","onClick","disabled","ItemLabel","className","ShadowsPreview","ShadowEditor","onChange","isOpen","onConfirm","onCancel","confirmButtonText","onRequestClose","onSubmit","event","preventDefault","__next40pxDefaultSize","autoComplete","placeholder","value","expanded","variant","type","shadowStyle","boxShadow","align","style","shadowParts","onChangeShadowPart","index","part","newShadowParts","join","onAddShadowPart","onRemoveShadowPart","p","i","spacing","level","isBordered","isSeparated","ShadowItem","canRemove","length","onRemove","popoverProps","placement","offset","shift","shadowObj","newShadow","renderToggle","onToggle","toggleProps","removeButtonProps","flexGrow","inset","renderContent","paddingSize","ShadowPopover","__experimentalIsRenderedInSidebar","enableAlpha","key","clearable","color","__nextHasNoMarginBottom","isBlock","hideLabelFromVision","columns","gap","ShadowInputControl","x","y","blur","spread","onValueChange","next","isNumeric","isNaN","parseFloat","nextValue"],"sources":["@wordpress/edit-site/src/components/global-styles/shadows-edit-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalInputControl as InputControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalGrid as Grid,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tuseNavigator,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdown,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tColorPalette,\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport {\n\tplus,\n\tshadow as shadowIcon,\n\treset,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport { useState, useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport ScreenHeader from './header';\nimport { defaultShadow } from './shadows-panel';\nimport {\n\tgetShadowParts,\n\tshadowStringToObject,\n\tshadowObjectToString,\n} from './shadow-utils';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst customShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Rename' ),\n\t\taction: 'rename',\n\t},\n\t{\n\t\tlabel: __( 'Delete' ),\n\t\taction: 'delete',\n\t},\n];\n\nconst presetShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Reset' ),\n\t\taction: 'reset',\n\t},\n];\n\nexport default function ShadowsEditPanel() {\n\tconst {\n\t\tgoBack,\n\t\tparams: { category, slug },\n\t} = useNavigator();\n\tconst [ shadows, setShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`\n\t);\n\n\tuseEffect( () => {\n\t\tconst hasCurrentShadow = shadows?.some(\n\t\t\t( shadow ) => shadow.slug === slug\n\t\t);\n\t\t// If the shadow being edited doesn't exist anymore in the global styles setting, navigate back\n\t\t// to prevent the user from editing a non-existent shadow entry.\n\t\t// This can happen, for example:\n\t\t// - when the user deletes the shadow\n\t\t// - when the user resets the styles while editing a custom shadow\n\t\t//\n\t\t// The check on the slug is necessary to prevent a double back navigation when the user triggers\n\t\t// a backward navigation by interacting with the screen's UI.\n\t\tif ( !! slug && ! hasCurrentShadow ) {\n\t\t\tgoBack();\n\t\t}\n\t}, [ shadows, slug, goBack ] );\n\n\tconst [ baseShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`,\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst [ selectedShadow, setSelectedShadow ] = useState( () =>\n\t\t( shadows || [] ).find( ( shadow ) => shadow.slug === slug )\n\t);\n\tconst baseSelectedShadow = useMemo(\n\t\t() => ( baseShadows || [] ).find( ( b ) => b.slug === slug ),\n\t\t[ baseShadows, slug ]\n\t);\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst [ isRenameModalVisible, setIsRenameModalVisible ] = useState( false );\n\tconst [ shadowName, setShadowName ] = useState( selectedShadow.name );\n\n\tif ( ! category || ! slug ) {\n\t\treturn null;\n\t}\n\n\tconst onShadowChange = ( shadow ) => {\n\t\tsetSelectedShadow( { ...selectedShadow, shadow } );\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, shadow } : s\n\t\t);\n\t\tsetShadows( updatedShadows );\n\t};\n\n\tconst onMenuClick = ( action ) => {\n\t\tif ( action === 'reset' ) {\n\t\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\t\ts.slug === slug ? baseSelectedShadow : s\n\t\t\t);\n\t\t\tsetSelectedShadow( baseSelectedShadow );\n\t\t\tsetShadows( updatedShadows );\n\t\t} else if ( action === 'delete' ) {\n\t\t\tsetIsConfirmDialogVisible( true );\n\t\t} else if ( action === 'rename' ) {\n\t\t\tsetIsRenameModalVisible( true );\n\t\t}\n\t};\n\n\tconst handleShadowDelete = () => {\n\t\tsetShadows( shadows.filter( ( s ) => s.slug !== slug ) );\n\t};\n\n\tconst handleShadowRename = ( newName ) => {\n\t\tif ( ! newName ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, name: newName } : s\n\t\t);\n\t\tsetSelectedShadow( { ...selectedShadow, name: newName } );\n\t\tsetShadows( updatedShadows );\n\t};\n\n\treturn ! selectedShadow ? (\n\t\t<ScreenHeader title=\"\" />\n\t) : (\n\t\t<>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<ScreenHeader title={ selectedShadow.name } />\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Spacer marginTop={ 2 } marginBottom={ 0 } paddingX={ 4 }>\n\t\t\t\t\t\t<Menu\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( category === 'custom'\n\t\t\t\t\t\t\t\t? customShadowMenuItems\n\t\t\t\t\t\t\t\t: presetShadowMenuItems\n\t\t\t\t\t\t\t).map( ( item ) => (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tkey={ item.action }\n\t\t\t\t\t\t\t\t\tonClick={ () => onMenuClick( item.action ) }\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\titem.action === 'reset' &&\n\t\t\t\t\t\t\t\t\t\tselectedShadow.shadow ===\n\t\t\t\t\t\t\t\t\t\t\tbaseSelectedShadow.shadow\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Menu>\n\t\t\t\t\t</Spacer>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t\t<div className=\"edit-site-global-styles-screen\">\n\t\t\t\t<ShadowsPreview shadow={ selectedShadow.shadow } />\n\t\t\t\t<ShadowEditor\n\t\t\t\t\tshadow={ selectedShadow.shadow }\n\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\thandleShadowDelete();\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: name of the shadow\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\"?',\n\t\t\t\t\t\tselectedShadow.name\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t\t{ isRenameModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => setIsRenameModalVisible( false ) }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\thandleShadowRename( shadowName );\n\t\t\t\t\t\t\tsetIsRenameModalVisible( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Shadow name' ) }\n\t\t\t\t\t\t\tvalue={ shadowName }\n\t\t\t\t\t\t\tonChange={ ( value ) => setShadowName( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer marginBottom={ 6 } />\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tclassName=\"block-editor-shadow-edit-modal__actions\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsRenameModalVisible( false )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ShadowsPreview( { shadow } ) {\n\tconst shadowStyle = {\n\t\tboxShadow: shadow,\n\t};\n\n\treturn (\n\t\t<Spacer marginBottom={ 4 } marginTop={ -2 }>\n\t\t\t<HStack\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-panel\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-block\"\n\t\t\t\t\tstyle={ shadowStyle }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n\nfunction ShadowEditor( { shadow, onChange } ) {\n\tconst shadowParts = useMemo( () => getShadowParts( shadow ), [ shadow ] );\n\n\tconst onChangeShadowPart = ( index, part ) => {\n\t\tconst newShadowParts = [ ...shadowParts ];\n\t\tnewShadowParts[ index ] = part;\n\t\tonChange( newShadowParts.join( ', ' ) );\n\t};\n\n\tconst onAddShadowPart = () => {\n\t\tonChange( [ ...shadowParts, defaultShadow ].join( ', ' ) );\n\t};\n\n\tconst onRemoveShadowPart = ( index ) => {\n\t\tonChange( shadowParts.filter( ( p, i ) => i !== index ).join( ', ' ) );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Flex\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName=\"edit-site-global-styles__shadows-panel__title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Shadows' ) }</Subtitle>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<FlexItem className=\"edit-site-global-styles__shadows-panel__options-container\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={ __( 'Add shadow' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonAddShadowPart();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t\t<Spacer />\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t{ shadowParts.map( ( part, index ) => (\n\t\t\t\t\t<ShadowItem\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tshadow={ part }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tonChangeShadowPart( index, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcanRemove={ shadowParts.length > 1 }\n\t\t\t\t\t\tonRemove={ () => onRemoveShadowPart( index ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction ShadowItem( { shadow, onChange, canRemove, onRemove } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\tconst shadowObj = useMemo(\n\t\t() => shadowStringToObject( shadow ),\n\t\t[ shadow ]\n\t);\n\tconst onShadowChange = ( newShadow ) => {\n\t\tonChange( shadowObjectToString( newShadow ) );\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown\"\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__dropdown-toggle',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t};\n\t\t\t\tconst removeButtonProps = {\n\t\t\t\t\tonClick: onRemove,\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__remove-button',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\tlabel: __( 'Remove shadow' ),\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<HStack align=\"center\" justify=\"flex-start\" spacing={ 0 }>\n\t\t\t\t\t\t<FlexItem style={ { flexGrow: 1 } }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\t\t{ ...toggleProps }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ shadowObj.inset\n\t\t\t\t\t\t\t\t\t? __( 'Inner shadow' )\n\t\t\t\t\t\t\t\t\t: __( 'Drop shadow' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown-content\"\n\t\t\t\t>\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadowObj={ shadowObj }\n\t\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction ShadowPopover( { shadowObj, onChange } ) {\n\tconst __experimentalIsRenderedInSidebar = true;\n\tconst enableAlpha = true;\n\n\tconst onShadowChange = ( key, value ) => {\n\t\tconst newShadow = {\n\t\t\t...shadowObj,\n\t\t\t[ key ]: value,\n\t\t};\n\t\tonChange( newShadow );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor-panel\"\n\t\t>\n\t\t\t<ColorPalette\n\t\t\t\tclearable={ false }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tvalue={ shadowObj.color }\n\t\t\t\tonChange={ ( value ) => onShadowChange( 'color', value ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ shadowObj.inset ? 'inset' : 'outset' }\n\t\t\t\tisBlock\n\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\tonShadowChange( 'inset', value === 'inset' )\n\t\t\t\t}\n\t\t\t\thideLabelFromVision\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"outset\"\n\t\t\t\t\tlabel={ __( 'Outset' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"inset\"\n\t\t\t\t\tlabel={ __( 'Inset' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'X Position' ) }\n\t\t\t\t\tvalue={ shadowObj.x }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'x', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Y Position' ) }\n\t\t\t\t\tvalue={ shadowObj.y }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'y', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Blur' ) }\n\t\t\t\t\tvalue={ shadowObj.blur }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'blur', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Spread' ) }\n\t\t\t\t\tvalue={ shadowObj.spread }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'spread', value ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</VStack>\n\t);\n}\n\nfunction ShadowInputControl( { label, value, onChange } ) {\n\tconst onValueChange = ( next ) => {\n\t\tconst isNumeric = next !== undefined && ! isNaN( parseFloat( next ) );\n\t\tconst nextValue = isNumeric ? next : '0px';\n\t\tonChange( nextValue );\n\t};\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ label }\n\t\t\t__next40pxDefaultSize\n\t\t\tvalue={ value }\n\t\t\tonChange={ onValueChange }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalItemGroup","ItemGroup","__experimentalInputControl","InputControl","__experimentalUnitControl","UnitControl","__experimentalGrid","Grid","__experimentalDropdownContentWrapper","DropdownContentWrapper","useNavigator","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalConfirmDialog","ConfirmDialog","Dropdown","Button","Flex","FlexItem","ColorPalette","Modal","privateApis","componentsPrivateApis","__","sprintf","blockEditorPrivateApis","plus","shadow","shadowIcon","reset","moreVertical","useState","useMemo","useEffect","unlock","Subtitle","ScreenHeader","defaultShadow","getShadowParts","shadowStringToObject","shadowObjectToString","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","Menu","customShadowMenuItems","label","action","presetShadowMenuItems","ShadowsEditPanel","goBack","params","category","slug","shadows","setShadows","hasCurrentShadow","some","baseShadows","undefined","selectedShadow","setSelectedShadow","find","baseSelectedShadow","b","isConfirmDialogVisible","setIsConfirmDialogVisible","isRenameModalVisible","setIsRenameModalVisible","shadowName","setShadowName","name","onShadowChange","updatedShadows","map","s","onMenuClick","handleShadowDelete","filter","handleShadowRename","newName","title","children","justify","marginTop","marginBottom","paddingX","trigger","size","icon","item","Item","onClick","disabled","ItemLabel","className","ShadowsPreview","ShadowEditor","onChange","isOpen","onConfirm","onCancel","confirmButtonText","onRequestClose","onSubmit","event","preventDefault","__next40pxDefaultSize","autoComplete","placeholder","value","expanded","variant","type","shadowStyle","boxShadow","align","style","shadowParts","onChangeShadowPart","index","part","newShadowParts","join","onAddShadowPart","onRemoveShadowPart","p","i","spacing","level","isBordered","isSeparated","ShadowItem","canRemove","length","onRemove","popoverProps","placement","offset","shift","shadowObj","newShadow","renderToggle","onToggle","toggleProps","removeButtonProps","flexGrow","inset","renderContent","paddingSize","ShadowPopover","__experimentalIsRenderedInSidebar","enableAlpha","key","clearable","color","__nextHasNoMarginBottom","isBlock","hideLabelFromVision","columns","gap","ShadowInputControl","x","y","blur","spread","onValueChange","next","isNumeric","isNaN","parseFloat","nextValue"],"sources":["@wordpress/edit-site/src/components/global-styles/shadows-edit-panel.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalInputControl as InputControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalGrid as Grid,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tuseNavigator,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdown,\n\tButton,\n\tFlex,\n\tFlexItem,\n\tColorPalette,\n\tModal,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport {\n\tplus,\n\tshadow as shadowIcon,\n\treset,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport { useState, useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport Subtitle from './subtitle';\nimport ScreenHeader from './header';\nimport { defaultShadow } from './shadows-panel';\nimport {\n\tgetShadowParts,\n\tshadowStringToObject,\n\tshadowObjectToString,\n} from './shadow-utils';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst customShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Rename' ),\n\t\taction: 'rename',\n\t},\n\t{\n\t\tlabel: __( 'Delete' ),\n\t\taction: 'delete',\n\t},\n];\n\nconst presetShadowMenuItems = [\n\t{\n\t\tlabel: __( 'Reset' ),\n\t\taction: 'reset',\n\t},\n];\n\nexport default function ShadowsEditPanel() {\n\tconst {\n\t\tgoBack,\n\t\tparams: { category, slug },\n\t} = useNavigator();\n\tconst [ shadows, setShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`\n\t);\n\n\tuseEffect( () => {\n\t\tconst hasCurrentShadow = shadows?.some(\n\t\t\t( shadow ) => shadow.slug === slug\n\t\t);\n\t\t// If the shadow being edited doesn't exist anymore in the global styles setting, navigate back\n\t\t// to prevent the user from editing a non-existent shadow entry.\n\t\t// This can happen, for example:\n\t\t// - when the user deletes the shadow\n\t\t// - when the user resets the styles while editing a custom shadow\n\t\t//\n\t\t// The check on the slug is necessary to prevent a double back navigation when the user triggers\n\t\t// a backward navigation by interacting with the screen's UI.\n\t\tif ( !! slug && ! hasCurrentShadow ) {\n\t\t\tgoBack();\n\t\t}\n\t}, [ shadows, slug, goBack ] );\n\n\tconst [ baseShadows ] = useGlobalSetting(\n\t\t`shadow.presets.${ category }`,\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst [ selectedShadow, setSelectedShadow ] = useState( () =>\n\t\t( shadows || [] ).find( ( shadow ) => shadow.slug === slug )\n\t);\n\tconst baseSelectedShadow = useMemo(\n\t\t() => ( baseShadows || [] ).find( ( b ) => b.slug === slug ),\n\t\t[ baseShadows, slug ]\n\t);\n\tconst [ isConfirmDialogVisible, setIsConfirmDialogVisible ] =\n\t\tuseState( false );\n\tconst [ isRenameModalVisible, setIsRenameModalVisible ] = useState( false );\n\tconst [ shadowName, setShadowName ] = useState( selectedShadow.name );\n\n\tif ( ! category || ! slug ) {\n\t\treturn null;\n\t}\n\n\tconst onShadowChange = ( shadow ) => {\n\t\tsetSelectedShadow( { ...selectedShadow, shadow } );\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, shadow } : s\n\t\t);\n\t\tsetShadows( updatedShadows );\n\t};\n\n\tconst onMenuClick = ( action ) => {\n\t\tif ( action === 'reset' ) {\n\t\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\t\ts.slug === slug ? baseSelectedShadow : s\n\t\t\t);\n\t\t\tsetSelectedShadow( baseSelectedShadow );\n\t\t\tsetShadows( updatedShadows );\n\t\t} else if ( action === 'delete' ) {\n\t\t\tsetIsConfirmDialogVisible( true );\n\t\t} else if ( action === 'rename' ) {\n\t\t\tsetIsRenameModalVisible( true );\n\t\t}\n\t};\n\n\tconst handleShadowDelete = () => {\n\t\tsetShadows( shadows.filter( ( s ) => s.slug !== slug ) );\n\t};\n\n\tconst handleShadowRename = ( newName ) => {\n\t\tif ( ! newName ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updatedShadows = shadows.map( ( s ) =>\n\t\t\ts.slug === slug ? { ...selectedShadow, name: newName } : s\n\t\t);\n\t\tsetSelectedShadow( { ...selectedShadow, name: newName } );\n\t\tsetShadows( updatedShadows );\n\t};\n\n\treturn ! selectedShadow ? (\n\t\t<ScreenHeader title=\"\" />\n\t) : (\n\t\t<>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<ScreenHeader title={ selectedShadow.name } />\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Spacer marginTop={ 2 } marginBottom={ 0 } paddingX={ 4 }>\n\t\t\t\t\t\t<Menu\n\t\t\t\t\t\t\ttrigger={\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Menu' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( category === 'custom'\n\t\t\t\t\t\t\t\t? customShadowMenuItems\n\t\t\t\t\t\t\t\t: presetShadowMenuItems\n\t\t\t\t\t\t\t).map( ( item ) => (\n\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\tkey={ item.action }\n\t\t\t\t\t\t\t\t\tonClick={ () => onMenuClick( item.action ) }\n\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\titem.action === 'reset' &&\n\t\t\t\t\t\t\t\t\t\tselectedShadow.shadow ===\n\t\t\t\t\t\t\t\t\t\t\tbaseSelectedShadow.shadow\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</Menu>\n\t\t\t\t\t</Spacer>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t\t<div className=\"edit-site-global-styles-screen\">\n\t\t\t\t<ShadowsPreview shadow={ selectedShadow.shadow } />\n\t\t\t\t<ShadowEditor\n\t\t\t\t\tshadow={ selectedShadow.shadow }\n\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ isConfirmDialogVisible && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tisOpen\n\t\t\t\t\tonConfirm={ () => {\n\t\t\t\t\t\thandleShadowDelete();\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonCancel={ () => {\n\t\t\t\t\t\tsetIsConfirmDialogVisible( false );\n\t\t\t\t\t} }\n\t\t\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t/* translators: %s: Name of the shadow preset. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Are you sure you want to delete \"%s\" shadow preset?'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tselectedShadow.name\n\t\t\t\t\t) }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t\t{ isRenameModalVisible && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Rename' ) }\n\t\t\t\t\tonRequestClose={ () => setIsRenameModalVisible( false ) }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\thandleShadowRename( shadowName );\n\t\t\t\t\t\t\tsetIsRenameModalVisible( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<InputControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Shadow name' ) }\n\t\t\t\t\t\t\tvalue={ shadowName }\n\t\t\t\t\t\t\tonChange={ ( value ) => setShadowName( value ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer marginBottom={ 6 } />\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tclassName=\"block-editor-shadow-edit-modal__actions\"\n\t\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsRenameModalVisible( false )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</form>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ShadowsPreview( { shadow } ) {\n\tconst shadowStyle = {\n\t\tboxShadow: shadow,\n\t};\n\n\treturn (\n\t\t<Spacer marginBottom={ 4 } marginTop={ -2 }>\n\t\t\t<HStack\n\t\t\t\talign=\"center\"\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-panel\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-preview-block\"\n\t\t\t\t\tstyle={ shadowStyle }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</Spacer>\n\t);\n}\n\nfunction ShadowEditor( { shadow, onChange } ) {\n\tconst shadowParts = useMemo( () => getShadowParts( shadow ), [ shadow ] );\n\n\tconst onChangeShadowPart = ( index, part ) => {\n\t\tconst newShadowParts = [ ...shadowParts ];\n\t\tnewShadowParts[ index ] = part;\n\t\tonChange( newShadowParts.join( ', ' ) );\n\t};\n\n\tconst onAddShadowPart = () => {\n\t\tonChange( [ ...shadowParts, defaultShadow ].join( ', ' ) );\n\t};\n\n\tconst onRemoveShadowPart = ( index ) => {\n\t\tonChange( shadowParts.filter( ( p, i ) => i !== index ).join( ', ' ) );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VStack spacing={ 2 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Flex\n\t\t\t\t\t\talign=\"center\"\n\t\t\t\t\t\tclassName=\"edit-site-global-styles__shadows-panel__title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Shadows' ) }</Subtitle>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<FlexItem className=\"edit-site-global-styles__shadows-panel__options-container\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={ __( 'Add shadow' ) }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonAddShadowPart();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t\t<Spacer />\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t{ shadowParts.map( ( part, index ) => (\n\t\t\t\t\t<ShadowItem\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\tshadow={ part }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tonChangeShadowPart( index, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcanRemove={ shadowParts.length > 1 }\n\t\t\t\t\t\tonRemove={ () => onRemoveShadowPart( index ) }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</>\n\t);\n}\n\nfunction ShadowItem( { shadow, onChange, canRemove, onRemove } ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\tconst shadowObj = useMemo(\n\t\t() => shadowStringToObject( shadow ),\n\t\t[ shadow ]\n\t);\n\tconst onShadowChange = ( newShadow ) => {\n\t\tonChange( shadowObjectToString( newShadow ) );\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown\"\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__dropdown-toggle',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t};\n\t\t\t\tconst removeButtonProps = {\n\t\t\t\t\tonClick: onRemove,\n\t\t\t\t\tclassName: clsx(\n\t\t\t\t\t\t'edit-site-global-styles__shadow-editor__remove-button',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t),\n\t\t\t\t\tlabel: __( 'Remove shadow' ),\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<HStack align=\"center\" justify=\"flex-start\" spacing={ 0 }>\n\t\t\t\t\t\t<FlexItem style={ { flexGrow: 1 } }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\ticon={ shadowIcon }\n\t\t\t\t\t\t\t\t{ ...toggleProps }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ shadowObj.inset\n\t\t\t\t\t\t\t\t\t? __( 'Inner shadow' )\n\t\t\t\t\t\t\t\t\t: __( 'Drop shadow' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\t\ticon={ reset }\n\t\t\t\t\t\t\t\t\t{ ...removeButtonProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"edit-site-global-styles__shadow-editor__dropdown-content\"\n\t\t\t\t>\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadowObj={ shadowObj }\n\t\t\t\t\t\tonChange={ onShadowChange }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction ShadowPopover( { shadowObj, onChange } ) {\n\tconst __experimentalIsRenderedInSidebar = true;\n\tconst enableAlpha = true;\n\n\tconst onShadowChange = ( key, value ) => {\n\t\tconst newShadow = {\n\t\t\t...shadowObj,\n\t\t\t[ key ]: value,\n\t\t};\n\t\tonChange( newShadow );\n\t};\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 4 }\n\t\t\tclassName=\"edit-site-global-styles__shadow-editor-panel\"\n\t\t>\n\t\t\t<ColorPalette\n\t\t\t\tclearable={ false }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tvalue={ shadowObj.color }\n\t\t\t\tonChange={ ( value ) => onShadowChange( 'color', value ) }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tvalue={ shadowObj.inset ? 'inset' : 'outset' }\n\t\t\t\tisBlock\n\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\tonShadowChange( 'inset', value === 'inset' )\n\t\t\t\t}\n\t\t\t\thideLabelFromVision\n\t\t\t\t__next40pxDefaultSize\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"outset\"\n\t\t\t\t\tlabel={ __( 'Outset' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"inset\"\n\t\t\t\t\tlabel={ __( 'Inset' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<Grid columns={ 2 } gap={ 4 }>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'X Position' ) }\n\t\t\t\t\tvalue={ shadowObj.x }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'x', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Y Position' ) }\n\t\t\t\t\tvalue={ shadowObj.y }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'y', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Blur' ) }\n\t\t\t\t\tvalue={ shadowObj.blur }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'blur', value ) }\n\t\t\t\t/>\n\t\t\t\t<ShadowInputControl\n\t\t\t\t\tlabel={ __( 'Spread' ) }\n\t\t\t\t\tvalue={ shadowObj.spread }\n\t\t\t\t\tonChange={ ( value ) => onShadowChange( 'spread', value ) }\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</VStack>\n\t);\n}\n\nfunction ShadowInputControl( { label, value, onChange } ) {\n\tconst onValueChange = ( next ) => {\n\t\tconst isNumeric = next !== undefined && ! isNaN( parseFloat( next ) );\n\t\tconst nextValue = isNumeric ? next : '0px';\n\t\tonChange( nextValue );\n\t};\n\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ label }\n\t\t\t__next40pxDefaultSize\n\t\t\tvalue={ value }\n\t\t\tonChange={ onValueChange }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,8 @@ import { __ } from '@wordpress/i18n';
9
9
  import { store as preferencesStore } from '@wordpress/preferences';
10
10
  import { moreVertical } from '@wordpress/icons';
11
11
  import { store as coreStore } from '@wordpress/core-data';
12
- import { useEffect } from '@wordpress/element';
12
+ import { useEffect, Fragment } from '@wordpress/element';
13
+ import { usePrevious } from '@wordpress/compose';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
@@ -163,6 +164,11 @@ function GlobalStylesStyleBook() {
163
164
  navigator.goTo('/colors/palette');
164
165
  return;
165
166
  }
167
+ if (blockName === 'typography') {
168
+ // Go to typography Global Styles.
169
+ navigator.goTo('/typography');
170
+ return;
171
+ }
166
172
 
167
173
  // Now go to the selected block.
168
174
  navigator.goTo('/blocks/' + encodeURIComponent(blockName));
@@ -251,13 +257,47 @@ function GlobalStylesEditorCanvasContainerLink() {
251
257
  }
252
258
  }, [editorCanvasContainerView, isRevisionsOpen, goTo]);
253
259
  }
254
- function GlobalStylesUI() {
260
+ function useNavigatorSync(parentPath, onPathChange) {
261
+ const navigator = useNavigator();
262
+ const {
263
+ path: childPath
264
+ } = navigator.location;
265
+ const previousParentPath = usePrevious(parentPath);
266
+ const previousChildPath = usePrevious(childPath);
267
+ useEffect(() => {
268
+ if (parentPath !== childPath) {
269
+ if (parentPath !== previousParentPath) {
270
+ navigator.goTo(parentPath);
271
+ } else if (childPath !== previousChildPath) {
272
+ onPathChange(childPath);
273
+ }
274
+ }
275
+ }, [onPathChange, parentPath, previousChildPath, previousParentPath, childPath, navigator]);
276
+ }
277
+
278
+ // This component is used to wrap the hook in order to conditionally execute it
279
+ // when the parent component is used on controlled mode.
280
+ function NavigationSync({
281
+ path: parentPath,
282
+ onPathChange,
283
+ children
284
+ }) {
285
+ useNavigatorSync(parentPath, onPathChange);
286
+ return children;
287
+ }
288
+ function GlobalStylesUI({
289
+ path,
290
+ onPathChange
291
+ }) {
255
292
  const blocks = getBlockTypes();
256
293
  const editorCanvasContainerView = useSelect(select => unlock(select(editSiteStore)).getEditorCanvasContainerView(), []);
257
294
  return /*#__PURE__*/_jsxs(Navigator, {
258
295
  className: "edit-site-global-styles-sidebar__navigator-provider",
259
296
  initialPath: "/",
260
- children: [/*#__PURE__*/_jsx(GlobalStylesNavigationScreen, {
297
+ children: [path && onPathChange && /*#__PURE__*/_jsx(NavigationSync, {
298
+ path: path,
299
+ onPathChange: onPathChange
300
+ }), /*#__PURE__*/_jsx(GlobalStylesNavigationScreen, {
261
301
  path: "/",
262
302
  children: /*#__PURE__*/_jsx(ScreenRoot, {})
263
303
  }), /*#__PURE__*/_jsx(GlobalStylesNavigationScreen, {