@wordpress/edit-site 4.4.0 → 4.7.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 (134) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/add-new-template/new-template.js +24 -22
  3. package/build/components/add-new-template/new-template.js.map +1 -1
  4. package/build/components/block-editor/index.js +29 -23
  5. package/build/components/block-editor/index.js.map +1 -1
  6. package/build/components/code-editor/code-editor-text-area.js +11 -9
  7. package/build/components/code-editor/code-editor-text-area.js.map +1 -1
  8. package/build/components/global-styles/border-panel.js +2 -7
  9. package/build/components/global-styles/border-panel.js.map +1 -1
  10. package/build/components/global-styles/context-menu.js +3 -3
  11. package/build/components/global-styles/context-menu.js.map +1 -1
  12. package/build/components/global-styles/header.js +15 -11
  13. package/build/components/global-styles/header.js.map +1 -1
  14. package/build/components/global-styles/hooks.js +2 -2
  15. package/build/components/global-styles/hooks.js.map +1 -1
  16. package/build/components/global-styles/navigation-button.js +4 -4
  17. package/build/components/global-styles/navigation-button.js.map +1 -1
  18. package/build/components/global-styles/palette.js +1 -1
  19. package/build/components/global-styles/palette.js.map +1 -1
  20. package/build/components/global-styles/preview.js +13 -2
  21. package/build/components/global-styles/preview.js.map +1 -1
  22. package/build/components/global-styles/screen-block-list.js +1 -1
  23. package/build/components/global-styles/screen-block-list.js.map +1 -1
  24. package/build/components/global-styles/screen-colors.js +3 -3
  25. package/build/components/global-styles/screen-colors.js.map +1 -1
  26. package/build/components/global-styles/screen-root.js +13 -3
  27. package/build/components/global-styles/screen-root.js.map +1 -1
  28. package/build/components/global-styles/screen-typography.js +1 -1
  29. package/build/components/global-styles/screen-typography.js.map +1 -1
  30. package/build/components/global-styles/use-global-styles-output.js +1 -7
  31. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  32. package/build/components/list/table.js +1 -1
  33. package/build/components/list/table.js.map +1 -1
  34. package/build/components/navigation-sidebar/navigation-panel/constants.js +2 -2
  35. package/build/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
  36. package/build/components/preferences-modal/index.js +5 -1
  37. package/build/components/preferences-modal/index.js.map +1 -1
  38. package/build/components/routes/use-title.js +3 -1
  39. package/build/components/routes/use-title.js.map +1 -1
  40. package/build/components/secondary-sidebar/list-view-sidebar.js +1 -5
  41. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  42. package/build/components/sidebar/global-styles-sidebar.js +2 -4
  43. package/build/components/sidebar/global-styles-sidebar.js.map +1 -1
  44. package/build/components/sidebar/index.js +1 -1
  45. package/build/components/sidebar/index.js.map +1 -1
  46. package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js +1 -5
  47. package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  48. package/build/components/template-details/index.js +4 -2
  49. package/build/components/template-details/index.js.map +1 -1
  50. package/build/index.js +11 -3
  51. package/build/index.js.map +1 -1
  52. package/build-module/components/add-new-template/new-template.js +24 -23
  53. package/build-module/components/add-new-template/new-template.js.map +1 -1
  54. package/build-module/components/block-editor/index.js +29 -24
  55. package/build-module/components/block-editor/index.js.map +1 -1
  56. package/build-module/components/code-editor/code-editor-text-area.js +12 -10
  57. package/build-module/components/code-editor/code-editor-text-area.js.map +1 -1
  58. package/build-module/components/global-styles/border-panel.js +2 -7
  59. package/build-module/components/global-styles/border-panel.js.map +1 -1
  60. package/build-module/components/global-styles/context-menu.js +4 -4
  61. package/build-module/components/global-styles/context-menu.js.map +1 -1
  62. package/build-module/components/global-styles/header.js +16 -11
  63. package/build-module/components/global-styles/header.js.map +1 -1
  64. package/build-module/components/global-styles/hooks.js +2 -2
  65. package/build-module/components/global-styles/hooks.js.map +1 -1
  66. package/build-module/components/global-styles/navigation-button.js +3 -3
  67. package/build-module/components/global-styles/navigation-button.js.map +1 -1
  68. package/build-module/components/global-styles/palette.js +2 -2
  69. package/build-module/components/global-styles/palette.js.map +1 -1
  70. package/build-module/components/global-styles/preview.js +14 -3
  71. package/build-module/components/global-styles/preview.js.map +1 -1
  72. package/build-module/components/global-styles/screen-block-list.js +2 -2
  73. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  74. package/build-module/components/global-styles/screen-colors.js +4 -4
  75. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  76. package/build-module/components/global-styles/screen-root.js +15 -5
  77. package/build-module/components/global-styles/screen-root.js.map +1 -1
  78. package/build-module/components/global-styles/screen-typography.js +2 -2
  79. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  80. package/build-module/components/global-styles/use-global-styles-output.js +1 -7
  81. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  82. package/build-module/components/list/table.js +1 -1
  83. package/build-module/components/list/table.js.map +1 -1
  84. package/build-module/components/navigation-sidebar/navigation-panel/constants.js +2 -2
  85. package/build-module/components/navigation-sidebar/navigation-panel/constants.js.map +1 -1
  86. package/build-module/components/preferences-modal/index.js +5 -1
  87. package/build-module/components/preferences-modal/index.js.map +1 -1
  88. package/build-module/components/routes/use-title.js +2 -1
  89. package/build-module/components/routes/use-title.js.map +1 -1
  90. package/build-module/components/secondary-sidebar/list-view-sidebar.js +1 -5
  91. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  92. package/build-module/components/sidebar/global-styles-sidebar.js +2 -4
  93. package/build-module/components/sidebar/global-styles-sidebar.js.map +1 -1
  94. package/build-module/components/sidebar/index.js +3 -3
  95. package/build-module/components/sidebar/index.js.map +1 -1
  96. package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js +1 -5
  97. package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  98. package/build-module/components/template-details/index.js +4 -2
  99. package/build-module/components/template-details/index.js.map +1 -1
  100. package/build-module/index.js +10 -3
  101. package/build-module/index.js.map +1 -1
  102. package/build-style/style-rtl.css +22 -71
  103. package/build-style/style.css +22 -71
  104. package/package.json +30 -30
  105. package/src/components/add-new-template/new-template.js +22 -17
  106. package/src/components/block-editor/index.js +59 -38
  107. package/src/components/code-editor/code-editor-text-area.js +12 -7
  108. package/src/components/global-styles/border-panel.js +2 -12
  109. package/src/components/global-styles/context-menu.js +7 -7
  110. package/src/components/global-styles/header.js +20 -17
  111. package/src/components/global-styles/hooks.js +1 -1
  112. package/src/components/global-styles/navigation-button.js +3 -3
  113. package/src/components/global-styles/palette.js +3 -3
  114. package/src/components/global-styles/preview.js +17 -2
  115. package/src/components/global-styles/screen-block-list.js +3 -3
  116. package/src/components/global-styles/screen-colors.js +7 -7
  117. package/src/components/global-styles/screen-root.js +34 -24
  118. package/src/components/global-styles/screen-typography.js +3 -3
  119. package/src/components/global-styles/use-global-styles-output.js +1 -4
  120. package/src/components/header/document-actions/style.scss +1 -1
  121. package/src/components/header/style.scss +14 -29
  122. package/src/components/list/style.scss +1 -0
  123. package/src/components/list/table.js +1 -4
  124. package/src/components/navigation-sidebar/navigation-panel/constants.js +2 -2
  125. package/src/components/preferences-modal/index.js +8 -1
  126. package/src/components/routes/use-title.js +3 -2
  127. package/src/components/secondary-sidebar/list-view-sidebar.js +1 -5
  128. package/src/components/sidebar/global-styles-sidebar.js +1 -1
  129. package/src/components/sidebar/index.js +4 -2
  130. package/src/components/sidebar/navigation-menu-sidebar/navigation-menu.js +1 -7
  131. package/src/components/sidebar/navigation-menu-sidebar/style.scss +0 -1
  132. package/src/components/sidebar/style.scss +4 -47
  133. package/src/components/template-details/index.js +4 -1
  134. package/src/index.js +17 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.7.0 (2022-06-01)
6
+
7
+ ## 4.6.0 (2022-05-18)
8
+
9
+ ## 4.5.0 (2022-05-04)
10
+
5
11
  ## 4.4.0 (2022-04-21)
6
12
 
7
13
  ## 4.3.0 (2022-04-08)
@@ -25,6 +25,8 @@ var _notices = require("@wordpress/notices");
25
25
 
26
26
  var _routes = require("../routes");
27
27
 
28
+ var _store = require("../../store");
29
+
28
30
  /**
29
31
  * External dependencies
30
32
  */
@@ -36,10 +38,10 @@ var _routes = require("../routes");
36
38
  /**
37
39
  * Internal dependencies
38
40
  */
