@wordpress/edit-site 5.7.0 → 5.8.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 (182) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/editor/index.js +6 -4
  3. package/build/components/editor/index.js.map +1 -1
  4. package/build/components/global-styles/border-panel.js +35 -1
  5. package/build/components/global-styles/border-panel.js.map +1 -1
  6. package/build/components/global-styles/context-menu.js +6 -8
  7. package/build/components/global-styles/context-menu.js.map +1 -1
  8. package/build/components/global-styles/dimensions-panel.js +11 -1
  9. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  10. package/build/components/global-styles/effects-panel.js +53 -0
  11. package/build/components/global-styles/effects-panel.js.map +1 -0
  12. package/build/components/global-styles/filters-panel.js +45 -0
  13. package/build/components/global-styles/filters-panel.js.map +1 -0
  14. package/build/components/global-styles/global-styles-provider.js +7 -4
  15. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  16. package/build/components/global-styles/preview.js +1 -1
  17. package/build/components/global-styles/preview.js.map +1 -1
  18. package/build/components/global-styles/screen-block-list.js +14 -8
  19. package/build/components/global-styles/screen-block-list.js.map +1 -1
  20. package/build/components/global-styles/screen-css.js +1 -1
  21. package/build/components/global-styles/screen-css.js.map +1 -1
  22. package/build/components/global-styles/screen-effects.js +15 -7
  23. package/build/components/global-styles/screen-effects.js.map +1 -1
  24. package/build/components/global-styles/screen-filters.js +2 -2
  25. package/build/components/global-styles/screen-filters.js.map +1 -1
  26. package/build/components/global-styles/screen-style-variations.js +8 -118
  27. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  28. package/build/components/global-styles/style-variations-container.js +149 -0
  29. package/build/components/global-styles/style-variations-container.js.map +1 -0
  30. package/build/components/global-styles/ui.js +46 -2
  31. package/build/components/global-styles/ui.js.map +1 -1
  32. package/build/components/header-edit-mode/more-menu/index.js +1 -1
  33. package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
  34. package/build/components/keyboard-shortcuts/index.js +0 -137
  35. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  36. package/build/components/layout/index.js +8 -1
  37. package/build/components/layout/index.js.map +1 -1
  38. package/build/components/preferences-modal/index.js +4 -0
  39. package/build/components/preferences-modal/index.js.map +1 -1
  40. package/build/components/sidebar/index.js +4 -0
  41. package/build/components/sidebar/index.js.map +1 -1
  42. package/build/components/sidebar-navigation-screen/index.js +8 -6
  43. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  44. package/build/components/sidebar-navigation-screen-global-styles/index.js +58 -0
  45. package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -0
  46. package/build/components/sidebar-navigation-screen-main/index.js +5 -0
  47. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  48. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +114 -9
  49. package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  50. package/build/components/site-hub/index.js +4 -3
  51. package/build/components/site-hub/index.js.map +1 -1
  52. package/build/components/welcome-guide/styles.js +1 -1
  53. package/build/components/welcome-guide/styles.js.map +1 -1
  54. package/build/hooks/commands/index.js +19 -0
  55. package/build/hooks/commands/index.js.map +1 -0
  56. package/build/hooks/commands/use-navigation-commands.js +117 -0
  57. package/build/hooks/commands/use-navigation-commands.js.map +1 -0
  58. package/build/hooks/commands/use-wp-admin-commands.js +94 -0
  59. package/build/hooks/commands/use-wp-admin-commands.js.map +1 -0
  60. package/build/hooks/template-part-edit.js +2 -1
  61. package/build/hooks/template-part-edit.js.map +1 -1
  62. package/build/index.js +2 -1
  63. package/build/index.js.map +1 -1
  64. package/build/store/selectors.js +2 -1
  65. package/build/store/selectors.js.map +1 -1
  66. package/build-module/components/editor/index.js +6 -4
  67. package/build-module/components/editor/index.js.map +1 -1
  68. package/build-module/components/global-styles/border-panel.js +34 -1
  69. package/build-module/components/global-styles/border-panel.js.map +1 -1
  70. package/build-module/components/global-styles/context-menu.js +6 -6
  71. package/build-module/components/global-styles/context-menu.js.map +1 -1
  72. package/build-module/components/global-styles/dimensions-panel.js +11 -1
  73. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  74. package/build-module/components/global-styles/effects-panel.js +43 -0
  75. package/build-module/components/global-styles/effects-panel.js.map +1 -0
  76. package/build-module/components/global-styles/filters-panel.js +35 -0
  77. package/build-module/components/global-styles/filters-panel.js.map +1 -0
  78. package/build-module/components/global-styles/global-styles-provider.js +8 -5
  79. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  80. package/build-module/components/global-styles/preview.js +1 -1
  81. package/build-module/components/global-styles/preview.js.map +1 -1
  82. package/build-module/components/global-styles/screen-block-list.js +13 -8
  83. package/build-module/components/global-styles/screen-block-list.js.map +1 -1
  84. package/build-module/components/global-styles/screen-css.js +1 -1
  85. package/build-module/components/global-styles/screen-css.js.map +1 -1
  86. package/build-module/components/global-styles/screen-effects.js +13 -4
  87. package/build-module/components/global-styles/screen-effects.js.map +1 -1
  88. package/build-module/components/global-styles/screen-filters.js +2 -2
  89. package/build-module/components/global-styles/screen-filters.js.map +1 -1
  90. package/build-module/components/global-styles/screen-style-variations.js +11 -114
  91. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  92. package/build-module/components/global-styles/style-variations-container.js +130 -0
  93. package/build-module/components/global-styles/style-variations-container.js.map +1 -0
  94. package/build-module/components/global-styles/ui.js +44 -3
  95. package/build-module/components/global-styles/ui.js.map +1 -1
  96. package/build-module/components/header-edit-mode/more-menu/index.js +1 -1
  97. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
  98. package/build-module/components/keyboard-shortcuts/index.js +1 -135
  99. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  100. package/build-module/components/layout/index.js +6 -1
  101. package/build-module/components/layout/index.js.map +1 -1
  102. package/build-module/components/preferences-modal/index.js +4 -0
  103. package/build-module/components/preferences-modal/index.js.map +1 -1
  104. package/build-module/components/sidebar/index.js +3 -0
  105. package/build-module/components/sidebar/index.js.map +1 -1
  106. package/build-module/components/sidebar-navigation-screen/index.js +9 -7
  107. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  108. package/build-module/components/sidebar-navigation-screen-global-styles/index.js +41 -0
  109. package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -0
  110. package/build-module/components/sidebar-navigation-screen-main/index.js +6 -1
  111. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  112. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +113 -11
  113. package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
  114. package/build-module/components/site-hub/index.js +3 -3
  115. package/build-module/components/site-hub/index.js.map +1 -1
  116. package/build-module/components/welcome-guide/styles.js +1 -1
  117. package/build-module/components/welcome-guide/styles.js.map +1 -1
  118. package/build-module/hooks/commands/index.js +10 -0
  119. package/build-module/hooks/commands/index.js.map +1 -0
  120. package/build-module/hooks/commands/use-navigation-commands.js +101 -0
  121. package/build-module/hooks/commands/use-navigation-commands.js.map +1 -0
  122. package/build-module/hooks/commands/use-wp-admin-commands.js +79 -0
  123. package/build-module/hooks/commands/use-wp-admin-commands.js.map +1 -0
  124. package/build-module/hooks/template-part-edit.js +2 -1
  125. package/build-module/hooks/template-part-edit.js.map +1 -1
  126. package/build-module/index.js +2 -1
  127. package/build-module/index.js.map +1 -1
  128. package/build-module/store/selectors.js +2 -1
  129. package/build-module/store/selectors.js.map +1 -1
  130. package/build-style/style-rtl.css +20 -46
  131. package/build-style/style.css +20 -46
  132. package/package.json +33 -31
  133. package/src/components/editor/index.js +11 -3
  134. package/src/components/global-styles/border-panel.js +32 -1
  135. package/src/components/global-styles/context-menu.js +6 -6
  136. package/src/components/global-styles/dimensions-panel.js +11 -0
  137. package/src/components/global-styles/effects-panel.js +40 -0
  138. package/src/components/global-styles/filters-panel.js +33 -0
  139. package/src/components/global-styles/global-styles-provider.js +4 -4
  140. package/src/components/global-styles/preview.js +1 -1
  141. package/src/components/global-styles/screen-block-list.js +9 -5
  142. package/src/components/global-styles/screen-css.js +1 -1
  143. package/src/components/global-styles/screen-effects.js +12 -5
  144. package/src/components/global-styles/screen-filters.js +2 -2
  145. package/src/components/global-styles/screen-style-variations.js +10 -129
  146. package/src/components/global-styles/style-variations-container.js +136 -0
  147. package/src/components/global-styles/style.scss +0 -39
  148. package/src/components/global-styles/ui.js +44 -2
  149. package/src/components/header-edit-mode/more-menu/index.js +1 -1
  150. package/src/components/keyboard-shortcuts/index.js +1 -155
  151. package/src/components/layout/index.js +4 -0
  152. package/src/components/preferences-modal/index.js +7 -0
  153. package/src/components/sidebar/index.js +4 -0
  154. package/src/components/sidebar-navigation-screen/index.js +10 -5
  155. package/src/components/sidebar-navigation-screen/style.scss +20 -5
  156. package/src/components/sidebar-navigation-screen-global-styles/index.js +41 -0
  157. package/src/components/sidebar-navigation-screen-main/index.js +9 -1
  158. package/src/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js +134 -9
  159. package/src/components/site-hub/index.js +3 -3
  160. package/src/components/start-template-options/style.scss +7 -14
  161. package/src/components/welcome-guide/styles.js +1 -1
  162. package/src/hooks/commands/index.js +10 -0
  163. package/src/hooks/commands/use-navigation-commands.js +103 -0
  164. package/src/hooks/commands/use-wp-admin-commands.js +77 -0
  165. package/src/hooks/template-part-edit.js +1 -0
  166. package/src/index.js +1 -0
  167. package/src/store/selectors.js +2 -1
  168. package/build/components/global-styles/duotone-panel.js +0 -78
  169. package/build/components/global-styles/duotone-panel.js.map +0 -1
  170. package/build/components/global-styles/filter-utils.js +0 -17
  171. package/build/components/global-styles/filter-utils.js.map +0 -1
  172. package/build/components/global-styles/shadow-panel.js +0 -197
  173. package/build/components/global-styles/shadow-panel.js.map +0 -1
  174. package/build-module/components/global-styles/duotone-panel.js +0 -67
  175. package/build-module/components/global-styles/duotone-panel.js.map +0 -1
  176. package/build-module/components/global-styles/filter-utils.js +0 -9
  177. package/build-module/components/global-styles/filter-utils.js.map +0 -1
  178. package/build-module/components/global-styles/shadow-panel.js +0 -178
  179. package/build-module/components/global-styles/shadow-panel.js.map +0 -1
  180. package/src/components/global-styles/duotone-panel.js +0 -82
  181. package/src/components/global-styles/filter-utils.js +0 -9
  182. package/src/components/global-styles/shadow-panel.js +0 -178
