@wordpress/editor 14.43.0 → 14.44.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 (151) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +8 -0
  3. package/build/components/autocompleters/index.cjs +3 -0
  4. package/build/components/autocompleters/index.cjs.map +2 -2
  5. package/build/components/autocompleters/link.cjs +71 -0
  6. package/build/components/autocompleters/link.cjs.map +7 -0
  7. package/build/components/collab-sidebar/index.cjs.map +2 -2
  8. package/build/components/collaborators-overlay/cursor-dom-utils.cjs +1 -1
  9. package/build/components/collaborators-overlay/cursor-dom-utils.cjs.map +2 -2
  10. package/build/components/collaborators-overlay/timing-utils.cjs +1 -1
  11. package/build/components/collaborators-overlay/timing-utils.cjs.map +2 -2
  12. package/build/components/collaborators-overlay/use-render-cursors.cjs.map +2 -2
  13. package/build/components/error-boundary/index.cjs +1 -1
  14. package/build/components/error-boundary/index.cjs.map +2 -2
  15. package/build/components/post-revisions-panel/index.cjs +44 -42
  16. package/build/components/post-revisions-panel/index.cjs.map +2 -2
  17. package/build/components/post-revisions-preview/revisions-slider.cjs +9 -17
  18. package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
  19. package/build/components/post-title/index.cjs +2 -2
  20. package/build/components/post-title/index.cjs.map +2 -2
  21. package/build/components/sidebar/index.cjs +7 -1
  22. package/build/components/sidebar/index.cjs.map +2 -2
  23. package/build/components/sidebar/post-revision-summary.cjs +11 -2
  24. package/build/components/sidebar/post-revision-summary.cjs.map +2 -2
  25. package/build/components/sidebar/post-summary.cjs +0 -18
  26. package/build/components/sidebar/post-summary.cjs.map +2 -2
  27. package/build/components/style-book/categories.cjs.map +2 -2
  28. package/build/components/style-book/examples.cjs +1 -1
  29. package/build/components/style-book/examples.cjs.map +2 -2
  30. package/build/components/style-book/types.cjs.map +1 -1
  31. package/build/components/styles-canvas/revisions.cjs +2 -2
  32. package/build/components/styles-canvas/revisions.cjs.map +1 -1
  33. package/build/components/sync-connection-error-modal/index.cjs +66 -74
  34. package/build/components/sync-connection-error-modal/index.cjs.map +3 -3
  35. package/build/components/sync-connection-error-modal/use-retry-countdown.cjs +32 -9
  36. package/build/components/sync-connection-error-modal/use-retry-countdown.cjs.map +2 -2
  37. package/build/hooks/default-autocompleters.cjs +1 -1
  38. package/build/hooks/default-autocompleters.cjs.map +2 -2
  39. package/build/store/private-actions.cjs +1 -6
  40. package/build/store/private-actions.cjs.map +2 -2
  41. package/build/store/private-selectors.cjs +4 -6
  42. package/build/store/private-selectors.cjs.map +2 -2
  43. package/build/store/reducer.cjs +1 -1
  44. package/build/store/reducer.cjs.map +2 -2
  45. package/build-module/components/autocompleters/index.mjs +4 -2
  46. package/build-module/components/autocompleters/index.mjs.map +2 -2
  47. package/build-module/components/autocompleters/link.mjs +40 -0
  48. package/build-module/components/autocompleters/link.mjs.map +7 -0
  49. package/build-module/components/collab-sidebar/index.mjs.map +2 -2
  50. package/build-module/components/collaborators-overlay/cursor-dom-utils.mjs +1 -1
  51. package/build-module/components/collaborators-overlay/cursor-dom-utils.mjs.map +2 -2
  52. package/build-module/components/collaborators-overlay/timing-utils.mjs +1 -1
  53. package/build-module/components/collaborators-overlay/timing-utils.mjs.map +2 -2
  54. package/build-module/components/collaborators-overlay/use-render-cursors.mjs.map +2 -2
  55. package/build-module/components/error-boundary/index.mjs +1 -1
  56. package/build-module/components/error-boundary/index.mjs.map +2 -2
  57. package/build-module/components/post-revisions-panel/index.mjs +44 -42
  58. package/build-module/components/post-revisions-panel/index.mjs.map +2 -2
  59. package/build-module/components/post-revisions-preview/revisions-slider.mjs +9 -17
  60. package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
  61. package/build-module/components/post-title/index.mjs +2 -2
  62. package/build-module/components/post-title/index.mjs.map +2 -2
  63. package/build-module/components/sidebar/index.mjs +7 -1
  64. package/build-module/components/sidebar/index.mjs.map +2 -2
  65. package/build-module/components/sidebar/post-revision-summary.mjs +15 -3
  66. package/build-module/components/sidebar/post-revision-summary.mjs.map +2 -2
  67. package/build-module/components/sidebar/post-summary.mjs +1 -18
  68. package/build-module/components/sidebar/post-summary.mjs.map +2 -2
  69. package/build-module/components/style-book/categories.mjs.map +2 -2
  70. package/build-module/components/style-book/examples.mjs +1 -1
  71. package/build-module/components/style-book/examples.mjs.map +2 -2
  72. package/build-module/components/styles-canvas/revisions.mjs +2 -2
  73. package/build-module/components/styles-canvas/revisions.mjs.map +1 -1
  74. package/build-module/components/sync-connection-error-modal/index.mjs +66 -75
  75. package/build-module/components/sync-connection-error-modal/index.mjs.map +2 -2
  76. package/build-module/components/sync-connection-error-modal/use-retry-countdown.mjs +33 -10
  77. package/build-module/components/sync-connection-error-modal/use-retry-countdown.mjs.map +2 -2
  78. package/build-module/hooks/default-autocompleters.mjs +2 -2
  79. package/build-module/hooks/default-autocompleters.mjs.map +2 -2
  80. package/build-module/store/private-actions.mjs +1 -6
  81. package/build-module/store/private-actions.mjs.map +2 -2
  82. package/build-module/store/private-selectors.mjs +4 -6
  83. package/build-module/store/private-selectors.mjs.map +2 -2
  84. package/build-module/store/reducer.mjs +1 -1
  85. package/build-module/store/reducer.mjs.map +2 -2
  86. package/build-style/style-rtl.css +40 -30
  87. package/build-style/style.css +40 -30
  88. package/build-types/bindings/post-data.d.ts +3 -3
  89. package/build-types/bindings/term-data.d.ts +14 -14
  90. package/build-types/components/autocompleters/index.d.ts +1 -0
  91. package/build-types/components/autocompleters/link.d.ts +12 -0
  92. package/build-types/components/autocompleters/link.d.ts.map +1 -0
  93. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  94. package/build-types/components/collaborators-overlay/use-render-cursors.d.ts.map +1 -1
  95. package/build-types/components/keyboard-shortcut-help-modal/config.d.ts +11 -11
  96. package/build-types/components/post-actions/set-as-homepage.d.ts +1 -1
  97. package/build-types/components/post-actions/set-as-posts-page.d.ts +1 -1
  98. package/build-types/components/post-format/index.d.ts +10 -10
  99. package/build-types/components/post-locked-modal/index.d.ts +2 -2
  100. package/build-types/components/post-revisions-panel/index.d.ts.map +1 -1
  101. package/build-types/components/post-revisions-preview/revisions-slider.d.ts.map +1 -1
  102. package/build-types/components/post-status/index.d.ts +10 -10
  103. package/build-types/components/post-visibility/utils.d.ts +6 -6
  104. package/build-types/components/sidebar/index.d.ts.map +1 -1
  105. package/build-types/components/sidebar/post-revision-summary.d.ts.map +1 -1
  106. package/build-types/components/sidebar/post-summary.d.ts +0 -3
  107. package/build-types/components/sidebar/post-summary.d.ts.map +1 -1
  108. package/build-types/components/style-book/categories.d.ts.map +1 -1
  109. package/build-types/components/style-book/examples.d.ts.map +1 -1
  110. package/build-types/components/style-book/types.d.ts +1 -13
  111. package/build-types/components/style-book/types.d.ts.map +1 -1
  112. package/build-types/components/sync-connection-error-modal/index.d.ts +0 -14
  113. package/build-types/components/sync-connection-error-modal/index.d.ts.map +1 -1
  114. package/build-types/components/sync-connection-error-modal/use-retry-countdown.d.ts.map +1 -1
  115. package/build-types/hooks/custom-sources-backwards-compatibility.d.ts +1 -1
  116. package/build-types/hooks/custom-sources-backwards-compatibility.d.ts.map +1 -1
  117. package/build-types/hooks/pattern-overrides.d.ts +1 -1
  118. package/build-types/hooks/pattern-overrides.d.ts.map +1 -1
  119. package/build-types/store/private-actions.d.ts.map +1 -1
  120. package/build-types/store/private-selectors.d.ts.map +1 -1
  121. package/build-types/store/reducer.d.ts +10 -10
  122. package/build-types/store/reducer.d.ts.map +1 -1
  123. package/build-types/utils/pageTypeBadge.d.ts +1 -1
  124. package/build-types/utils/pageTypeBadge.d.ts.map +1 -1
  125. package/package.json +45 -45
  126. package/src/components/autocompleters/index.js +1 -0
  127. package/src/components/autocompleters/link.js +47 -0
  128. package/src/components/autocompleters/style.scss +6 -0
  129. package/src/components/collab-sidebar/index.js +1 -0
  130. package/src/components/collaborators-overlay/cursor-dom-utils.ts +1 -1
  131. package/src/components/collaborators-overlay/timing-utils.ts +1 -1
  132. package/src/components/collaborators-overlay/use-render-cursors.ts +4 -2
  133. package/src/components/error-boundary/index.js +1 -1
  134. package/src/components/error-boundary/index.native.js +1 -1
  135. package/src/components/post-revisions-panel/index.js +46 -44
  136. package/src/components/post-revisions-preview/revisions-slider.js +9 -27
  137. package/src/components/post-title/index.js +3 -3
  138. package/src/components/sidebar/index.js +7 -1
  139. package/src/components/sidebar/post-revision-summary.js +13 -3
  140. package/src/components/sidebar/post-summary.js +1 -18
  141. package/src/components/style-book/categories.ts +0 -1
  142. package/src/components/style-book/examples.tsx +6 -12
  143. package/src/components/style-book/types.ts +1 -18
  144. package/src/components/styles-canvas/revisions.js +2 -2
  145. package/src/components/sync-connection-error-modal/index.tsx +151 -163
  146. package/src/components/sync-connection-error-modal/use-retry-countdown.ts +46 -10
  147. package/src/hooks/default-autocompleters.js +2 -2
  148. package/src/hooks/test/default-autocompleters.js +2 -2
  149. package/src/store/private-actions.js +1 -6
  150. package/src/store/private-selectors.js +4 -13
  151. package/src/store/reducer.js +9 -8
@@ -23,7 +23,6 @@ __export(revisions_slider_exports, {
23
23
  default: () => revisions_slider_default
24
24
  });
25
25
  module.exports = __toCommonJS(revisions_slider_exports);
26
- var import_element = require("@wordpress/element");
27
26
  var import_data = require("@wordpress/data");
28
27
  var import_components = require("@wordpress/components");
29
28
  var import_core_data = require("@wordpress/core-data");