39
- const DEFAULT_TEMPLATE_SLUGS = ['front-page', 'single-post', 'page', 'index', 'archive', 'author', 'category', 'date', 'tag', 'taxonomy', 'search', '404'];
41
+ const DEFAULT_TEMPLATE_SLUGS = ['front-page', 'single', 'page', 'index', 'archive', 'author', 'category', 'date', 'tag', 'taxonomy', 'search', '404'];
40
42
  const TEMPLATE_ICONS = {
41
43
  'front-page': _icons.home,
42
- 'single-post': _icons.post,
44
+ single: _icons.post,
43
45
  page: _icons.page,
44
46
  archive: _icons.archive,
45
47
  search: _icons.search,
@@ -73,32 +75,34 @@ function NewTemplate(_ref) {
73
75
  const {
74
76
  createErrorNotice
75
77
  } = (0, _data.useDispatch)(_notices.store);
78
+ const {
79
+ setTemplate
80
+ } = (0, _data.useDispatch)(_store.store);
76
81
 
77
- async function createTemplate(_ref2) {
78
- let {
79
- slug
80
- } = _ref2;
81
-
82
+ async function createTemplate(template) {
82
83
  try {
83
84
  const {
84
85
  title,
85
- description
86
- } = (0, _lodash.find)(defaultTemplateTypes, {
86
+ description,
87
87
  slug
88
- });
89
- const template = await saveEntityRecord('postType', 'wp_template', {
90
- excerpt: description,
88
+ } = template;
89
+ const newTemplate = await saveEntityRecord('postType', 'wp_template', {
90
+ description,
91
91
  // Slugs need to be strings, so this is for template `404`
92
92
  slug: slug.toString(),
93
93
  status: 'publish',
94
- title
94
+ title,
95
+ // This adds a post meta field in template that is part of `is_custom` value calculation.
96
+ is_wp_suggestion: true
95
97
  }, {
96
98
  throwOnError: true
97
- }); // Navigate to the created template editor.
99
+ }); // Set template before navigating away to avoid initial stale value.
100
+
101
+ setTemplate(newTemplate.id, newTemplate.slug); // Navigate to the created template editor.
98
102
 
99
103
  history.push({
100
- postId: template.id,
101
- postType: template.type
104
+ postId: newTemplate.id,
105
+ postType: newTemplate.type
102
106
  }); // TODO: Add a success notice?
103
107
  } catch (error) {
104
108
  const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0, _i18n.__)('An error occurred while creating the template.');
@@ -134,21 +138,19 @@ function NewTemplate(_ref) {
134
138
  className: "edit-site-new-template-dropdown__popover"
135
139
  }, (0, _element.createElement)(_components.MenuGroup, {
136
140
  label: postType.labels.add_new_item
137
- }, (0, _lodash.map)(missingTemplates, _ref3 => {
138
- let {
141
+ }, (0, _lodash.map)(missingTemplates, template => {
142
+ const {
139
143
  title,
140
144
  description,
141
145
  slug
142
- } = _ref3;
146
+ } = template;
143
147
  return (0, _element.createElement)(_components.MenuItem, {
144
148
  icon: TEMPLATE_ICONS[slug],
145
149
  iconPosition: "left",
146
150
  info: description,
147
151
  key: slug,
148
152
  onClick: () => {
149
- createTemplate({
150
- slug
151
- }); // We will be navigated way so no need to close the dropdown.
153
+ createTemplate(template); // We will be navigated way so no need to close the dropdown.
152
154
  }
153
155
  }, title);
154
156
  }))));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/add-new-template/new-template.js"],"names":["DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","post","page","archive","search","notFound","index","list","category","author","postAuthor","taxonomy","blockMeta","date","postDate","tag","attachment","media","NewTemplate","postType","history","templates","defaultTemplateTypes","select","coreStore","getEntityRecords","per_page","editorStore","__experimentalGetDefaultTemplateTypes","saveEntityRecord","createErrorNotice","noticesStore","createTemplate","slug","title","description","template","excerpt","toString","status","throwOnError","push","postId","id","type","error","errorMessage","message","code","existingTemplateSlugs","missingTemplates","length","sort","template1","template2","indexOf","labels","add_new","add_new_item","noArrow","variant"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAMA;;AACA;;AACA;;AACA;;AAeA;;AACA;;AAKA;;AAtCA;AACA;AACA;;AAGA;AACA;AACA;;AA4BA;AACA;AACA;AAGA,MAAMA,sBAAsB,GAAG,CAC9B,YAD8B,EAE9B,aAF8B,EAG9B,MAH8B,EAI9B,OAJ8B,EAK9B,SAL8B,EAM9B,QAN8B,EAO9B,UAP8B,EAQ9B,MAR8B,EAS9B,KAT8B,EAU9B,UAV8B,EAW9B,QAX8B,EAY9B,KAZ8B,CAA/B;AAeA,MAAMC,cAAc,GAAG;AACtB,gBAAcC,WADQ;AAEtB,iBAAeC,WAFO;AAGtBC,EAAAA,IAAI,EAAJA,WAHsB;AAItBC,EAAAA,OAAO,EAAPA,cAJsB;AAKtBC,EAAAA,MAAM,EAANA,aALsB;AAMtB,OAAKC,eANiB;AAOtBC,EAAAA,KAAK,EAAEC,WAPe;AAQtBC,EAAAA,QAAQ,EAARA,eARsB;AAStBC,EAAAA,MAAM,EAAEC,iBATc;AAUtBC,EAAAA,QAAQ,EAAEC,gBAVY;AAWtBC,EAAAA,IAAI,EAAEC,eAXgB;AAYtBC,EAAAA,GAAG,EAAHA,UAZsB;AAatBC,EAAAA,UAAU,EAAEC;AAbU,CAAvB;;AAgBe,SAASC,WAAT,OAAqC;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACnD,QAAMC,OAAO,GAAG,yBAAhB;AACA,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAAsC,qBACzCC,MAAF,KAAgB;AACfF,IAAAA,SAAS,EAAEE,MAAM,CAAEC,eAAF,CAAN,CAAoBC,gBAApB,CACV,UADU,EAEV,aAFU,EAGV;AAAEC,MAAAA,QAAQ,EAAE,CAAC;AAAb,KAHU,CADI;AAMfJ,IAAAA,oBAAoB,EAAEC,MAAM,CAC3BI,aAD2B,CAAN,CAEpBC,qCAFoB;AANP,GAAhB,CAD2C,EAW3C,EAX2C,CAA5C;AAaA,QAAM;AAAEC,IAAAA;AAAF,MAAuB,uBAAaL,eAAb,CAA7B;AACA,QAAM;AAAEM,IAAAA;AAAF,MAAwB,uBAAaC,cAAb,CAA9B;;AAEA,iBAAeC,cAAf,QAA0C;AAAA,QAAX;AAAEC,MAAAA;AAAF,KAAW;;AACzC,QAAI;AACH,YAAM;AAAEC,QAAAA,KAAF;AAASC,QAAAA;AAAT,UAAyB,kBAAMb,oBAAN,EAA4B;AAC1DW,QAAAA;AAD0D,OAA5B,CAA/B;AAIA,YAAMG,QAAQ,GAAG,MAAMP,gBAAgB,CACtC,UADsC,EAEtC,aAFsC,EAGtC;AACCQ,QAAAA,OAAO,EAAEF,WADV;AAEC;AACAF,QAAAA,IAAI,EAAEA,IAAI,CAACK,QAAL,EAHP;AAICC,QAAAA,MAAM,EAAE,SAJT;AAKCL,QAAAA;AALD,OAHsC,EAUtC;AAAEM,QAAAA,YAAY,EAAE;AAAhB,OAVsC,CAAvC,CALG,CAkBH;;AACApB,MAAAA,OAAO,CAACqB,IAAR,CAAc;AACbC,QAAAA,MAAM,EAAEN,QAAQ,CAACO,EADJ;AAEbxB,QAAAA,QAAQ,EAAEiB,QAAQ,CAACQ;AAFN,OAAd,EAnBG,CAwBH;AACA,KAzBD,CAyBE,OAAQC,KAAR,EAAgB;AACjB,YAAMC,YAAY,GACjBD,KAAK,CAACE,OAAN,IAAiBF,KAAK,CAACG,IAAN,KAAe,eAAhC,GACGH,KAAK,CAACE,OADT,GAEG,cAAI,gDAAJ,CAHJ;AAKAjB,MAAAA,iBAAiB,CAAEgB,YAAF,EAAgB;AAChCF,QAAAA,IAAI,EAAE;AAD0B,OAAhB,CAAjB;AAGA;AACD;;AAED,QAAMK,qBAAqB,GAAG,iBAAK5B,SAAL,EAAgB,MAAhB,CAA9B;AAEA,QAAM6B,gBAAgB,GAAG,oBACxB5B,oBADwB,EAEtBc,QAAF,IACC,sBAAUtC,sBAAV,EAAkCsC,QAAQ,CAACH,IAA3C,KACA,CAAE,sBAAUgB,qBAAV,EAAiCb,QAAQ,CAACH,IAA1C,CAJqB,CAAzB;;AAOA,MAAK,CAAEiB,gBAAgB,CAACC,MAAxB,EAAiC;AAChC,WAAO,IAAP;AACA,GAnEkD,CAqEnD;;;AACAD,EAAAA,gBAAgB,CAACE,IAAjB,CAAuB,CAAEC,SAAF,EAAaC,SAAb,KAA4B;AAClD,WACCxD,sBAAsB,CAACyD,OAAvB,CAAgCF,SAAS,CAACpB,IAA1C,IACAnC,sBAAsB,CAACyD,OAAvB,CAAgCD,SAAS,CAACrB,IAA1C,CAFD;AAIA,GALD;AAOA,SACC,4BAAC,wBAAD;AACC,IAAA,SAAS,EAAC,iCADX;AAEC,IAAA,IAAI,EAAG,IAFR;AAGC,IAAA,IAAI,EAAGd,QAAQ,CAACqC,MAAT,CAAgBC,OAHxB;AAIC,IAAA,KAAK,EAAGtC,QAAQ,CAACqC,MAAT,CAAgBE,YAJzB;AAKC,IAAA,YAAY,EAAG;AACdC,MAAAA,OAAO,EAAE;AADK,KALhB;AAQC,IAAA,WAAW,EAAG;AACbC,MAAAA,OAAO,EAAE;AADI;AARf,KAYG,MACD,4BAAC,yBAAD;AAAe,IAAA,SAAS,EAAC;AAAzB,KACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAGzC,QAAQ,CAACqC,MAAT,CAAgBE;AAAnC,KACG,iBACDR,gBADC,EAED;AAAA,QAAE;AAAEhB,MAAAA,KAAF;AAASC,MAAAA,WAAT;AAAsBF,MAAAA;AAAtB,KAAF;AAAA,WACC,4BAAC,oBAAD;AACC,MAAA,IAAI,EAAGlC,cAAc,CAAEkC,IAAF,CADtB;AAEC,MAAA,YAAY,EAAC,MAFd;AAGC,MAAA,IAAI,EAAGE,WAHR;AAIC,MAAA,GAAG,EAAGF,IAJP;AAKC,MAAA,OAAO,EAAG,MAAM;AACfD,QAAAA,cAAc,CAAE;AAAEC,UAAAA;AAAF,SAAF,CAAd,CADe,CAEf;AACA;AARF,OAUGC,KAVH,CADD;AAAA,GAFC,CADH,CADD,CAbF,CADD;AAsCA","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, find, includes, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport {\n\tarchive,\n\tblockMeta,\n\tcategory,\n\thome,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpost,\n\tpostAuthor,\n\tpostDate,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useHistory } from '../routes';\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'single-post',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'taxonomy',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\t'single-post': post,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: postAuthor,\n\ttaxonomy: blockMeta,\n\tdate: postDate,\n\ttag,\n\tattachment: media,\n};\n\nexport default function NewTemplate( { postType } ) {\n\tconst history = useHistory();\n\tconst { templates, defaultTemplateTypes } = useSelect(\n\t\t( select ) => ( {\n\t\t\ttemplates: select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t{ per_page: -1 }\n\t\t\t),\n\t\t\tdefaultTemplateTypes: select(\n\t\t\t\teditorStore\n\t\t\t).__experimentalGetDefaultTemplateTypes(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tasync function createTemplate( { slug } ) {\n\t\ttry {\n\t\t\tconst { title, description } = find( defaultTemplateTypes, {\n\t\t\t\tslug,\n\t\t\t} );\n\n\t\t\tconst template = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t{\n\t\t\t\t\texcerpt: description,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: template.id,\n\t\t\t\tpostType: template.type,\n\t\t\t} );\n\n\t\t\t// TODO: Add a success notice?\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t}\n\n\tconst existingTemplateSlugs = map( templates, 'slug' );\n\n\tconst missingTemplates = filter(\n\t\tdefaultTemplateTypes,\n\t\t( template ) =>\n\t\t\tincludes( DEFAULT_TEMPLATE_SLUGS, template.slug ) &&\n\t\t\t! includes( existingTemplateSlugs, template.slug )\n\t);\n\n\tif ( ! missingTemplates.length ) {\n\t\treturn null;\n\t}\n\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tmissingTemplates.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"edit-site-new-template-dropdown\"\n\t\t\ticon={ null }\n\t\t\ttext={ postType.labels.add_new }\n\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\tpopoverProps={ {\n\t\t\t\tnoArrow: false,\n\t\t\t} }\n\t\t\ttoggleProps={ {\n\t\t\t\tvariant: 'primary',\n\t\t\t} }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<NavigableMenu className=\"edit-site-new-template-dropdown__popover\">\n\t\t\t\t\t<MenuGroup label={ postType.labels.add_new_item }>\n\t\t\t\t\t\t{ map(\n\t\t\t\t\t\t\tmissingTemplates,\n\t\t\t\t\t\t\t( { title, description, slug } ) => (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tinfo={ description }\n\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tcreateTemplate( { slug } );\n\t\t\t\t\t\t\t\t\t\t// We will be navigated way so no need to close the dropdown.\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{ title }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</NavigableMenu>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/add-new-template/new-template.js"],"names":["DEFAULT_TEMPLATE_SLUGS","TEMPLATE_ICONS","home","single","post","page","archive","search","notFound","index","list","category","author","postAuthor","taxonomy","blockMeta","date","postDate","tag","attachment","media","NewTemplate","postType","history","templates","defaultTemplateTypes","select","coreStore","getEntityRecords","per_page","editorStore","__experimentalGetDefaultTemplateTypes","saveEntityRecord","createErrorNotice","noticesStore","setTemplate","editSiteStore","createTemplate","template","title","description","slug","newTemplate","toString","status","is_wp_suggestion","throwOnError","id","push","postId","type","error","errorMessage","message","code","existingTemplateSlugs","missingTemplates","length","sort","template1","template2","indexOf","labels","add_new","add_new_item","noArrow","variant"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, includes, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tNavigableMenu,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport {\n\tarchive,\n\tblockMeta,\n\tcategory,\n\thome,\n\tlist,\n\tmedia,\n\tnotFound,\n\tpage,\n\tpost,\n\tpostAuthor,\n\tpostDate,\n\tsearch,\n\ttag,\n} from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { useHistory } from '../routes';\nimport { store as editSiteStore } from '../../store';\n\nconst DEFAULT_TEMPLATE_SLUGS = [\n\t'front-page',\n\t'single',\n\t'page',\n\t'index',\n\t'archive',\n\t'author',\n\t'category',\n\t'date',\n\t'tag',\n\t'taxonomy',\n\t'search',\n\t'404',\n];\n\nconst TEMPLATE_ICONS = {\n\t'front-page': home,\n\tsingle: post,\n\tpage,\n\tarchive,\n\tsearch,\n\t404: notFound,\n\tindex: list,\n\tcategory,\n\tauthor: postAuthor,\n\ttaxonomy: blockMeta,\n\tdate: postDate,\n\ttag,\n\tattachment: media,\n};\n\nexport default function NewTemplate( { postType } ) {\n\tconst history = useHistory();\n\tconst { templates, defaultTemplateTypes } = useSelect(\n\t\t( select ) => ( {\n\t\t\ttemplates: select( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t{ per_page: -1 }\n\t\t\t),\n\t\t\tdefaultTemplateTypes: select(\n\t\t\t\teditorStore\n\t\t\t).__experimentalGetDefaultTemplateTypes(),\n\t\t} ),\n\t\t[]\n\t);\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { setTemplate } = useDispatch( editSiteStore );\n\n\tasync function createTemplate( template ) {\n\t\ttry {\n\t\t\tconst { title, description, slug } = template;\n\n\t\t\tconst newTemplate = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template',\n\t\t\t\t{\n\t\t\t\t\tdescription,\n\t\t\t\t\t// Slugs need to be strings, so this is for template `404`\n\t\t\t\t\tslug: slug.toString(),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\t// This adds a post meta field in template that is part of `is_custom` value calculation.\n\t\t\t\t\tis_wp_suggestion: true,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\t// Set template before navigating away to avoid initial stale value.\n\t\t\tsetTemplate( newTemplate.id, newTemplate.slug );\n\n\t\t\t// Navigate to the created template editor.\n\t\t\thistory.push( {\n\t\t\t\tpostId: newTemplate.id,\n\t\t\t\tpostType: newTemplate.type,\n\t\t\t} );\n\n\t\t\t// TODO: Add a success notice?\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the template.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t}\n\t}\n\n\tconst existingTemplateSlugs = map( templates, 'slug' );\n\n\tconst missingTemplates = filter(\n\t\tdefaultTemplateTypes,\n\t\t( template ) =>\n\t\t\tincludes( DEFAULT_TEMPLATE_SLUGS, template.slug ) &&\n\t\t\t! includes( existingTemplateSlugs, template.slug )\n\t);\n\n\tif ( ! missingTemplates.length ) {\n\t\treturn null;\n\t}\n\n\t// Update the sort order to match the DEFAULT_TEMPLATE_SLUGS order.\n\tmissingTemplates.sort( ( template1, template2 ) => {\n\t\treturn (\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template1.slug ) -\n\t\t\tDEFAULT_TEMPLATE_SLUGS.indexOf( template2.slug )\n\t\t);\n\t} );\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"edit-site-new-template-dropdown\"\n\t\t\ticon={ null }\n\t\t\ttext={ postType.labels.add_new }\n\t\t\tlabel={ postType.labels.add_new_item }\n\t\t\tpopoverProps={ {\n\t\t\t\tnoArrow: false,\n\t\t\t} }\n\t\t\ttoggleProps={ {\n\t\t\t\tvariant: 'primary',\n\t\t\t} }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<NavigableMenu className=\"edit-site-new-template-dropdown__popover\">\n\t\t\t\t\t<MenuGroup label={ postType.labels.add_new_item }>\n\t\t\t\t\t\t{ map( missingTemplates, ( template ) => {\n\t\t\t\t\t\t\tconst { title, description, slug } = template;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\ticon={ TEMPLATE_ICONS[ slug ] }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tinfo={ description }\n\t\t\t\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tcreateTemplate( template );\n\t\t\t\t\t\t\t\t\t\t// We will be navigated way so no need to close the dropdown.\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{ title }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</NavigableMenu>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"]}
@@ -13,6 +13,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
+ var _lodash = require("lodash");
17
+
16
18
  var _data = require("@wordpress/data");
17
19
 
18
20
  var _coreData = require("@wordpress/core-data");
@@ -65,46 +67,49 @@ const LAYOUT = {
65
67
  };
66
68
 
67
69
  function BlockEditor(_ref) {
70
+ var _storedSettings$__exp, _storedSettings$__exp2;
71
+
68
72
  let {
69
73
  setIsInserterOpen
70
74
  } = _ref;
71
75
  const {
72
- settings
73
- } = (0, _data.useSelect)(select => {
74
- let storedSettings = select(_store.store).getSettings(setIsInserterOpen);
75
-
76
- if (!storedSettings.__experimentalBlockPatterns) {
77
- storedSettings = { ...storedSettings,
78
- __experimentalBlockPatterns: select(_coreData.store).getBlockPatterns()
79
- };
80
- }
81
-
82
- if (!storedSettings.__experimentalBlockPatternCategories) {
83
- storedSettings = { ...storedSettings,
84
- __experimentalBlockPatternCategories: select(_coreData.store).getBlockPatternCategories()
85
- };
86
- }
87
-
88
- return {
89
- settings: storedSettings
90
- };
91
- }, [setIsInserterOpen]);
92
- const {
76
+ storedSettings,
93
77
  templateType,
94
78
  templateId,
95
79
  page
96
80
  } = (0, _data.useSelect)(select => {
97
81
  const {
82
+ getSettings,
98
83
  getEditedPostType,
99
84
  getEditedPostId,
100
85
  getPage
101
86
  } = select(_store.store);
102
87
  return {
88
+ storedSettings: getSettings(setIsInserterOpen),
103
89
  templateType: getEditedPostType(),
104
90
  templateId: getEditedPostId(),
105
91
  page: getPage()
106
92
  };
107
93
  }, [setIsInserterOpen]);
94
+ const settingsBlockPatterns = (_storedSettings$__exp = storedSettings.__experimentalAdditionalBlockPatterns) !== null && _storedSettings$__exp !== void 0 ? _storedSettings$__exp : // WP 6.0
95
+ storedSettings.__experimentalBlockPatterns; // WP 5.9
96
+
97
+ const settingsBlockPatternCategories = (_storedSettings$__exp2 = storedSettings.__experimentalAdditionalBlockPatternCategories) !== null && _storedSettings$__exp2 !== void 0 ? _storedSettings$__exp2 : // WP 6.0
98
+ storedSettings.__experimentalBlockPatternCategories; // WP 5.9
99
+
100
+ const {
101
+ restBlockPatterns,
102
+ restBlockPatternCategories
103
+ } = (0, _data.useSelect)(select => ({
104
+ restBlockPatterns: select(_coreData.store).getBlockPatterns(),
105
+ restBlockPatternCategories: select(_coreData.store).getBlockPatternCategories()
106
+ }), []);
107
+ const blockPatterns = (0, _element.useMemo)(() => (0, _lodash.unionBy)(settingsBlockPatterns, restBlockPatterns, 'name'), [settingsBlockPatterns, restBlockPatterns]);
108
+ const blockPatternCategories = (0, _element.useMemo)(() => (0, _lodash.unionBy)(settingsBlockPatternCategories, restBlockPatternCategories, 'name'), [settingsBlockPatternCategories, restBlockPatternCategories]);
109
+ const settings = (0, _element.useMemo)(() => ({ ...(0, _lodash.omit)(storedSettings, ['__experimentalAdditionalBlockPatterns', '__experimentalAdditionalBlockPatternCategories']),
110
+ __experimentalBlockPatterns: blockPatterns,
111
+ __experimentalBlockPatternCategories: blockPatternCategories
112
+ }), [storedSettings, blockPatterns, blockPatternCategories]);
108
113
  const [blocks, onInput, onChange] = (0, _coreData.useEntityBlockEditor)('postType', templateType);
109
114
  const {
110
115
  setPage
@@ -122,6 +127,7 @@ function BlockEditor(_ref) {
122
127
  clearSelectedBlock
123
128
  } = (0, _data.useDispatch)(_blockEditor.store);
124
129
  const isTemplatePart = templateType === 'wp_template_part';
130
+ const hasBlocks = blocks.length !== 0;
125
131
 
126
132
  const NavMenuSidebarToggle = () => (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_components.ToolbarButton, {
127
133
  className: "components-toolbar__control",
@@ -133,7 +139,7 @@ function BlockEditor(_ref) {
133
139
  // See https://github.com/WordPress/gutenberg/blob/trunk/docs/how-to-guides/feature-flags.md#dead-code-elimination.
134
140
 
135
141
 
136
- let MaybeNavMenuSidebarToggle = 'Fragment';
142
+ let MaybeNavMenuSidebarToggle = _element.Fragment;
137
143
 
138
144
  if (process.env.IS_GUTENBERG_PLUGIN) {
139
145
  MaybeNavMenuSidebarToggle = NavMenuSidebarToggle;
@@ -169,7 +175,7 @@ function BlockEditor(_ref) {
169
175
  }, (0, _element.createElement)(_blockEditor.BlockList, {
170
176
  className: "edit-site-block-editor__block-list wp-site-blocks",
171
177
  __experimentalLayout: LAYOUT,
172
- renderAppender: isTemplatePart ? false : undefined
178
+ renderAppender: isTemplatePart && hasBlocks ? false : undefined
173
179
  })), (0, _element.createElement)(_blockEditor.__unstableBlockSettingsMenuFirstItem, null, _ref2 => {
174
180
  let {
175
181
  onClose
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/block-editor/index.js"],"names":["LAYOUT","type","alignments","BlockEditor","setIsInserterOpen","settings","select","storedSettings","editSiteStore","getSettings","__experimentalBlockPatterns","coreStore","getBlockPatterns","__experimentalBlockPatternCategories","getBlockPatternCategories","templateType","templateId","page","getEditedPostType","getEditedPostId","getPage","blocks","onInput","onChange","setPage","enableComplementaryArea","interfaceStore","openNavigationSidebar","contentRef","mergedRefs","isMobileViewport","clearSelectedBlock","blockEditorStore","isTemplatePart","NavMenuSidebarToggle","listView","MaybeNavMenuSidebarToggle","process","env","IS_GUTENBERG_PLUGIN","fillProps","event","target","currentTarget","undefined","onClose","blockName"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useRef } from '@wordpress/element';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport {\n\tBlockList,\n\tBlockEditorProvider,\n\t__experimentalLinkControl,\n\tBlockInspector,\n\tBlockTools,\n\t__unstableBlockToolbarLastItem,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableUseTypingObserver as useTypingObserver,\n\tBlockEditorKeyboardShortcuts,\n\tstore as blockEditorStore,\n\t__unstableBlockNameContext,\n} from '@wordpress/block-editor';\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { listView } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartConverter from '../template-part-converter';\nimport NavigateToLink from '../navigate-to-link';\nimport { SidebarInspectorFill } from '../sidebar';\nimport { store as editSiteStore } from '../../store';\nimport BlockInspectorButton from './block-inspector-button';\nimport EditTemplatePartMenuButton from '../edit-template-part-menu-button';\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\n\nconst LAYOUT = {\n\ttype: 'default',\n\t// At the root level of the site editor, no alignments should be allowed.\n\talignments: [],\n};\n\nexport default function BlockEditor( { setIsInserterOpen } ) {\n\tconst { settings } = useSelect(\n\t\t( select ) => {\n\t\t\tlet storedSettings = select( editSiteStore ).getSettings(\n\t\t\t\tsetIsInserterOpen\n\t\t\t);\n\n\t\t\tif ( ! storedSettings.__experimentalBlockPatterns ) {\n\t\t\t\tstoredSettings = {\n\t\t\t\t\t...storedSettings,\n\t\t\t\t\t__experimentalBlockPatterns: select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getBlockPatterns(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif ( ! storedSettings.__experimentalBlockPatternCategories ) {\n\t\t\t\tstoredSettings = {\n\t\t\t\t\t...storedSettings,\n\t\t\t\t\t__experimentalBlockPatternCategories: select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getBlockPatternCategories(),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tsettings: storedSettings,\n\t\t\t};\n\t\t},\n\t\t[ setIsInserterOpen ]\n\t);\n\n\tconst { templateType, templateId, page } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostType, getEditedPostId, getPage } = select(\n\t\t\t\teditSiteStore\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ttemplateType: getEditedPostType(),\n\t\t\t\ttemplateId: getEditedPostId(),\n\t\t\t\tpage: getPage(),\n\t\t\t};\n\t\t},\n\t\t[ setIsInserterOpen ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\ttemplateType\n\t);\n\tconst { setPage } = useDispatch( editSiteStore );\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openNavigationSidebar = useCallback( () => {\n\t\tenableComplementaryArea(\n\t\t\t'core/edit-site',\n\t\t\t'edit-site/navigation-menu'\n\t\t);\n\t}, [ enableComplementaryArea ] );\n\tconst contentRef = useRef();\n\tconst mergedRefs = useMergeRefs( [ contentRef, useTypingObserver() ] );\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst isTemplatePart = templateType === 'wp_template_part';\n\n\tconst NavMenuSidebarToggle = () => (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ __( 'Open list view' ) }\n\t\t\t\tonClick={ openNavigationSidebar }\n\t\t\t\ticon={ listView }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n\n\t// Conditionally include NavMenu sidebar in Plugin only.\n\t// Optimise for dead code elimination.\n\t// See https://github.com/WordPress/gutenberg/blob/trunk/docs/how-to-guides/feature-flags.md#dead-code-elimination.\n\tlet MaybeNavMenuSidebarToggle = 'Fragment';\n\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\tMaybeNavMenuSidebarToggle = NavMenuSidebarToggle;\n\t}\n\n\treturn (\n\t\t<BlockEditorProvider\n\t\t\tsettings={ settings }\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ onInput }\n\t\t\tonChange={ onChange }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t<EditTemplatePartMenuButton />\n\t\t\t<TemplatePartConverter />\n\t\t\t<__experimentalLinkControl.ViewerFill>\n\t\t\t\t{ useCallback(\n\t\t\t\t\t( fillProps ) => (\n\t\t\t\t\t\t<NavigateToLink\n\t\t\t\t\t\t\t{ ...fillProps }\n\t\t\t\t\t\t\tactivePage={ page }\n\t\t\t\t\t\t\tonActivePageChange={ setPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\t[ page ]\n\t\t\t\t) }\n\t\t\t</__experimentalLinkControl.ViewerFill>\n\t\t\t<SidebarInspectorFill>\n\t\t\t\t<BlockInspector />\n\t\t\t</SidebarInspectorFill>\n\t\t\t<BlockTools\n\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t'is-focus-mode': isTemplatePart,\n\t\t\t\t} ) }\n\t\t\t\t__unstableContentRef={ contentRef }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t// Clear selected block when clicking on the gray background.\n\t\t\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t\t<BackButton />\n\t\t\t\t<ResizableEditor\n\t\t\t\t\t// Reinitialize the editor and reset the states when the template changes.\n\t\t\t\t\tkey={ templateId }\n\t\t\t\t\tenableResizing={\n\t\t\t\t\t\tisTemplatePart &&\n\t\t\t\t\t\t// Disable resizing in mobile viewport.\n\t\t\t\t\t\t! isMobileViewport\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tcontentRef={ mergedRefs }\n\t\t\t\t>\n\t\t\t\t\t<BlockList\n\t\t\t\t\t\tclassName=\"edit-site-block-editor__block-list wp-site-blocks\"\n\t\t\t\t\t\t__experimentalLayout={ LAYOUT }\n\t\t\t\t\t\trenderAppender={ isTemplatePart ? false : undefined }\n\t\t\t\t\t/>\n\t\t\t\t</ResizableEditor>\n\t\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<BlockInspectorButton onClick={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t<__unstableBlockToolbarLastItem>\n\t\t\t\t\t<__unstableBlockNameContext.Consumer>\n\t\t\t\t\t\t{ ( blockName ) =>\n\t\t\t\t\t\t\tblockName === 'core/navigation' && (\n\t\t\t\t\t\t\t\t<MaybeNavMenuSidebarToggle />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</__unstableBlockNameContext.Consumer>\n\t\t\t\t</__unstableBlockToolbarLastItem>\n\t\t\t</BlockTools>\n\t\t\t<ReusableBlocksMenuItems />\n\t\t</BlockEditorProvider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/block-editor/index.js"],"names":["LAYOUT","type","alignments","BlockEditor","setIsInserterOpen","storedSettings","templateType","templateId","page","select","getSettings","getEditedPostType","getEditedPostId","getPage","editSiteStore","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","restBlockPatterns","restBlockPatternCategories","coreStore","getBlockPatterns","getBlockPatternCategories","blockPatterns","blockPatternCategories","settings","blocks","onInput","onChange","setPage","enableComplementaryArea","interfaceStore","openNavigationSidebar","contentRef","mergedRefs","isMobileViewport","clearSelectedBlock","blockEditorStore","isTemplatePart","hasBlocks","length","NavMenuSidebarToggle","listView","MaybeNavMenuSidebarToggle","Fragment","process","env","IS_GUTENBERG_PLUGIN","fillProps","event","target","currentTarget","undefined","onClose","blockName"],"mappings":";;;;;;;;;AAUA;;;;AAPA;;AACA;;AAKA;;AAEA;;AACA;;AAaA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AA1CA;AACA;AACA;;AAIA;AACA;AACA;;AAwBA;AACA;AACA;AAUA,MAAMA,MAAM,GAAG;AACdC,EAAAA,IAAI,EAAE,SADQ;AAEd;AACAC,EAAAA,UAAU,EAAE;AAHE,CAAf;;AAMe,SAASC,WAAT,OAA8C;AAAA;;AAAA,MAAxB;AAAEC,IAAAA;AAAF,GAAwB;AAC5D,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,YAAlB;AAAgCC,IAAAA,UAAhC;AAA4CC,IAAAA;AAA5C,MAAqD,qBACxDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,WADK;AAELC,MAAAA,iBAFK;AAGLC,MAAAA,eAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEK,YAAF,CALV;AAOA,WAAO;AACNT,MAAAA,cAAc,EAAEK,WAAW,CAAEN,iBAAF,CADrB;AAENE,MAAAA,YAAY,EAAEK,iBAAiB,EAFzB;AAGNJ,MAAAA,UAAU,EAAEK,eAAe,EAHrB;AAINJ,MAAAA,IAAI,EAAEK,OAAO;AAJP,KAAP;AAMA,GAfyD,EAgB1D,CAAET,iBAAF,CAhB0D,CAA3D;AAmBA,QAAMW,qBAAqB,4BAC1BV,cAAc,CAACW,qCADW,yEAC8B;AACxDX,EAAAA,cAAc,CAACY,2BAFhB,CApB4D,CAsBf;;AAC7C,QAAMC,8BAA8B,6BACnCb,cAAc,CAACc,8CADoB,2EAC8B;AACjEd,EAAAA,cAAc,CAACe,oCAFhB,CAvB4D,CAyBN;;AAEtD,QAAM;AAAEC,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MAAoD,qBACvDb,MAAF,KAAgB;AACfY,IAAAA,iBAAiB,EAAEZ,MAAM,CAAEc,eAAF,CAAN,CAAoBC,gBAApB,EADJ;AAEfF,IAAAA,0BAA0B,EAAEb,MAAM,CACjCc,eADiC,CAAN,CAE1BE,yBAF0B;AAFb,GAAhB,CADyD,EAOzD,EAPyD,CAA1D;AAUA,QAAMC,aAAa,GAAG,sBACrB,MAAM,qBAASX,qBAAT,EAAgCM,iBAAhC,EAAmD,MAAnD,CADe,EAErB,CAAEN,qBAAF,EAAyBM,iBAAzB,CAFqB,CAAtB;AAKA,QAAMM,sBAAsB,GAAG,sBAC9B,MACC,qBACCT,8BADD,EAECI,0BAFD,EAGC,MAHD,CAF6B,EAO9B,CAAEJ,8BAAF,EAAkCI,0BAAlC,CAP8B,CAA/B;AAUA,QAAMM,QAAQ,GAAG,sBAChB,OAAQ,EACP,GAAG,kBAAMvB,cAAN,EAAsB,CACxB,uCADwB,EAExB,gDAFwB,CAAtB,CADI;AAKPY,IAAAA,2BAA2B,EAAES,aALtB;AAMPN,IAAAA,oCAAoC,EAAEO;AAN/B,GAAR,CADgB,EAShB,CAAEtB,cAAF,EAAkBqB,aAAlB,EAAiCC,sBAAjC,CATgB,CAAjB;AAYA,QAAM,CAAEE,MAAF,EAAUC,OAAV,EAAmBC,QAAnB,IAAgC,oCACrC,UADqC,EAErCzB,YAFqC,CAAtC;AAIA,QAAM;AAAE0B,IAAAA;AAAF,MAAc,uBAAalB,YAAb,CAApB;AACA,QAAM;AAAEmB,IAAAA;AAAF,MAA8B,uBAAaC,gBAAb,CAApC;AACA,QAAMC,qBAAqB,GAAG,0BAAa,MAAM;AAChDF,IAAAA,uBAAuB,CACtB,gBADsB,EAEtB,2BAFsB,CAAvB;AAIA,GAL6B,EAK3B,CAAEA,uBAAF,CAL2B,CAA9B;AAMA,QAAMG,UAAU,GAAG,sBAAnB;AACA,QAAMC,UAAU,GAAG,2BAAc,CAAED,UAAF,EAAc,+CAAd,CAAd,CAAnB;AACA,QAAME,gBAAgB,GAAG,+BAAkB,OAAlB,EAA2B,GAA3B,CAAzB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAyB,uBAAaC,kBAAb,CAA/B;AAEA,QAAMC,cAAc,GAAGnC,YAAY,KAAK,kBAAxC;AACA,QAAMoC,SAAS,GAAGb,MAAM,CAACc,MAAP,KAAkB,CAApC;;AAEA,QAAMC,oBAAoB,GAAG,MAC5B,4BAAC,wBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,SAAS,EAAC,6BADX;AAEC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGT,qBAHX;AAIC,IAAA,IAAI,EAAGU;AAJR,IADD,CADD,CApF4D,CA+F5D;AACA;AACA;;;AACA,MAAIC,yBAAyB,GAAGC,iBAAhC;;AAEA,MAAKC,OAAO,CAACC,GAAR,CAAYC,mBAAjB,EAAuC;AACtCJ,IAAAA,yBAAyB,GAAGF,oBAA5B;AACA;;AAED,SACC,4BAAC,gCAAD;AACC,IAAA,QAAQ,EAAGhB,QADZ;AAEC,IAAA,KAAK,EAAGC,MAFT;AAGC,IAAA,OAAO,EAAGC,OAHX;AAIC,IAAA,QAAQ,EAAGC,QAJZ;AAKC,IAAA,cAAc,EAAG;AALlB,KAOC,4BAAC,mCAAD,OAPD,EAQC,4BAAC,8BAAD,OARD,EASC,4BAAC,sCAAD,CAA2B,UAA3B,QACG,0BACCoB,SAAF,IACC,4BAAC,uBAAD,6BACMA,SADN;AAEC,IAAA,UAAU,EAAG3C,IAFd;AAGC,IAAA,kBAAkB,EAAGwB;AAHtB,KAFA,EAQD,CAAExB,IAAF,CARC,CADH,CATD,EAqBC,4BAAC,6BAAD,QACC,4BAAC,2BAAD,OADD,CArBD,EAwBC,4BAAC,uBAAD;AACC,IAAA,SAAS,EAAG,yBAAY,yBAAZ,EAAuC;AAClD,uBAAiBiC;AADiC,KAAvC,CADb;AAIC,IAAA,oBAAoB,EAAGL,UAJxB;AAKC,IAAA,OAAO,EAAKgB,KAAF,IAAa;AACtB;AACA,UAAKA,KAAK,CAACC,MAAN,KAAiBD,KAAK,CAACE,aAA5B,EAA4C;AAC3Cf,QAAAA,kBAAkB;AAClB;AACD;AAVF,KAYC,4BAAC,yCAAD,CAA8B,QAA9B,OAZD,EAaC,4BAAC,mBAAD,OAbD,EAcC,4BAAC,wBAAD,CACC;AADD;AAEC,IAAA,GAAG,EAAGhC,UAFP;AAGC,IAAA,cAAc,EACbkC,cAAc,IACd;AACA,KAAEH,gBANJ;AAQC,IAAA,QAAQ,EAAGV,QARZ;AASC,IAAA,UAAU,EAAGS;AATd,KAWC,4BAAC,sBAAD;AACC,IAAA,SAAS,EAAC,mDADX;AAEC,IAAA,oBAAoB,EAAGrC,MAFxB;AAGC,IAAA,cAAc,EACbyC,cAAc,IAAIC,SAAlB,GAA8B,KAA9B,GAAsCa;AAJxC,IAXD,CAdD,EAiCC,4BAAC,iDAAD,QACG;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WACD,4BAAC,6BAAD;AAAsB,MAAA,OAAO,EAAGA;AAAhC,MADC;AAAA,GADH,CAjCD,EAsCC,4BAAC,2CAAD,QACC,4BAAC,uCAAD,CAA4B,QAA5B,QACKC,SAAF,IACDA,SAAS,KAAK,iBAAd,IACC,4BAAC,yBAAD,OAHH,CADD,CAtCD,CAxBD,EAwEC,4BAAC,uCAAD,OAxED,CADD;AA4EA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit, unionBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useMemo, useRef, Fragment } from '@wordpress/element';\nimport { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';\nimport {\n\tBlockList,\n\tBlockEditorProvider,\n\t__experimentalLinkControl,\n\tBlockInspector,\n\tBlockTools,\n\t__unstableBlockToolbarLastItem,\n\t__unstableBlockSettingsMenuFirstItem,\n\t__unstableUseTypingObserver as useTypingObserver,\n\tBlockEditorKeyboardShortcuts,\n\tstore as blockEditorStore,\n\t__unstableBlockNameContext,\n} from '@wordpress/block-editor';\nimport { useMergeRefs, useViewportMatch } from '@wordpress/compose';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { listView } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport TemplatePartConverter from '../template-part-converter';\nimport NavigateToLink from '../navigate-to-link';\nimport { SidebarInspectorFill } from '../sidebar';\nimport { store as editSiteStore } from '../../store';\nimport BlockInspectorButton from './block-inspector-button';\nimport EditTemplatePartMenuButton from '../edit-template-part-menu-button';\nimport BackButton from './back-button';\nimport ResizableEditor from './resizable-editor';\n\nconst LAYOUT = {\n\ttype: 'default',\n\t// At the root level of the site editor, no alignments should be allowed.\n\talignments: [],\n};\n\nexport default function BlockEditor( { setIsInserterOpen } ) {\n\tconst { storedSettings, templateType, templateId, page } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetEditedPostType,\n\t\t\t\tgetEditedPostId,\n\t\t\t\tgetPage,\n\t\t\t} = select( editSiteStore );\n\n\t\t\treturn {\n\t\t\t\tstoredSettings: getSettings( setIsInserterOpen ),\n\t\t\t\ttemplateType: getEditedPostType(),\n\t\t\t\ttemplateId: getEditedPostId(),\n\t\t\t\tpage: getPage(),\n\t\t\t};\n\t\t},\n\t\t[ setIsInserterOpen ]\n\t);\n\n\tconst settingsBlockPatterns =\n\t\tstoredSettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tstoredSettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tstoredSettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tstoredSettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst { restBlockPatterns, restBlockPatternCategories } = useSelect(\n\t\t( select ) => ( {\n\t\t\trestBlockPatterns: select( coreStore ).getBlockPatterns(),\n\t\t\trestBlockPatternCategories: select(\n\t\t\t\tcoreStore\n\t\t\t).getBlockPatternCategories(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst blockPatterns = useMemo(\n\t\t() => unionBy( settingsBlockPatterns, restBlockPatterns, 'name' ),\n\t\t[ settingsBlockPatterns, restBlockPatterns ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\tunionBy(\n\t\t\t\tsettingsBlockPatternCategories,\n\t\t\t\trestBlockPatternCategories,\n\t\t\t\t'name'\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...omit( storedSettings, [\n\t\t\t\t'__experimentalAdditionalBlockPatterns',\n\t\t\t\t'__experimentalAdditionalBlockPatternCategories',\n\t\t\t] ),\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t} ),\n\t\t[ storedSettings, blockPatterns, blockPatternCategories ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\ttemplateType\n\t);\n\tconst { setPage } = useDispatch( editSiteStore );\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\tconst openNavigationSidebar = useCallback( () => {\n\t\tenableComplementaryArea(\n\t\t\t'core/edit-site',\n\t\t\t'edit-site/navigation-menu'\n\t\t);\n\t}, [ enableComplementaryArea ] );\n\tconst contentRef = useRef();\n\tconst mergedRefs = useMergeRefs( [ contentRef, useTypingObserver() ] );\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst isTemplatePart = templateType === 'wp_template_part';\n\tconst hasBlocks = blocks.length !== 0;\n\n\tconst NavMenuSidebarToggle = () => (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tlabel={ __( 'Open list view' ) }\n\t\t\t\tonClick={ openNavigationSidebar }\n\t\t\t\ticon={ listView }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n\n\t// Conditionally include NavMenu sidebar in Plugin only.\n\t// Optimise for dead code elimination.\n\t// See https://github.com/WordPress/gutenberg/blob/trunk/docs/how-to-guides/feature-flags.md#dead-code-elimination.\n\tlet MaybeNavMenuSidebarToggle = Fragment;\n\n\tif ( process.env.IS_GUTENBERG_PLUGIN ) {\n\t\tMaybeNavMenuSidebarToggle = NavMenuSidebarToggle;\n\t}\n\n\treturn (\n\t\t<BlockEditorProvider\n\t\t\tsettings={ settings }\n\t\t\tvalue={ blocks }\n\t\t\tonInput={ onInput }\n\t\t\tonChange={ onChange }\n\t\t\tuseSubRegistry={ false }\n\t\t>\n\t\t\t<EditTemplatePartMenuButton />\n\t\t\t<TemplatePartConverter />\n\t\t\t<__experimentalLinkControl.ViewerFill>\n\t\t\t\t{ useCallback(\n\t\t\t\t\t( fillProps ) => (\n\t\t\t\t\t\t<NavigateToLink\n\t\t\t\t\t\t\t{ ...fillProps }\n\t\t\t\t\t\t\tactivePage={ page }\n\t\t\t\t\t\t\tonActivePageChange={ setPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t),\n\t\t\t\t\t[ page ]\n\t\t\t\t) }\n\t\t\t</__experimentalLinkControl.ViewerFill>\n\t\t\t<SidebarInspectorFill>\n\t\t\t\t<BlockInspector />\n\t\t\t</SidebarInspectorFill>\n\t\t\t<BlockTools\n\t\t\t\tclassName={ classnames( 'edit-site-visual-editor', {\n\t\t\t\t\t'is-focus-mode': isTemplatePart,\n\t\t\t\t} ) }\n\t\t\t\t__unstableContentRef={ contentRef }\n\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t// Clear selected block when clicking on the gray background.\n\t\t\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<BlockEditorKeyboardShortcuts.Register />\n\t\t\t\t<BackButton />\n\t\t\t\t<ResizableEditor\n\t\t\t\t\t// Reinitialize the editor and reset the states when the template changes.\n\t\t\t\t\tkey={ templateId }\n\t\t\t\t\tenableResizing={\n\t\t\t\t\t\tisTemplatePart &&\n\t\t\t\t\t\t// Disable resizing in mobile viewport.\n\t\t\t\t\t\t! isMobileViewport\n\t\t\t\t\t}\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t\tcontentRef={ mergedRefs }\n\t\t\t\t>\n\t\t\t\t\t<BlockList\n\t\t\t\t\t\tclassName=\"edit-site-block-editor__block-list wp-site-blocks\"\n\t\t\t\t\t\t__experimentalLayout={ LAYOUT }\n\t\t\t\t\t\trenderAppender={\n\t\t\t\t\t\t\tisTemplatePart && hasBlocks ? false : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ResizableEditor>\n\t\t\t\t<__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<BlockInspectorButton onClick={ onClose } />\n\t\t\t\t\t) }\n\t\t\t\t</__unstableBlockSettingsMenuFirstItem>\n\t\t\t\t<__unstableBlockToolbarLastItem>\n\t\t\t\t\t<__unstableBlockNameContext.Consumer>\n\t\t\t\t\t\t{ ( blockName ) =>\n\t\t\t\t\t\t\tblockName === 'core/navigation' && (\n\t\t\t\t\t\t\t\t<MaybeNavMenuSidebarToggle />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t</__unstableBlockNameContext.Consumer>\n\t\t\t\t</__unstableBlockToolbarLastItem>\n\t\t\t</BlockTools>\n\t\t\t<ReusableBlocksMenuItems />\n\t\t</BlockEditorProvider>\n\t);\n}\n"]}
@@ -21,14 +21,6 @@ var _components = require("@wordpress/components");
21
21
  * External dependencies
22
22
  */
23
23
 
24
- /**
25
- * WordPress dependencies
26
- */
27
-
28
- /**
29
- * WordPress dependencies
30
- */
31
-
32
24
  /**
33
25
  * WordPress dependencies
34
26
  */
@@ -41,6 +33,7 @@ function CodeEditorTextArea(_ref) {
41
33
  const [stateValue, setStateValue] = (0, _element.useState)(value);
42
34
  const [isDirty, setIsDirty] = (0, _element.useState)(false);
43
35
  const instanceId = (0, _compose.useInstanceId)(CodeEditorTextArea);
36
+ const valueRef = (0, _element.useRef)();
44
37
 
45
38
  if (!isDirty && stateValue !== value) {
46
39
  setStateValue(value);
@@ -63,6 +56,7 @@ function CodeEditorTextArea(_ref) {
63
56
  onInput(newValue);
64
57
  setStateValue(newValue);
65
58
  setIsDirty(true);
59
+ valueRef.current = newValue;
66
60
  };
67
61
  /**
68
62
  * Function called when the user has completed their edits, responsible for
@@ -76,8 +70,16 @@ function CodeEditorTextArea(_ref) {
76
70
  onChange(stateValue);
77
71
  setIsDirty(false);
78
72
  }
79
- };
73
+ }; // Ensure changes aren't lost when component unmounts.
74
+
80
75
 
76
+ (0, _element.useEffect)(() => {
77
+ return () => {
78
+ if (valueRef.current) {
79
+ onChange(valueRef.current);
80
+ }
81
+ };
82
+ }, []);
81
83
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.VisuallyHidden, {
82
84
  as: "label",
83
85
  htmlFor: `code-editor-text-area-${instanceId}`
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/code-editor/code-editor-text-area.js"],"names":["CodeEditorTextArea","value","onChange","onInput","stateValue","setStateValue","isDirty","setIsDirty","instanceId","onChangeHandler","event","newValue","target","stopEditing"],"mappings":";;;;;;;;;AAeA;;AAZA;;AAWA;;AAEA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AAMe,SAASA,kBAAT,OAA4D;AAAA,MAA/B;AAAEC,IAAAA,KAAF;AAASC,IAAAA,QAAT;AAAmBC,IAAAA;AAAnB,GAA+B;AAC1E,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAUJ,KAAV,CAAtC;AACA,QAAM,CAAEK,OAAF,EAAWC,UAAX,IAA0B,uBAAU,KAAV,CAAhC;AACA,QAAMC,UAAU,GAAG,4BAAeR,kBAAf,CAAnB;;AAEA,MAAK,CAAEM,OAAF,IAAaF,UAAU,KAAKH,KAAjC,EAAyC;AACxCI,IAAAA,aAAa,CAAEJ,KAAF,CAAb;AACA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACC,QAAMQ,eAAe,GAAKC,KAAF,IAAa;AACpC,UAAMC,QAAQ,GAAGD,KAAK,CAACE,MAAN,CAAaX,KAA9B;AACAE,IAAAA,OAAO,CAAEQ,QAAF,CAAP;AACAN,IAAAA,aAAa,CAAEM,QAAF,CAAb;AACAJ,IAAAA,UAAU,CAAE,IAAF,CAAV;AACA,GALD;AAOA;AACD;AACA;AACA;AACA;;;AACC,QAAMM,WAAW,GAAG,MAAM;AACzB,QAAKP,OAAL,EAAe;AACdJ,MAAAA,QAAQ,CAAEE,UAAF,CAAR;AACAG,MAAAA,UAAU,CAAE,KAAF,CAAV;AACA;AACD,GALD;;AAOA,SACC,qDACC,4BAAC,0BAAD;AACC,IAAA,EAAE,EAAC,OADJ;AAEC,IAAA,OAAO,EAAI,yBAAyBC,UAAY;AAFjD,KAIG,cAAI,mBAAJ,CAJH,CADD,EAOC,4BAAC,8BAAD;AACC,IAAA,YAAY,EAAC,KADd;AAEC,IAAA,GAAG,EAAC,MAFL;AAGC,IAAA,KAAK,EAAGJ,UAHT;AAIC,IAAA,QAAQ,EAAGK,eAJZ;AAKC,IAAA,MAAM,EAAGI,WALV;AAMC,IAAA,SAAS,EAAC,iCANX;AAOC,IAAA,EAAE,EAAI,yBAAyBL,UAAY,EAP5C;AAQC,IAAA,WAAW,EAAG,cAAI,iCAAJ;AARf,IAPD,CADD;AAoBA","sourcesContent":["/**\n * External dependencies\n */\nimport Textarea from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\n/**\n * WordPress dependencies\n */\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/components';\n\nexport default function CodeEditorTextArea( { value, onChange, onInput } ) {\n\tconst [ stateValue, setStateValue ] = useState( value );\n\tconst [ isDirty, setIsDirty ] = useState( false );\n\tconst instanceId = useInstanceId( CodeEditorTextArea );\n\n\tif ( ! isDirty && stateValue !== value ) {\n\t\tsetStateValue( value );\n\t}\n\n\t/**\n\t * Handles a textarea change event to notify the onChange prop callback and\n\t * reflect the new value in the component's own state. This marks the start\n\t * of the user's edits, if not already changed, preventing future props\n\t * changes to value from replacing the rendered value. This is expected to\n\t * be followed by a reset to dirty state via `stopEditing`.\n\t *\n\t * @see stopEditing\n\t *\n\t * @param {Event} event Change event.\n\t */\n\tconst onChangeHandler = ( event ) => {\n\t\tconst newValue = event.target.value;\n\t\tonInput( newValue );\n\t\tsetStateValue( newValue );\n\t\tsetIsDirty( true );\n\t};\n\n\t/**\n\t * Function called when the user has completed their edits, responsible for\n\t * ensuring that changes, if made, are surfaced to the onPersist prop\n\t * callback and resetting dirty state.\n\t */\n\tconst stopEditing = () => {\n\t\tif ( isDirty ) {\n\t\t\tonChange( stateValue );\n\t\t\tsetIsDirty( false );\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<VisuallyHidden\n\t\t\t\tas=\"label\"\n\t\t\t\thtmlFor={ `code-editor-text-area-${ instanceId }` }\n\t\t\t>\n\t\t\t\t{ __( 'Type text or HTML' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t<Textarea\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tdir=\"auto\"\n\t\t\t\tvalue={ stateValue }\n\t\t\t\tonChange={ onChangeHandler }\n\t\t\t\tonBlur={ stopEditing }\n\t\t\t\tclassName=\"edit-site-code-editor-text-area\"\n\t\t\t\tid={ `code-editor-text-area-${ instanceId }` }\n\t\t\t\tplaceholder={ __( 'Start writing with text or HTML' ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/code-editor/code-editor-text-area.js"],"names":["CodeEditorTextArea","value","onChange","onInput","stateValue","setStateValue","isDirty","setIsDirty","instanceId","valueRef","onChangeHandler","event","newValue","target","current","stopEditing"],"mappings":";;;;;;;;;AASA;;AANA;;AAKA;;AAEA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;AAMe,SAASA,kBAAT,OAA4D;AAAA,MAA/B;AAAEC,IAAAA,KAAF;AAASC,IAAAA,QAAT;AAAmBC,IAAAA;AAAnB,GAA+B;AAC1E,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAUJ,KAAV,CAAtC;AACA,QAAM,CAAEK,OAAF,EAAWC,UAAX,IAA0B,uBAAU,KAAV,CAAhC;AACA,QAAMC,UAAU,GAAG,4BAAeR,kBAAf,CAAnB;AACA,QAAMS,QAAQ,GAAG,sBAAjB;;AAEA,MAAK,CAAEH,OAAF,IAAaF,UAAU,KAAKH,KAAjC,EAAyC;AACxCI,IAAAA,aAAa,CAAEJ,KAAF,CAAb;AACA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACC,QAAMS,eAAe,GAAKC,KAAF,IAAa;AACpC,UAAMC,QAAQ,GAAGD,KAAK,CAACE,MAAN,CAAaZ,KAA9B;AACAE,IAAAA,OAAO,CAAES,QAAF,CAAP;AACAP,IAAAA,aAAa,CAAEO,QAAF,CAAb;AACAL,IAAAA,UAAU,CAAE,IAAF,CAAV;AACAE,IAAAA,QAAQ,CAACK,OAAT,GAAmBF,QAAnB;AACA,GAND;AAQA;AACD;AACA;AACA;AACA;;;AACC,QAAMG,WAAW,GAAG,MAAM;AACzB,QAAKT,OAAL,EAAe;AACdJ,MAAAA,QAAQ,CAAEE,UAAF,CAAR;AACAG,MAAAA,UAAU,CAAE,KAAF,CAAV;AACA;AACD,GALD,CAlC0E,CAyC1E;;;AACA,0BAAW,MAAM;AAChB,WAAO,MAAM;AACZ,UAAKE,QAAQ,CAACK,OAAd,EAAwB;AACvBZ,QAAAA,QAAQ,CAAEO,QAAQ,CAACK,OAAX,CAAR;AACA;AACD,KAJD;AAKA,GAND,EAMG,EANH;AAQA,SACC,qDACC,4BAAC,0BAAD;AACC,IAAA,EAAE,EAAC,OADJ;AAEC,IAAA,OAAO,EAAI,yBAAyBN,UAAY;AAFjD,KAIG,cAAI,mBAAJ,CAJH,CADD,EAOC,4BAAC,8BAAD;AACC,IAAA,YAAY,EAAC,KADd;AAEC,IAAA,GAAG,EAAC,MAFL;AAGC,IAAA,KAAK,EAAGJ,UAHT;AAIC,IAAA,QAAQ,EAAGM,eAJZ;AAKC,IAAA,MAAM,EAAGK,WALV;AAMC,IAAA,SAAS,EAAC,iCANX;AAOC,IAAA,EAAE,EAAI,yBAAyBP,UAAY,EAP5C;AAQC,IAAA,WAAW,EAAG,cAAI,iCAAJ;AARf,IAPD,CADD;AAoBA","sourcesContent":["/**\n * External dependencies\n */\nimport Textarea from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/components';\n\nexport default function CodeEditorTextArea( { value, onChange, onInput } ) {\n\tconst [ stateValue, setStateValue ] = useState( value );\n\tconst [ isDirty, setIsDirty ] = useState( false );\n\tconst instanceId = useInstanceId( CodeEditorTextArea );\n\tconst valueRef = useRef();\n\n\tif ( ! isDirty && stateValue !== value ) {\n\t\tsetStateValue( value );\n\t}\n\n\t/**\n\t * Handles a textarea change event to notify the onChange prop callback and\n\t * reflect the new value in the component's own state. This marks the start\n\t * of the user's edits, if not already changed, preventing future props\n\t * changes to value from replacing the rendered value. This is expected to\n\t * be followed by a reset to dirty state via `stopEditing`.\n\t *\n\t * @see stopEditing\n\t *\n\t * @param {Event} event Change event.\n\t */\n\tconst onChangeHandler = ( event ) => {\n\t\tconst newValue = event.target.value;\n\t\tonInput( newValue );\n\t\tsetStateValue( newValue );\n\t\tsetIsDirty( true );\n\t\tvalueRef.current = newValue;\n\t};\n\n\t/**\n\t * Function called when the user has completed their edits, responsible for\n\t * ensuring that changes, if made, are surfaced to the onPersist prop\n\t * callback and resetting dirty state.\n\t */\n\tconst stopEditing = () => {\n\t\tif ( isDirty ) {\n\t\t\tonChange( stateValue );\n\t\t\tsetIsDirty( false );\n\t\t}\n\t};\n\n\t// Ensure changes aren't lost when component unmounts.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( valueRef.current ) {\n\t\t\t\tonChange( valueRef.current );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<VisuallyHidden\n\t\t\t\tas=\"label\"\n\t\t\t\thtmlFor={ `code-editor-text-area-${ instanceId }` }\n\t\t\t>\n\t\t\t\t{ __( 'Type text or HTML' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t<Textarea\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tdir=\"auto\"\n\t\t\t\tvalue={ stateValue }\n\t\t\t\tonChange={ onChangeHandler }\n\t\t\t\tonBlur={ stopEditing }\n\t\t\t\tclassName=\"edit-site-code-editor-text-area\"\n\t\t\t\tid={ `code-editor-text-area-${ instanceId }` }\n\t\t\t\tplaceholder={ __( 'Start writing with text or HTML' ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"]}
@@ -164,13 +164,8 @@ function BorderPanel(_ref) {
164
164
  onChange: onBorderChange,
165
165
  showStyle: showBorderStyle,
166
166
  value: border,
167
- popoverClassNames: {
168
- linked: 'edit-site-global-styles-sidebar__border-box-control__popover',
169
- top: 'edit-site-global-styles-sidebar__border-box-control__popover-top',
170
- right: 'edit-site-global-styles-sidebar__border-box-control__popover-right',
171
- bottom: 'edit-site-global-styles-sidebar__border-box-control__popover-bottom',
172
- left: 'edit-site-global-styles-sidebar__border-box-control__popover-left'
173
- },
167
+ popoverPlacement: "left-start",
168
+ popoverOffset: 40,
174
169
  __experimentalHasMultipleOrigins: true,
175
170
  __experimentalIsRenderedInSidebar: true
176
171
  })), showBorderRadius && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/border-panel.js"],"names":["useHasBorderPanel","name","controls","useHasBorderColorControl","useHasBorderRadiusControl","useHasBorderStyleControl","useHasBorderWidthControl","some","Boolean","supports","includes","applyFallbackStyle","border","style","color","width","applyAllFallbackStyles","top","right","bottom","left","BorderPanel","userBorderStyles","setBorder","colors","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","hasBorderRadius","borderValues","radius","Object","entries","resetBorder","undefined","resetAll","onBorderChange","newBorder","newBorderWithStyle","updatedBorder","linked","value"],"mappings":";;;;;;;;AAWA;;AARA;;AACA;;AAQA;;AAKA;;AAjBA;AACA;AACA;;AAYA;AACA;AACA;AAQO,SAASA,iBAAT,CAA4BC,IAA5B,EAAmC;AACzC,QAAMC,QAAQ,GAAG,CAChBC,wBAAwB,CAAEF,IAAF,CADR,EAEhBG,yBAAyB,CAAEH,IAAF,CAFT,EAGhBI,wBAAwB,CAAEJ,IAAF,CAHR,EAIhBK,wBAAwB,CAAEL,IAAF,CAJR,CAAjB;AAOA,SAAOC,QAAQ,CAACK,IAAT,CAAeC,OAAf,CAAP;AACA;;AAED,SAASL,wBAAT,CAAmCF,IAAnC,EAA0C;AACzC,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,cAAZ,EAA4BA,IAA5B,EAAoC,CAApC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASN,yBAAT,CAAoCH,IAApC,EAA2C;AAC1C,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,eAAZ,EAA6BA,IAA7B,EAAqC,CAArC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,cAAnB,CAFD;AAIA;;AAED,SAASL,wBAAT,CAAmCJ,IAAnC,EAA0C;AACzC,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,cAAZ,EAA4BA,IAA5B,EAAoC,CAApC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASJ,wBAAT,CAAmCL,IAAnC,EAA0C;AACzC,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,cAAZ,EAA4BA,IAA5B,EAAoC,CAApC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASC,kBAAT,CAA6BC,MAA7B,EAAsC;AACrC,MAAK,CAAEA,MAAP,EAAgB;AACf,WAAOA,MAAP;AACA;;AAED,MAAK,CAAEA,MAAM,CAACC,KAAT,KAAoBD,MAAM,CAACE,KAAP,IAAgBF,MAAM,CAACG,KAA3C,CAAL,EAA0D;AACzD,WAAO,EAAE,GAAGH,MAAL;AAAaC,MAAAA,KAAK,EAAE;AAApB,KAAP;AACA;;AAED,SAAOD,MAAP;AACA;;AAED,SAASI,sBAAT,CAAiCJ,MAAjC,EAA0C;AACzC,MAAK,CAAEA,MAAP,EAAgB;AACf,WAAOA,MAAP;AACA;;AAED,MAAK,+CAAiBA,MAAjB,CAAL,EAAiC;AAChC,WAAO;AACNK,MAAAA,GAAG,EAAEN,kBAAkB,CAAEC,MAAM,CAACK,GAAT,CADjB;AAENC,MAAAA,KAAK,EAAEP,kBAAkB,CAAEC,MAAM,CAACM,KAAT,CAFnB;AAGNC,MAAAA,MAAM,EAAER,kBAAkB,CAAEC,MAAM,CAACO,MAAT,CAHpB;AAINC,MAAAA,IAAI,EAAET,kBAAkB,CAAEC,MAAM,CAACQ,IAAT;AAJlB,KAAP;AAMA;;AAED,SAAOT,kBAAkB,CAAEC,MAAF,CAAzB;AACA;;AAEc,SAASS,WAAT,OAAiC;AAAA,MAAX;AAAEpB,IAAAA;AAAF,GAAW;AAC/C;AACA;AACA,QAAM,CAAEqB,gBAAF,IAAuB,qBAAU,QAAV,EAAoBrB,IAApB,EAA0B,MAA1B,CAA7B;AACA,QAAM,CAAEW,MAAF,EAAUW,SAAV,IAAwB,qBAAU,QAAV,EAAoBtB,IAApB,CAA9B;AACA,QAAMuB,MAAM,GAAG,+BAAoBvB,IAApB,CAAf;AAEA,QAAMwB,eAAe,GAAGtB,wBAAwB,CAAEF,IAAF,CAAhD;AACA,QAAMyB,eAAe,GAAGrB,wBAAwB,CAAEJ,IAAF,CAAhD;AACA,QAAM0B,eAAe,GAAGrB,wBAAwB,CAAEL,IAAF,CAAhD,CAT+C,CAW/C;;AACA,QAAM2B,gBAAgB,GAAGxB,yBAAyB,CAAEH,IAAF,CAAlD;AACA,QAAM,CAAE4B,kBAAF,EAAsBC,eAAtB,IAA0C,qBAC/C,eAD+C,EAE/C7B,IAF+C,CAAhD;;AAIA,QAAM8B,eAAe,GAAG,MAAM;AAC7B,UAAMC,YAAY,GAAGV,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEW,MAAvC;;AACA,QAAK,OAAOD,YAAP,KAAwB,QAA7B,EAAwC;AACvC,aAAOE,MAAM,CAACC,OAAP,CAAgBH,YAAhB,EAA+BzB,IAA/B,CAAqCC,OAArC,CAAP;AACA;;AACD,WAAO,CAAC,CAAEwB,YAAV;AACA,GAND;;AAQA,QAAMI,WAAW,GAAG,MAAM;AACzB,QAAKL,eAAe,EAApB,EAAyB;AACxB,aAAOR,SAAS,CAAE;AAAEU,QAAAA,MAAM,EAAEX,gBAAgB,CAACW;AAA3B,OAAF,CAAhB;AACA;;AAEDV,IAAAA,SAAS,CAAEc,SAAF,CAAT;AACA,GAND;;AAQA,QAAMC,QAAQ,GAAG,0BAAa,MAAMf,SAAS,CAAEc,SAAF,CAA5B,EAA2C,CAAEd,SAAF,CAA3C,CAAjB;AACA,QAAMgB,cAAc,GAAG,0BACpBC,SAAF,IAAiB;AAChB;AACA;AACA,UAAMC,kBAAkB,GAAGzB,sBAAsB,CAAEwB,SAAF,CAAjD,CAHgB,CAKhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,UAAME,aAAa,GAAG,CAAE,+CAAiBD,kBAAjB,CAAF,GACnB;AACAxB,MAAAA,GAAG,EAAEwB,kBADL;AAEAvB,MAAAA,KAAK,EAAEuB,kBAFP;AAGAtB,MAAAA,MAAM,EAAEsB,kBAHR;AAIArB,MAAAA,IAAI,EAAEqB;AAJN,KADmB,GAOnB;AACA3B,MAAAA,KAAK,EAAE,IADP;AAEAD,MAAAA,KAAK,EAAE,IAFP;AAGAE,MAAAA,KAAK,EAAE,IAHP;AAIA,SAAG0B;AAJH,KAPH,CAhBgB,CA8BhB;AACA;AACA;;AACAlB,IAAAA,SAAS,CAAE;AAAEU,MAAAA,MAAM,EAAErB,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEqB,MAAlB;AAA0B,SAAGS;AAA7B,KAAF,CAAT;AACA,GAnCqB,EAoCtB,CAAEnB,SAAF,CApCsB,CAAvB;AAuCA,SACC,4BAAC,oCAAD;AAAY,IAAA,KAAK,EAAG,cAAI,QAAJ,CAApB;AAAqC,IAAA,QAAQ,EAAGe;AAAhD,KACG,CAAEX,eAAe,IAAIF,eAArB,KACD,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAG,MAAM,+CAAiBH,gBAAjB,CADlB;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAFT;AAGC,IAAA,UAAU,EAAG,MAAMc,WAAW,EAH/B;AAIC,IAAA,gBAAgB,EAAG;AAJpB,KAMC,4BAAC,0CAAD;AACC,IAAA,MAAM,EAAGZ,MADV;AAEC,IAAA,WAAW,EAAG,IAFf;AAGC,IAAA,QAAQ,EAAGe,cAHZ;AAIC,IAAA,SAAS,EAAGb,eAJb;AAKC,IAAA,KAAK,EAAGd,MALT;AAMC,IAAA,iBAAiB,EAAG;AACnB+B,MAAAA,MAAM,EACL,8DAFkB;AAGnB1B,MAAAA,GAAG,EACF,kEAJkB;AAKnBC,MAAAA,KAAK,EACJ,oEANkB;AAOnBC,MAAAA,MAAM,EACL,qEARkB;AASnBC,MAAAA,IAAI,EACH;AAVkB,KANrB;AAkBC,IAAA,gCAAgC,EAAG,IAlBpC;AAmBC,IAAA,iCAAiC,EAAG;AAnBrC,IAND,CAFF,EA+BGQ,gBAAgB,IACjB,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGG,eADZ;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAFT;AAGC,IAAA,UAAU,EAAG,MAAMD,eAAe,CAAEO,SAAF,CAHnC;AAIC,IAAA,gBAAgB,EAAG;AAJpB,KAMC,4BAAC,8CAAD;AACC,IAAA,MAAM,EAAGR,kBADV;AAEC,IAAA,QAAQ,EAAKe,KAAF,IAAa;AACvBd,MAAAA,eAAe,CAAEc,KAAK,IAAIP,SAAX,CAAf;AACA;AAJF,IAND,CAhCF,CADD;AAiDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalBorderRadiusControl as BorderRadiusControl } from '@wordpress/block-editor';\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetSupportedGlobalStylesPanels,\n\tuseColorsPerOrigin,\n\tuseSetting,\n\tuseStyle,\n} from './hooks';\n\nexport function useHasBorderPanel( name ) {\n\tconst controls = [\n\t\tuseHasBorderColorControl( name ),\n\t\tuseHasBorderRadiusControl( name ),\n\t\tuseHasBorderStyleControl( name ),\n\t\tuseHasBorderWidthControl( name ),\n\t];\n\n\treturn controls.some( Boolean );\n}\n\nfunction useHasBorderColorControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.color', name )[ 0 ] &&\n\t\tsupports.includes( 'borderColor' )\n\t);\n}\n\nfunction useHasBorderRadiusControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.radius', name )[ 0 ] &&\n\t\tsupports.includes( 'borderRadius' )\n\t);\n}\n\nfunction useHasBorderStyleControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.style', name )[ 0 ] &&\n\t\tsupports.includes( 'borderStyle' )\n\t);\n}\n\nfunction useHasBorderWidthControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.width', name )[ 0 ] &&\n\t\tsupports.includes( 'borderWidth' )\n\t);\n}\n\nfunction applyFallbackStyle( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( ! border.style && ( border.color || border.width ) ) {\n\t\treturn { ...border, style: 'solid' };\n\t}\n\n\treturn border;\n}\n\nfunction applyAllFallbackStyles( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( hasSplitBorders( border ) ) {\n\t\treturn {\n\t\t\ttop: applyFallbackStyle( border.top ),\n\t\t\tright: applyFallbackStyle( border.right ),\n\t\t\tbottom: applyFallbackStyle( border.bottom ),\n\t\t\tleft: applyFallbackStyle( border.left ),\n\t\t};\n\t}\n\n\treturn applyFallbackStyle( border );\n}\n\nexport default function BorderPanel( { name } ) {\n\t// To better reflect if the user has customized a value we need to\n\t// ensure the style value being checked is from the `user` origin.\n\tconst [ userBorderStyles ] = useStyle( 'border', name, 'user' );\n\tconst [ border, setBorder ] = useStyle( 'border', name );\n\tconst colors = useColorsPerOrigin( name );\n\n\tconst showBorderColor = useHasBorderColorControl( name );\n\tconst showBorderStyle = useHasBorderStyleControl( name );\n\tconst showBorderWidth = useHasBorderWidthControl( name );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( name );\n\tconst [ borderRadiusValues, setBorderRadius ] = useStyle(\n\t\t'border.radius',\n\t\tname\n\t);\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = userBorderStyles?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: userBorderStyles.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst resetAll = useCallback( () => setBorder( undefined ), [ setBorder ] );\n\tconst onBorderChange = useCallback(\n\t\t( newBorder ) => {\n\t\t\t// Ensure we have a visible border style when a border width or\n\t\t\t// color is being selected.\n\t\t\tconst newBorderWithStyle = applyAllFallbackStyles( newBorder );\n\n\t\t\t// As we can't conditionally generate styles based on if other\n\t\t\t// style properties have been set we need to force split border\n\t\t\t// definitions for user set border styles. Border radius is derived\n\t\t\t// from the same property i.e. `border.radius` if it is a string\n\t\t\t// that is used. The longhand border radii styles are only generated\n\t\t\t// if that property is an object.\n\t\t\t//\n\t\t\t// For borders (color, style, and width) those are all properties on\n\t\t\t// the `border` style property. This means if the theme.json defined\n\t\t\t// split borders and the user condenses them into a flat border or\n\t\t\t// vice-versa we'd get both sets of styles which would conflict.\n\t\t\tconst updatedBorder = ! hasSplitBorders( newBorderWithStyle )\n\t\t\t\t? {\n\t\t\t\t\t\ttop: newBorderWithStyle,\n\t\t\t\t\t\tright: newBorderWithStyle,\n\t\t\t\t\t\tbottom: newBorderWithStyle,\n\t\t\t\t\t\tleft: newBorderWithStyle,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tcolor: null,\n\t\t\t\t\t\tstyle: null,\n\t\t\t\t\t\twidth: null,\n\t\t\t\t\t\t...newBorderWithStyle,\n\t\t\t\t };\n\n\t\t\t// As radius is maintained separately to color, style, and width\n\t\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t\t// global styles are saved.\n\t\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t\t},\n\t\t[ setBorder ]\n\t);\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Border' ) } resetAll={ resetAll }>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( userBorderStyles ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tshowStyle={ showBorderStyle }\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\tpopoverClassNames={ {\n\t\t\t\t\t\t\tlinked:\n\t\t\t\t\t\t\t\t'edit-site-global-styles-sidebar__border-box-control__popover',\n\t\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t\t'edit-site-global-styles-sidebar__border-box-control__popover-top',\n\t\t\t\t\t\t\tright:\n\t\t\t\t\t\t\t\t'edit-site-global-styles-sidebar__border-box-control__popover-right',\n\t\t\t\t\t\t\tbottom:\n\t\t\t\t\t\t\t\t'edit-site-global-styles-sidebar__border-box-control__popover-bottom',\n\t\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t\t'edit-site-global-styles-sidebar__border-box-control__popover-left',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__experimentalHasMultipleOrigins={ true }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetBorderRadius( value || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/border-panel.js"],"names":["useHasBorderPanel","name","controls","useHasBorderColorControl","useHasBorderRadiusControl","useHasBorderStyleControl","useHasBorderWidthControl","some","Boolean","supports","includes","applyFallbackStyle","border","style","color","width","applyAllFallbackStyles","top","right","bottom","left","BorderPanel","userBorderStyles","setBorder","colors","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","hasBorderRadius","borderValues","radius","Object","entries","resetBorder","undefined","resetAll","onBorderChange","newBorder","newBorderWithStyle","updatedBorder","value"],"mappings":";;;;;;;;AAWA;;AARA;;AACA;;AAQA;;AAKA;;AAjBA;AACA;AACA;;AAYA;AACA;AACA;AAQO,SAASA,iBAAT,CAA4BC,IAA5B,EAAmC;AACzC,QAAMC,QAAQ,GAAG,CAChBC,wBAAwB,CAAEF,IAAF,CADR,EAEhBG,yBAAyB,CAAEH,IAAF,CAFT,EAGhBI,wBAAwB,CAAEJ,IAAF,CAHR,EAIhBK,wBAAwB,CAAEL,IAAF,CAJR,CAAjB;AAOA,SAAOC,QAAQ,CAACK,IAAT,CAAeC,OAAf,CAAP;AACA;;AAED,SAASL,wBAAT,CAAmCF,IAAnC,EAA0C;AACzC,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,cAAZ,EAA4BA,IAA5B,EAAoC,CAApC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASN,yBAAT,CAAoCH,IAApC,EAA2C;AAC1C,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,eAAZ,EAA6BA,IAA7B,EAAqC,CAArC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,cAAnB,CAFD;AAIA;;AAED,SAASL,wBAAT,CAAmCJ,IAAnC,EAA0C;AACzC,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,cAAZ,EAA4BA,IAA5B,EAAoC,CAApC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASJ,wBAAT,CAAmCL,IAAnC,EAA0C;AACzC,QAAMQ,QAAQ,GAAG,2CAAgCR,IAAhC,CAAjB;AACA,SACC,uBAAY,cAAZ,EAA4BA,IAA5B,EAAoC,CAApC,KACAQ,QAAQ,CAACC,QAAT,CAAmB,aAAnB,CAFD;AAIA;;AAED,SAASC,kBAAT,CAA6BC,MAA7B,EAAsC;AACrC,MAAK,CAAEA,MAAP,EAAgB;AACf,WAAOA,MAAP;AACA;;AAED,MAAK,CAAEA,MAAM,CAACC,KAAT,KAAoBD,MAAM,CAACE,KAAP,IAAgBF,MAAM,CAACG,KAA3C,CAAL,EAA0D;AACzD,WAAO,EAAE,GAAGH,MAAL;AAAaC,MAAAA,KAAK,EAAE;AAApB,KAAP;AACA;;AAED,SAAOD,MAAP;AACA;;AAED,SAASI,sBAAT,CAAiCJ,MAAjC,EAA0C;AACzC,MAAK,CAAEA,MAAP,EAAgB;AACf,WAAOA,MAAP;AACA;;AAED,MAAK,+CAAiBA,MAAjB,CAAL,EAAiC;AAChC,WAAO;AACNK,MAAAA,GAAG,EAAEN,kBAAkB,CAAEC,MAAM,CAACK,GAAT,CADjB;AAENC,MAAAA,KAAK,EAAEP,kBAAkB,CAAEC,MAAM,CAACM,KAAT,CAFnB;AAGNC,MAAAA,MAAM,EAAER,kBAAkB,CAAEC,MAAM,CAACO,MAAT,CAHpB;AAINC,MAAAA,IAAI,EAAET,kBAAkB,CAAEC,MAAM,CAACQ,IAAT;AAJlB,KAAP;AAMA;;AAED,SAAOT,kBAAkB,CAAEC,MAAF,CAAzB;AACA;;AAEc,SAASS,WAAT,OAAiC;AAAA,MAAX;AAAEpB,IAAAA;AAAF,GAAW;AAC/C;AACA;AACA,QAAM,CAAEqB,gBAAF,IAAuB,qBAAU,QAAV,EAAoBrB,IAApB,EAA0B,MAA1B,CAA7B;AACA,QAAM,CAAEW,MAAF,EAAUW,SAAV,IAAwB,qBAAU,QAAV,EAAoBtB,IAApB,CAA9B;AACA,QAAMuB,MAAM,GAAG,+BAAoBvB,IAApB,CAAf;AAEA,QAAMwB,eAAe,GAAGtB,wBAAwB,CAAEF,IAAF,CAAhD;AACA,QAAMyB,eAAe,GAAGrB,wBAAwB,CAAEJ,IAAF,CAAhD;AACA,QAAM0B,eAAe,GAAGrB,wBAAwB,CAAEL,IAAF,CAAhD,CAT+C,CAW/C;;AACA,QAAM2B,gBAAgB,GAAGxB,yBAAyB,CAAEH,IAAF,CAAlD;AACA,QAAM,CAAE4B,kBAAF,EAAsBC,eAAtB,IAA0C,qBAC/C,eAD+C,EAE/C7B,IAF+C,CAAhD;;AAIA,QAAM8B,eAAe,GAAG,MAAM;AAC7B,UAAMC,YAAY,GAAGV,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEW,MAAvC;;AACA,QAAK,OAAOD,YAAP,KAAwB,QAA7B,EAAwC;AACvC,aAAOE,MAAM,CAACC,OAAP,CAAgBH,YAAhB,EAA+BzB,IAA/B,CAAqCC,OAArC,CAAP;AACA;;AACD,WAAO,CAAC,CAAEwB,YAAV;AACA,GAND;;AAQA,QAAMI,WAAW,GAAG,MAAM;AACzB,QAAKL,eAAe,EAApB,EAAyB;AACxB,aAAOR,SAAS,CAAE;AAAEU,QAAAA,MAAM,EAAEX,gBAAgB,CAACW;AAA3B,OAAF,CAAhB;AACA;;AAEDV,IAAAA,SAAS,CAAEc,SAAF,CAAT;AACA,GAND;;AAQA,QAAMC,QAAQ,GAAG,0BAAa,MAAMf,SAAS,CAAEc,SAAF,CAA5B,EAA2C,CAAEd,SAAF,CAA3C,CAAjB;AACA,QAAMgB,cAAc,GAAG,0BACpBC,SAAF,IAAiB;AAChB;AACA;AACA,UAAMC,kBAAkB,GAAGzB,sBAAsB,CAAEwB,SAAF,CAAjD,CAHgB,CAKhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,UAAME,aAAa,GAAG,CAAE,+CAAiBD,kBAAjB,CAAF,GACnB;AACAxB,MAAAA,GAAG,EAAEwB,kBADL;AAEAvB,MAAAA,KAAK,EAAEuB,kBAFP;AAGAtB,MAAAA,MAAM,EAAEsB,kBAHR;AAIArB,MAAAA,IAAI,EAAEqB;AAJN,KADmB,GAOnB;AACA3B,MAAAA,KAAK,EAAE,IADP;AAEAD,MAAAA,KAAK,EAAE,IAFP;AAGAE,MAAAA,KAAK,EAAE,IAHP;AAIA,SAAG0B;AAJH,KAPH,CAhBgB,CA8BhB;AACA;AACA;;AACAlB,IAAAA,SAAS,CAAE;AAAEU,MAAAA,MAAM,EAAErB,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEqB,MAAlB;AAA0B,SAAGS;AAA7B,KAAF,CAAT;AACA,GAnCqB,EAoCtB,CAAEnB,SAAF,CApCsB,CAAvB;AAuCA,SACC,4BAAC,oCAAD;AAAY,IAAA,KAAK,EAAG,cAAI,QAAJ,CAApB;AAAqC,IAAA,QAAQ,EAAGe;AAAhD,KACG,CAAEX,eAAe,IAAIF,eAArB,KACD,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAG,MAAM,+CAAiBH,gBAAjB,CADlB;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAFT;AAGC,IAAA,UAAU,EAAG,MAAMc,WAAW,EAH/B;AAIC,IAAA,gBAAgB,EAAG;AAJpB,KAMC,4BAAC,0CAAD;AACC,IAAA,MAAM,EAAGZ,MADV;AAEC,IAAA,WAAW,EAAG,IAFf;AAGC,IAAA,QAAQ,EAAGe,cAHZ;AAIC,IAAA,SAAS,EAAGb,eAJb;AAKC,IAAA,KAAK,EAAGd,MALT;AAMC,IAAA,gBAAgB,EAAC,YANlB;AAOC,IAAA,aAAa,EAAG,EAPjB;AAQC,IAAA,gCAAgC,EAAG,IARpC;AASC,IAAA,iCAAiC,EAAG;AATrC,IAND,CAFF,EAqBGgB,gBAAgB,IACjB,4BAAC,wCAAD;AACC,IAAA,QAAQ,EAAGG,eADZ;AAEC,IAAA,KAAK,EAAG,cAAI,QAAJ,CAFT;AAGC,IAAA,UAAU,EAAG,MAAMD,eAAe,CAAEO,SAAF,CAHnC;AAIC,IAAA,gBAAgB,EAAG;AAJpB,KAMC,4BAAC,8CAAD;AACC,IAAA,MAAM,EAAGR,kBADV;AAEC,IAAA,QAAQ,EAAKc,KAAF,IAAa;AACvBb,MAAAA,eAAe,CAAEa,KAAK,IAAIN,SAAX,CAAf;AACA;AAJF,IAND,CAtBF,CADD;AAuCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalBorderRadiusControl as BorderRadiusControl } from '@wordpress/block-editor';\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetSupportedGlobalStylesPanels,\n\tuseColorsPerOrigin,\n\tuseSetting,\n\tuseStyle,\n} from './hooks';\n\nexport function useHasBorderPanel( name ) {\n\tconst controls = [\n\t\tuseHasBorderColorControl( name ),\n\t\tuseHasBorderRadiusControl( name ),\n\t\tuseHasBorderStyleControl( name ),\n\t\tuseHasBorderWidthControl( name ),\n\t];\n\n\treturn controls.some( Boolean );\n}\n\nfunction useHasBorderColorControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.color', name )[ 0 ] &&\n\t\tsupports.includes( 'borderColor' )\n\t);\n}\n\nfunction useHasBorderRadiusControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.radius', name )[ 0 ] &&\n\t\tsupports.includes( 'borderRadius' )\n\t);\n}\n\nfunction useHasBorderStyleControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.style', name )[ 0 ] &&\n\t\tsupports.includes( 'borderStyle' )\n\t);\n}\n\nfunction useHasBorderWidthControl( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\treturn (\n\t\tuseSetting( 'border.width', name )[ 0 ] &&\n\t\tsupports.includes( 'borderWidth' )\n\t);\n}\n\nfunction applyFallbackStyle( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( ! border.style && ( border.color || border.width ) ) {\n\t\treturn { ...border, style: 'solid' };\n\t}\n\n\treturn border;\n}\n\nfunction applyAllFallbackStyles( border ) {\n\tif ( ! border ) {\n\t\treturn border;\n\t}\n\n\tif ( hasSplitBorders( border ) ) {\n\t\treturn {\n\t\t\ttop: applyFallbackStyle( border.top ),\n\t\t\tright: applyFallbackStyle( border.right ),\n\t\t\tbottom: applyFallbackStyle( border.bottom ),\n\t\t\tleft: applyFallbackStyle( border.left ),\n\t\t};\n\t}\n\n\treturn applyFallbackStyle( border );\n}\n\nexport default function BorderPanel( { name } ) {\n\t// To better reflect if the user has customized a value we need to\n\t// ensure the style value being checked is from the `user` origin.\n\tconst [ userBorderStyles ] = useStyle( 'border', name, 'user' );\n\tconst [ border, setBorder ] = useStyle( 'border', name );\n\tconst colors = useColorsPerOrigin( name );\n\n\tconst showBorderColor = useHasBorderColorControl( name );\n\tconst showBorderStyle = useHasBorderStyleControl( name );\n\tconst showBorderWidth = useHasBorderWidthControl( name );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( name );\n\tconst [ borderRadiusValues, setBorderRadius ] = useStyle(\n\t\t'border.radius',\n\t\tname\n\t);\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = userBorderStyles?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: userBorderStyles.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst resetAll = useCallback( () => setBorder( undefined ), [ setBorder ] );\n\tconst onBorderChange = useCallback(\n\t\t( newBorder ) => {\n\t\t\t// Ensure we have a visible border style when a border width or\n\t\t\t// color is being selected.\n\t\t\tconst newBorderWithStyle = applyAllFallbackStyles( newBorder );\n\n\t\t\t// As we can't conditionally generate styles based on if other\n\t\t\t// style properties have been set we need to force split border\n\t\t\t// definitions for user set border styles. Border radius is derived\n\t\t\t// from the same property i.e. `border.radius` if it is a string\n\t\t\t// that is used. The longhand border radii styles are only generated\n\t\t\t// if that property is an object.\n\t\t\t//\n\t\t\t// For borders (color, style, and width) those are all properties on\n\t\t\t// the `border` style property. This means if the theme.json defined\n\t\t\t// split borders and the user condenses them into a flat border or\n\t\t\t// vice-versa we'd get both sets of styles which would conflict.\n\t\t\tconst updatedBorder = ! hasSplitBorders( newBorderWithStyle )\n\t\t\t\t? {\n\t\t\t\t\t\ttop: newBorderWithStyle,\n\t\t\t\t\t\tright: newBorderWithStyle,\n\t\t\t\t\t\tbottom: newBorderWithStyle,\n\t\t\t\t\t\tleft: newBorderWithStyle,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tcolor: null,\n\t\t\t\t\t\tstyle: null,\n\t\t\t\t\t\twidth: null,\n\t\t\t\t\t\t...newBorderWithStyle,\n\t\t\t\t };\n\n\t\t\t// As radius is maintained separately to color, style, and width\n\t\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t\t// global styles are saved.\n\t\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t\t},\n\t\t[ setBorder ]\n\t);\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Border' ) } resetAll={ resetAll }>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( userBorderStyles ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tshowStyle={ showBorderStyle }\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\t__experimentalHasMultipleOrigins={ true }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tsetBorderRadius( value || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
@@ -40,13 +40,13 @@ function ContextMenu(_ref) {
40
40
  const hasBorderPanel = (0, _borderPanel.useHasBorderPanel)(name);
41
41
  const hasDimensionsPanel = (0, _dimensionsPanel.useHasDimensionsPanel)(name);
42
42
  const hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;
43
- return (0, _element.createElement)(_components.__experimentalItemGroup, null, hasTypographyPanel && (0, _element.createElement)(_navigationButton.NavigationButton, {
43
+ return (0, _element.createElement)(_components.__experimentalItemGroup, null, hasTypographyPanel && (0, _element.createElement)(_navigationButton.NavigationButtonAsItem, {
44
44
  icon: _icons.typography,
45
45
  path: parentMenu + '/typography'
46
- }, (0, _i18n.__)('Typography')), hasColorPanel && (0, _element.createElement)(_navigationButton.NavigationButton, {
46
+ }, (0, _i18n.__)('Typography')), hasColorPanel && (0, _element.createElement)(_navigationButton.NavigationButtonAsItem, {
47
47
  icon: _icons.color,
48
48
  path: parentMenu + '/colors'
49
- }, (0, _i18n.__)('Colors')), hasLayoutPanel && (0, _element.createElement)(_navigationButton.NavigationButton, {
49
+ }, (0, _i18n.__)('Colors')), hasLayoutPanel && (0, _element.createElement)(_navigationButton.NavigationButtonAsItem, {
50
50
  icon: _icons.layout,
51
51
  path: parentMenu + '/layout'
52
52
  }, (0, _i18n.__)('Layout')));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/context-menu.js"],"names":["ContextMenu","name","parentMenu","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","typography","color","layout"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAdA;AACA;AACA;;AAKA;AACA;AACA;AAOA,SAASA,WAAT,OAAkD;AAAA,MAA5B;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG;AAArB,GAA4B;AACjD,QAAMC,kBAAkB,GAAG,4CAAuBF,IAAvB,CAA3B;AACA,QAAMG,aAAa,GAAG,kCAAkBH,IAAlB,CAAtB;AACA,QAAMI,cAAc,GAAG,oCAAmBJ,IAAnB,CAAvB;AACA,QAAMK,kBAAkB,GAAG,4CAAuBL,IAAvB,CAA3B;AACA,QAAMM,cAAc,GAAGF,cAAc,IAAIC,kBAAzC;AAEA,SACC,4BAAC,mCAAD,QACGH,kBAAkB,IACnB,4BAAC,kCAAD;AACC,IAAA,IAAI,EAAGK,iBADR;AAEC,IAAA,IAAI,EAAGN,UAAU,GAAG;AAFrB,KAIG,cAAI,YAAJ,CAJH,CAFF,EASGE,aAAa,IACd,4BAAC,kCAAD;AACC,IAAA,IAAI,EAAGK,YADR;AAEC,IAAA,IAAI,EAAGP,UAAU,GAAG;AAFrB,KAIG,cAAI,QAAJ,CAJH,CAVF,EAiBGK,cAAc,IACf,4BAAC,kCAAD;AACC,IAAA,IAAI,EAAGG,aADR;AAEC,IAAA,IAAI,EAAGR,UAAU,GAAG;AAFrB,KAIG,cAAI,QAAJ,CAJH,CAlBF,CADD;AA4BA;;eAEcF,W","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { typography, color, layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useHasBorderPanel } from './border-panel';\nimport { useHasColorPanel } from './color-utils';\nimport { useHasDimensionsPanel } from './dimensions-panel';\nimport { useHasTypographyPanel } from './typography-panel';\nimport { NavigationButton } from './navigation-button';\n\nfunction ContextMenu( { name, parentMenu = '' } ) {\n\tconst hasTypographyPanel = useHasTypographyPanel( name );\n\tconst hasColorPanel = useHasColorPanel( name );\n\tconst hasBorderPanel = useHasBorderPanel( name );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( name );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<NavigationButton\n\t\t\t\t\ticon={ typography }\n\t\t\t\t\tpath={ parentMenu + '/typography' }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Typography' ) }\n\t\t\t\t</NavigationButton>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<NavigationButton\n\t\t\t\t\ticon={ color }\n\t\t\t\t\tpath={ parentMenu + '/colors' }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Colors' ) }\n\t\t\t\t</NavigationButton>\n\t\t\t) }\n\t\t\t{ hasLayoutPanel && (\n\t\t\t\t<NavigationButton\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tpath={ parentMenu + '/layout' }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t</NavigationButton>\n\t\t\t) }\n\t\t</ItemGroup>\n\t);\n}\n\nexport default ContextMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/context-menu.js"],"names":["ContextMenu","name","parentMenu","hasTypographyPanel","hasColorPanel","hasBorderPanel","hasDimensionsPanel","hasLayoutPanel","typography","color","layout"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAdA;AACA;AACA;;AAKA;AACA;AACA;AAOA,SAASA,WAAT,OAAkD;AAAA,MAA5B;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG;AAArB,GAA4B;AACjD,QAAMC,kBAAkB,GAAG,4CAAuBF,IAAvB,CAA3B;AACA,QAAMG,aAAa,GAAG,kCAAkBH,IAAlB,CAAtB;AACA,QAAMI,cAAc,GAAG,oCAAmBJ,IAAnB,CAAvB;AACA,QAAMK,kBAAkB,GAAG,4CAAuBL,IAAvB,CAA3B;AACA,QAAMM,cAAc,GAAGF,cAAc,IAAIC,kBAAzC;AAEA,SACC,4BAAC,mCAAD,QACGH,kBAAkB,IACnB,4BAAC,wCAAD;AACC,IAAA,IAAI,EAAGK,iBADR;AAEC,IAAA,IAAI,EAAGN,UAAU,GAAG;AAFrB,KAIG,cAAI,YAAJ,CAJH,CAFF,EASGE,aAAa,IACd,4BAAC,wCAAD;AACC,IAAA,IAAI,EAAGK,YADR;AAEC,IAAA,IAAI,EAAGP,UAAU,GAAG;AAFrB,KAIG,cAAI,QAAJ,CAJH,CAVF,EAiBGK,cAAc,IACf,4BAAC,wCAAD;AACC,IAAA,IAAI,EAAGG,aADR;AAEC,IAAA,IAAI,EAAGR,UAAU,GAAG;AAFrB,KAIG,cAAI,QAAJ,CAJH,CAlBF,CADD;AA4BA;;eAEcF,W","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalItemGroup as ItemGroup } from '@wordpress/components';\nimport { typography, color, layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useHasBorderPanel } from './border-panel';\nimport { useHasColorPanel } from './color-utils';\nimport { useHasDimensionsPanel } from './dimensions-panel';\nimport { useHasTypographyPanel } from './typography-panel';\nimport { NavigationButtonAsItem } from './navigation-button';\n\nfunction ContextMenu( { name, parentMenu = '' } ) {\n\tconst hasTypographyPanel = useHasTypographyPanel( name );\n\tconst hasColorPanel = useHasColorPanel( name );\n\tconst hasBorderPanel = useHasBorderPanel( name );\n\tconst hasDimensionsPanel = useHasDimensionsPanel( name );\n\tconst hasLayoutPanel = hasBorderPanel || hasDimensionsPanel;\n\n\treturn (\n\t\t<ItemGroup>\n\t\t\t{ hasTypographyPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ typography }\n\t\t\t\t\tpath={ parentMenu + '/typography' }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Typography' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasColorPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ color }\n\t\t\t\t\tpath={ parentMenu + '/colors' }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Colors' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t\t{ hasLayoutPanel && (\n\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tpath={ parentMenu + '/layout' }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Layout' ) }\n\t\t\t\t</NavigationButtonAsItem>\n\t\t\t) }\n\t\t</ItemGroup>\n\t);\n}\n\nexport default ContextMenu;\n"]}
@@ -13,31 +13,35 @@ var _i18n = require("@wordpress/i18n");
13
13
 
14
14
  var _icons = require("@wordpress/icons");
15
15
 
16
- var _navigationButton = require("./navigation-button");
17
-
18
16
  /**
19
17
  * WordPress dependencies
20
18
  */
21
-
22
- /**
23
- * Internal dependencies
24
- */
25
19
  function ScreenHeader(_ref) {
26
20
  let {
27
21
  title,
28
22
  description
29
23
  } = _ref;
30
24
  return (0, _element.createElement)(_components.__experimentalVStack, {
31
- spacing: 2
25
+ spacing: 0
26
+ }, (0, _element.createElement)(_components.__experimentalView, null, (0, _element.createElement)(_components.__experimentalSpacer, {
27
+ marginBottom: 0,
28
+ paddingX: 4,
29
+ paddingY: 3
32
30
  }, (0, _element.createElement)(_components.__experimentalHStack, {
33
31
  spacing: 2
34
- }, (0, _element.createElement)(_components.__experimentalView, null, (0, _element.createElement)(_navigationButton.NavigationBackButton, {
32
+ }, (0, _element.createElement)(_components.__experimentalNavigatorBackButton, {
33
+ style: // TODO: This style override is also used in ToolsPanelHeader.
34
+ // It should be supported out-of-the-box by Button.
35
+ {
36
+ minWidth: 24,
37
+ padding: 0
38
+ },
35
39
  icon: (0, _i18n.isRTL)() ? _icons.chevronRight : _icons.chevronLeft,
36
- size: "small",
40
+ isSmall: true,
37
41
  "aria-label": (0, _i18n.__)('Navigate to the previous view')
38
- })), (0, _element.createElement)(_components.__experimentalSpacer, null, (0, _element.createElement)(_components.__experimentalHeading, {
42
+ }), (0, _element.createElement)(_components.__experimentalSpacer, null, (0, _element.createElement)(_components.__experimentalHeading, {
39
43
  level: 5
40
- }, title))), description && (0, _element.createElement)("p", {
44
+ }, title))))), description && (0, _element.createElement)("p", {
41
45
  className: "edit-site-global-styles-header__description"
42
46
  }, description));
43
47
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/header.js"],"names":["ScreenHeader","title","description","chevronRight","chevronLeft"],"mappings":";;;;;;;;;AAGA;;AAOA;;AACA;;AAKA;;AAhBA;AACA;AACA;;AAWA;AACA;AACA;AAGA,SAASA,YAAT,OAAgD;AAAA,MAAzB;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAyB;AAC/C,SACC,4BAAC,gCAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,4BAAC,gCAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,4BAAC,8BAAD,QACC,4BAAC,sCAAD;AACC,IAAA,IAAI,EAAG,qBAAUC,mBAAV,GAAyBC,kBADjC;AAEC,IAAA,IAAI,EAAC,OAFN;AAGC,kBAAa,cAAI,+BAAJ;AAHd,IADD,CADD,EAQC,4BAAC,gCAAD,QACC,4BAAC,iCAAD;AAAS,IAAA,KAAK,EAAG;AAAjB,KAAuBH,KAAvB,CADD,CARD,CADD,EAaGC,WAAW,IACZ;AAAG,IAAA,SAAS,EAAC;AAAb,KACGA,WADH,CAdF,CADD;AAqBA;;eAEcF,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { NavigationBackButton } from './navigation-button';\n\nfunction ScreenHeader( { title, description } ) {\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t<View>\n\t\t\t\t\t<NavigationBackButton\n\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t\t<Spacer>\n\t\t\t\t\t<Heading level={ 5 }>{ title }</Heading>\n\t\t\t\t</Spacer>\n\t\t\t</HStack>\n\t\t\t{ description && (\n\t\t\t\t<p className=\"edit-site-global-styles-header__description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default ScreenHeader;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/header.js"],"names":["ScreenHeader","title","description","minWidth","padding","chevronRight","chevronLeft"],"mappings":";;;;;;;;;AAGA;;AAQA;;AACA;;AAZA;AACA;AACA;AAYA,SAASA,YAAT,OAAgD;AAAA,MAAzB;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,GAAyB;AAC/C,SACC,4BAAC,gCAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,4BAAC,8BAAD,QACC,4BAAC,gCAAD;AAAQ,IAAA,YAAY,EAAG,CAAvB;AAA2B,IAAA,QAAQ,EAAG,CAAtC;AAA0C,IAAA,QAAQ,EAAG;AAArD,KACC,4BAAC,gCAAD;AAAQ,IAAA,OAAO,EAAG;AAAlB,KACC,4BAAC,6CAAD;AACC,IAAA,KAAK,EACJ;AACA;AACA;AAAEC,MAAAA,QAAQ,EAAE,EAAZ;AAAgBC,MAAAA,OAAO,EAAE;AAAzB,KAJF;AAMC,IAAA,IAAI,EAAG,qBAAUC,mBAAV,GAAyBC,kBANjC;AAOC,IAAA,OAAO,MAPR;AAQC,kBAAa,cAAI,+BAAJ;AARd,IADD,EAWC,4BAAC,gCAAD,QACC,4BAAC,iCAAD;AAAS,IAAA,KAAK,EAAG;AAAjB,KAAuBL,KAAvB,CADD,CAXD,CADD,CADD,CADD,EAoBGC,WAAW,IACZ;AAAG,IAAA,SAAS,EAAC;AAAb,KACGA,WADH,CArBF,CADD;AA4BA;;eAEcF,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n\t__experimentalNavigatorBackButton as NavigatorBackButton,\n} from '@wordpress/components';\nimport { isRTL, __ } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft } from '@wordpress/icons';\n\nfunction ScreenHeader( { title, description } ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<View>\n\t\t\t\t<Spacer marginBottom={ 0 } paddingX={ 4 } paddingY={ 3 }>\n\t\t\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t\t\t<NavigatorBackButton\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\taria-label={ __( 'Navigate to the previous view' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer>\n\t\t\t\t\t\t\t<Heading level={ 5 }>{ title }</Heading>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t\t{ description && (\n\t\t\t\t<p className=\"edit-site-global-styles-header__description\">\n\t\t\t\t\t{ description }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default ScreenHeader;\n"]}
@@ -34,8 +34,8 @@ var _context = require("./context");
34
34
  * Internal dependencies
35
35
  */
36
36
  const EMPTY_CONFIG = {
37
- isGlobalStylesUserThemeJSON: true,
38
- version: 1
37
+ settings: {},
38
+ styles: {}
39
39
  };
40
40
 
41
41
  const useGlobalStylesReset = () => {