@@ -19,6 +19,7 @@
19
19
  margin-top: $grid-unit-05;
20
20
  gap: $grid-unit-30;
21
21
  grid-template-columns: repeat(auto-fit, minmax(min(100%/2, max(240px, 100%/10)), 1fr));
22
+
22
23
  .block-editor-block-patterns-list__list-item {
23
24
  break-inside: avoid-column;
24
25
  margin-bottom: 0;
@@ -27,7 +28,6 @@
27
28
 
28
29
  .block-editor-block-preview__container {
29
30
  height: 100%;
30
- box-shadow: 0 0 0 1px $gray-300;
31
31
  }
32
32
 
33
33
  .block-editor-block-preview__content {
@@ -38,20 +38,13 @@
38
38
  .block-editor-block-patterns-list__item-title {
39
39
  display: none;
40
40
  }
41
+ }
41
42
 
42
- &:hover {
43
- .block-editor-block-preview__container {
44
- box-shadow: 0 0 0 2px var(--wp-admin-theme-color);
45
- }
46
- }
47
-
48
- &:focus {
49
- .block-editor-block-preview__container {
50
- box-shadow: inset 0 0 0 1px $white, 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
51
-
52
- // Windows High Contrast mode will show this outline, but not the box-shadow.
53
- outline: 2px solid transparent;
54
- }
43
+ .block-editor-block-patterns-list__item {
44
+ // Avoid to override the BlockPatternList component
45
+ // default hover and focus styles.
46
+ &:not(:focus):not(:hover) .block-editor-block-preview__container {
47
+ box-shadow: 0 0 0 1px $gray-300;
55
48
  }
56
49
  }
57
50
 
@@ -119,7 +119,7 @@ export default function WelcomeGuideStyles() {
119
119
  ) }
120
120
  <ExternalLink
121
121
  href={ __(
122
- 'https://wordpress.org/support/article/styles-overview/'
122
+ 'https://wordpress.org/documentation/article/styles-overview/'
123
123
  ) }
124
124
  >
125
125
  { __(
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { useNavigationCommands } from './use-navigation-commands';
5
+ import { useWPAdminCommands } from './use-wp-admin-commands';
6
+
7
+ export function useCommands() {
8
+ useWPAdminCommands();
9
+ useNavigationCommands();
10
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis } from '@wordpress/commands';
5
+ import { __ } from '@wordpress/i18n';
6
+ import { useMemo } from '@wordpress/element';
7
+ import { useSelect } from '@wordpress/data';
8
+ import { store as coreStore } from '@wordpress/core-data';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import { store as editSiteStore } from '../../store';
14
+ import { unlock } from '../../private-apis';
15
+ import { useHistory } from '../../components/routes';
16
+
17
+ const { useCommandLoader } = unlock( privateApis );
18
+
19
+ const getNavigationCommandLoaderPerPostType = ( postType ) =>
20
+ function useNavigationCommandLoader( { search } ) {
21
+ const supportsSearch = ! [ 'wp_template', 'wp_template_part' ].includes(
22
+ postType
23
+ );
24
+ const deps = supportsSearch ? [ search ] : [];
25
+ const history = useHistory();
26
+ const { canvasMode, records, isLoading } = useSelect( ( select ) => {
27
+ const { getEntityRecords } = select( coreStore );
28
+ const query = supportsSearch
29
+ ? {
30
+ search: !! search ? search : undefined,
31
+ per_page: 10,
32
+ orderby: search ? 'relevance' : 'date',
33
+ }
34
+ : {
35
+ per_page: -1,
36
+ };
37
+ return {
38
+ records: getEntityRecords( 'postType', postType, query ),
39
+ isLoading: ! select( coreStore ).hasFinishedResolution(
40
+ 'getEntityRecords',
41
+ [ 'postType', postType, query ]
42
+ ),
43
+ canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
44
+ };
45
+ }, deps );
46
+
47
+ const commands = useMemo( () => {
48
+ return ( records ?? [] ).slice( 0, 10 ).map( ( record ) => {
49
+ return {
50
+ name: record.title?.rendered + ' ' + record.id,
51
+ label: record.title?.rendered
52
+ ? record.title?.rendered
53
+ : __( '(no title)' ),
54
+ callback: ( { close } ) => {
55
+ history.push( {
56
+ postType,
57
+ postId: record.id,
58
+ canvas:
59
+ canvasMode === 'edit' ? canvasMode : undefined,
60
+ } );
61
+ close();
62
+ },
63
+ };
64
+ } );
65
+ }, [ records, history, canvasMode ] );
66
+
67
+ return {
68
+ commands,
69
+ isLoading,
70
+ };
71
+ };
72
+
73
+ const usePageNavigationCommandLoader =
74
+ getNavigationCommandLoaderPerPostType( 'page' );
75
+ const usePostNavigationCommandLoader =
76
+ getNavigationCommandLoaderPerPostType( 'post' );
77
+ const useTemplateNavigationCommandLoader =
78
+ getNavigationCommandLoaderPerPostType( 'wp_template' );
79
+ const useTemplatePartNavigationCommandLoader =
80
+ getNavigationCommandLoaderPerPostType( 'wp_template_part' );
81
+
82
+ export function useNavigationCommands() {
83
+ useCommandLoader( {
84
+ name: 'core/edit-site/navigate-pages',
85
+ group: __( 'Pages' ),
86
+ hook: usePageNavigationCommandLoader,
87
+ } );
88
+ useCommandLoader( {
89
+ name: 'core/edit-site/navigate-posts',
90
+ group: __( 'Posts' ),
91
+ hook: usePostNavigationCommandLoader,
92
+ } );
93
+ useCommandLoader( {
94
+ name: 'core/edit-site/navigate-templates',
95
+ group: __( 'Templates' ),
96
+ hook: useTemplateNavigationCommandLoader,
97
+ } );
98
+ useCommandLoader( {
99
+ name: 'core/edit-site/navigate-template-parts',
100
+ group: __( 'Template Parts' ),
101
+ hook: useTemplatePartNavigationCommandLoader,
102
+ } );
103
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { privateApis } from '@wordpress/commands';
5
+ import { __, sprintf } from '@wordpress/i18n';
6
+ import { useSelect } from '@wordpress/data';
7
+ import { addQueryArgs } from '@wordpress/url';
8
+ import { useMemo } from '@wordpress/element';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import { store as editSiteStore } from '../../store';
14
+ import { unlock } from '../../private-apis';
15
+
16
+ const { useCommandLoader } = unlock( privateApis );
17
+
18
+ const getWPAdminAddCommandLoader = ( postType ) =>
19
+ function useAddCommandLoader( { search } ) {
20
+ let label;
21
+ if ( postType === 'post' ) {
22
+ label = __( 'Add a new post' );
23
+ } else if ( postType === 'page' ) {
24
+ label = __( 'Add a new page' );
25
+ } else {
26
+ throw 'unsupported post type ' + postType;
27
+ }
28
+ const hasRecordTitle =
29
+ !! search && ! label.toLowerCase().includes( search.toLowerCase() );
30
+ if ( postType === 'post' && hasRecordTitle ) {
31
+ /* translators: %s: Post title placeholder */
32
+ label = sprintf( __( 'Add a new post "%s"' ), search );
33
+ } else if ( postType === 'page' && hasRecordTitle ) {
34
+ /* translators: %s: Page title placeholder */
35
+ label = sprintf( __( 'Add a new page "%s"' ), search );
36
+ }
37
+
38
+ const newPostLink = useSelect( ( select ) => {
39
+ const { getSettings } = unlock( select( editSiteStore ) );
40
+ return getSettings().newPostLink ?? 'post-new.php';
41
+ }, [] );
42
+
43
+ const commands = useMemo(
44
+ () => [
45
+ {
46
+ name: 'core/wp-admin/add-' + postType,
47
+ label,
48
+ callback: () => {
49
+ document.location.href = addQueryArgs( newPostLink, {
50
+ post_type: postType,
51
+ post_title: hasRecordTitle ? search : undefined,
52
+ } );
53
+ },
54
+ },
55
+ ],
56
+ [ newPostLink, hasRecordTitle, search, label ]
57
+ );
58
+
59
+ return {
60
+ isLoading: false,
61
+ commands,
62
+ };
63
+ };
64
+
65
+ const useAddPostLoader = getWPAdminAddCommandLoader( 'post' );
66
+ const useAddPageLoader = getWPAdminAddCommandLoader( 'page' );
67
+
68
+ export function useWPAdminCommands() {
69
+ useCommandLoader( {
70
+ name: 'core/wp-admin/add-post-loader',
71
+ hook: useAddPostLoader,
72
+ } );
73
+ useCommandLoader( {
74
+ name: 'core/wp-admin/add-page-loader',
75
+ hook: useAddPageLoader,
76
+ } );
77
+ }
@@ -34,6 +34,7 @@ function EditTemplatePartMenuItem( { attributes } ) {
34
34
  {
35
35
  postId: templatePart?.id,
36
36
  postType: templatePart?.type,
37
+ canvas: 'edit',
37
38
  },
38
39
  {
39
40
  fromTemplateId: params.postId,
package/src/index.js CHANGED
@@ -67,6 +67,7 @@ export function initializeEditor( id, settings ) {
67
67
  welcomeGuide: true,
68
68
  welcomeGuideStyles: true,
69
69
  showListViewByDefault: false,
70
+ showBlockBreadcrumbs: true,
70
71
  } );
71
72
 
72
73
  dispatch( interfaceStore ).setDefaultComplementaryArea(
@@ -39,13 +39,14 @@ export const __unstableGetPreference = createRegistrySelector(
39
39
  /**
40
40
  * Returns whether the given feature is enabled or not.
41
41
  *
42
+ * @deprecated
42
43
  * @param {Object} state Global application state.
43
44
  * @param {string} featureName Feature slug.
44
45
  *
45
46
  * @return {boolean} Is active.
46
47
  */
47
48
  export function isFeatureActive( state, featureName ) {
48
- deprecated( `select( 'core/interface' ).isFeatureActive`, {
49
+ deprecated( `select( 'core/edit-site' ).isFeatureActive`, {
49
50
  since: '6.0',
50
51
  alternative: `select( 'core/preferences' ).get`,
51
52
  } );
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _element = require("@wordpress/element");
9
-
10
- var _i18n = require("@wordpress/i18n");
11
-
12
- var _components = require("@wordpress/components");
13
-
14
- var _blockEditor = require("@wordpress/block-editor");
15
-
16
- var _privateApis = require("../../private-apis");
17
-
18
- /**
19
- * WordPress dependencies
20
- */
21
-
22
- /**
23
- * Internal dependencies
24
- */
25
- const {
26
- useGlobalStyle
27
- } = (0, _privateApis.unlock)(_blockEditor.privateApis);
28
- const EMPTY_ARRAY = [];
29
-
30
- function useMultiOriginPresets(_ref) {
31
- let {
32
- presetSetting,
33
- defaultSetting
34
- } = _ref;
35
- const disableDefault = !(0, _blockEditor.useSetting)(defaultSetting);
36
- const userPresets = (0, _blockEditor.useSetting)(`${presetSetting}.custom`) || EMPTY_ARRAY;
37
- const themePresets = (0, _blockEditor.useSetting)(`${presetSetting}.theme`) || EMPTY_ARRAY;
38
- const defaultPresets = (0, _blockEditor.useSetting)(`${presetSetting}.default`) || EMPTY_ARRAY;
39
- return (0, _element.useMemo)(() => [...userPresets, ...themePresets, ...(disableDefault ? EMPTY_ARRAY : defaultPresets)], [disableDefault, userPresets, themePresets, defaultPresets]);
40
- }
41
-
42
- function DuotonePanel(_ref2) {
43
- let {
44
- name
45
- } = _ref2;
46
- const [themeDuotone, setThemeDuotone] = useGlobalStyle('filter.duotone', name);
47
- const duotonePalette = useMultiOriginPresets({
48
- presetSetting: 'color.duotone',
49
- defaultSetting: 'color.defaultDuotone'
50
- });
51
- const colorPalette = useMultiOriginPresets({
52
- presetSetting: 'color.palette',
53
- defaultSetting: 'color.defaultPalette'
54
- });
55
-
56
- if ((duotonePalette === null || duotonePalette === void 0 ? void 0 : duotonePalette.length) === 0) {
57
- return null;
58
- }
59
-
60
- return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalToolsPanel, {
61
- label: (0, _i18n.__)('Duotone')
62
- }, (0, _element.createElement)("span", {
63
- className: "span-columns"
64
- }, (0, _i18n.__)('Create a two-tone color effect without losing your original image.')), (0, _element.createElement)("div", {
65
- className: "span-columns"
66
- }, (0, _element.createElement)(_components.DuotonePicker, {
67
- colorPalette: colorPalette,
68
- duotonePalette: duotonePalette,
69
- disableCustomColors: true,
70
- disableCustomDuotone: true,
71
- value: themeDuotone,
72
- onChange: setThemeDuotone
73
- }))));
74
- }
75
-
76
- var _default = DuotonePanel;
77
- exports.default = _default;
78
- //# sourceMappingURL=duotone-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/duotone-panel.js"],"names":["useGlobalStyle","blockEditorPrivateApis","EMPTY_ARRAY","useMultiOriginPresets","presetSetting","defaultSetting","disableDefault","userPresets","themePresets","defaultPresets","DuotonePanel","name","themeDuotone","setThemeDuotone","duotonePalette","colorPalette","length"],"mappings":";;;;;;;AAYA;;AATA;;AACA;;AAIA;;AASA;;AAjBA;AACA;AACA;;AAYA;AACA;AACA;AAEA,MAAM;AAAEA,EAAAA;AAAF,IAAqB,yBAAQC,wBAAR,CAA3B;AAEA,MAAMC,WAAW,GAAG,EAApB;;AAEA,SAASC,qBAAT,OAAoE;AAAA,MAApC;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,GAAoC;AACnE,QAAMC,cAAc,GAAG,CAAE,6BAAYD,cAAZ,CAAzB;AACA,QAAME,WAAW,GAChB,6BAAa,GAAGH,aAAe,SAA/B,KAA6CF,WAD9C;AAEA,QAAMM,YAAY,GACjB,6BAAa,GAAGJ,aAAe,QAA/B,KAA4CF,WAD7C;AAEA,QAAMO,cAAc,GACnB,6BAAa,GAAGL,aAAe,UAA/B,KAA8CF,WAD/C;AAEA,SAAO,sBACN,MAAM,CACL,GAAGK,WADE,EAEL,GAAGC,YAFE,EAGL,IAAKF,cAAc,GAAGJ,WAAH,GAAiBO,cAApC,CAHK,CADA,EAMN,CAAEH,cAAF,EAAkBC,WAAlB,EAA+BC,YAA/B,EAA6CC,cAA7C,CANM,CAAP;AAQA;;AAED,SAASC,YAAT,QAAkC;AAAA,MAAX;AAAEC,IAAAA;AAAF,GAAW;AACjC,QAAM,CAAEC,YAAF,EAAgBC,eAAhB,IAAoCb,cAAc,CACvD,gBADuD,EAEvDW,IAFuD,CAAxD;AAKA,QAAMG,cAAc,GAAGX,qBAAqB,CAAE;AAC7CC,IAAAA,aAAa,EAAE,eAD8B;AAE7CC,IAAAA,cAAc,EAAE;AAF6B,GAAF,CAA5C;AAIA,QAAMU,YAAY,GAAGZ,qBAAqB,CAAE;AAC3CC,IAAAA,aAAa,EAAE,eAD4B;AAE3CC,IAAAA,cAAc,EAAE;AAF2B,GAAF,CAA1C;;AAKA,MAAK,CAAAS,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,MAAhB,MAA2B,CAAhC,EAAoC;AACnC,WAAO,IAAP;AACA;;AACD,SACC,qDACC,4BAAC,oCAAD;AAAY,IAAA,KAAK,EAAG,cAAI,SAAJ;AAApB,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACG,cACD,oEADC,CADH,CADD,EAMC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,4BAAC,yBAAD;AACC,IAAA,YAAY,EAAGD,YADhB;AAEC,IAAA,cAAc,EAAGD,cAFlB;AAGC,IAAA,mBAAmB,EAAG,IAHvB;AAIC,IAAA,oBAAoB,EAAG,IAJxB;AAKC,IAAA,KAAK,EAAGF,YALT;AAMC,IAAA,QAAQ,EAAGC;AANZ,IADD,CAND,CADD,CADD;AAqBA;;eAEcH,Y","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\tDuotonePicker,\n} from '@wordpress/components';\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tuseSetting,\n} from '@wordpress/block-editor';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../private-apis';\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst EMPTY_ARRAY = [];\n\nfunction useMultiOriginPresets( { presetSetting, defaultSetting } ) {\n\tconst disableDefault = ! useSetting( defaultSetting );\n\tconst userPresets =\n\t\tuseSetting( `${ presetSetting }.custom` ) || EMPTY_ARRAY;\n\tconst themePresets =\n\t\tuseSetting( `${ presetSetting }.theme` ) || EMPTY_ARRAY;\n\tconst defaultPresets =\n\t\tuseSetting( `${ presetSetting }.default` ) || EMPTY_ARRAY;\n\treturn useMemo(\n\t\t() => [\n\t\t\t...userPresets,\n\t\t\t...themePresets,\n\t\t\t...( disableDefault ? EMPTY_ARRAY : defaultPresets ),\n\t\t],\n\t\t[ disableDefault, userPresets, themePresets, defaultPresets ]\n\t);\n}\n\nfunction DuotonePanel( { name } ) {\n\tconst [ themeDuotone, setThemeDuotone ] = useGlobalStyle(\n\t\t'filter.duotone',\n\t\tname\n\t);\n\n\tconst duotonePalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.duotone',\n\t\tdefaultSetting: 'color.defaultDuotone',\n\t} );\n\tconst colorPalette = useMultiOriginPresets( {\n\t\tpresetSetting: 'color.palette',\n\t\tdefaultSetting: 'color.defaultPalette',\n\t} );\n\n\tif ( duotonePalette?.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanel label={ __( 'Duotone' ) }>\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Create a two-tone color effect without losing your original image.'\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<div className=\"span-columns\">\n\t\t\t\t\t<DuotonePicker\n\t\t\t\t\t\tcolorPalette={ colorPalette }\n\t\t\t\t\t\tduotonePalette={ duotonePalette }\n\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\tdisableCustomDuotone={ true }\n\t\t\t\t\t\tvalue={ themeDuotone }\n\t\t\t\t\t\tonChange={ setThemeDuotone }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</ToolsPanel>\n\t\t</>\n\t);\n}\n\nexport default DuotonePanel;\n"]}
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useHasFilterPanel = useHasFilterPanel;
7
-
8
- var _hooks = require("./hooks");
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- function useHasFilterPanel(name) {
14
- const supports = (0, _hooks.useSupportedStyles)(name);
15
- return supports.includes('filter');
16
- }
17
- //# sourceMappingURL=filter-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/filter-utils.js"],"names":["useHasFilterPanel","name","supports","includes"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,SAASA,iBAAT,CAA4BC,IAA5B,EAAmC;AACzC,QAAMC,QAAQ,GAAG,+BAAoBD,IAApB,CAAjB;AACA,SAAOC,QAAQ,CAACC,QAAT,CAAmB,QAAnB,CAAP;AACA","sourcesContent":["/**\n * Internal dependencies\n */\nimport { useSupportedStyles } from './hooks';\n\nexport function useHasFilterPanel( name ) {\n\tconst supports = useSupportedStyles( name );\n\treturn supports.includes( 'filter' );\n}\n"]}
@@ -1,197 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = ShadowPanel;
9
- exports.useHasShadowControl = useHasShadowControl;
10
-
11
- var _element = require("@wordpress/element");
12
-
13
- var _classnames = _interopRequireDefault(require("classnames"));
14
-
15
- var _components = require("@wordpress/components");
16
-
17
- var _i18n = require("@wordpress/i18n");
18
-
19
- var _icons = require("@wordpress/icons");
20
-
21
- var _blockEditor = require("@wordpress/block-editor");
22
-
23
- var _hooks = require("./hooks");
24
-
25
- var _iconWithCurrentColor = require("./icon-with-current-color");
26
-
27
- var _privateApis = require("../../private-apis");
28
-
29
- /**
30
- * External dependencies
31
- */
32
-
33
- /**
34
- * WordPress dependencies
35
- */
36
-
37
- /**
38
- * Internal dependencies
39
- */
40
- const {
41
- useGlobalSetting,
42
- useGlobalStyle
43
- } = (0, _privateApis.unlock)(_blockEditor.privateApis);
44
-
45
- function useHasShadowControl(name) {
46
- const supports = (0, _hooks.useSupportedStyles)(name);
47
- return supports.includes('shadow');
48
- }
49
-
50
- function ShadowPanel(_ref) {
51
- let {
52
- name,
53
- variation = ''
54
- } = _ref;
55
- const prefix = variation ? `variations.${variation}.` : '';
56
- const [shadow, setShadow] = useGlobalStyle(`${prefix}shadow`, name);
57
- const [userShadow] = useGlobalStyle(`${prefix}shadow`, name, 'user');
58
-
59
- const hasShadow = () => !!userShadow;
60
-
61
- const resetShadow = (0, _element.useCallback)(() => setShadow(undefined), [setShadow]);
62
- const resetAll = (0, _element.useCallback)(() => resetShadow(undefined), [resetShadow]);
63
- return (0, _element.createElement)(_components.__experimentalToolsPanel, {
64
- label: (0, _i18n.__)('Shadow'),
65
- resetAll: resetAll
66
- }, (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
67
- label: (0, _i18n.__)('Shadow'),
68
- hasValue: hasShadow,
69
- onDeselect: resetShadow,
70
- isShownByDefault: true
71
- }, (0, _element.createElement)(_components.__experimentalItemGroup, {
72
- isBordered: true,
73
- isSeparated: true
74
- }, (0, _element.createElement)(ShadowPopover, {
75
- shadow: shadow,
76
- onShadowChange: setShadow
77
- }))));
78
- }
79
-
80
- const ShadowPopover = _ref2 => {
81
- let {
82
- shadow,
83
- onShadowChange
84
- } = _ref2;
85
- const popoverProps = {
86
- placement: 'left-start',
87
- offset: 36,
88
- shift: true
89
- };
90
- return (0, _element.createElement)(_components.Dropdown, {
91
- popoverProps: popoverProps,
92
- className: "edit-site-global-styles__shadow-dropdown",
93
- renderToggle: renderShadowToggle(),
94
- renderContent: () => (0, _element.createElement)(_components.__experimentalDropdownContentWrapper, {
95
- paddingSize: "medium"
96
- }, (0, _element.createElement)(ShadowPopoverContainer, {
97
- shadow: shadow,
98
- onShadowChange: onShadowChange
99
- }))
100
- });
101
- };
102
-
103
- function renderShadowToggle() {
104
- return _ref3 => {
105
- let {
106
- onToggle,
107
- isOpen
108
- } = _ref3;
109
- const toggleProps = {
110
- onClick: onToggle,
111
- className: (0, _classnames.default)({
112
- 'is-open': isOpen
113
- }),
114
- 'aria-expanded': isOpen
115
- };
116
- return (0, _element.createElement)(_components.Button, toggleProps, (0, _element.createElement)(_components.__experimentalHStack, {
117
- justify: "flex-start"
118
- }, (0, _element.createElement)(_iconWithCurrentColor.IconWithCurrentColor, {
119
- icon: _icons.shadow,
120
- size: 24
121
- }), (0, _element.createElement)(_components.FlexItem, {
122
- className: "edit-site-global-styles__shadow-label"
123
- }, (0, _i18n.__)('Shadow'))));
124
- };
125
- }
126
-
127
- function ShadowPopoverContainer(_ref4) {
128
- let {
129
- shadow,
130
- onShadowChange
131
- } = _ref4;
132
- const [defaultShadows] = useGlobalSetting('shadow.presets.default');
133
- const [themeShadows] = useGlobalSetting('shadow.presets.theme');
134
- const [defaultPresetsEnabled] = useGlobalSetting('shadow.defaultPresets');
135
- const shadows = [...(defaultPresetsEnabled ? defaultShadows : []), ...(themeShadows || [])];
136
- return (0, _element.createElement)("div", {
137
- className: "edit-site-global-styles__shadow-panel"
138
- }, (0, _element.createElement)(_components.__experimentalVStack, {
139
- spacing: 4
140
- }, (0, _element.createElement)(_components.__experimentalHeading, {
141
- level: 5
142
- }, (0, _i18n.__)('Shadow')), (0, _element.createElement)(ShadowPresets, {
143
- presets: shadows,
144
- activeShadow: shadow,
145
- onSelect: onShadowChange
146
- })));
147
- }
148
-
149
- function ShadowPresets(_ref5) {
150
- let {
151
- presets,
152
- activeShadow,
153
- onSelect
154
- } = _ref5;
155
- return !presets ? null : (0, _element.createElement)(_components.__experimentalGrid, {
156
- columns: 6,
157
- gap: 0,
158
- align: "center",
159
- justify: "center"
160
- }, presets.map(_ref6 => {
161
- let {
162
- name,
163
- slug,
164
- shadow
165
- } = _ref6;
166
- return (0, _element.createElement)(ShadowIndicator, {
167
- key: slug,
168
- label: name,
169
- isActive: shadow === activeShadow,
170
- onSelect: () => onSelect(shadow === activeShadow ? undefined : shadow),
171
- shadow: shadow
172
- });
173
- }));
174
- }
175
-
176
- function ShadowIndicator(_ref7) {
177
- let {
178
- label,
179
- isActive,
180
- onSelect,
181
- shadow
182
- } = _ref7;
183
- return (0, _element.createElement)("div", {
184
- className: "edit-site-global-styles__shadow-indicator-wrapper"
185
- }, (0, _element.createElement)(_components.Button, {
186
- className: "edit-site-global-styles__shadow-indicator",
187
- onClick: onSelect,
188
- label: label,
189
- style: {
190
- boxShadow: shadow
191
- },
192
- showTooltip: true
193
- }, isActive && (0, _element.createElement)(_icons.Icon, {
194
- icon: _icons.check
195
- })));
196
- }
197
- //# sourceMappingURL=shadow-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/shadow-panel.js"],"names":["useGlobalSetting","useGlobalStyle","blockEditorPrivateApis","useHasShadowControl","name","supports","includes","ShadowPanel","variation","prefix","shadow","setShadow","userShadow","hasShadow","resetShadow","undefined","resetAll","ShadowPopover","onShadowChange","popoverProps","placement","offset","shift","renderShadowToggle","onToggle","isOpen","toggleProps","onClick","className","shadowIcon","ShadowPopoverContainer","defaultShadows","themeShadows","defaultPresetsEnabled","shadows","ShadowPresets","presets","activeShadow","onSelect","map","slug","ShadowIndicator","label","isActive","boxShadow","check"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalGrid as Grid,\n\t__experimentalHeading as Heading,\n\tFlexItem,\n\tDropdown,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { shadow as shadowIcon, Icon, check } from '@wordpress/icons';\nimport { useCallback } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { useSupportedStyles } from './hooks';\nimport { IconWithCurrentColor } from './icon-with-current-color';\nimport { unlock } from '../../private-apis';\n\nconst { useGlobalSetting, useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nexport function useHasShadowControl( name ) {\n\tconst supports = useSupportedStyles( name );\n\treturn supports.includes( 'shadow' );\n}\n\nexport default function ShadowPanel( { name, variation = '' } ) {\n\tconst prefix = variation ? `variations.${ variation }.` : '';\n\tconst [ shadow, setShadow ] = useGlobalStyle( `${ prefix }shadow`, name );\n\tconst [ userShadow ] = useGlobalStyle( `${ prefix }shadow`, name, 'user' );\n\tconst hasShadow = () => !! userShadow;\n\n\tconst resetShadow = useCallback(\n\t\t() => setShadow( undefined ),\n\t\t[ setShadow ]\n\t);\n\tconst resetAll = useCallback(\n\t\t() => resetShadow( undefined ),\n\t\t[ resetShadow ]\n\t);\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Shadow' ) } resetAll={ resetAll }>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\thasValue={ hasShadow }\n\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\tisShownByDefault\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t/>\n\t\t\t\t</ItemGroup>\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n}\n\nconst ShadowPopover = ( { shadow, onShadowChange } ) => {\n\tconst popoverProps = {\n\t\tplacement: 'left-start',\n\t\toffset: 36,\n\t\tshift: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"edit-site-global-styles__shadow-dropdown\"\n\t\t\trenderToggle={ renderShadowToggle() }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<ShadowPopoverContainer\n\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\tonShadowChange={ onShadowChange }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nfunction renderShadowToggle() {\n\treturn ( { onToggle, isOpen } ) => {\n\t\tconst toggleProps = {\n\t\t\tonClick: onToggle,\n\t\t\tclassName: classnames( { 'is-open': isOpen } ),\n\t\t\t'aria-expanded': isOpen,\n\t\t};\n\n\t\treturn (\n\t\t\t<Button { ...toggleProps }>\n\t\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t\t<IconWithCurrentColor icon={ shadowIcon } size={ 24 } />\n\t\t\t\t\t<FlexItem className=\"edit-site-global-styles__shadow-label\">\n\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\t\t\t</Button>\n\t\t);\n\t};\n}\n\nfunction ShadowPopoverContainer( { shadow, onShadowChange } ) {\n\tconst [ defaultShadows ] = useGlobalSetting( 'shadow.presets.default' );\n\tconst [ themeShadows ] = useGlobalSetting( 'shadow.presets.theme' );\n\tconst [ defaultPresetsEnabled ] = useGlobalSetting(\n\t\t'shadow.defaultPresets'\n\t);\n\n\tconst shadows = [\n\t\t...( defaultPresetsEnabled ? defaultShadows : [] ),\n\t\t...( themeShadows || [] ),\n\t];\n\n\treturn (\n\t\t<div className=\"edit-site-global-styles__shadow-panel\">\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<Heading level={ 5 }>{ __( 'Shadow' ) }</Heading>\n\t\t\t\t<ShadowPresets\n\t\t\t\t\tpresets={ shadows }\n\t\t\t\t\tactiveShadow={ shadow }\n\t\t\t\t\tonSelect={ onShadowChange }\n\t\t\t\t/>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nfunction ShadowPresets( { presets, activeShadow, onSelect } ) {\n\treturn ! presets ? null : (\n\t\t<Grid columns={ 6 } gap={ 0 } align=\"center\" justify=\"center\">\n\t\t\t{ presets.map( ( { name, slug, shadow } ) => (\n\t\t\t\t<ShadowIndicator\n\t\t\t\t\tkey={ slug }\n\t\t\t\t\tlabel={ name }\n\t\t\t\t\tisActive={ shadow === activeShadow }\n\t\t\t\t\tonSelect={ () =>\n\t\t\t\t\t\tonSelect( shadow === activeShadow ? undefined : shadow )\n\t\t\t\t\t}\n\t\t\t\t\tshadow={ shadow }\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</Grid>\n\t);\n}\n\nfunction ShadowIndicator( { label, isActive, onSelect, shadow } ) {\n\treturn (\n\t\t<div className=\"edit-site-global-styles__shadow-indicator-wrapper\">\n\t\t\t<Button\n\t\t\t\tclassName=\"edit-site-global-styles__shadow-indicator\"\n\t\t\t\tonClick={ onSelect }\n\t\t\t\tlabel={ label }\n\t\t\t\tstyle={ { boxShadow: shadow } }\n\t\t\t\tshowTooltip\n\t\t\t>\n\t\t\t\t{ isActive && <Icon icon={ check } /> }\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"]}
@@ -1,67 +0,0 @@
1
- import { createElement, Fragment } from "@wordpress/element";
2
-
3
- /**
4
- * WordPress dependencies
5
- */
6
- import { __ } from '@wordpress/i18n';
7
- import { __experimentalToolsPanel as ToolsPanel, DuotonePicker } from '@wordpress/components';
8
- import { privateApis as blockEditorPrivateApis, useSetting } from '@wordpress/block-editor';
9
- import { useMemo } from '@wordpress/element';
10
- /**
11
- * Internal dependencies
12
- */
13
-
14
- import { unlock } from '../../private-apis';
15
- const {
16
- useGlobalStyle
17
- } = unlock(blockEditorPrivateApis);
18
- const EMPTY_ARRAY = [];
19
-
20
- function useMultiOriginPresets(_ref) {
21
- let {
22
- presetSetting,
23
- defaultSetting
24
- } = _ref;
25
- const disableDefault = !useSetting(defaultSetting);
26
- const userPresets = useSetting(`${presetSetting}.custom`) || EMPTY_ARRAY;
27
- const themePresets = useSetting(`${presetSetting}.theme`) || EMPTY_ARRAY;
28
- const defaultPresets = useSetting(`${presetSetting}.default`) || EMPTY_ARRAY;
29
- return useMemo(() => [...userPresets, ...themePresets, ...(disableDefault ? EMPTY_ARRAY : defaultPresets)], [disableDefault, userPresets, themePresets, defaultPresets]);
30
- }
31
-
32
- function DuotonePanel(_ref2) {
33
- let {
34
- name
35
- } = _ref2;
36
- const [themeDuotone, setThemeDuotone] = useGlobalStyle('filter.duotone', name);
37
- const duotonePalette = useMultiOriginPresets({
38
- presetSetting: 'color.duotone',
39
- defaultSetting: 'color.defaultDuotone'
40
- });
41
- const colorPalette = useMultiOriginPresets({
42
- presetSetting: 'color.palette',
43
- defaultSetting: 'color.defaultPalette'
44
- });
45
-
46
- if ((duotonePalette === null || duotonePalette === void 0 ? void 0 : duotonePalette.length) === 0) {
47
- return null;
48
- }
49
-
50
- return createElement(Fragment, null, createElement(ToolsPanel, {
51
- label: __('Duotone')
52
- }, createElement("span", {
53
- className: "span-columns"
54
- }, __('Create a two-tone color effect without losing your original image.')), createElement("div", {
55
- className: "span-columns"
56
- }, createElement(DuotonePicker, {
57
- colorPalette: colorPalette,
58
- duotonePalette: duotonePalette,
59
- disableCustomColors: true,
60
- disableCustomDuotone: true,
61
- value: themeDuotone,
62
- onChange: setThemeDuotone
63
- }))));
64
- }
65
-
66
- export default DuotonePanel;
67
- //# sourceMappingURL=duotone-panel.js.map