@@ -47,6 +46,8 @@ function RevisionsSlider() {
47
46
  const query = {
48
47
  per_page: -1,
49
48
  context: "edit",
49
+ orderby: "date",
50
+ order: "asc",
50
51
  _fields: [
51
52
  .../* @__PURE__ */ new Set([
52
53
  "id",
@@ -78,39 +79,30 @@ function RevisionsSlider() {
78
79
  []
79
80
  );
80
81
  const { setCurrentRevisionId } = (0, import_lock_unlock.unlock)((0, import_data.useDispatch)(import_store.store));
81
- const revisionDateField = revisionKey === "wp_id" ? "modified" : "date";
82
- const sortedRevisions = (0, import_element.useMemo)(() => {
83
- return revisions?.slice().sort(
84
- (a, b) => new Date(a[revisionDateField]) - new Date(b[revisionDateField])
85
- ) ?? [];
86
- }, [revisions, revisionDateField]);
87
- const selectedIndex = sortedRevisions.findIndex(
82
+ const selectedIndex = revisions?.findIndex(
88
83
  (r) => r[revisionKey] === currentRevisionId
89
84
  );
90
85
  const handleSliderChange = (index) => {
91
- const revision = sortedRevisions[index];
86
+ const revision = revisions?.[index];
92
87
  if (revision) {
93
88
  setCurrentRevisionId(revision[revisionKey]);
94
89
  }
95
90
  };
96
91
  const dateSettings = (0, import_date.getSettings)();
97
92
  const renderTooltipContent = (index) => {
98
- const revision = sortedRevisions[index];
93
+ const revision = revisions?.[index];
99
94
  if (!revision) {
100
95
  return index;
101
96
  }
102
- return (0, import_date.dateI18n)(
103
- dateSettings.formats.datetime,
104
- revision[revisionDateField]
105
- );
97
+ return (0, import_date.dateI18n)(dateSettings.formats.datetime, revision.date);
106
98
  };
107
99
  if (isLoading) {
108
100
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Spinner, {});
109
101
  }
110
- if (!sortedRevisions.length) {
102
+ if (!revisions?.length) {
111
103
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "editor-revisions-header__no-revisions", children: (0, import_i18n.__)("No revisions found.") });
112
104
  }
113
- if (sortedRevisions.length === 1) {
105
+ if (revisions?.length === 1) {
114
106
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "editor-revisions-header__no-revisions", children: (0, import_i18n.__)("Only one revision found.") });
115
107
  }
116
108
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -120,7 +112,7 @@ function RevisionsSlider() {
120
112
  className: "editor-revisions-header__slider",
121
113
  hideLabelFromVision: true,
122
114
  label: (0, import_i18n.__)("Revision"),
123
- max: sortedRevisions.length - 1,
115
+ max: revisions?.length - 1,
124
116
  min: 0,
125
117
  marks: true,
126
118
  onChange: handleSliderChange,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/post-revisions-preview/revisions-slider.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { RangeControl, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { dateI18n, getSettings as getDateSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Slider component for navigating revisions.\n *\n * @return {React.JSX.Element} The revisions slider component.\n */\nfunction RevisionsSlider() {\n\tconst { revisions, isLoading, currentRevisionId, revisionKey } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPostId, getCurrentPostType } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getRevisions, isResolving, getEntityConfig } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst postId = getCurrentPostId();\n\t\t\tconst postType = getCurrentPostType();\n\n\t\t\tif ( ! postId || ! postType ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst entityConfig = getEntityConfig( 'postType', postType );\n\t\t\tconst _revisionKey = entityConfig?.revisionKey || 'id';\n\t\t\tconst query = {\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'edit',\n\t\t\t\t_fields: [\n\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t'id',\n\t\t\t\t\t\t'date',\n\t\t\t\t\t\t'modified',\n\t\t\t\t\t\t'author',\n\t\t\t\t\t\t'meta',\n\t\t\t\t\t\t'title.raw',\n\t\t\t\t\t\t'excerpt.raw',\n\t\t\t\t\t\t'content.raw',\n\t\t\t\t\t\t_revisionKey,\n\t\t\t\t\t] ),\n\t\t\t\t].join(),\n\t\t\t};\n\t\t\treturn {\n\t\t\t\trevisions: getRevisions( 'postType', postType, postId, query ),\n\t\t\t\tisLoading: isResolving( 'getRevisions', [\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t\tcurrentRevisionId: unlock(\n\t\t\t\t\tselect( editorStore )\n\t\t\t\t).getCurrentRevisionId(),\n\t\t\t\trevisionKey: _revisionKey,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setCurrentRevisionId } = unlock( useDispatch( editorStore ) );\n\n\t// Template revisions use the template REST API format, which exposes\n\t// 'modified' instead of 'date'.\n\tconst revisionDateField = revisionKey === 'wp_id' ? 'modified' : 'date';\n\n\tconst sortedRevisions = useMemo( () => {\n\t\treturn (\n\t\t\trevisions\n\t\t\t\t?.slice()\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnew Date( a[ revisionDateField ] ) -\n\t\t\t\t\t\tnew Date( b[ revisionDateField ] )\n\t\t\t\t) ?? []\n\t\t);\n\t}, [ revisions, revisionDateField ] );\n\n\tconst selectedIndex = sortedRevisions.findIndex(\n\t\t( r ) => r[ revisionKey ] === currentRevisionId\n\t);\n\n\tconst handleSliderChange = ( index ) => {\n\t\tconst revision = sortedRevisions[ index ];\n\t\tif ( revision ) {\n\t\t\tsetCurrentRevisionId( revision[ revisionKey ] );\n\t\t}\n\t};\n\n\t// Format date for tooltip.\n\tconst dateSettings = getDateSettings();\n\tconst renderTooltipContent = ( index ) => {\n\t\tconst revision = sortedRevisions[ index ];\n\t\tif ( ! revision ) {\n\t\t\treturn index;\n\t\t}\n\t\treturn dateI18n(\n\t\t\tdateSettings.formats.datetime,\n\t\t\trevision[ revisionDateField ]\n\t\t);\n\t};\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tif ( ! sortedRevisions.length ) {\n\t\treturn (\n\t\t\t<span className=\"editor-revisions-header__no-revisions\">\n\t\t\t\t{ __( 'No revisions found.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\tif ( sortedRevisions.length === 1 ) {\n\t\treturn (\n\t\t\t<span className=\"editor-revisions-header__no-revisions\">\n\t\t\t\t{ __( 'Only one revision found.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RangeControl\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"editor-revisions-header__slider\"\n\t\t\thideLabelFromVision\n\t\t\tlabel={ __( 'Revision' ) }\n\t\t\tmax={ sortedRevisions.length - 1 }\n\t\t\tmin={ 0 }\n\t\t\tmarks\n\t\t\tonChange={ handleSliderChange }\n\t\t\trenderTooltipContent={ renderTooltipContent }\n\t\t\tvalue={ selectedIndex }\n\t\t\twithInputField={ false }\n\t\t/>\n\t);\n}\n\nexport default RevisionsSlider;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { RangeControl, Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { dateI18n, getSettings as getDateSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\n/**\n * Slider component for navigating revisions.\n *\n * @return {React.JSX.Element} The revisions slider component.\n */\nfunction RevisionsSlider() {\n\tconst { revisions, isLoading, currentRevisionId, revisionKey } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPostId, getCurrentPostType } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getRevisions, isResolving, getEntityConfig } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst postId = getCurrentPostId();\n\t\t\tconst postType = getCurrentPostType();\n\n\t\t\tif ( ! postId || ! postType ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst entityConfig = getEntityConfig( 'postType', postType );\n\t\t\tconst _revisionKey = entityConfig?.revisionKey || 'id';\n\t\t\tconst query = {\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'edit',\n\t\t\t\torderby: 'date',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: [\n\t\t\t\t\t...new Set( [\n\t\t\t\t\t\t'id',\n\t\t\t\t\t\t'date',\n\t\t\t\t\t\t'modified',\n\t\t\t\t\t\t'author',\n\t\t\t\t\t\t'meta',\n\t\t\t\t\t\t'title.raw',\n\t\t\t\t\t\t'excerpt.raw',\n\t\t\t\t\t\t'content.raw',\n\t\t\t\t\t\t_revisionKey,\n\t\t\t\t\t] ),\n\t\t\t\t].join(),\n\t\t\t};\n\t\t\treturn {\n\t\t\t\trevisions: getRevisions( 'postType', postType, postId, query ),\n\t\t\t\tisLoading: isResolving( 'getRevisions', [\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\tpostId,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t\tcurrentRevisionId: unlock(\n\t\t\t\t\tselect( editorStore )\n\t\t\t\t).getCurrentRevisionId(),\n\t\t\t\trevisionKey: _revisionKey,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { setCurrentRevisionId } = unlock( useDispatch( editorStore ) );\n\n\tconst selectedIndex = revisions?.findIndex(\n\t\t( r ) => r[ revisionKey ] === currentRevisionId\n\t);\n\n\tconst handleSliderChange = ( index ) => {\n\t\tconst revision = revisions?.[ index ];\n\t\tif ( revision ) {\n\t\t\tsetCurrentRevisionId( revision[ revisionKey ] );\n\t\t}\n\t};\n\n\t// Format date for tooltip.\n\tconst dateSettings = getDateSettings();\n\tconst renderTooltipContent = ( index ) => {\n\t\tconst revision = revisions?.[ index ];\n\t\tif ( ! revision ) {\n\t\t\treturn index;\n\t\t}\n\t\treturn dateI18n( dateSettings.formats.datetime, revision.date );\n\t};\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tif ( ! revisions?.length ) {\n\t\treturn (\n\t\t\t<span className=\"editor-revisions-header__no-revisions\">\n\t\t\t\t{ __( 'No revisions found.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\tif ( revisions?.length === 1 ) {\n\t\treturn (\n\t\t\t<span className=\"editor-revisions-header__no-revisions\">\n\t\t\t\t{ __( 'Only one revision found.' ) }\n\t\t\t</span>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RangeControl\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName=\"editor-revisions-header__slider\"\n\t\t\thideLabelFromVision\n\t\t\tlabel={ __( 'Revision' ) }\n\t\t\tmax={ revisions?.length - 1 }\n\t\t\tmin={ 0 }\n\t\t\tmarks\n\t\t\tonChange={ handleSliderChange }\n\t\t\trenderTooltipContent={ renderTooltipContent }\n\t\t\tvalue={ selectedIndex }\n\t\t\twithInputField={ false }\n\t\t/>\n\t);\n}\n\nexport default RevisionsSlider;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAuC;AACvC,wBAAsC;AACtC,uBAAmC;AACnC,kBAAmB;AACnB,kBAAyD;AAKzD,mBAAqC;AACrC,yBAAuB;AAoFd;AA7ET,SAAS,kBAAkB;AAC1B,QAAM,EAAE,WAAW,WAAW,mBAAmB,YAAY,QAAI;AAAA,IAChE,CAAE,WAAY;AACb,YAAM,EAAE,kBAAkB,mBAAmB,IAC5C,OAAQ,aAAAA,KAAY;AACrB,YAAM,EAAE,cAAc,aAAa,gBAAgB,IAClD,OAAQ,iBAAAC,KAAU;AAEnB,YAAM,SAAS,iBAAiB;AAChC,YAAM,WAAW,mBAAmB;AAEpC,UAAK,CAAE,UAAU,CAAE,UAAW;AAC7B,eAAO,CAAC;AAAA,MACT;AAEA,YAAM,eAAe,gBAAiB,YAAY,QAAS;AAC3D,YAAM,eAAe,cAAc,eAAe;AAClD,YAAM,QAAQ;AAAA,QACb,UAAU;AAAA,QACV,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,UACR,GAAG,oBAAI,IAAK;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACD,CAAE;AAAA,QACH,EAAE,KAAK;AAAA,MACR;AACA,aAAO;AAAA,QACN,WAAW,aAAc,YAAY,UAAU,QAAQ,KAAM;AAAA,QAC7D,WAAW,YAAa,gBAAgB;AAAA,UACvC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD,CAAE;AAAA,QACF,uBAAmB;AAAA,UAClB,OAAQ,aAAAD,KAAY;AAAA,QACrB,EAAE,qBAAqB;AAAA,QACvB,aAAa;AAAA,MACd;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AAEA,QAAM,EAAE,qBAAqB,QAAI,+BAAQ,yBAAa,aAAAA,KAAY,CAAE;AAEpE,QAAM,gBAAgB,WAAW;AAAA,IAChC,CAAE,MAAO,EAAG,WAAY,MAAM;AAAA,EAC/B;AAEA,QAAM,qBAAqB,CAAE,UAAW;AACvC,UAAM,WAAW,YAAa,KAAM;AACpC,QAAK,UAAW;AACf,2BAAsB,SAAU,WAAY,CAAE;AAAA,IAC/C;AAAA,EACD;AAGA,QAAM,mBAAe,YAAAE,aAAgB;AACrC,QAAM,uBAAuB,CAAE,UAAW;AACzC,UAAM,WAAW,YAAa,KAAM;AACpC,QAAK,CAAE,UAAW;AACjB,aAAO;AAAA,IACR;AACA,eAAO,sBAAU,aAAa,QAAQ,UAAU,SAAS,IAAK;AAAA,EAC/D;AAEA,MAAK,WAAY;AAChB,WAAO,4CAAC,6BAAQ;AAAA,EACjB;AAEA,MAAK,CAAE,WAAW,QAAS;AAC1B,WACC,4CAAC,UAAK,WAAU,yCACb,8BAAI,qBAAsB,GAC7B;AAAA,EAEF;AAEA,MAAK,WAAW,WAAW,GAAI;AAC9B,WACC,4CAAC,UAAK,WAAU,yCACb,8BAAI,0BAA2B,GAClC;AAAA,EAEF;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,uBAAqB;AAAA,MACrB,WAAU;AAAA,MACV,qBAAmB;AAAA,MACnB,WAAQ,gBAAI,UAAW;AAAA,MACvB,KAAM,WAAW,SAAS;AAAA,MAC1B,KAAM;AAAA,MACN,OAAK;AAAA,MACL,UAAW;AAAA,MACX;AAAA,MACA,OAAQ;AAAA,MACR,gBAAiB;AAAA;AAAA,EAClB;AAEF;AAEA,IAAO,2BAAQ;",
6
6
  "names": ["editorStore", "coreStore", "getDateSettings"]
7
7
  }
@@ -50,7 +50,7 @@ var import_use_post_title = __toESM(require("./use-post-title.cjs"));
50
50
  var import_post_type_support_check = __toESM(require("../post-type-support-check/index.cjs"));
51
51
  var import_lock_unlock = require("../../lock-unlock.cjs");
52
52
  var import_jsx_runtime = (
53
- /* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
53
+ /* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */
54
54
  require("react/jsx-runtime")
55
55
  );
56
56
  var { useRichText } = (0, import_lock_unlock.unlock)(import_rich_text.privateApis);
@@ -128,7 +128,7 @@ var PostTitle = (0, import_element.forwardRef)((_, forwardedRef) => {
128
128
  try {
129
129
  plainText = clipboardData.getData("text/plain");
130
130
  html = clipboardData.getData("text/html");
131
- } catch (error) {
131
+ } catch {
132
132
  return;
133
133
  }
134
134
  const content = (0, import_blocks.pasteHandler)({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/post-title/index.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { pasteHandler } from '@wordpress/blocks';\nimport {\n\tprivateApis as richTextPrivateApis,\n\tcreate,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_CLASSNAMES, REGEXP_NEWLINES } from './constants';\nimport usePostTitleFocus from './use-post-title-focus';\nimport usePostTitle from './use-post-title';\nimport PostTypeSupportCheck from '../post-type-support-check';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { useRichText } = unlock( richTextPrivateApis );\n\nconst PostTitle = forwardRef( ( _, forwardedRef ) => {\n\tconst { placeholder, isEditingContentOnlySection, isPreview } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getEditedContentOnlySection } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst { titlePlaceholder, isPreviewMode } = getSettings();\n\n\t\t\treturn {\n\t\t\t\tplaceholder: titlePlaceholder,\n\t\t\t\tisEditingContentOnlySection: !! getEditedContentOnlySection(),\n\t\t\t\tisPreview: isPreviewMode,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\n\tconst { ref: focusRef } = usePostTitleFocus( forwardedRef );\n\n\tconst { title, setTitle: onUpdate } = usePostTitle();\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tconst { clearSelectedBlock, insertBlocks, insertDefaultBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\n\tconst {\n\t\tvalue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: title,\n\t\tonChange( newValue ) {\n\t\t\tonUpdate( newValue.replace( REGEXP_NEWLINES, ' ' ) );\n\t\t},\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: false,\n\t} );\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch ( error ) {\n\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t// behaviour.\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\t// Strip HTML to avoid unwanted HTML being added to the title.\n\t\t\t\t// In the majority of cases it is assumed that HTML in the title\n\t\t\t\t// is undesirable.\n\t\t\t\tconst contentNoHTML = stripHTML(\n\t\t\t\t\tfirstBlock.attributes.content\n\t\t\t\t);\n\t\t\t\tonUpdate( contentNoHTML );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\t// Strip HTML to avoid unwanted HTML being added to the title.\n\t\t\t// In the majority of cases it is assumed that HTML in the title\n\t\t\t// is undesirable.\n\t\t\tconst contentNoHTML = stripHTML( content );\n\t\t\tonChange( insert( value, create( { html: contentNoHTML } ) ) );\n\t\t}\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = clsx( DEFAULT_CLASSNAMES, {\n\t\t'is-selected': isSelected,\n\t} );\n\n\t// Because the title is within the editor iframe, we can't use scss styles.\n\t// Instead use an inline style to dim the block when it's disabled.\n\tconst style = isEditingContentOnlySection ? { opacity: 0.2 } : undefined;\n\n\treturn (\n\t\t/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\t\t<h1\n\t\t\tref={ useMergeRefs( [ richTextRef, focusRef ] ) }\n\t\t\tcontentEditable={ ! isEditingContentOnlySection && ! isPreview }\n\t\t\tclassName={ className }\n\t\t\taria-label={ decodedPlaceholder }\n\t\t\trole=\"textbox\"\n\t\t\taria-multiline=\"true\"\n\t\t\tonFocus={ onSelect }\n\t\t\tonBlur={ onUnselect }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonPaste={ onPaste }\n\t\t\tstyle={ style }\n\t\t/>\n\t\t/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\t);\n} );\n\n/**\n * Renders the `PostTitle` component.\n *\n * @param {Object} _ Unused parameter.\n * @param {Element} forwardedRef Forwarded ref for the component.\n *\n * @return {React.ReactNode} The rendered PostTitle component.\n */\nexport default forwardRef( ( _, forwardedRef ) => (\n\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t<PostTitle ref={ forwardedRef } />\n\t</PostTypeSupportCheck>\n) );\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport { pasteHandler } from '@wordpress/blocks';\nimport {\n\tprivateApis as richTextPrivateApis,\n\tcreate,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_CLASSNAMES, REGEXP_NEWLINES } from './constants';\nimport usePostTitleFocus from './use-post-title-focus';\nimport usePostTitle from './use-post-title';\nimport PostTypeSupportCheck from '../post-type-support-check';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { useRichText } = unlock( richTextPrivateApis );\n\nconst PostTitle = forwardRef( ( _, forwardedRef ) => {\n\tconst { placeholder, isEditingContentOnlySection, isPreview } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getEditedContentOnlySection } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst { titlePlaceholder, isPreviewMode } = getSettings();\n\n\t\t\treturn {\n\t\t\t\tplaceholder: titlePlaceholder,\n\t\t\t\tisEditingContentOnlySection: !! getEditedContentOnlySection(),\n\t\t\t\tisPreview: isPreviewMode,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\n\tconst { ref: focusRef } = usePostTitleFocus( forwardedRef );\n\n\tconst { title, setTitle: onUpdate } = usePostTitle();\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tconst { clearSelectedBlock, insertBlocks, insertDefaultBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\n\tconst {\n\t\tvalue,\n\t\tonChange,\n\t\tref: richTextRef,\n\t} = useRichText( {\n\t\tvalue: title,\n\t\tonChange( newValue ) {\n\t\t\tonUpdate( newValue.replace( REGEXP_NEWLINES, ' ' ) );\n\t\t},\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: false,\n\t} );\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch {\n\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t// behaviour.\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\t// Strip HTML to avoid unwanted HTML being added to the title.\n\t\t\t\t// In the majority of cases it is assumed that HTML in the title\n\t\t\t\t// is undesirable.\n\t\t\t\tconst contentNoHTML = stripHTML(\n\t\t\t\t\tfirstBlock.attributes.content\n\t\t\t\t);\n\t\t\t\tonUpdate( contentNoHTML );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\t// Strip HTML to avoid unwanted HTML being added to the title.\n\t\t\t// In the majority of cases it is assumed that HTML in the title\n\t\t\t// is undesirable.\n\t\t\tconst contentNoHTML = stripHTML( content );\n\t\t\tonChange( insert( value, create( { html: contentNoHTML } ) ) );\n\t\t}\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = clsx( DEFAULT_CLASSNAMES, {\n\t\t'is-selected': isSelected,\n\t} );\n\n\t// Because the title is within the editor iframe, we can't use scss styles.\n\t// Instead use an inline style to dim the block when it's disabled.\n\tconst style = isEditingContentOnlySection ? { opacity: 0.2 } : undefined;\n\n\treturn (\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-to-interactive-role */\n\t\t<h1\n\t\t\tref={ useMergeRefs( [ richTextRef, focusRef ] ) }\n\t\t\tcontentEditable={ ! isEditingContentOnlySection && ! isPreview }\n\t\t\tclassName={ className }\n\t\t\taria-label={ decodedPlaceholder }\n\t\t\trole=\"textbox\"\n\t\t\taria-multiline=\"true\"\n\t\t\tonFocus={ onSelect }\n\t\t\tonBlur={ onUnselect }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonPaste={ onPaste }\n\t\t\tstyle={ style }\n\t\t/>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-to-interactive-role */\n\t);\n} );\n\n/**\n * Renders the `PostTitle` component.\n *\n * @param {Object} _ Unused parameter.\n * @param {Element} forwardedRef Forwarded ref for the component.\n *\n * @return {React.ReactNode} The rendered PostTitle component.\n */\nexport default forwardRef( ( _, forwardedRef ) => (\n\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t<PostTitle ref={ forwardedRef } />\n\t</PostTypeSupportCheck>\n) );\n"],
5
+ "mappings": "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",
6
6
  "names": ["richTextPrivateApis", "blockEditorStore", "usePostTitleFocus", "usePostTitle", "stripHTML", "clsx", "PostTypeSupportCheck"]
7
7
  }
@@ -107,7 +107,13 @@ var SidebarContent = ({
107
107
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_summary.default, { onActionPerformed }),
108
108
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_plugin_document_setting_panel.default.Slot, {}),
109
109
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_template_content_panel.default, {}),
110
- window?.__experimentalDataFormInspector && ["post", "page"].includes(postType) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
110
+ window?.__experimentalDataFormInspector && [
111
+ "post",
112
+ "page",
113
+ "wp_template",
114
+ "wp_template_part",
115
+ "wp_block"
116
+ ].includes(postType) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
111
117
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_template_actions_panel.default, {}),
112
118
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_revisions_panel.default, {})
113
119
  ] }),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/index.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n} from '@wordpress/element';\nimport { isRTL, __, _x } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport PatternOverridesPanel from '../pattern-overrides-panel';\nimport PluginDocumentSettingPanel from '../plugin-document-setting-panel';\nimport PluginSidebar from '../plugin-sidebar';\nimport PostSummary from './post-summary';\nimport PostRevisionSummary from './post-revision-summary';\nimport PostTaxonomiesPanel from '../post-taxonomies/panel';\nimport PostTransformPanel from '../post-transform-panel';\nimport SidebarHeader from './header';\nimport TemplateActionsPanel from '../template-actions-panel';\nimport TemplateContentPanel from '../template-content-panel';\nimport TemplatePartContentPanel from '../template-part-content-panel';\nimport { MediaMetadataPanel } from '../media';\nimport PostRevisionsPanel from '../post-revisions-panel';\nimport RevisionBlockDiffPanel from '../revision-block-diff';\nimport useAutoSwitchEditorSidebars from '../provider/use-auto-switch-editor-sidebars';\nimport { sidebars } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport {\n\tATTACHMENT_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst SidebarContent = ( {\n\ttabName,\n\tkeyboardShortcut,\n\tonActionPerformed,\n\textraPanels,\n\tpostType,\n} ) => {\n\tconst tabListRef = useRef( null );\n\t// Because `PluginSidebar` renders a `ComplementaryArea`, we\n\t// need to forward the `Tabs` context so it can be passed through the\n\t// underlying slot/fill.\n\tconst tabsContextValue = useContext( Tabs.Context );\n\tconst isAttachment = postType === ATTACHMENT_POST_TYPE;\n\tconst isRevisionsMode = useSelect( ( select ) => {\n\t\treturn unlock( select( editorStore ) ).isRevisionsMode();\n\t} );\n\n\t// This effect addresses a race condition caused by tabbing from the last\n\t// block in the editor into the settings sidebar. Without this effect, the\n\t// selected tab and browser focus can become separated in an unexpected way\n\t// (e.g the \"block\" tab is focused, but the \"post\" tab is selected).\n\tuseEffect( () => {\n\t\tconst tabsElements = Array.from(\n\t\t\ttabListRef.current?.querySelectorAll( '[role=\"tab\"]' ) || []\n\t\t);\n\t\tconst selectedTabElement = tabsElements.find(\n\t\t\t// We are purposefully using a custom `data-tab-id` attribute here\n\t\t\t// because we don't want rely on any assumptions about `Tabs`\n\t\t\t// component internals.\n\t\t\t( element ) => element.getAttribute( 'data-tab-id' ) === tabName\n\t\t);\n\t\tconst activeElement = selectedTabElement?.ownerDocument.activeElement;\n\t\tconst tabsHasFocus = tabsElements.some( ( element ) => {\n\t\t\treturn activeElement && activeElement.id === element.id;\n\t\t} );\n\t\tif (\n\t\t\ttabsHasFocus &&\n\t\t\tselectedTabElement &&\n\t\t\tselectedTabElement.id !== activeElement?.id\n\t\t) {\n\t\t\tselectedTabElement?.focus();\n\t\t}\n\t}, [ tabName ] );\n\n\tlet tabContent;\n\tif ( isAttachment ) {\n\t\ttabContent = (\n\t\t\t<MediaMetadataPanel onActionPerformed={ onActionPerformed } />\n\t\t);\n\t} else if ( isRevisionsMode ) {\n\t\ttabContent = <PostRevisionSummary />;\n\t} else {\n\t\ttabContent = (\n\t\t\t<>\n\t\t\t\t<PostSummary onActionPerformed={ onActionPerformed } />\n\t\t\t\t<PluginDocumentSettingPanel.Slot />\n\t\t\t\t<TemplateContentPanel />\n\t\t\t\t{ window?.__experimentalDataFormInspector &&\n\t\t\t\t\t[ 'post', 'page' ].includes( postType ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TemplateActionsPanel />\n\t\t\t\t\t\t\t<PostRevisionsPanel />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t<TemplatePartContentPanel />\n\t\t\t\t<PostTransformPanel />\n\t\t\t\t<PostTaxonomiesPanel />\n\t\t\t\t<PatternOverridesPanel />\n\t\t\t\t{ extraPanels }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PluginSidebar\n\t\t\tidentifier={ tabName }\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader ref={ tabListRef } />\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t// This classname is added so we can apply a corrective negative\n\t\t\t// margin to the panel.\n\t\t\t// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049\n\t\t\tclassName=\"editor-sidebar__panel\"\n\t\t\theaderClassName=\"editor-sidebar__panel-tabs\"\n\t\t\ttitle={\n\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t_x( 'Settings', 'panel button label' )\n\t\t\t}\n\t\t\ttoggleShortcut={ keyboardShortcut }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel tabId={ sidebars.document } focusable={ false }>\n\t\t\t\t\t{ tabContent }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t{ ! isAttachment && (\n\t\t\t\t\t<Tabs.TabPanel tabId={ sidebars.block } focusable={ false }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t{ isRevisionsMode && <RevisionBlockDiffPanel /> }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) }\n\t\t\t</Tabs.Context.Provider>\n\t\t</PluginSidebar>\n\t);\n};\n\nconst Sidebar = ( { extraPanels, onActionPerformed } ) => {\n\tuseAutoSwitchEditorSidebars();\n\tconst { tabName, keyboardShortcut, showSummary, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst shortcut = select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/editor/toggle-sidebar' );\n\n\t\t\tconst sidebar =\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea( 'core' );\n\t\t\tconst _isEditorSidebarOpened = [\n\t\t\t\tsidebars.block,\n\t\t\t\tsidebars.document,\n\t\t\t].includes( sidebar );\n\t\t\tlet _tabName = sidebar;\n\t\t\tif ( ! _isEditorSidebarOpened ) {\n\t\t\t\t_tabName = !! select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).getBlockSelectionStart()\n\t\t\t\t\t? sidebars.block\n\t\t\t\t\t: sidebars.document;\n\t\t\t}\n\n\t\t\tconst _postType = select( editorStore ).getCurrentPostType();\n\n\t\t\treturn {\n\t\t\t\ttabName: _tabName,\n\t\t\t\tkeyboardShortcut: shortcut,\n\t\t\t\tshowSummary: ! [\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\t].includes( _postType ),\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea( 'core', newSelectedTabId );\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\tselectedTabId={ tabName }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\ttabName={ tabName }\n\t\t\t\tkeyboardShortcut={ keyboardShortcut }\n\t\t\t\tshowSummary={ showSummary }\n\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\textraPanels={ extraPanels }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n};\n\nexport default Sidebar;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tBlockInspector,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n} from '@wordpress/element';\nimport { isRTL, __, _x } from '@wordpress/i18n';\nimport { drawerLeft, drawerRight } from '@wordpress/icons';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport PatternOverridesPanel from '../pattern-overrides-panel';\nimport PluginDocumentSettingPanel from '../plugin-document-setting-panel';\nimport PluginSidebar from '../plugin-sidebar';\nimport PostSummary from './post-summary';\nimport PostRevisionSummary from './post-revision-summary';\nimport PostTaxonomiesPanel from '../post-taxonomies/panel';\nimport PostTransformPanel from '../post-transform-panel';\nimport SidebarHeader from './header';\nimport TemplateActionsPanel from '../template-actions-panel';\nimport TemplateContentPanel from '../template-content-panel';\nimport TemplatePartContentPanel from '../template-part-content-panel';\nimport { MediaMetadataPanel } from '../media';\nimport PostRevisionsPanel from '../post-revisions-panel';\nimport RevisionBlockDiffPanel from '../revision-block-diff';\nimport useAutoSwitchEditorSidebars from '../provider/use-auto-switch-editor-sidebars';\nimport { sidebars } from './constants';\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\nimport {\n\tATTACHMENT_POST_TYPE,\n\tNAVIGATION_POST_TYPE,\n\tTEMPLATE_PART_POST_TYPE,\n\tTEMPLATE_POST_TYPE,\n} from '../../store/constants';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst SIDEBAR_ACTIVE_BY_DEFAULT = Platform.select( {\n\tweb: true,\n\tnative: false,\n} );\n\nconst SidebarContent = ( {\n\ttabName,\n\tkeyboardShortcut,\n\tonActionPerformed,\n\textraPanels,\n\tpostType,\n} ) => {\n\tconst tabListRef = useRef( null );\n\t// Because `PluginSidebar` renders a `ComplementaryArea`, we\n\t// need to forward the `Tabs` context so it can be passed through the\n\t// underlying slot/fill.\n\tconst tabsContextValue = useContext( Tabs.Context );\n\tconst isAttachment = postType === ATTACHMENT_POST_TYPE;\n\tconst isRevisionsMode = useSelect( ( select ) => {\n\t\treturn unlock( select( editorStore ) ).isRevisionsMode();\n\t} );\n\n\t// This effect addresses a race condition caused by tabbing from the last\n\t// block in the editor into the settings sidebar. Without this effect, the\n\t// selected tab and browser focus can become separated in an unexpected way\n\t// (e.g the \"block\" tab is focused, but the \"post\" tab is selected).\n\tuseEffect( () => {\n\t\tconst tabsElements = Array.from(\n\t\t\ttabListRef.current?.querySelectorAll( '[role=\"tab\"]' ) || []\n\t\t);\n\t\tconst selectedTabElement = tabsElements.find(\n\t\t\t// We are purposefully using a custom `data-tab-id` attribute here\n\t\t\t// because we don't want rely on any assumptions about `Tabs`\n\t\t\t// component internals.\n\t\t\t( element ) => element.getAttribute( 'data-tab-id' ) === tabName\n\t\t);\n\t\tconst activeElement = selectedTabElement?.ownerDocument.activeElement;\n\t\tconst tabsHasFocus = tabsElements.some( ( element ) => {\n\t\t\treturn activeElement && activeElement.id === element.id;\n\t\t} );\n\t\tif (\n\t\t\ttabsHasFocus &&\n\t\t\tselectedTabElement &&\n\t\t\tselectedTabElement.id !== activeElement?.id\n\t\t) {\n\t\t\tselectedTabElement?.focus();\n\t\t}\n\t}, [ tabName ] );\n\n\tlet tabContent;\n\tif ( isAttachment ) {\n\t\ttabContent = (\n\t\t\t<MediaMetadataPanel onActionPerformed={ onActionPerformed } />\n\t\t);\n\t} else if ( isRevisionsMode ) {\n\t\ttabContent = <PostRevisionSummary />;\n\t} else {\n\t\ttabContent = (\n\t\t\t<>\n\t\t\t\t<PostSummary onActionPerformed={ onActionPerformed } />\n\t\t\t\t<PluginDocumentSettingPanel.Slot />\n\t\t\t\t<TemplateContentPanel />\n\t\t\t\t{ window?.__experimentalDataFormInspector &&\n\t\t\t\t\t[\n\t\t\t\t\t\t'post',\n\t\t\t\t\t\t'page',\n\t\t\t\t\t\t'wp_template',\n\t\t\t\t\t\t'wp_template_part',\n\t\t\t\t\t\t'wp_block',\n\t\t\t\t\t].includes( postType ) && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<TemplateActionsPanel />\n\t\t\t\t\t\t\t<PostRevisionsPanel />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t<TemplatePartContentPanel />\n\t\t\t\t<PostTransformPanel />\n\t\t\t\t<PostTaxonomiesPanel />\n\t\t\t\t<PatternOverridesPanel />\n\t\t\t\t{ extraPanels }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<PluginSidebar\n\t\t\tidentifier={ tabName }\n\t\t\theader={\n\t\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t\t<SidebarHeader ref={ tabListRef } />\n\t\t\t\t</Tabs.Context.Provider>\n\t\t\t}\n\t\t\tcloseLabel={ __( 'Close Settings' ) }\n\t\t\t// This classname is added so we can apply a corrective negative\n\t\t\t// margin to the panel.\n\t\t\t// see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049\n\t\t\tclassName=\"editor-sidebar__panel\"\n\t\t\theaderClassName=\"editor-sidebar__panel-tabs\"\n\t\t\ttitle={\n\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t_x( 'Settings', 'panel button label' )\n\t\t\t}\n\t\t\ttoggleShortcut={ keyboardShortcut }\n\t\t\ticon={ isRTL() ? drawerLeft : drawerRight }\n\t\t\tisActiveByDefault={ SIDEBAR_ACTIVE_BY_DEFAULT }\n\t\t>\n\t\t\t<Tabs.Context.Provider value={ tabsContextValue }>\n\t\t\t\t<Tabs.TabPanel tabId={ sidebars.document } focusable={ false }>\n\t\t\t\t\t{ tabContent }\n\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t{ ! isAttachment && (\n\t\t\t\t\t<Tabs.TabPanel tabId={ sidebars.block } focusable={ false }>\n\t\t\t\t\t\t<BlockInspector />\n\t\t\t\t\t\t{ isRevisionsMode && <RevisionBlockDiffPanel /> }\n\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t) }\n\t\t\t</Tabs.Context.Provider>\n\t\t</PluginSidebar>\n\t);\n};\n\nconst Sidebar = ( { extraPanels, onActionPerformed } ) => {\n\tuseAutoSwitchEditorSidebars();\n\tconst { tabName, keyboardShortcut, showSummary, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst shortcut = select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/editor/toggle-sidebar' );\n\n\t\t\tconst sidebar =\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea( 'core' );\n\t\t\tconst _isEditorSidebarOpened = [\n\t\t\t\tsidebars.block,\n\t\t\t\tsidebars.document,\n\t\t\t].includes( sidebar );\n\t\t\tlet _tabName = sidebar;\n\t\t\tif ( ! _isEditorSidebarOpened ) {\n\t\t\t\t_tabName = !! select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).getBlockSelectionStart()\n\t\t\t\t\t? sidebars.block\n\t\t\t\t\t: sidebars.document;\n\t\t\t}\n\n\t\t\tconst _postType = select( editorStore ).getCurrentPostType();\n\n\t\t\treturn {\n\t\t\t\ttabName: _tabName,\n\t\t\t\tkeyboardShortcut: shortcut,\n\t\t\t\tshowSummary: ! [\n\t\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t\tNAVIGATION_POST_TYPE,\n\t\t\t\t].includes( _postType ),\n\t\t\t\tpostType: _postType,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { enableComplementaryArea } = useDispatch( interfaceStore );\n\n\tconst onTabSelect = useCallback(\n\t\t( newSelectedTabId ) => {\n\t\t\tif ( !! newSelectedTabId ) {\n\t\t\t\tenableComplementaryArea( 'core', newSelectedTabId );\n\t\t\t}\n\t\t},\n\t\t[ enableComplementaryArea ]\n\t);\n\n\treturn (\n\t\t<Tabs\n\t\t\tselectedTabId={ tabName }\n\t\t\tonSelect={ onTabSelect }\n\t\t\tselectOnMove={ false }\n\t\t>\n\t\t\t<SidebarContent\n\t\t\t\ttabName={ tabName }\n\t\t\t\tkeyboardShortcut={ keyboardShortcut }\n\t\t\t\tshowSummary={ showSummary }\n\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\textraPanels={ extraPanels }\n\t\t\t\tpostType={ postType }\n\t\t\t/>\n\t\t</Tabs>\n\t);\n};\n\nexport default Sidebar;\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_constants", "componentsPrivateApis", "editorStore", "PostRevisionSummary", "PostSummary", "PluginDocumentSettingPanel", "TemplateContentPanel", "TemplateActionsPanel", "PostRevisionsPanel", "TemplatePartContentPanel", "PostTransformPanel", "PostTaxonomiesPanel", "PatternOverridesPanel", "PluginSidebar", "SidebarHeader", "RevisionBlockDiffPanel", "useAutoSwitchEditorSidebars", "keyboardShortcutsStore", "interfaceStore", "blockEditorStore"]
7
7
  }
@@ -35,6 +35,8 @@ __export(post_revision_summary_exports, {
35
35
  module.exports = __toCommonJS(post_revision_summary_exports);
36
36
  var import_data = require("@wordpress/data");
37
37
  var import_components = require("@wordpress/components");
38
+ var import_i18n = require("@wordpress/i18n");
39
+ var import_url = require("@wordpress/url");
38
40
  var import_store = require("../../store/index.cjs");
39
41
  var import_lock_unlock = require("../../lock-unlock.cjs");
40
42
  var import_revision_author_panel = __toESM(require("../revision-author-panel/index.cjs"));
@@ -43,7 +45,6 @@ var import_post_content_information = require("../post-content-information/index
43
45
  var import_revision_fields_diff = __toESM(require("../revision-fields-diff/index.cjs"));
44
46
  var import_post_panel_section = __toESM(require("../post-panel-section/index.cjs"));
45
47
  var import_post_card_panel = __toESM(require("../post-card-panel/index.cjs"));
46
- var import_post_summary = require("./post-summary.cjs");
47
48
  var import_jsx_runtime = require("react/jsx-runtime");
48
49
  function PostRevisionSummary() {
49
50
  const { revisionId, postId, postContent } = (0, import_data.useSelect)((select) => {
@@ -65,7 +66,15 @@ function PostRevisionSummary() {
65
66
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_content_information.PostContentInformationUI, { postContent }),
66
67
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_revision_created_panel.default, {})
67
68
  ] }),
68
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_summary.OpenRevisionsClassicScreen, { revisionId }),
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
70
+ import_components.ExternalLink,
71
+ {
72
+ href: (0, import_url.addQueryArgs)("revision.php", {
73
+ revision: revisionId
74
+ }),
75
+ children: (0, import_i18n.__)("Open classic revisions screen")
76
+ }
77
+ ),
69
78
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_revision_author_panel.default, {})
70
79
  ] }) }),
71
80
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_revision_fields_diff.default, {})
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/post-revision-summary.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { __experimentalVStack as VStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport RevisionAuthorPanel from '../revision-author-panel';\nimport RevisionCreatedPanel from '../revision-created-panel';\nimport { PostContentInformationUI } from '../post-content-information';\nimport RevisionFieldsDiffPanel from '../revision-fields-diff';\nimport PostPanelSection from '../post-panel-section';\nimport PostCardPanel from '../post-card-panel';\nimport { OpenRevisionsClassicScreen } from './post-summary';\n\nexport default function PostRevisionSummary() {\n\tconst { revisionId, postId, postContent } = useSelect( ( select ) => {\n\t\tconst { getCurrentRevisionId, getCurrentRevision, getCurrentPostId } =\n\t\t\tunlock( select( editorStore ) );\n\t\tconst _revisionId = getCurrentRevisionId();\n\t\treturn {\n\t\t\trevisionId: _revisionId,\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostContent: _revisionId && getCurrentRevision()?.content?.raw,\n\t\t};\n\t}, [] );\n\tif ( ! revisionId ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<PostCardPanel postId={ postId } hideActions />\n\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t<PostContentInformationUI postContent={ postContent } />\n\t\t\t\t\t\t<RevisionCreatedPanel />\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<OpenRevisionsClassicScreen revisionId={ revisionId } />\n\t\t\t\t\t<RevisionAuthorPanel />\n\t\t\t\t</VStack>\n\t\t\t</PostPanelSection>\n\t\t\t<RevisionFieldsDiffPanel />\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA0B;AAC1B,wBAA+C;AAK/C,mBAAqC;AACrC,yBAAuB;AACvB,mCAAgC;AAChC,oCAAiC;AACjC,sCAAyC;AACzC,kCAAoC;AACpC,gCAA6B;AAC7B,6BAA0B;AAC1B,0BAA2C;AAiBzC;AAfa,SAAR,sBAAuC;AAC7C,QAAM,EAAE,YAAY,QAAQ,YAAY,QAAI,uBAAW,CAAE,WAAY;AACpE,UAAM,EAAE,sBAAsB,oBAAoB,iBAAiB,QAClE,2BAAQ,OAAQ,aAAAA,KAAY,CAAE;AAC/B,UAAM,cAAc,qBAAqB;AACzC,WAAO;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ,iBAAiB;AAAA,MACzB,aAAa,eAAe,mBAAmB,GAAG,SAAS;AAAA,IAC5D;AAAA,EACD,GAAG,CAAC,CAAE;AACN,MAAK,CAAE,YAAa;AACnB,WAAO;AAAA,EACR;AACA,SACC,4EACC;AAAA,gDAAC,0BAAAC,SAAA,EAAiB,WAAU,uBAC3B,uDAAC,kBAAAC,sBAAA,EAAO,SAAU,GACjB;AAAA,kDAAC,uBAAAC,SAAA,EAAc,QAAkB,aAAW,MAAC;AAAA,MAC7C,6CAAC,kBAAAD,sBAAA,EAAO,SAAU,GACjB;AAAA,oDAAC,4DAAyB,aAA4B;AAAA,QACtD,4CAAC,8BAAAE,SAAA,EAAqB;AAAA,SACvB;AAAA,MACA,4CAAC,kDAA2B,YAA0B;AAAA,MACtD,4CAAC,6BAAAC,SAAA,EAAoB;AAAA,OACtB,GACD;AAAA,IACA,4CAAC,4BAAAC,SAAA,EAAwB;AAAA,KAC1B;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tExternalLink,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport RevisionAuthorPanel from '../revision-author-panel';\nimport RevisionCreatedPanel from '../revision-created-panel';\nimport { PostContentInformationUI } from '../post-content-information';\nimport RevisionFieldsDiffPanel from '../revision-fields-diff';\nimport PostPanelSection from '../post-panel-section';\nimport PostCardPanel from '../post-card-panel';\n\nexport default function PostRevisionSummary() {\n\tconst { revisionId, postId, postContent } = useSelect( ( select ) => {\n\t\tconst { getCurrentRevisionId, getCurrentRevision, getCurrentPostId } =\n\t\t\tunlock( select( editorStore ) );\n\t\tconst _revisionId = getCurrentRevisionId();\n\t\treturn {\n\t\t\trevisionId: _revisionId,\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostContent: _revisionId && getCurrentRevision()?.content?.raw,\n\t\t};\n\t}, [] );\n\tif ( ! revisionId ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<PostCardPanel postId={ postId } hideActions />\n\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t<PostContentInformationUI postContent={ postContent } />\n\t\t\t\t\t\t<RevisionCreatedPanel />\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\thref={ addQueryArgs( 'revision.php', {\n\t\t\t\t\t\t\trevision: revisionId,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Open classic revisions screen' ) }\n\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t<RevisionAuthorPanel />\n\t\t\t\t</VStack>\n\t\t\t</PostPanelSection>\n\t\t\t<RevisionFieldsDiffPanel />\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA0B;AAC1B,wBAGO;AACP,kBAAmB;AACnB,iBAA6B;AAK7B,mBAAqC;AACrC,yBAAuB;AACvB,mCAAgC;AAChC,oCAAiC;AACjC,sCAAyC;AACzC,kCAAoC;AACpC,gCAA6B;AAC7B,6BAA0B;AAiBxB;AAfa,SAAR,sBAAuC;AAC7C,QAAM,EAAE,YAAY,QAAQ,YAAY,QAAI,uBAAW,CAAE,WAAY;AACpE,UAAM,EAAE,sBAAsB,oBAAoB,iBAAiB,QAClE,2BAAQ,OAAQ,aAAAA,KAAY,CAAE;AAC/B,UAAM,cAAc,qBAAqB;AACzC,WAAO;AAAA,MACN,YAAY;AAAA,MACZ,QAAQ,iBAAiB;AAAA,MACzB,aAAa,eAAe,mBAAmB,GAAG,SAAS;AAAA,IAC5D;AAAA,EACD,GAAG,CAAC,CAAE;AACN,MAAK,CAAE,YAAa;AACnB,WAAO;AAAA,EACR;AACA,SACC,4EACC;AAAA,gDAAC,0BAAAC,SAAA,EAAiB,WAAU,uBAC3B,uDAAC,kBAAAC,sBAAA,EAAO,SAAU,GACjB;AAAA,kDAAC,uBAAAC,SAAA,EAAc,QAAkB,aAAW,MAAC;AAAA,MAC7C,6CAAC,kBAAAD,sBAAA,EAAO,SAAU,GACjB;AAAA,oDAAC,4DAAyB,aAA4B;AAAA,QACtD,4CAAC,8BAAAE,SAAA,EAAqB;AAAA,SACvB;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACA,UAAO,yBAAc,gBAAgB;AAAA,YACpC,UAAU;AAAA,UACX,CAAE;AAAA,UAEA,8BAAI,+BAAgC;AAAA;AAAA,MACvC;AAAA,MACA,4CAAC,6BAAAC,SAAA,EAAoB;AAAA,OACtB,GACD;AAAA,IACA,4CAAC,4BAAAC,SAAA,EAAwB;AAAA,KAC1B;AAEF;",
6
6
  "names": ["editorStore", "PostPanelSection", "VStack", "PostCardPanel", "RevisionCreatedPanel", "RevisionAuthorPanel", "RevisionFieldsDiffPanel"]
7
7
  }
@@ -30,14 +30,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/editor/src/components/sidebar/post-summary.js
31
31
  var post_summary_exports = {};
32
32
  __export(post_summary_exports, {
33
- OpenRevisionsClassicScreen: () => OpenRevisionsClassicScreen,
34
33
  default: () => PostSummary
35
34
  });
36
35
  module.exports = __toCommonJS(post_summary_exports);
37
36
  var import_components = require("@wordpress/components");
38
37
  var import_data = require("@wordpress/data");
39
- var import_i18n = require("@wordpress/i18n");
40
- var import_url = require("@wordpress/url");
41
38
  var import_dataform_post_summary = __toESM(require("./dataform-post-summary.cjs"));
42
39
  var import_plugin_post_status_info = __toESM(require("../plugin-post-status-info/index.cjs"));
43
40
  var import_panel = __toESM(require("../post-author/panel.cjs"));
@@ -63,17 +60,6 @@ var import_post_last_revision = require("../post-last-revision/index.cjs");
63
60
  var import_post_trash = __toESM(require("../post-trash/index.cjs"));
64
61
  var import_jsx_runtime = require("react/jsx-runtime");
65
62
  var PANEL_NAME = "post-status";
66
- function OpenRevisionsClassicScreen({ revisionId }) {
67
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
68
- import_components.ExternalLink,
69
- {
70
- href: (0, import_url.addQueryArgs)("revision.php", {
71
- revision: revisionId
72
- }),
73
- children: (0, import_i18n.__)("Open classic revisions screen")
74
- }
75
- );
76
- }
77
63
  function PostSummary({ onActionPerformed }) {
78
64
  const postType = (0, import_data.useSelect)(
79
65
  (select) => select(import_store.store).getCurrentPostType(),
@@ -141,8 +127,4 @@ function ClassicPostSummary({ onActionPerformed }) {
141
127
  ] })
142
128
  ] }) }) }) });
143
129
  }
144
- // Annotate the CommonJS export names for ESM import in node:
145
- 0 && (module.exports = {
146
- OpenRevisionsClassicScreen
147
- });
148
130
  //# sourceMappingURL=post-summary.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sidebar/post-summary.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\tExternalLink,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport DataFormPostSummary from './dataform-post-summary';\nimport PluginPostStatusInfo from '../plugin-post-status-info';\nimport PostAuthorPanel from '../post-author/panel';\nimport PostCardPanel from '../post-card-panel';\nimport PostContentInformation from '../post-content-information';\nimport PageAttributesPanel from '../page-attributes/panel';\nimport PostDiscussionPanel from '../post-discussion/panel';\nimport { PrivatePostExcerptPanel as PostExcerptPanel } from '../post-excerpt/panel';\nimport PostFeaturedImagePanel from '../post-featured-image/panel';\nimport PostFormatPanel from '../post-format/panel';\nimport PostLastEditedPanel from '../post-last-edited-panel';\nimport PostPanelSection from '../post-panel-section';\nimport PostSchedulePanel from '../post-schedule/panel';\nimport PostStatusPanel from '../post-status';\nimport PostSyncStatus from '../post-sync-status';\nimport PostTemplatePanel from '../post-template/panel';\nimport PostURLPanel from '../post-url/panel';\nimport BlogTitle from '../blog-title';\nimport PostsPerPage from '../posts-per-page';\nimport SiteDiscussion from '../site-discussion';\nimport { store as editorStore } from '../../store';\nimport { PrivatePostLastRevision } from '../post-last-revision';\nimport PostTrash from '../post-trash';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-status';\n\nexport function OpenRevisionsClassicScreen( { revisionId } ) {\n\treturn (\n\t\t<ExternalLink\n\t\t\thref={ addQueryArgs( 'revision.php', {\n\t\t\t\trevision: revisionId,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ __( 'Open classic revisions screen' ) }\n\t\t</ExternalLink>\n\t);\n}\n\nexport default function PostSummary( { onActionPerformed } ) {\n\tconst postType = useSelect(\n\t\t( select ) => select( editorStore ).getCurrentPostType(),\n\t\t[]\n\t);\n\tif (\n\t\twindow?.__experimentalDataFormInspector &&\n\t\t[ 'page', 'post' ].includes( postType )\n\t) {\n\t\treturn <DataFormPostSummary onActionPerformed={ onActionPerformed } />;\n\t}\n\treturn <ClassicPostSummary onActionPerformed={ onActionPerformed } />;\n}\n\nfunction ClassicPostSummary( { onActionPerformed } ) {\n\tconst { isRemovedPostStatusPanel, postType, postId } = useSelect(\n\t\t( select ) => {\n\t\t\t// We use isEditorPanelRemoved to hide the panel if it was programmatically removed. We do\n\t\t\t// not use isEditorPanelEnabled since this panel should not be disabled through the UI.\n\t\t\tconst {\n\t\t\t\tisEditorPanelRemoved,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPostId,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tisRemovedPostStatusPanel: isEditorPanelRemoved( PANEL_NAME ),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\treturn (\n\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t<PluginPostStatusInfo.Slot>\n\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t<PostCardPanel\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PostFeaturedImagePanel withPanelBody={ false } />\n\t\t\t\t\t\t\t<PostExcerptPanel />\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<PostContentInformation />\n\t\t\t\t\t\t\t\t<PostLastEditedPanel />\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t{ ! isRemovedPostStatusPanel && (\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t\t\t<PostStatusPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSchedulePanel />\n\t\t\t\t\t\t\t\t\t\t<PostURLPanel />\n\t\t\t\t\t\t\t\t\t\t<PostAuthorPanel />\n\t\t\t\t\t\t\t\t\t\t<PostTemplatePanel />\n\t\t\t\t\t\t\t\t\t\t<PostDiscussionPanel />\n\t\t\t\t\t\t\t\t\t\t<PrivatePostLastRevision />\n\t\t\t\t\t\t\t\t\t\t<PageAttributesPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSyncStatus />\n\t\t\t\t\t\t\t\t\t\t<BlogTitle />\n\t\t\t\t\t\t\t\t\t\t<PostsPerPage />\n\t\t\t\t\t\t\t\t\t\t<SiteDiscussion />\n\t\t\t\t\t\t\t\t\t\t<PostFormatPanel />\n\t\t\t\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t<PostTrash\n\t\t\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PluginPostStatusInfo.Slot>\n\t\t</PostPanelSection>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport DataFormPostSummary from './dataform-post-summary';\nimport PluginPostStatusInfo from '../plugin-post-status-info';\nimport PostAuthorPanel from '../post-author/panel';\nimport PostCardPanel from '../post-card-panel';\nimport PostContentInformation from '../post-content-information';\nimport PageAttributesPanel from '../page-attributes/panel';\nimport PostDiscussionPanel from '../post-discussion/panel';\nimport { PrivatePostExcerptPanel as PostExcerptPanel } from '../post-excerpt/panel';\nimport PostFeaturedImagePanel from '../post-featured-image/panel';\nimport PostFormatPanel from '../post-format/panel';\nimport PostLastEditedPanel from '../post-last-edited-panel';\nimport PostPanelSection from '../post-panel-section';\nimport PostSchedulePanel from '../post-schedule/panel';\nimport PostStatusPanel from '../post-status';\nimport PostSyncStatus from '../post-sync-status';\nimport PostTemplatePanel from '../post-template/panel';\nimport PostURLPanel from '../post-url/panel';\nimport BlogTitle from '../blog-title';\nimport PostsPerPage from '../posts-per-page';\nimport SiteDiscussion from '../site-discussion';\nimport { store as editorStore } from '../../store';\nimport { PrivatePostLastRevision } from '../post-last-revision';\nimport PostTrash from '../post-trash';\n\n/**\n * Module Constants\n */\nconst PANEL_NAME = 'post-status';\n\nexport default function PostSummary( { onActionPerformed } ) {\n\tconst postType = useSelect(\n\t\t( select ) => select( editorStore ).getCurrentPostType(),\n\t\t[]\n\t);\n\tif (\n\t\twindow?.__experimentalDataFormInspector &&\n\t\t[ 'page', 'post' ].includes( postType )\n\t) {\n\t\treturn <DataFormPostSummary onActionPerformed={ onActionPerformed } />;\n\t}\n\treturn <ClassicPostSummary onActionPerformed={ onActionPerformed } />;\n}\n\nfunction ClassicPostSummary( { onActionPerformed } ) {\n\tconst { isRemovedPostStatusPanel, postType, postId } = useSelect(\n\t\t( select ) => {\n\t\t\t// We use isEditorPanelRemoved to hide the panel if it was programmatically removed. We do\n\t\t\t// not use isEditorPanelEnabled since this panel should not be disabled through the UI.\n\t\t\tconst {\n\t\t\t\tisEditorPanelRemoved,\n\t\t\t\tgetCurrentPostType,\n\t\t\t\tgetCurrentPostId,\n\t\t\t} = select( editorStore );\n\t\t\treturn {\n\t\t\t\tisRemovedPostStatusPanel: isEditorPanelRemoved( PANEL_NAME ),\n\t\t\t\tpostType: getCurrentPostType(),\n\t\t\t\tpostId: getCurrentPostId(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\treturn (\n\t\t<PostPanelSection className=\"editor-post-summary\">\n\t\t\t<PluginPostStatusInfo.Slot>\n\t\t\t\t{ ( fills ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t<PostCardPanel\n\t\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\t\tpostId={ postId }\n\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PostFeaturedImagePanel withPanelBody={ false } />\n\t\t\t\t\t\t\t<PostExcerptPanel />\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<PostContentInformation />\n\t\t\t\t\t\t\t\t<PostLastEditedPanel />\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t{ ! isRemovedPostStatusPanel && (\n\t\t\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t\t\t<PostStatusPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSchedulePanel />\n\t\t\t\t\t\t\t\t\t\t<PostURLPanel />\n\t\t\t\t\t\t\t\t\t\t<PostAuthorPanel />\n\t\t\t\t\t\t\t\t\t\t<PostTemplatePanel />\n\t\t\t\t\t\t\t\t\t\t<PostDiscussionPanel />\n\t\t\t\t\t\t\t\t\t\t<PrivatePostLastRevision />\n\t\t\t\t\t\t\t\t\t\t<PageAttributesPanel />\n\t\t\t\t\t\t\t\t\t\t<PostSyncStatus />\n\t\t\t\t\t\t\t\t\t\t<BlogTitle />\n\t\t\t\t\t\t\t\t\t\t<PostsPerPage />\n\t\t\t\t\t\t\t\t\t\t<SiteDiscussion />\n\t\t\t\t\t\t\t\t\t\t<PostFormatPanel />\n\t\t\t\t\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t\t<PostTrash\n\t\t\t\t\t\t\t\t\t\tonActionPerformed={ onActionPerformed }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</PluginPostStatusInfo.Slot>\n\t\t</PostPanelSection>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_panel", "editorStore", "DataFormPostSummary", "PostPanelSection", "PluginPostStatusInfo", "VStack", "PostCardPanel", "PostFeaturedImagePanel", "PostExcerptPanel", "PostContentInformation", "PostLastEditedPanel", "PostStatusPanel", "PostSchedulePanel", "PostURLPanel", "PostAuthorPanel", "PostTemplatePanel", "PostDiscussionPanel", "PageAttributesPanel", "PostSyncStatus", "BlogTitle", "PostsPerPage", "SiteDiscussion", "PostFormatPanel", "PostTrash"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/categories.ts"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\n// @wordpress/blocks imports are not typed.\n// @ts-expect-error\nimport { getCategories } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tBlockExample,\n\tStyleBookCategory,\n\tCategoryExamples,\n} from './types';\nimport {\n\tSTYLE_BOOK_CATEGORIES,\n\tSTYLE_BOOK_THEME_SUBCATEGORIES,\n} from './constants';\n\n/**\n * Returns category examples for a given category definition and list of examples.\n * @param {StyleBookCategory} categoryDefinition The category definition.\n * @param {BlockExample[]} examples An array of block examples.\n * @return {CategoryExamples|undefined} An object containing the category examples.\n */\nexport function getExamplesByCategory(\n\tcategoryDefinition: StyleBookCategory,\n\texamples: BlockExample[]\n): CategoryExamples | undefined {\n\tif ( ! categoryDefinition?.slug || ! examples?.length ) {\n\t\treturn;\n\t}\n\tconst categories: CategoryExamples[] =\n\t\tcategoryDefinition?.subcategories ?? [];\n\tif ( categories.length ) {\n\t\treturn categories.reduce(\n\t\t\t( acc, subcategoryDefinition ) => {\n\t\t\t\tconst subcategoryExamples = getExamplesByCategory(\n\t\t\t\t\tsubcategoryDefinition,\n\t\t\t\t\texamples\n\t\t\t\t);\n\t\t\t\tif ( subcategoryExamples ) {\n\t\t\t\t\tif ( ! acc.subcategories ) {\n\t\t\t\t\t\tacc.subcategories = [];\n\t\t\t\t\t}\n\t\t\t\t\tacc.subcategories = [\n\t\t\t\t\t\t...acc.subcategories,\n\t\t\t\t\t\tsubcategoryExamples,\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: categoryDefinition.title,\n\t\t\t\tslug: categoryDefinition.slug,\n\t\t\t}\n\t\t);\n\t}\n\n\tconst blocksToInclude = categoryDefinition?.blocks || [];\n\tconst blocksToExclude = categoryDefinition?.exclude || [];\n\tconst categoryExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\t! blocksToExclude.includes( example.name ) &&\n\t\t\t( example.category === categoryDefinition.slug ||\n\t\t\t\tblocksToInclude.includes( example.name ) )\n\t\t);\n\t} );\n\n\tif ( ! categoryExamples.length ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\ttitle: categoryDefinition.title,\n\t\tslug: categoryDefinition.slug,\n\t\texamples: categoryExamples,\n\t};\n}\n\n/**\n * Returns category examples for a given category definition and list of examples.\n *\n * @return {StyleBookCategory[]} An array of top-level category definitions.\n */\nexport function getTopLevelStyleBookCategories(): StyleBookCategory[] {\n\tconst reservedCategories = [\n\t\t...STYLE_BOOK_THEME_SUBCATEGORIES,\n\t\t...STYLE_BOOK_CATEGORIES,\n\t].map( ( { slug } ) => slug );\n\tconst extraCategories: StyleBookCategory[] = getCategories();\n\tconst extraCategoriesFiltered = extraCategories.filter(\n\t\t( { slug } ) => ! reservedCategories.includes( slug )\n\t);\n\treturn [ ...STYLE_BOOK_CATEGORIES, ...extraCategoriesFiltered ];\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oBAA8B;AAU9B,uBAGO;AAQA,SAAS,sBACf,oBACA,UAC+B;AAC/B,MAAK,CAAE,oBAAoB,QAAQ,CAAE,UAAU,QAAS;AACvD;AAAA,EACD;AACA,QAAM,aACL,oBAAoB,iBAAiB,CAAC;AACvC,MAAK,WAAW,QAAS;AACxB,WAAO,WAAW;AAAA,MACjB,CAAE,KAAK,0BAA2B;AACjC,cAAM,sBAAsB;AAAA,UAC3B;AAAA,UACA;AAAA,QACD;AACA,YAAK,qBAAsB;AAC1B,cAAK,CAAE,IAAI,eAAgB;AAC1B,gBAAI,gBAAgB,CAAC;AAAA,UACtB;AACA,cAAI,gBAAgB;AAAA,YACnB,GAAG,IAAI;AAAA,YACP;AAAA,UACD;AAAA,QACD;AACA,eAAO;AAAA,MACR;AAAA,MACA;AAAA,QACC,OAAO,mBAAmB;AAAA,QAC1B,MAAM,mBAAmB;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAEA,QAAM,kBAAkB,oBAAoB,UAAU,CAAC;AACvD,QAAM,kBAAkB,oBAAoB,WAAW,CAAC;AACxD,QAAM,mBAAmB,SAAS,OAAQ,CAAE,YAAa;AACxD,WACC,CAAE,gBAAgB,SAAU,QAAQ,IAAK,MACvC,QAAQ,aAAa,mBAAmB,QACzC,gBAAgB,SAAU,QAAQ,IAAK;AAAA,EAE1C,CAAE;AAEF,MAAK,CAAE,iBAAiB,QAAS;AAChC;AAAA,EACD;AAEA,SAAO;AAAA,IACN,OAAO,mBAAmB;AAAA,IAC1B,MAAM,mBAAmB;AAAA,IACzB,UAAU;AAAA,EACX;AACD;AAOO,SAAS,iCAAsD;AACrE,QAAM,qBAAqB;AAAA,IAC1B,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,EAAE,IAAK,CAAE,EAAE,KAAK,MAAO,IAAK;AAC5B,QAAM,sBAAuC,6BAAc;AAC3D,QAAM,0BAA0B,gBAAgB;AAAA,IAC/C,CAAE,EAAE,KAAK,MAAO,CAAE,mBAAmB,SAAU,IAAK;AAAA,EACrD;AACA,SAAO,CAAE,GAAG,wCAAuB,GAAG,uBAAwB;AAC/D;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\n// @wordpress/blocks imports are not typed.\nimport { getCategories } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tBlockExample,\n\tStyleBookCategory,\n\tCategoryExamples,\n} from './types';\nimport {\n\tSTYLE_BOOK_CATEGORIES,\n\tSTYLE_BOOK_THEME_SUBCATEGORIES,\n} from './constants';\n\n/**\n * Returns category examples for a given category definition and list of examples.\n * @param {StyleBookCategory} categoryDefinition The category definition.\n * @param {BlockExample[]} examples An array of block examples.\n * @return {CategoryExamples|undefined} An object containing the category examples.\n */\nexport function getExamplesByCategory(\n\tcategoryDefinition: StyleBookCategory,\n\texamples: BlockExample[]\n): CategoryExamples | undefined {\n\tif ( ! categoryDefinition?.slug || ! examples?.length ) {\n\t\treturn;\n\t}\n\tconst categories: CategoryExamples[] =\n\t\tcategoryDefinition?.subcategories ?? [];\n\tif ( categories.length ) {\n\t\treturn categories.reduce(\n\t\t\t( acc, subcategoryDefinition ) => {\n\t\t\t\tconst subcategoryExamples = getExamplesByCategory(\n\t\t\t\t\tsubcategoryDefinition,\n\t\t\t\t\texamples\n\t\t\t\t);\n\t\t\t\tif ( subcategoryExamples ) {\n\t\t\t\t\tif ( ! acc.subcategories ) {\n\t\t\t\t\t\tacc.subcategories = [];\n\t\t\t\t\t}\n\t\t\t\t\tacc.subcategories = [\n\t\t\t\t\t\t...acc.subcategories,\n\t\t\t\t\t\tsubcategoryExamples,\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: categoryDefinition.title,\n\t\t\t\tslug: categoryDefinition.slug,\n\t\t\t}\n\t\t);\n\t}\n\n\tconst blocksToInclude = categoryDefinition?.blocks || [];\n\tconst blocksToExclude = categoryDefinition?.exclude || [];\n\tconst categoryExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\t! blocksToExclude.includes( example.name ) &&\n\t\t\t( example.category === categoryDefinition.slug ||\n\t\t\t\tblocksToInclude.includes( example.name ) )\n\t\t);\n\t} );\n\n\tif ( ! categoryExamples.length ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\ttitle: categoryDefinition.title,\n\t\tslug: categoryDefinition.slug,\n\t\texamples: categoryExamples,\n\t};\n}\n\n/**\n * Returns category examples for a given category definition and list of examples.\n *\n * @return {StyleBookCategory[]} An array of top-level category definitions.\n */\nexport function getTopLevelStyleBookCategories(): StyleBookCategory[] {\n\tconst reservedCategories = [\n\t\t...STYLE_BOOK_THEME_SUBCATEGORIES,\n\t\t...STYLE_BOOK_CATEGORIES,\n\t].map( ( { slug } ) => slug );\n\tconst extraCategories: StyleBookCategory[] = getCategories();\n\tconst extraCategoriesFiltered = extraCategories.filter(\n\t\t( { slug } ) => ! reservedCategories.includes( slug )\n\t);\n\treturn [ ...STYLE_BOOK_CATEGORIES, ...extraCategoriesFiltered ];\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,oBAA8B;AAU9B,uBAGO;AAQA,SAAS,sBACf,oBACA,UAC+B;AAC/B,MAAK,CAAE,oBAAoB,QAAQ,CAAE,UAAU,QAAS;AACvD;AAAA,EACD;AACA,QAAM,aACL,oBAAoB,iBAAiB,CAAC;AACvC,MAAK,WAAW,QAAS;AACxB,WAAO,WAAW;AAAA,MACjB,CAAE,KAAK,0BAA2B;AACjC,cAAM,sBAAsB;AAAA,UAC3B;AAAA,UACA;AAAA,QACD;AACA,YAAK,qBAAsB;AAC1B,cAAK,CAAE,IAAI,eAAgB;AAC1B,gBAAI,gBAAgB,CAAC;AAAA,UACtB;AACA,cAAI,gBAAgB;AAAA,YACnB,GAAG,IAAI;AAAA,YACP;AAAA,UACD;AAAA,QACD;AACA,eAAO;AAAA,MACR;AAAA,MACA;AAAA,QACC,OAAO,mBAAmB;AAAA,QAC1B,MAAM,mBAAmB;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAEA,QAAM,kBAAkB,oBAAoB,UAAU,CAAC;AACvD,QAAM,kBAAkB,oBAAoB,WAAW,CAAC;AACxD,QAAM,mBAAmB,SAAS,OAAQ,CAAE,YAAa;AACxD,WACC,CAAE,gBAAgB,SAAU,QAAQ,IAAK,MACvC,QAAQ,aAAa,mBAAmB,QACzC,gBAAgB,SAAU,QAAQ,IAAK;AAAA,EAE1C,CAAE;AAEF,MAAK,CAAE,iBAAiB,QAAS;AAChC;AAAA,EACD;AAEA,SAAO;AAAA,IACN,OAAO,mBAAmB;AAAA,IAC1B,MAAM,mBAAmB;AAAA,IACzB,UAAU;AAAA,EACX;AACD;AAOO,SAAS,iCAAsD;AACrE,QAAM,qBAAqB;AAAA,IAC1B,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,EAAE,IAAK,CAAE,EAAE,KAAK,MAAO,IAAK;AAC5B,QAAM,sBAAuC,6BAAc;AAC3D,QAAM,0BAA0B,gBAAgB;AAAA,IAC/C,CAAE,EAAE,KAAK,MAAO,CAAE,mBAAmB,SAAU,IAAK;AAAA,EACrD;AACA,SAAO,CAAE,GAAG,wCAAuB,GAAG,uBAAwB;AAC/D;",
6
6
  "names": []
7
7
  }
@@ -199,7 +199,7 @@ function getExamples(colors) {
199
199
  blocks: (0, import_blocks.getBlockFromExample)(blockType.name, {
200
200
  ...blockType.example,
201
201
  attributes: {
202
- ...blockType.example.attributes,
202
+ ...blockType.example?.attributes,
203
203
  style: void 0
204
204
  }
205
205
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/examples.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n\t// @wordpress/blocks imports are not typed.\n\t// @ts-expect-error\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tBlockExample,\n\tColorOrigin,\n\tMultiOriginPalettes,\n\tBlockType,\n} from './types';\nimport ColorExamples from './color-examples';\nimport DuotoneExamples from './duotone-examples';\nimport { STYLE_BOOK_COLOR_GROUPS } from './constants';\n\n/**\n * Returns examples color examples for each origin\n * e.g. Core (Default), Theme, and User.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of color block examples.\n */\nfunction getColorExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tif ( ! colors ) {\n\t\treturn [];\n\t}\n\n\tconst examples: BlockExample[] = [];\n\n\tSTYLE_BOOK_COLOR_GROUPS.forEach( ( group ) => {\n\t\tconst palette = colors[ group.type as keyof MultiOriginPalettes ];\n\t\tconst paletteFiltered = Array.isArray( palette )\n\t\t\t? palette.find(\n\t\t\t\t\t( origin: ColorOrigin ) => origin.slug === group.origin\n\t\t\t )\n\t\t\t: undefined;\n\n\t\tif ( paletteFiltered?.[ group.type ] ) {\n\t\t\tconst example: BlockExample = {\n\t\t\t\tname: group.slug,\n\t\t\t\ttitle: group.title,\n\t\t\t\tcategory: 'colors',\n\t\t\t};\n\t\t\tif ( group.type === 'duotones' ) {\n\t\t\t\texample.content = (\n\t\t\t\t\t<DuotoneExamples\n\t\t\t\t\t\tduotones={ paletteFiltered[ group.type ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t} else {\n\t\t\t\texample.content = (\n\t\t\t\t\t<ColorExamples\n\t\t\t\t\t\tcolors={ paletteFiltered[ group.type ] }\n\t\t\t\t\t\ttype={ group.type }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns examples for the overview page.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of block examples.\n */\nfunction getOverviewBlockExamples(\n\tcolors: MultiOriginPalettes\n): BlockExample[] {\n\tconst examples: BlockExample[] = [];\n\n\t// Get theme palette from colors if they exist.\n\tconst themePalette = Array.isArray( colors?.colors )\n\t\t? colors.colors.find(\n\t\t\t\t( origin: ColorOrigin ) => origin.slug === 'theme'\n\t\t )\n\t\t: undefined;\n\n\tif ( themePalette ) {\n\t\tconst themeColorexample: BlockExample = {\n\t\t\tname: 'theme-colors',\n\t\t\ttitle: __( 'Colors' ),\n\t\t\tcategory: 'overview',\n\t\t\tcontent: (\n\t\t\t\t<ColorExamples\n\t\t\t\t\tcolors={ themePalette.colors }\n\t\t\t\t\ttype=\"colors\"\n\t\t\t\t\ttemplateColumns=\"repeat(auto-fill, minmax( 200px, 1fr ))\"\n\t\t\t\t\titemHeight=\"32px\"\n\t\t\t\t/>\n\t\t\t),\n\t\t};\n\n\t\texamples.push( themeColorexample );\n\t}\n\n\t// Get examples for typography blocks.\n\tconst typographyBlockExamples: BlockType[] = [];\n\n\tif ( getBlockType( 'core/heading' ) ) {\n\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t// translators: Typography example. Your local alphabet, numbers and some common special characters.\n\t\t\tcontent: __(\n\t\t\t\t`AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{(\u2026)},.-<>?!*&:/A@HELFO\u2122\u00A9`\n\t\t\t),\n\t\t\tlevel: 1,\n\t\t} );\n\t\ttypographyBlockExamples.push( headingBlock );\n\t}\n\n\tif ( getBlockType( 'core/paragraph' ) ) {\n\t\tconst firstParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`A paragraph in a website refers to a distinct block of text that is used to present and organize information. It is a fundamental unit of content in web design and is typically composed of a group of related sentences or thoughts focused on a particular topic or idea. Paragraphs play a crucial role in improving the readability and user experience of a website. They break down the text into smaller, manageable chunks, allowing readers to scan the content more easily.`\n\t\t\t),\n\t\t} );\n\t\tconst secondParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`Additionally, paragraphs help structure the flow of information and provide logical breaks between different concepts or pieces of information. In terms of formatting, paragraphs in websites are commonly denoted by a vertical gap or indentation between each block of text. This visual separation helps visually distinguish one paragraph from another, creating a clear and organized layout that guides the reader through the content smoothly.`\n\t\t\t),\n\t\t} );\n\n\t\tif ( getBlockType( 'core/group' ) ) {\n\t\t\tconst groupBlock = createBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t\tminimumColumnWidth: '12rem',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '1.5rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[ firstParagraphBlock, secondParagraphBlock ]\n\t\t\t);\n\t\t\ttypographyBlockExamples.push( groupBlock );\n\t\t} else {\n\t\t\ttypographyBlockExamples.push( firstParagraphBlock );\n\t\t}\n\t}\n\n\tif ( !! typographyBlockExamples.length ) {\n\t\texamples.push( {\n\t\t\tname: 'typography',\n\t\t\ttitle: __( 'Typography' ),\n\t\t\tcategory: 'overview',\n\t\t\tblocks: typographyBlockExamples,\n\t\t} );\n\t}\n\n\tconst otherBlockExamples = [\n\t\t'core/image',\n\t\t'core/separator',\n\t\t'core/buttons',\n\t\t'core/pullquote',\n\t\t'core/search',\n\t];\n\n\t// Get examples for other blocks and put them in order of above array.\n\totherBlockExamples.forEach( ( blockName ) => {\n\t\tconst blockType = getBlockType( blockName );\n\t\tif ( blockType && blockType.example ) {\n\t\t\tconst blockExample: BlockExample = {\n\t\t\t\tname: blockName,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\tcategory: 'overview',\n\t\t\t\t/*\n\t\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t\t * demonstrates changes to global styles.\n\t\t\t\t */\n\t\t\t\tblocks: getBlockFromExample( blockName, {\n\t\t\t\t\t...blockType.example,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t\t};\n\t\t\texamples.push( blockExample );\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns a list of examples for registered block types.\n *\n * @param {MultiOriginPalettes} colors Global styles colors grouped by origin e.g. Core, Theme, and User.\n * @return {BlockExample[]} An array of block examples.\n */\nexport function getExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType: BlockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports?.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType: BlockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\t/*\n\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t * demonstrates changes to global styles.\n\t\t\t */\n\t\t\tblocks: getBlockFromExample( blockType.name, {\n\t\t\t\t...blockType.example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\tstyle: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} ) );\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\tconst colorExamples = getColorExamples( colors );\n\n\tconst overviewBlockExamples = getOverviewBlockExamples( colors );\n\n\treturn [\n\t\theadingsExample,\n\t\t...colorExamples,\n\t\t...nonHeadingBlockExamples,\n\t\t...overviewBlockExamples,\n\t];\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport type { Block } from '@wordpress/blocks';\nimport {\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type { BlockExample, ColorOrigin, MultiOriginPalettes } from './types';\nimport ColorExamples from './color-examples';\nimport DuotoneExamples from './duotone-examples';\nimport { STYLE_BOOK_COLOR_GROUPS } from './constants';\n\n/**\n * Returns examples color examples for each origin\n * e.g. Core (Default), Theme, and User.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of color block examples.\n */\nfunction getColorExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tif ( ! colors ) {\n\t\treturn [];\n\t}\n\n\tconst examples: BlockExample[] = [];\n\n\tSTYLE_BOOK_COLOR_GROUPS.forEach( ( group ) => {\n\t\tconst palette = colors[ group.type as keyof MultiOriginPalettes ];\n\t\tconst paletteFiltered = Array.isArray( palette )\n\t\t\t? palette.find(\n\t\t\t\t\t( origin: ColorOrigin ) => origin.slug === group.origin\n\t\t\t )\n\t\t\t: undefined;\n\n\t\tif ( paletteFiltered?.[ group.type ] ) {\n\t\t\tconst example: BlockExample = {\n\t\t\t\tname: group.slug,\n\t\t\t\ttitle: group.title,\n\t\t\t\tcategory: 'colors',\n\t\t\t};\n\t\t\tif ( group.type === 'duotones' ) {\n\t\t\t\texample.content = (\n\t\t\t\t\t<DuotoneExamples\n\t\t\t\t\t\tduotones={ paletteFiltered[ group.type ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t} else {\n\t\t\t\texample.content = (\n\t\t\t\t\t<ColorExamples\n\t\t\t\t\t\tcolors={ paletteFiltered[ group.type ] }\n\t\t\t\t\t\ttype={ group.type }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns examples for the overview page.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of block examples.\n */\nfunction getOverviewBlockExamples(\n\tcolors: MultiOriginPalettes\n): BlockExample[] {\n\tconst examples: BlockExample[] = [];\n\n\t// Get theme palette from colors if they exist.\n\tconst themePalette = Array.isArray( colors?.colors )\n\t\t? colors.colors.find(\n\t\t\t\t( origin: ColorOrigin ) => origin.slug === 'theme'\n\t\t )\n\t\t: undefined;\n\n\tif ( themePalette ) {\n\t\tconst themeColorexample: BlockExample = {\n\t\t\tname: 'theme-colors',\n\t\t\ttitle: __( 'Colors' ),\n\t\t\tcategory: 'overview',\n\t\t\tcontent: (\n\t\t\t\t<ColorExamples\n\t\t\t\t\tcolors={ themePalette.colors }\n\t\t\t\t\ttype=\"colors\"\n\t\t\t\t\ttemplateColumns=\"repeat(auto-fill, minmax( 200px, 1fr ))\"\n\t\t\t\t\titemHeight=\"32px\"\n\t\t\t\t/>\n\t\t\t),\n\t\t};\n\n\t\texamples.push( themeColorexample );\n\t}\n\n\t// Get examples for typography blocks.\n\tconst typographyBlockExamples: Block[] = [];\n\n\tif ( getBlockType( 'core/heading' ) ) {\n\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t// translators: Typography example. Your local alphabet, numbers and some common special characters.\n\t\t\tcontent: __(\n\t\t\t\t`AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{(\u2026)},.-<>?!*&:/A@HELFO\u2122\u00A9`\n\t\t\t),\n\t\t\tlevel: 1,\n\t\t} );\n\t\ttypographyBlockExamples.push( headingBlock );\n\t}\n\n\tif ( getBlockType( 'core/paragraph' ) ) {\n\t\tconst firstParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`A paragraph in a website refers to a distinct block of text that is used to present and organize information. It is a fundamental unit of content in web design and is typically composed of a group of related sentences or thoughts focused on a particular topic or idea. Paragraphs play a crucial role in improving the readability and user experience of a website. They break down the text into smaller, manageable chunks, allowing readers to scan the content more easily.`\n\t\t\t),\n\t\t} );\n\t\tconst secondParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`Additionally, paragraphs help structure the flow of information and provide logical breaks between different concepts or pieces of information. In terms of formatting, paragraphs in websites are commonly denoted by a vertical gap or indentation between each block of text. This visual separation helps visually distinguish one paragraph from another, creating a clear and organized layout that guides the reader through the content smoothly.`\n\t\t\t),\n\t\t} );\n\n\t\tif ( getBlockType( 'core/group' ) ) {\n\t\t\tconst groupBlock = createBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t\tminimumColumnWidth: '12rem',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '1.5rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[ firstParagraphBlock, secondParagraphBlock ]\n\t\t\t);\n\t\t\ttypographyBlockExamples.push( groupBlock );\n\t\t} else {\n\t\t\ttypographyBlockExamples.push( firstParagraphBlock );\n\t\t}\n\t}\n\n\tif ( !! typographyBlockExamples.length ) {\n\t\texamples.push( {\n\t\t\tname: 'typography',\n\t\t\ttitle: __( 'Typography' ),\n\t\t\tcategory: 'overview',\n\t\t\tblocks: typographyBlockExamples,\n\t\t} );\n\t}\n\n\tconst otherBlockExamples = [\n\t\t'core/image',\n\t\t'core/separator',\n\t\t'core/buttons',\n\t\t'core/pullquote',\n\t\t'core/search',\n\t];\n\n\t// Get examples for other blocks and put them in order of above array.\n\totherBlockExamples.forEach( ( blockName ) => {\n\t\tconst blockType = getBlockType( blockName );\n\t\tif ( blockType && blockType.example ) {\n\t\t\tconst blockExample: BlockExample = {\n\t\t\t\tname: blockName,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\tcategory: 'overview',\n\t\t\t\t/*\n\t\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t\t * demonstrates changes to global styles.\n\t\t\t\t */\n\t\t\t\tblocks: getBlockFromExample( blockName, {\n\t\t\t\t\t...blockType.example,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t\t};\n\t\t\texamples.push( blockExample );\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns a list of examples for registered block types.\n *\n * @param {MultiOriginPalettes} colors Global styles colors grouped by origin e.g. Core, Theme, and User.\n * @return {BlockExample[]} An array of block examples.\n */\nexport function getExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports?.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\t/*\n\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t * demonstrates changes to global styles.\n\t\t\t */\n\t\t\tblocks: getBlockFromExample( blockType.name, {\n\t\t\t\t...blockType.example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...blockType.example?.attributes,\n\t\t\t\t\tstyle: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} ) );\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\tconst colorExamples = getColorExamples( colors );\n\n\tconst overviewBlockExamples = getOverviewBlockExamples( colors );\n\n\treturn [\n\t\theadingsExample,\n\t\t...colorExamples,\n\t\t...nonHeadingBlockExamples,\n\t\t...overviewBlockExamples,\n\t];\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAE5B,oBAKO;AAMP,4BAA0B;AAC1B,8BAA4B;AAC5B,uBAAwC;AAgCnC;AAvBL,SAAS,iBAAkB,QAA8C;AACxE,MAAK,CAAE,QAAS;AACf,WAAO,CAAC;AAAA,EACT;AAEA,QAAM,WAA2B,CAAC;AAElC,2CAAwB,QAAS,CAAE,UAAW;AAC7C,UAAM,UAAU,OAAQ,MAAM,IAAkC;AAChE,UAAM,kBAAkB,MAAM,QAAS,OAAQ,IAC5C,QAAQ;AAAA,MACR,CAAE,WAAyB,OAAO,SAAS,MAAM;AAAA,IACjD,IACA;AAEH,QAAK,kBAAmB,MAAM,IAAK,GAAI;AACtC,YAAM,UAAwB;AAAA,QAC7B,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,UAAU;AAAA,MACX;AACA,UAAK,MAAM,SAAS,YAAa;AAChC,gBAAQ,UACP;AAAA,UAAC,wBAAAA;AAAA,UAAA;AAAA,YACA,UAAW,gBAAiB,MAAM,IAAK;AAAA;AAAA,QACxC;AAED,iBAAS,KAAM,OAAQ;AAAA,MACxB,OAAO;AACN,gBAAQ,UACP;AAAA,UAAC,sBAAAC;AAAA,UAAA;AAAA,YACA,QAAS,gBAAiB,MAAM,IAAK;AAAA,YACrC,MAAO,MAAM;AAAA;AAAA,QACd;AAED,iBAAS,KAAM,OAAQ;AAAA,MACxB;AAAA,IACD;AAAA,EACD,CAAE;AAEF,SAAO;AACR;AAQA,SAAS,yBACR,QACiB;AACjB,QAAM,WAA2B,CAAC;AAGlC,QAAM,eAAe,MAAM,QAAS,QAAQ,MAAO,IAChD,OAAO,OAAO;AAAA,IACd,CAAE,WAAyB,OAAO,SAAS;AAAA,EAC3C,IACA;AAEH,MAAK,cAAe;AACnB,UAAM,oBAAkC;AAAA,MACvC,MAAM;AAAA,MACN,WAAO,gBAAI,QAAS;AAAA,MACpB,UAAU;AAAA,MACV,SACC;AAAA,QAAC,sBAAAA;AAAA,QAAA;AAAA,UACA,QAAS,aAAa;AAAA,UACtB,MAAK;AAAA,UACL,iBAAgB;AAAA,UAChB,YAAW;AAAA;AAAA,MACZ;AAAA,IAEF;AAEA,aAAS,KAAM,iBAAkB;AAAA,EAClC;AAGA,QAAM,0BAAmC,CAAC;AAE1C,UAAK,4BAAc,cAAe,GAAI;AACrC,UAAM,mBAAe,2BAAa,gBAAgB;AAAA;AAAA,MAEjD,aAAS;AAAA,QACR;AAAA,MACD;AAAA,MACA,OAAO;AAAA,IACR,CAAE;AACF,4BAAwB,KAAM,YAAa;AAAA,EAC5C;AAEA,UAAK,4BAAc,gBAAiB,GAAI;AACvC,UAAM,0BAAsB,2BAAa,kBAAkB;AAAA,MAC1D,aAAS;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAE;AACF,UAAM,2BAAuB,2BAAa,kBAAkB;AAAA,MAC3D,aAAS;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAE;AAEF,YAAK,4BAAc,YAAa,GAAI;AACnC,YAAM,iBAAa;AAAA,QAClB;AAAA,QACA;AAAA,UACC,QAAQ;AAAA,YACP,MAAM;AAAA,YACN,aAAa;AAAA,YACb,oBAAoB;AAAA,UACrB;AAAA,UACA,OAAO;AAAA,YACN,SAAS;AAAA,cACR,UAAU;AAAA,YACX;AAAA,UACD;AAAA,QACD;AAAA,QACA,CAAE,qBAAqB,oBAAqB;AAAA,MAC7C;AACA,8BAAwB,KAAM,UAAW;AAAA,IAC1C,OAAO;AACN,8BAAwB,KAAM,mBAAoB;AAAA,IACnD;AAAA,EACD;AAEA,MAAK,CAAC,CAAE,wBAAwB,QAAS;AACxC,aAAS,KAAM;AAAA,MACd,MAAM;AAAA,MACN,WAAO,gBAAI,YAAa;AAAA,MACxB,UAAU;AAAA,MACV,QAAQ;AAAA,IACT,CAAE;AAAA,EACH;AAEA,QAAM,qBAAqB;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAGA,qBAAmB,QAAS,CAAE,cAAe;AAC5C,UAAM,gBAAY,4BAAc,SAAU;AAC1C,QAAK,aAAa,UAAU,SAAU;AACrC,YAAM,eAA6B;AAAA,QAClC,MAAM;AAAA,QACN,OAAO,UAAU;AAAA,QACjB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMV,YAAQ,mCAAqB,WAAW;AAAA,UACvC,GAAG,UAAU;AAAA,UACb,YAAY;AAAA,YACX,GAAG,UAAU,QAAQ;AAAA,YACrB,OAAO;AAAA,UACR;AAAA,QACD,CAAE;AAAA,MACH;AACA,eAAS,KAAM,YAAa;AAAA,IAC7B;AAAA,EACD,CAAE;AAEF,SAAO;AACR;AAQO,SAAS,YAAa,QAA8C;AAC1E,QAAM,8BAA0B,6BAAc,EAC5C,OAAQ,CAAE,cAAe;AACzB,UAAM,EAAE,MAAM,SAAS,SAAS,IAAI;AACpC,WACC,SAAS,kBACT,CAAC,CAAE,WACH,UAAU,aAAa;AAAA,EAEzB,CAAE,EACD,IAAK,CAAE,eAAiB;AAAA,IACxB,MAAM,UAAU;AAAA,IAChB,OAAO,UAAU;AAAA,IACjB,UAAU,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMpB,YAAQ,mCAAqB,UAAU,MAAM;AAAA,MAC5C,GAAG,UAAU;AAAA,MACb,YAAY;AAAA,QACX,GAAG,UAAU,SAAS;AAAA,QACtB,OAAO;AAAA,MACR;AAAA,IACD,CAAE;AAAA,EACH,EAAI;AACL,QAAM,2BAA2B,CAAC,KAAE,4BAAc,cAAe;AAEjE,MAAK,CAAE,0BAA2B;AACjC,WAAO;AAAA,EACR;AAIA,QAAM,kBAAkB;AAAA,IACvB,MAAM;AAAA,IACN,WAAO,gBAAI,UAAW;AAAA,IACtB,UAAU;AAAA,IACV,QAAQ,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,EAAE,IAAK,CAAE,UAAW;AAC9C,iBAAO,2BAAa,gBAAgB;AAAA,QACnC,aAAS;AAAA;AAAA,cAER,gBAAI,YAAa;AAAA,UACjB;AAAA,QACD;AAAA,QACA;AAAA,MACD,CAAE;AAAA,IACH,CAAE;AAAA,EACH;AACA,QAAM,gBAAgB,iBAAkB,MAAO;AAE/C,QAAM,wBAAwB,yBAA0B,MAAO;AAE/D,SAAO;AAAA,IACN;AAAA,IACA,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG;AAAA,EACJ;AACD;",
6
6
  "names": ["DuotoneExamples", "ColorExamples"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/types.ts"],
4
- "sourcesContent": ["export type Block = {\n\tname: string;\n\tattributes: Record< string, unknown >;\n\tinnerBlocks?: Block[];\n};\n\nexport type StyleBookCategory = {\n\ttitle: string;\n\tslug: string;\n\tblocks?: string[];\n\texclude?: string[];\n\tinclude?: string[];\n\tsubcategories?: StyleBookCategory[];\n};\n\nexport type BlockExample = {\n\tname: string;\n\ttitle: string;\n\tcategory: string;\n\tcontent?: React.JSX.Element;\n\tblocks?: Block | Block[];\n};\n\nexport type CategoryExamples = {\n\ttitle: string;\n\tslug: string;\n\texamples?: BlockExample[];\n\tsubcategories?: CategoryExamples[];\n};\n\nexport type StyleBookColorGroup = {\n\torigin: string;\n\tslug: string;\n\ttitle: string;\n\ttype: 'colors' | 'gradients' | 'duotones';\n};\n\nexport type Color = { slug: string };\nexport type Gradient = { slug: string };\nexport type Duotone = {\n\tcolors: string[];\n\tslug: string;\n};\n\nexport type ColorExampleProps = {\n\tcolors: Color[] | Gradient[];\n\ttype: StyleBookColorGroup[ 'type' ];\n\ttemplateColumns?: string | number;\n\titemHeight?: string;\n};\n\nexport type ColorOrigin = {\n\tname: string;\n\tslug: string;\n\tcolors?: Color[];\n\tgradients?: Gradient[];\n\tduotones?: Duotone[];\n};\n\nexport type MultiOriginPalettes = {\n\tdisableCustomColors: boolean;\n\tdisableCustomGradients: boolean;\n\thasColorsOrGradients: boolean;\n\tcolors: Omit< ColorOrigin, 'gradients' | 'duotones' >;\n\tduotones: Omit< ColorOrigin, 'colors' | 'gradients' >;\n\tgradients: Omit< ColorOrigin, 'colors' | 'duotones' >;\n};\n\n/*\n * Typing the items from getBlockTypes from '@wordpress/blocks'\n * to appease the TS linter.\n */\nexport type BlockType = {\n\tname: string;\n\ttitle: string;\n\tcategory: string;\n\texample: BlockType;\n\tattributes: Record< string, unknown >;\n\tsupports: Record< string, unknown >;\n};\n"],
4
+ "sourcesContent": ["import type { Block } from '@wordpress/blocks';\n\nexport type StyleBookCategory = {\n\ttitle: string;\n\tslug: string;\n\tblocks?: string[];\n\texclude?: string[];\n\tinclude?: string[];\n\tsubcategories?: StyleBookCategory[];\n};\n\nexport type BlockExample = {\n\tname: string;\n\ttitle: string;\n\tcategory: string;\n\tcontent?: React.JSX.Element;\n\tblocks?: Block | Block[];\n};\n\nexport type CategoryExamples = {\n\ttitle: string;\n\tslug: string;\n\texamples?: BlockExample[];\n\tsubcategories?: CategoryExamples[];\n};\n\nexport type StyleBookColorGroup = {\n\torigin: string;\n\tslug: string;\n\ttitle: string;\n\ttype: 'colors' | 'gradients' | 'duotones';\n};\n\nexport type Color = { slug: string };\nexport type Gradient = { slug: string };\nexport type Duotone = {\n\tcolors: string[];\n\tslug: string;\n};\n\nexport type ColorExampleProps = {\n\tcolors: Color[] | Gradient[];\n\ttype: StyleBookColorGroup[ 'type' ];\n\ttemplateColumns?: string | number;\n\titemHeight?: string;\n};\n\nexport type ColorOrigin = {\n\tname: string;\n\tslug: string;\n\tcolors?: Color[];\n\tgradients?: Gradient[];\n\tduotones?: Duotone[];\n};\n\nexport type MultiOriginPalettes = {\n\tdisableCustomColors: boolean;\n\tdisableCustomGradients: boolean;\n\thasColorsOrGradients: boolean;\n\tcolors: Omit< ColorOrigin, 'gradients' | 'duotones' >;\n\tduotones: Omit< ColorOrigin, 'colors' | 'gradients' >;\n\tgradients: Omit< ColorOrigin, 'colors' | 'duotones' >;\n};\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -35,7 +35,7 @@ var import_lock_unlock = require("../../lock-unlock.cjs");
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
36
  var {
37
37
  ExperimentalBlockEditorProvider,
38
- __unstableBlockStyleVariationOverridesWithConfig
38
+ BlockStyleVariationOverridesWithConfig
39
39
  } = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
40
40
  function isObjectEmpty(object) {
41
41
  return !object || Object.keys(object).length === 0;
@@ -107,7 +107,7 @@ function StylesCanvasRevisions({ path }, ref) {
107
107
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockList, { renderAppender: false }),
108
108
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.__unstableEditorStyles, { styles: editorStyles }),
109
109
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
110
- __unstableBlockStyleVariationOverridesWithConfig,
110
+ BlockStyleVariationOverridesWithConfig,
111
111
  {
112
112
  config: mergedConfig
113
113
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/styles-canvas/revisions.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, forwardRef } from '@wordpress/element';\nimport { useGlobalStylesRevisions } from '@wordpress/global-styles-ui';\nimport { mergeGlobalStyles } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useGlobalStyles } from '../global-styles/hooks';\nimport { useGlobalStylesOutputWithConfig } from '../../hooks/use-global-styles-output';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\t__unstableBlockStyleVariationOverridesWithConfig,\n} = unlock( blockEditorPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Revisions content component for global styles.\n * Coordinates with ScreenRevisions through the path parameter to display\n * the currently selected revision.\n *\n * @param {Object} props Component props.\n * @param {string} props.path Current path in global styles.\n * @param {React.ForwardedRef} ref Ref to the Revisions component.\n * @return {React.JSX.Element} The Revisions component or null if loading.\n */\nfunction StylesCanvasRevisions( { path }, ref ) {\n\tconst blocks = useSelect( ( select ) => {\n\t\t// This is not ideal: it's like a loop (reading from block-editor to render it).\n\t\treturn select( blockEditorStore ).getBlocks();\n\t}, [] );\n\tconst { user: userConfig, base: baseConfig } = useGlobalStyles();\n\n\t// Fetch all revisions (includes unsaved, parent, and enriched with authors)\n\tconst { revisions, isLoading } = useGlobalStylesRevisions();\n\n\t// Parse revision ID from path (e.g., \"/revisions/123\" -> \"123\")\n\tconst revisionId = useMemo( () => {\n\t\tconst match = path?.match( /^\\/revisions\\/(.+)$/ );\n\t\treturn match ? match[ 1 ] : null;\n\t}, [ path ] );\n\n\t// Find the selected revision from the fetched list\n\tconst selectedRevision = useMemo( () => {\n\t\tif ( ! revisionId || ! revisions.length ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn revisions.find(\n\t\t\t( rev ) => String( rev.id ) === String( revisionId )\n\t\t);\n\t}, [ revisionId, revisions ] );\n\n\t// Use the selected revision's config if available, otherwise use current user config\n\tconst displayConfig = selectedRevision || userConfig;\n\n\t// Merge the display config with the base config\n\tconst mergedConfig = useMemo( () => {\n\t\tif (\n\t\t\t! isObjectEmpty( displayConfig ) &&\n\t\t\t! isObjectEmpty( baseConfig )\n\t\t) {\n\t\t\treturn mergeGlobalStyles( baseConfig, displayConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, displayConfig ] );\n\n\tconst renderedBlocksArray = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst editorStyles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( displayConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\tif ( isLoading ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Iframe\n\t\t\tref={ ref }\n\t\t\tclassName=\"editor-revisions__iframe\"\n\t\t\tname=\"revisions\"\n\t\t\ttabIndex={ 0 }\n\t\t>\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }`\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Disabled className=\"editor-revisions__example-preview__content\">\n\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\tvalue={ renderedBlocksArray }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t>\n\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Styles are printed inside the block editor provider,\n\t\t\t\t\t * so they can access any registered style overrides.\n\t\t\t\t\t */ }\n\t\t\t\t\t<EditorStyles styles={ editorStyles } />\n\t\t\t\t\t<__unstableBlockStyleVariationOverridesWithConfig\n\t\t\t\t\t\tconfig={ mergedConfig }\n\t\t\t\t\t/>\n\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t</Disabled>\n\t\t</Iframe>\n\t);\n}\nexport default forwardRef( StylesCanvasRevisions );\n"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport {\n\tBlockList,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\t__unstableEditorStyles as EditorStyles,\n\t__unstableIframe as Iframe,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, forwardRef } from '@wordpress/element';\nimport { useGlobalStylesRevisions } from '@wordpress/global-styles-ui';\nimport { mergeGlobalStyles } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { useGlobalStyles } from '../global-styles/hooks';\nimport { useGlobalStylesOutputWithConfig } from '../../hooks/use-global-styles-output';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tExperimentalBlockEditorProvider,\n\tBlockStyleVariationOverridesWithConfig,\n} = unlock( blockEditorPrivateApis );\n\nfunction isObjectEmpty( object ) {\n\treturn ! object || Object.keys( object ).length === 0;\n}\n\n/**\n * Revisions content component for global styles.\n * Coordinates with ScreenRevisions through the path parameter to display\n * the currently selected revision.\n *\n * @param {Object} props Component props.\n * @param {string} props.path Current path in global styles.\n * @param {React.ForwardedRef} ref Ref to the Revisions component.\n * @return {React.JSX.Element} The Revisions component or null if loading.\n */\nfunction StylesCanvasRevisions( { path }, ref ) {\n\tconst blocks = useSelect( ( select ) => {\n\t\t// This is not ideal: it's like a loop (reading from block-editor to render it).\n\t\treturn select( blockEditorStore ).getBlocks();\n\t}, [] );\n\tconst { user: userConfig, base: baseConfig } = useGlobalStyles();\n\n\t// Fetch all revisions (includes unsaved, parent, and enriched with authors)\n\tconst { revisions, isLoading } = useGlobalStylesRevisions();\n\n\t// Parse revision ID from path (e.g., \"/revisions/123\" -> \"123\")\n\tconst revisionId = useMemo( () => {\n\t\tconst match = path?.match( /^\\/revisions\\/(.+)$/ );\n\t\treturn match ? match[ 1 ] : null;\n\t}, [ path ] );\n\n\t// Find the selected revision from the fetched list\n\tconst selectedRevision = useMemo( () => {\n\t\tif ( ! revisionId || ! revisions.length ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn revisions.find(\n\t\t\t( rev ) => String( rev.id ) === String( revisionId )\n\t\t);\n\t}, [ revisionId, revisions ] );\n\n\t// Use the selected revision's config if available, otherwise use current user config\n\tconst displayConfig = selectedRevision || userConfig;\n\n\t// Merge the display config with the base config\n\tconst mergedConfig = useMemo( () => {\n\t\tif (\n\t\t\t! isObjectEmpty( displayConfig ) &&\n\t\t\t! isObjectEmpty( baseConfig )\n\t\t) {\n\t\t\treturn mergeGlobalStyles( baseConfig, displayConfig );\n\t\t}\n\t\treturn {};\n\t}, [ baseConfig, displayConfig ] );\n\n\tconst renderedBlocksArray = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst originalSettings = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings(),\n\t\t[]\n\t);\n\tconst settings = useMemo(\n\t\t() => ( {\n\t\t\t...originalSettings,\n\t\t\tisPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\n\tconst [ globalStyles ] = useGlobalStylesOutputWithConfig( mergedConfig );\n\n\tconst editorStyles =\n\t\t! isObjectEmpty( globalStyles ) && ! isObjectEmpty( displayConfig )\n\t\t\t? globalStyles\n\t\t\t: settings.styles;\n\n\tif ( isLoading ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Iframe\n\t\t\tref={ ref }\n\t\t\tclassName=\"editor-revisions__iframe\"\n\t\t\tname=\"revisions\"\n\t\t\ttabIndex={ 0 }\n\t\t>\n\t\t\t<style>\n\t\t\t\t{\n\t\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\t\t\t\t\t`.is-root-container { display: flow-root; }`\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<Disabled className=\"editor-revisions__example-preview__content\">\n\t\t\t\t<ExperimentalBlockEditorProvider\n\t\t\t\t\tvalue={ renderedBlocksArray }\n\t\t\t\t\tsettings={ settings }\n\t\t\t\t>\n\t\t\t\t\t<BlockList renderAppender={ false } />\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Styles are printed inside the block editor provider,\n\t\t\t\t\t * so they can access any registered style overrides.\n\t\t\t\t\t */ }\n\t\t\t\t\t<EditorStyles styles={ editorStyles } />\n\t\t\t\t\t<BlockStyleVariationOverridesWithConfig\n\t\t\t\t\t\tconfig={ mergedConfig }\n\t\t\t\t\t/>\n\t\t\t\t</ExperimentalBlockEditorProvider>\n\t\t\t</Disabled>\n\t\t</Iframe>\n\t);\n}\nexport default forwardRef( StylesCanvasRevisions );\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAyB;AACzB,0BAMO;AACP,kBAA0B;AAC1B,qBAAoC;AACpC,8BAAyC;AACzC,kCAAkC;AAKlC,mBAAgC;AAChC,sCAAgD;AAChD,yBAAuB;AAgGpB;AA9FH,IAAM;AAAA,EACL;AAAA,EACA;AACD,QAAI,2BAAQ,oBAAAA,WAAuB;AAEnC,SAAS,cAAe,QAAS;AAChC,SAAO,CAAE,UAAU,OAAO,KAAM,MAAO,EAAE,WAAW;AACrD;AAYA,SAAS,sBAAuB,EAAE,KAAK,GAAG,KAAM;AAC/C,QAAM,aAAS,uBAAW,CAAE,WAAY;AAEvC,WAAO,OAAQ,oBAAAC,KAAiB,EAAE,UAAU;AAAA,EAC7C,GAAG,CAAC,CAAE;AACN,QAAM,EAAE,MAAM,YAAY,MAAM,WAAW,QAAI,8BAAgB;AAG/D,QAAM,EAAE,WAAW,UAAU,QAAI,kDAAyB;AAG1D,QAAM,iBAAa,wBAAS,MAAM;AACjC,UAAM,QAAQ,MAAM,MAAO,qBAAsB;AACjD,WAAO,QAAQ,MAAO,CAAE,IAAI;AAAA,EAC7B,GAAG,CAAE,IAAK,CAAE;AAGZ,QAAM,uBAAmB,wBAAS,MAAM;AACvC,QAAK,CAAE,cAAc,CAAE,UAAU,QAAS;AACzC,aAAO;AAAA,IACR;AACA,WAAO,UAAU;AAAA,MAChB,CAAE,QAAS,OAAQ,IAAI,EAAG,MAAM,OAAQ,UAAW;AAAA,IACpD;AAAA,EACD,GAAG,CAAE,YAAY,SAAU,CAAE;AAG7B,QAAM,gBAAgB,oBAAoB;AAG1C,QAAM,mBAAe,wBAAS,MAAM;AACnC,QACC,CAAE,cAAe,aAAc,KAC/B,CAAE,cAAe,UAAW,GAC3B;AACD,iBAAO,+CAAmB,YAAY,aAAc;AAAA,IACrD;AACA,WAAO,CAAC;AAAA,EACT,GAAG,CAAE,YAAY,aAAc,CAAE;AAEjC,QAAM,0BAAsB;AAAA,IAC3B,MAAQ,MAAM,QAAS,MAAO,IAAI,SAAS,CAAE,MAAO;AAAA,IACpD,CAAE,MAAO;AAAA,EACV;AAEA,QAAM,uBAAmB;AAAA,IACxB,CAAE,WAAY,OAAQ,oBAAAA,KAAiB,EAAE,YAAY;AAAA,IACrD,CAAC;AAAA,EACF;AACA,QAAM,eAAW;AAAA,IAChB,OAAQ;AAAA,MACP,GAAG;AAAA,MACH,eAAe;AAAA,IAChB;AAAA,IACA,CAAE,gBAAiB;AAAA,EACpB;AAEA,QAAM,CAAE,YAAa,QAAI,iEAAiC,YAAa;AAEvE,QAAM,eACL,CAAE,cAAe,YAAa,KAAK,CAAE,cAAe,aAAc,IAC/D,eACA,SAAS;AAEb,MAAK,WAAY;AAChB,WAAO;AAAA,EACR;AAEA,SACC;AAAA,IAAC,oBAAAC;AAAA,IAAA;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,MAAK;AAAA,MACL,UAAW;AAAA,MAEX;AAAA,oDAAC;AAAA;AAAA;AAAA,UAIC;AAAA,SAEF;AAAA,QACA,4CAAC,8BAAS,WAAU,8CACnB;AAAA,UAAC;AAAA;AAAA,YACA,OAAQ;AAAA,YACR;AAAA,YAEA;AAAA,0DAAC,iCAAU,gBAAiB,OAAQ;AAAA,cAKpC,4CAAC,oBAAAC,wBAAA,EAAa,QAAS,cAAe;AAAA,cACtC;AAAA,gBAAC;AAAA;AAAA,kBACA,QAAS;AAAA;AAAA,cACV;AAAA;AAAA;AAAA,QACD,GACD;AAAA;AAAA;AAAA,EACD;AAEF;AACA,IAAO,wBAAQ,2BAAY,qBAAsB;",
6
6
  "names": ["blockEditorPrivateApis", "blockEditorStore", "Iframe", "EditorStyles"]
7
7
  }