@wordpress/block-editor 12.19.3 → 12.19.4

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 (98) hide show
  1. package/build/components/block-edit/context.js +2 -1
  2. package/build/components/block-edit/context.js.map +1 -1
  3. package/build/components/block-edit/index.js +8 -3
  4. package/build/components/block-edit/index.js.map +1 -1
  5. package/build/components/block-inspector/index.js +5 -4
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-preview/index.js +4 -0
  8. package/build/components/block-preview/index.js.map +1 -1
  9. package/build/components/global-styles/border-panel.js +21 -8
  10. package/build/components/global-styles/border-panel.js.map +1 -1
  11. package/build/components/global-styles/index.js +6 -0
  12. package/build/components/global-styles/index.js.map +1 -1
  13. package/build/components/global-styles/shadow-panel-components.js +80 -23
  14. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  15. package/build/components/inspector-controls-tabs/styles-tab.js +1 -1
  16. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  17. package/build/components/link-control/link-preview.js +4 -1
  18. package/build/components/link-control/link-preview.js.map +1 -1
  19. package/build/components/rich-text/index.js +45 -25
  20. package/build/components/rich-text/index.js.map +1 -1
  21. package/build/components/rich-text/use-enter.js +3 -0
  22. package/build/components/rich-text/use-enter.js.map +1 -1
  23. package/build/hooks/block-hooks.js +8 -6
  24. package/build/hooks/block-hooks.js.map +1 -1
  25. package/build/hooks/border.js +6 -4
  26. package/build/hooks/border.js.map +1 -1
  27. package/build/hooks/use-bindings-attributes.js +2 -4
  28. package/build/hooks/use-bindings-attributes.js.map +1 -1
  29. package/build/private-apis.js +3 -1
  30. package/build/private-apis.js.map +1 -1
  31. package/build/store/private-actions.js +0 -10
  32. package/build/store/private-actions.js.map +1 -1
  33. package/build/store/private-selectors.js +0 -8
  34. package/build/store/private-selectors.js.map +1 -1
  35. package/build/store/reducer.js +1 -16
  36. package/build/store/reducer.js.map +1 -1
  37. package/build-module/components/block-edit/context.js +1 -0
  38. package/build-module/components/block-edit/context.js.map +1 -1
  39. package/build-module/components/block-edit/index.js +9 -4
  40. package/build-module/components/block-edit/index.js.map +1 -1
  41. package/build-module/components/block-inspector/index.js +6 -5
  42. package/build-module/components/block-inspector/index.js.map +1 -1
  43. package/build-module/components/block-preview/index.js +4 -0
  44. package/build-module/components/block-preview/index.js.map +1 -1
  45. package/build-module/components/global-styles/border-panel.js +22 -10
  46. package/build-module/components/global-styles/border-panel.js.map +1 -1
  47. package/build-module/components/global-styles/index.js +1 -1
  48. package/build-module/components/global-styles/index.js.map +1 -1
  49. package/build-module/components/global-styles/shadow-panel-components.js +82 -24
  50. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  51. package/build-module/components/inspector-controls-tabs/styles-tab.js +2 -2
  52. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  53. package/build-module/components/link-control/link-preview.js +5 -2
  54. package/build-module/components/link-control/link-preview.js.map +1 -1
  55. package/build-module/components/rich-text/index.js +45 -26
  56. package/build-module/components/rich-text/index.js.map +1 -1
  57. package/build-module/components/rich-text/use-enter.js +3 -0
  58. package/build-module/components/rich-text/use-enter.js.map +1 -1
  59. package/build-module/hooks/block-hooks.js +8 -6
  60. package/build-module/hooks/block-hooks.js.map +1 -1
  61. package/build-module/hooks/border.js +7 -5
  62. package/build-module/hooks/border.js.map +1 -1
  63. package/build-module/hooks/use-bindings-attributes.js +3 -5
  64. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  65. package/build-module/private-apis.js +3 -1
  66. package/build-module/private-apis.js.map +1 -1
  67. package/build-module/store/private-actions.js +0 -9
  68. package/build-module/store/private-actions.js.map +1 -1
  69. package/build-module/store/private-selectors.js +0 -6
  70. package/build-module/store/private-selectors.js.map +1 -1
  71. package/build-module/store/reducer.js +1 -16
  72. package/build-module/store/reducer.js.map +1 -1
  73. package/build-style/style-rtl.css +47 -14
  74. package/build-style/style.css +47 -14
  75. package/package.json +7 -7
  76. package/src/components/block-edit/context.js +1 -0
  77. package/src/components/block-edit/index.js +5 -1
  78. package/src/components/block-inspector/index.js +7 -5
  79. package/src/components/block-preview/index.js +6 -1
  80. package/src/components/block-toolbar/style.scss +11 -6
  81. package/src/components/global-styles/border-panel.js +33 -22
  82. package/src/components/global-styles/index.js +5 -1
  83. package/src/components/global-styles/shadow-panel-components.js +92 -23
  84. package/src/components/global-styles/style.scss +33 -10
  85. package/src/components/inspector-controls-tabs/styles-tab.js +2 -2
  86. package/src/components/link-control/link-preview.js +9 -2
  87. package/src/components/link-control/style.scss +9 -0
  88. package/src/components/rich-text/index.js +74 -51
  89. package/src/components/rich-text/use-enter.js +4 -0
  90. package/src/components/url-popover/style.scss +1 -0
  91. package/src/hooks/block-hooks.js +10 -5
  92. package/src/hooks/block-hooks.scss +6 -0
  93. package/src/hooks/border.js +16 -4
  94. package/src/hooks/use-bindings-attributes.js +5 -7
  95. package/src/private-apis.js +2 -0
  96. package/src/store/private-actions.js +0 -10
  97. package/src/store/private-selectors.js +0 -8
  98. package/src/store/reducer.js +0 -15
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","hasBlockSupport","Edit","BlockEditContextProvider","useBlockEditContext","mayDisplayControlsKey","mayDisplayParentControlsKey","blockEditingModeKey","BlockEdit","mayDisplayControls","mayDisplayParentControls","blockEditingMode","props","name","isSelected","clientId","attributes","__unstableLayoutClassNames","layout","layoutSupport","createElement","value"],"sources":["@wordpress/block-editor/src/components/block-edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\nimport { hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport {\n\tBlockEditContextProvider,\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n\tblockEditingModeKey,\n} from './context';\n\n/**\n * The `useBlockEditContext` hook provides information about the block this hook is being used in.\n * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block.\n * It is useful if you want to create custom hooks that need access to the current blocks clientId\n * but don't want to rely on the data getting passed in as a parameter.\n *\n * @return {Object} Block edit context\n */\nexport { useBlockEditContext };\n\nexport default function BlockEdit( {\n\tmayDisplayControls,\n\tmayDisplayParentControls,\n\tblockEditingMode,\n\t// The remaining props are passed through the BlockEdit filters and are thus\n\t// public API!\n\t...props\n} ) {\n\tconst {\n\t\tname,\n\t\tisSelected,\n\t\tclientId,\n\t\tattributes = {},\n\t\t__unstableLayoutClassNames,\n\t} = props;\n\tconst { layout = null } = attributes;\n\tconst layoutSupport =\n\t\thasBlockSupport( name, 'layout', false ) ||\n\t\thasBlockSupport( name, '__experimentalLayout', false );\n\treturn (\n\t\t<BlockEditContextProvider\n\t\t\t// It is important to return the same object if props haven't\n\t\t\t// changed to avoid unnecessary rerenders.\n\t\t\t// See https://reactjs.org/docs/context.html#caveats.\n\t\t\tvalue={ useMemo(\n\t\t\t\t() => ( {\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayout: layoutSupport ? layout : null,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\t// We use symbols in favour of an __unstable prefix to avoid\n\t\t\t\t\t// usage outside of the package (this context is exposed).\n\t\t\t\t\t[ mayDisplayControlsKey ]: mayDisplayControls,\n\t\t\t\t\t[ mayDisplayParentControlsKey ]: mayDisplayParentControls,\n\t\t\t\t\t[ blockEditingModeKey ]: blockEditingMode,\n\t\t\t\t} ),\n\t\t\t\t[\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayoutSupport,\n\t\t\t\t\tlayout,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\tmayDisplayControls,\n\t\t\t\t\tmayDisplayParentControls,\n\t\t\t\t\tblockEditingMode,\n\t\t\t\t]\n\t\t\t) }\n\t\t>\n\t\t\t<Edit { ...props } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD;AACA;AACA;AACA,OAAOC,IAAI,MAAM,QAAQ;AACzB,SACCC,wBAAwB,EACxBC,mBAAmB,EACnBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,mBAAmB,QACb,WAAW;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASH,mBAAmB;AAE5B,eAAe,SAASI,SAASA,CAAE;EAClCC,kBAAkB;EAClBC,wBAAwB;EACxBC,gBAAgB;EAChB;EACA;EACA,GAAGC;AACJ,CAAC,EAAG;EACH,MAAM;IACLC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,UAAU,GAAG,CAAC,CAAC;IACfC;EACD,CAAC,GAAGL,KAAK;EACT,MAAM;IAAEM,MAAM,GAAG;EAAK,CAAC,GAAGF,UAAU;EACpC,MAAMG,aAAa,GAClBlB,eAAe,CAAEY,IAAI,EAAE,QAAQ,EAAE,KAAM,CAAC,IACxCZ,eAAe,CAAEY,IAAI,EAAE,sBAAsB,EAAE,KAAM,CAAC;EACvD,OACCO,aAAA,CAACjB;EACA;EACA;EACA;EAAA;IACAkB,KAAK,EAAGrB,OAAO,CACd,OAAQ;MACPa,IAAI;MACJC,UAAU;MACVC,QAAQ;MACRG,MAAM,EAAEC,aAAa,GAAGD,MAAM,GAAG,IAAI;MACrCD,0BAA0B;MAC1B;MACA;MACA,CAAEZ,qBAAqB,GAAII,kBAAkB;MAC7C,CAAEH,2BAA2B,GAAII,wBAAwB;MACzD,CAAEH,mBAAmB,GAAII;IAC1B,CAAC,CAAE,EACH,CACCE,IAAI,EACJC,UAAU,EACVC,QAAQ,EACRI,aAAa,EACbD,MAAM,EACND,0BAA0B,EAC1BR,kBAAkB,EAClBC,wBAAwB,EACxBC,gBAAgB,CAElB;EAAG,GAEHS,aAAA,CAAClB,IAAI;IAAA,GAAMU;EAAK,CAAI,CACK,CAAC;AAE7B"}
1
+ {"version":3,"names":["useMemo","hasBlockSupport","Edit","BlockEditContextProvider","useBlockEditContext","mayDisplayControlsKey","mayDisplayParentControlsKey","blockEditingModeKey","blockBindingsKey","BlockEdit","mayDisplayControls","mayDisplayParentControls","blockEditingMode","props","name","isSelected","clientId","attributes","__unstableLayoutClassNames","layout","metadata","bindings","layoutSupport","createElement","value"],"sources":["@wordpress/block-editor/src/components/block-edit/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\nimport { hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport {\n\tBlockEditContextProvider,\n\tuseBlockEditContext,\n\tmayDisplayControlsKey,\n\tmayDisplayParentControlsKey,\n\tblockEditingModeKey,\n\tblockBindingsKey,\n} from './context';\n\n/**\n * The `useBlockEditContext` hook provides information about the block this hook is being used in.\n * It returns an object with the `name`, `isSelected` state, and the `clientId` of the block.\n * It is useful if you want to create custom hooks that need access to the current blocks clientId\n * but don't want to rely on the data getting passed in as a parameter.\n *\n * @return {Object} Block edit context\n */\nexport { useBlockEditContext };\n\nexport default function BlockEdit( {\n\tmayDisplayControls,\n\tmayDisplayParentControls,\n\tblockEditingMode,\n\t// The remaining props are passed through the BlockEdit filters and are thus\n\t// public API!\n\t...props\n} ) {\n\tconst {\n\t\tname,\n\t\tisSelected,\n\t\tclientId,\n\t\tattributes = {},\n\t\t__unstableLayoutClassNames,\n\t} = props;\n\tconst { layout = null, metadata = {} } = attributes;\n\tconst { bindings } = metadata;\n\tconst layoutSupport =\n\t\thasBlockSupport( name, 'layout', false ) ||\n\t\thasBlockSupport( name, '__experimentalLayout', false );\n\treturn (\n\t\t<BlockEditContextProvider\n\t\t\t// It is important to return the same object if props haven't\n\t\t\t// changed to avoid unnecessary rerenders.\n\t\t\t// See https://reactjs.org/docs/context.html#caveats.\n\t\t\tvalue={ useMemo(\n\t\t\t\t() => ( {\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayout: layoutSupport ? layout : null,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\t// We use symbols in favour of an __unstable prefix to avoid\n\t\t\t\t\t// usage outside of the package (this context is exposed).\n\t\t\t\t\t[ mayDisplayControlsKey ]: mayDisplayControls,\n\t\t\t\t\t[ mayDisplayParentControlsKey ]: mayDisplayParentControls,\n\t\t\t\t\t[ blockEditingModeKey ]: blockEditingMode,\n\t\t\t\t\t[ blockBindingsKey ]: bindings,\n\t\t\t\t} ),\n\t\t\t\t[\n\t\t\t\t\tname,\n\t\t\t\t\tisSelected,\n\t\t\t\t\tclientId,\n\t\t\t\t\tlayoutSupport,\n\t\t\t\t\tlayout,\n\t\t\t\t\t__unstableLayoutClassNames,\n\t\t\t\t\tmayDisplayControls,\n\t\t\t\t\tmayDisplayParentControls,\n\t\t\t\t\tblockEditingMode,\n\t\t\t\t\tbindings,\n\t\t\t\t]\n\t\t\t) }\n\t\t>\n\t\t\t<Edit { ...props } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,eAAe,QAAQ,mBAAmB;AACnD;AACA;AACA;AACA,OAAOC,IAAI,MAAM,QAAQ;AACzB,SACCC,wBAAwB,EACxBC,mBAAmB,EACnBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,mBAAmB,EACnBC,gBAAgB,QACV,WAAW;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASJ,mBAAmB;AAE5B,eAAe,SAASK,SAASA,CAAE;EAClCC,kBAAkB;EAClBC,wBAAwB;EACxBC,gBAAgB;EAChB;EACA;EACA,GAAGC;AACJ,CAAC,EAAG;EACH,MAAM;IACLC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC,UAAU,GAAG,CAAC,CAAC;IACfC;EACD,CAAC,GAAGL,KAAK;EACT,MAAM;IAAEM,MAAM,GAAG,IAAI;IAAEC,QAAQ,GAAG,CAAC;EAAE,CAAC,GAAGH,UAAU;EACnD,MAAM;IAAEI;EAAS,CAAC,GAAGD,QAAQ;EAC7B,MAAME,aAAa,GAClBrB,eAAe,CAAEa,IAAI,EAAE,QAAQ,EAAE,KAAM,CAAC,IACxCb,eAAe,CAAEa,IAAI,EAAE,sBAAsB,EAAE,KAAM,CAAC;EACvD,OACCS,aAAA,CAACpB;EACA;EACA;EACA;EAAA;IACAqB,KAAK,EAAGxB,OAAO,CACd,OAAQ;MACPc,IAAI;MACJC,UAAU;MACVC,QAAQ;MACRG,MAAM,EAAEG,aAAa,GAAGH,MAAM,GAAG,IAAI;MACrCD,0BAA0B;MAC1B;MACA;MACA,CAAEb,qBAAqB,GAAIK,kBAAkB;MAC7C,CAAEJ,2BAA2B,GAAIK,wBAAwB;MACzD,CAAEJ,mBAAmB,GAAIK,gBAAgB;MACzC,CAAEJ,gBAAgB,GAAIa;IACvB,CAAC,CAAE,EACH,CACCP,IAAI,EACJC,UAAU,EACVC,QAAQ,EACRM,aAAa,EACbH,MAAM,EACND,0BAA0B,EAC1BR,kBAAkB,EAClBC,wBAAwB,EACxBC,gBAAgB,EAChBS,QAAQ,CAEV;EAAG,GAEHE,aAAA,CAACrB,IAAI;IAAA,GAAMW;EAAK,CAAI,CACK,CAAC;AAE7B"}
@@ -26,7 +26,7 @@ import PositionControls from '../inspector-controls-tabs/position-controls-panel
26
26
  import useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';
27
27
  import BlockInfo from '../block-info-slot-fill';
28
28
  import BlockQuickNavigation from '../block-quick-navigation';
29
- import { getBorderPanelLabel } from '../../hooks/border';
29
+ import { useBorderPanelLabel } from '../../hooks/border';
30
30
  function BlockInspectorLockedBlocks({
31
31
  topLevelLockedBlock
32
32
  }) {
@@ -90,6 +90,9 @@ const BlockInspector = ({
90
90
  // and its parent, and only enable it if the parent is controlling
91
91
  // its children blocks.
92
92
  const blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(blockType, selectedBlockClientId);
93
+ const borderPanelLabel = useBorderPanelLabel({
94
+ blockName: selectedBlockName
95
+ });
93
96
  if (count > 1) {
94
97
  return createElement("div", {
95
98
  className: "block-editor-block-inspector"
@@ -107,9 +110,7 @@ const BlockInspector = ({
107
110
  label: __('Dimensions')
108
111
  }), createElement(InspectorControls.Slot, {
109
112
  group: "border",
110
- label: getBorderPanelLabel({
111
- blockName: selectedBlockName
112
- })
113
+ label: borderPanelLabel
113
114
  }), createElement(InspectorControls.Slot, {
114
115
  group: "styles"
115
116
  })));
@@ -187,7 +188,7 @@ const BlockInspectorSingleBlock = ({
187
188
  return blockStyles && blockStyles.length > 0;
188
189
  }, [blockName]);
189
190
  const blockInformation = useBlockDisplayInformation(clientId);
190
- const borderPanelLabel = getBorderPanelLabel({
191
+ const borderPanelLabel = useBorderPanelLabel({
191
192
  blockName
192
193
  });
193
194
  return createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockInfo","BlockQuickNavigation","getBorderPanelLabel","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","filter","clientId","blockInformation","createElement","className","isSynced","blockClientId","Slot","length","title","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","name","showTabs","blockInspectorAnimationSettings","tabs","Fragment","group","label","blockName","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blockStyles","borderPanelLabel"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { getBorderPanelLabel } from '../../hooks/border';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( topLevelLockedBlock ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ contentClientIds.length > 0 && (\n\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly' ||\n\t\t\t\t_selectedBlockName === 'core/block'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ getBorderPanelLabel( {\n\t\t\t\t\t\t\t\tblockName: selectedBlockName,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = getBorderPanelLabel( { blockName } );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
1
+ {"version":3,"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__unstableMotion","motion","useSelect","SkipToSelectedBlock","BlockCard","MultiSelectionInspector","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockStyles","DefaultStylePicker","default","InspectorControls","InspectorControlsTabs","useInspectorControlsTabs","AdvancedControls","PositionControls","useBlockInspectorAnimationSettings","BlockInfo","BlockQuickNavigation","useBorderPanelLabel","BlockInspectorLockedBlocks","topLevelLockedBlock","contentClientIds","select","getClientIdsOfDescendants","getBlockName","getBlockEditingMode","filter","clientId","blockInformation","createElement","className","isSynced","blockClientId","Slot","length","title","clientIds","BlockInspector","showNoBlockSelectedMessage","count","selectedBlockName","selectedBlockClientId","blockType","getSelectedBlockClientId","getSelectedBlockCount","__unstableGetContentLockingParent","getTemplateLock","_selectedBlockClientId","_selectedBlockName","_blockType","undefined","availableTabs","name","showTabs","blockInspectorAnimationSettings","borderPanelLabel","blockName","tabs","Fragment","group","label","isSelectedBlockUnregistered","BlockInspectorSingleBlockWrapper","animate","wrapper","children","AnimatedContainer","BlockInspectorSingleBlock","animationOrigin","enterDirection","div","x","opacity","transition","ease","duration","initial","key","hasBlockStyles","getBlockStyles","blockStyles"],"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { PanelBody, __unstableMotion as motion } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\nimport BlockStyles from '../block-styles';\nimport DefaultStylePicker from '../default-style-picker';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { default as InspectorControlsTabs } from '../inspector-controls-tabs';\nimport useInspectorControlsTabs from '../inspector-controls-tabs/use-inspector-controls-tabs';\nimport AdvancedControls from '../inspector-controls-tabs/advanced-controls-panel';\nimport PositionControls from '../inspector-controls-tabs/position-controls-panel';\nimport useBlockInspectorAnimationSettings from './useBlockInspectorAnimationSettings';\nimport BlockInfo from '../block-info-slot-fill';\nimport BlockQuickNavigation from '../block-quick-navigation';\nimport { useBorderPanelLabel } from '../../hooks/border';\n\nfunction BlockInspectorLockedBlocks( { topLevelLockedBlock } ) {\n\tconst contentClientIds = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn getClientIdsOfDescendants( topLevelLockedBlock ).filter(\n\t\t\t\t( clientId ) =>\n\t\t\t\t\tgetBlockName( clientId ) !== 'core/list-item' &&\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ topLevelLockedBlock ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( topLevelLockedBlock );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ topLevelLockedBlock } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ contentClientIds.length > 0 && (\n\t\t\t\t<PanelBody title={ __( 'Content' ) }>\n\t\t\t\t\t<BlockQuickNavigation clientIds={ contentClientIds } />\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t\ttopLevelLockedBlock,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t\t__unstableGetContentLockingParent,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\ttopLevelLockedBlock:\n\t\t\t\t__unstableGetContentLockingParent( _selectedBlockClientId ) ||\n\t\t\t\t( getTemplateLock( _selectedBlockClientId ) === 'contentOnly' ||\n\t\t\t\t_selectedBlockName === 'core/block'\n\t\t\t\t\t? _selectedBlockClientId\n\t\t\t\t\t: undefined ),\n\t\t};\n\t}, [] );\n\n\tconst availableTabs = useInspectorControlsTabs( blockType?.name );\n\tconst showTabs = availableTabs?.length > 1;\n\n\t// The block inspector animation settings will be completely\n\t// removed in the future to create an API which allows the block\n\t// inspector to transition between what it\n\t// displays based on the relationship between the selected block\n\t// and its parent, and only enable it if the parent is controlling\n\t// its children blocks.\n\tconst blockInspectorAnimationSettings = useBlockInspectorAnimationSettings(\n\t\tblockType,\n\t\tselectedBlockClientId\n\t);\n\n\tconst borderPanelLabel = useBorderPanelLabel( {\n\t\tblockName: selectedBlockName,\n\t} );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t{ showTabs ? (\n\t\t\t\t\t<InspectorControlsTabs tabs={ availableTabs } />\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\tif ( topLevelLockedBlock ) {\n\t\treturn (\n\t\t\t<BlockInspectorLockedBlocks\n\t\t\t\ttopLevelLockedBlock={ topLevelLockedBlock }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<BlockInspectorSingleBlockWrapper\n\t\t\tanimate={ blockInspectorAnimationSettings }\n\t\t\twrapper={ ( children ) => (\n\t\t\t\t<AnimatedContainer\n\t\t\t\t\tblockInspectorAnimationSettings={\n\t\t\t\t\t\tblockInspectorAnimationSettings\n\t\t\t\t\t}\n\t\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</AnimatedContainer>\n\t\t\t) }\n\t\t>\n\t\t\t<BlockInspectorSingleBlock\n\t\t\t\tclientId={ selectedBlockClientId }\n\t\t\t\tblockName={ blockType.name }\n\t\t\t/>\n\t\t</BlockInspectorSingleBlockWrapper>\n\t);\n};\n\nconst BlockInspectorSingleBlockWrapper = ( { animate, wrapper, children } ) => {\n\treturn animate ? wrapper( children ) : children;\n};\n\nconst AnimatedContainer = ( {\n\tblockInspectorAnimationSettings,\n\tselectedBlockClientId,\n\tchildren,\n} ) => {\n\tconst animationOrigin =\n\t\tblockInspectorAnimationSettings &&\n\t\tblockInspectorAnimationSettings.enterDirection === 'leftToRight'\n\t\t\t? -50\n\t\t\t: 50;\n\n\treturn (\n\t\t<motion.div\n\t\t\tanimate={ {\n\t\t\t\tx: 0,\n\t\t\t\topacity: 1,\n\t\t\t\ttransition: {\n\t\t\t\t\tease: 'easeInOut',\n\t\t\t\t\tduration: 0.14,\n\t\t\t\t},\n\t\t\t} }\n\t\t\tinitial={ {\n\t\t\t\tx: animationOrigin,\n\t\t\t\topacity: 0,\n\t\t\t} }\n\t\t\tkey={ selectedBlockClientId }\n\t\t>\n\t\t\t{ children }\n\t\t</motion.div>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( { clientId, blockName } ) => {\n\tconst availableTabs = useInspectorControlsTabs( blockName );\n\tconst showTabs = availableTabs?.length > 1;\n\n\tconst hasBlockStyles = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockStyles } = select( blocksStore );\n\t\t\tconst blockStyles = getBlockStyles( blockName );\n\t\t\treturn blockStyles && blockStyles.length > 0;\n\t\t},\n\t\t[ blockName ]\n\t);\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst borderPanelLabel = useBorderPanelLabel( { blockName } );\n\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard\n\t\t\t\t{ ...blockInformation }\n\t\t\t\tclassName={ blockInformation.isSynced && 'is-synced' }\n\t\t\t/>\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t<BlockInfo.Slot />\n\t\t\t{ showTabs && (\n\t\t\t\t<InspectorControlsTabs\n\t\t\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\ttabs={ availableTabs }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showTabs && (\n\t\t\t\t<>\n\t\t\t\t\t{ hasBlockStyles && (\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t\t\t<BlockStyles clientId={ clientId } />\n\t\t\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t) && (\n\t\t\t\t\t\t\t\t\t<DefaultStylePicker\n\t\t\t\t\t\t\t\t\t\tblockName={ blockName }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t\t<InspectorControls.Slot group=\"list\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"color\"\n\t\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"typography\"\n\t\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"dimensions\"\n\t\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"border\"\n\t\t\t\t\t\tlabel={ borderPanelLabel }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls.Slot group=\"styles\" />\n\t\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t\tgroup=\"background\"\n\t\t\t\t\t\tlabel={ __( 'Background' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<PositionControls />\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<AdvancedControls />\n\t\t\t\t\t</div>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"],"mappings":"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"}
@@ -50,6 +50,8 @@ export function BlockPreview({
50
50
  const originalSettings = useSelect(select => select(blockEditorStore).getSettings(), []);
51
51
  const settings = useMemo(() => ({
52
52
  ...originalSettings,
53
+ focusMode: false,
54
+ // Disable "Spotlight mode".
53
55
  __unstableIsPreviewMode: true
54
56
  }), [originalSettings]);
55
57
  const renderedBlocks = useMemo(() => Array.isArray(blocks) ? blocks : [blocks], [blocks]);
@@ -104,6 +106,8 @@ export function useBlockPreview({
104
106
  ...originalSettings,
105
107
  styles: undefined,
106
108
  // Clear styles included by the parent settings, as they are already output by the parent's EditorStyles.
109
+ focusMode: false,
110
+ // Disable "Spotlight mode".
107
111
  __unstableIsPreviewMode: true
108
112
  }), [originalSettings]);
109
113
  const disabledRef = useDisabled();
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useDisabled","useMergeRefs","useSelect","memo","useMemo","deprecated","ExperimentalBlockEditorProvider","AutoHeightBlockPreview","EditorStyles","store","blockEditorStore","BlockListItems","BlockPreview","blocks","viewportWidth","minHeight","additionalStyles","__experimentalMinHeight","__experimentalPadding","since","version","alternative","css","originalSettings","select","getSettings","settings","__unstableIsPreviewMode","renderedBlocks","Array","isArray","length","createElement","value","useBlockPreview","props","layout","styles","undefined","disabledRef","ref","children","renderAppender","className"],"sources":["@wordpress/block-editor/src/components/block-preview/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useDisabled, useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { memo, useMemo } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { ExperimentalBlockEditorProvider } from '../provider';\nimport AutoHeightBlockPreview from './auto';\nimport EditorStyles from '../editor-styles';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockListItems } from '../block-list';\n\nexport function BlockPreview( {\n\tblocks,\n\tviewportWidth = 1200,\n\tminHeight,\n\tadditionalStyles = [],\n\t// Deprecated props:\n\t__experimentalMinHeight,\n\t__experimentalPadding,\n} ) {\n\tif ( __experimentalMinHeight ) {\n\t\tminHeight = __experimentalMinHeight;\n\t\tdeprecated( 'The __experimentalMinHeight prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'minHeight',\n\t\t} );\n\t}\n\tif ( __experimentalPadding ) {\n\t\tadditionalStyles = [\n\t\t\t...additionalStyles,\n\t\t\t{ css: `body { padding: ${ __experimentalPadding }px; }` },\n\t\t];\n\t\tdeprecated( 'The __experimentalPadding prop of BlockPreview', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'additionalStyles',\n\t\t} );\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() => ( { ...originalSettings, __unstableIsPreviewMode: true } ),\n\t\t[ originalSettings ]\n\t);\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<AutoHeightBlockPreview\n\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t/>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {Component} The component to be rendered.\n */\nexport default memo( BlockPreview );\n\n/**\n * This hook is used to lightly mark an element as a block preview wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * a block preview wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} options Preview options.\n * @param {WPBlock[]} options.blocks Block objects.\n * @param {Object} options.props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options.layout Layout settings to be used in the preview.\n */\nexport function useBlockPreview( { blocks, props = {}, layout } ) {\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\tstyles: undefined, // Clear styles included by the parent settings, as they are already output by the parent's EditorStyles.\n\t\t\t__unstableIsPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\tconst disabledRef = useDisabled();\n\tconst ref = useMergeRefs( [ props.ref, disabledRef ] );\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst children = (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<EditorStyles />\n\t\t\t<BlockListItems renderAppender={ false } layout={ layout } />\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: classnames(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-preview__live-content',\n\t\t\t'components-disabled'\n\t\t),\n\t\tchildren: blocks?.length ? children : null,\n\t};\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,WAAW,EAAEC,YAAY,QAAQ,oBAAoB;AAC9D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,IAAI,EAAEC,OAAO,QAAQ,oBAAoB;AAClD,OAAOC,UAAU,MAAM,uBAAuB;;AAE9C;AACA;AACA;AACA,SAASC,+BAA+B,QAAQ,aAAa;AAC7D,OAAOC,sBAAsB,MAAM,QAAQ;AAC3C,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,cAAc,QAAQ,eAAe;AAE9C,OAAO,SAASC,YAAYA,CAAE;EAC7BC,MAAM;EACNC,aAAa,GAAG,IAAI;EACpBC,SAAS;EACTC,gBAAgB,GAAG,EAAE;EACrB;EACAC,uBAAuB;EACvBC;AACD,CAAC,EAAG;EACH,IAAKD,uBAAuB,EAAG;IAC9BF,SAAS,GAAGE,uBAAuB;IACnCZ,UAAU,CAAE,kCAAkC,EAAE;MAC/Cc,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EACA,IAAKH,qBAAqB,EAAG;IAC5BF,gBAAgB,GAAG,CAClB,GAAGA,gBAAgB,EACnB;MAAEM,GAAG,EAAG,mBAAmBJ,qBAAuB;IAAO,CAAC,CAC1D;IACDb,UAAU,CAAE,gDAAgD,EAAE;MAC7Dc,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EAEA,MAAME,gBAAgB,GAAGrB,SAAS,CAC/BsB,MAAM,IAAMA,MAAM,CAAEd,gBAAiB,CAAC,CAACe,WAAW,CAAC,CAAC,EACtD,EACD,CAAC;EACD,MAAMC,QAAQ,GAAGtB,OAAO,CACvB,OAAQ;IAAE,GAAGmB,gBAAgB;IAAEI,uBAAuB,EAAE;EAAK,CAAC,CAAE,EAChE,CAAEJ,gBAAgB,CACnB,CAAC;EACD,MAAMK,cAAc,GAAGxB,OAAO,CAC7B,MAAQyB,KAAK,CAACC,OAAO,CAAEjB,MAAO,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAI,EACvD,CAAEA,MAAM,CACT,CAAC;EAED,IAAK,CAAEA,MAAM,IAAIA,MAAM,CAACkB,MAAM,KAAK,CAAC,EAAG;IACtC,OAAO,IAAI;EACZ;EAEA,OACCC,aAAA,CAAC1B,+BAA+B;IAC/B2B,KAAK,EAAGL,cAAgB;IACxBF,QAAQ,EAAGA;EAAU,GAErBM,aAAA,CAACzB,sBAAsB;IACtBO,aAAa,EAAGA,aAAe;IAC/BC,SAAS,EAAGA,SAAW;IACvBC,gBAAgB,EAAGA;EAAkB,CACrC,CAC+B,CAAC;AAEpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeb,IAAI,CAAES,YAAa,CAAC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASsB,eAAeA,CAAE;EAAErB,MAAM;EAAEsB,KAAK,GAAG,CAAC,CAAC;EAAEC;AAAO,CAAC,EAAG;EACjE,MAAMb,gBAAgB,GAAGrB,SAAS,CAC/BsB,MAAM,IAAMA,MAAM,CAAEd,gBAAiB,CAAC,CAACe,WAAW,CAAC,CAAC,EACtD,EACD,CAAC;EACD,MAAMC,QAAQ,GAAGtB,OAAO,CACvB,OAAQ;IACP,GAAGmB,gBAAgB;IACnBc,MAAM,EAAEC,SAAS;IAAE;IACnBX,uBAAuB,EAAE;EAC1B,CAAC,CAAE,EACH,CAAEJ,gBAAgB,CACnB,CAAC;EACD,MAAMgB,WAAW,GAAGvC,WAAW,CAAC,CAAC;EACjC,MAAMwC,GAAG,GAAGvC,YAAY,CAAE,CAAEkC,KAAK,CAACK,GAAG,EAAED,WAAW,CAAG,CAAC;EACtD,MAAMX,cAAc,GAAGxB,OAAO,CAC7B,MAAQyB,KAAK,CAACC,OAAO,CAAEjB,MAAO,CAAC,GAAGA,MAAM,GAAG,CAAEA,MAAM,CAAI,EACvD,CAAEA,MAAM,CACT,CAAC;EAED,MAAM4B,QAAQ,GACbT,aAAA,CAAC1B,+BAA+B;IAC/B2B,KAAK,EAAGL,cAAgB;IACxBF,QAAQ,EAAGA;EAAU,GAErBM,aAAA,CAACxB,YAAY,MAAE,CAAC,EAChBwB,aAAA,CAACrB,cAAc;IAAC+B,cAAc,EAAG,KAAO;IAACN,MAAM,EAAGA;EAAQ,CAAE,CAC5B,CACjC;EAED,OAAO;IACN,GAAGD,KAAK;IACRK,GAAG;IACHG,SAAS,EAAE5C,UAAU,CACpBoC,KAAK,CAACQ,SAAS,EACf,0CAA0C,EAC1C,qBACD,CAAC;IACDF,QAAQ,EAAE5B,MAAM,EAAEkB,MAAM,GAAGU,QAAQ,GAAG;EACvC,CAAC;AACF"}
1
+ {"version":3,"names":["classnames","useDisabled","useMergeRefs","useSelect","memo","useMemo","deprecated","ExperimentalBlockEditorProvider","AutoHeightBlockPreview","EditorStyles","store","blockEditorStore","BlockListItems","BlockPreview","blocks","viewportWidth","minHeight","additionalStyles","__experimentalMinHeight","__experimentalPadding","since","version","alternative","css","originalSettings","select","getSettings","settings","focusMode","__unstableIsPreviewMode","renderedBlocks","Array","isArray","length","createElement","value","useBlockPreview","props","layout","styles","undefined","disabledRef","ref","children","renderAppender","className"],"sources":["@wordpress/block-editor/src/components/block-preview/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useDisabled, useMergeRefs } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { memo, useMemo } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { ExperimentalBlockEditorProvider } from '../provider';\nimport AutoHeightBlockPreview from './auto';\nimport EditorStyles from '../editor-styles';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockListItems } from '../block-list';\n\nexport function BlockPreview( {\n\tblocks,\n\tviewportWidth = 1200,\n\tminHeight,\n\tadditionalStyles = [],\n\t// Deprecated props:\n\t__experimentalMinHeight,\n\t__experimentalPadding,\n} ) {\n\tif ( __experimentalMinHeight ) {\n\t\tminHeight = __experimentalMinHeight;\n\t\tdeprecated( 'The __experimentalMinHeight prop', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'minHeight',\n\t\t} );\n\t}\n\tif ( __experimentalPadding ) {\n\t\tadditionalStyles = [\n\t\t\t...additionalStyles,\n\t\t\t{ css: `body { padding: ${ __experimentalPadding }px; }` },\n\t\t];\n\t\tdeprecated( 'The __experimentalPadding prop of BlockPreview', {\n\t\t\tsince: '6.2',\n\t\t\tversion: '6.4',\n\t\t\talternative: 'additionalStyles',\n\t\t} );\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\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\t__unstableIsPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tif ( ! blocks || blocks.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<AutoHeightBlockPreview\n\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t/>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {Component} The component to be rendered.\n */\nexport default memo( BlockPreview );\n\n/**\n * This hook is used to lightly mark an element as a block preview wrapper\n * element. Call this hook and pass the returned props to the element to mark as\n * a block preview wrapper, automatically rendering inner blocks as children. If\n * you define a ref for the element, it is important to pass the ref to this\n * hook, which the hook in turn will pass to the component through the props it\n * returns. Optionally, you can also pass any other props through this hook, and\n * they will be merged and returned.\n *\n * @param {Object} options Preview options.\n * @param {WPBlock[]} options.blocks Block objects.\n * @param {Object} options.props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options.layout Layout settings to be used in the preview.\n */\nexport function useBlockPreview( { blocks, props = {}, layout } ) {\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\tstyles: undefined, // Clear styles included by the parent settings, as they are already output by the parent's EditorStyles.\n\t\t\tfocusMode: false, // Disable \"Spotlight mode\".\n\t\t\t__unstableIsPreviewMode: true,\n\t\t} ),\n\t\t[ originalSettings ]\n\t);\n\tconst disabledRef = useDisabled();\n\tconst ref = useMergeRefs( [ props.ref, disabledRef ] );\n\tconst renderedBlocks = useMemo(\n\t\t() => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),\n\t\t[ blocks ]\n\t);\n\n\tconst children = (\n\t\t<ExperimentalBlockEditorProvider\n\t\t\tvalue={ renderedBlocks }\n\t\t\tsettings={ settings }\n\t\t>\n\t\t\t<EditorStyles />\n\t\t\t<BlockListItems renderAppender={ false } layout={ layout } />\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n\n\treturn {\n\t\t...props,\n\t\tref,\n\t\tclassName: classnames(\n\t\t\tprops.className,\n\t\t\t'block-editor-block-preview__live-content',\n\t\t\t'components-disabled'\n\t\t),\n\t\tchildren: blocks?.length ? children : null,\n\t};\n}\n"],"mappings":"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"}
@@ -14,15 +14,22 @@ import { useColorsPerOrigin } from './hooks';
14
14
  import { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';
15
15
  import { overrideOrigins } from '../../store/get-block-settings';
16
16
  import { setImmutably } from '../../utils/object';
17
- import { getBorderPanelLabel } from '../../hooks/border';
18
- import { ShadowPopover } from './shadow-panel-components';
19
- function useHasShadowControl(settings) {
20
- return !!settings?.shadow;
21
- }
17
+ import { useBorderPanelLabel } from '../../hooks/border';
18
+ import { ShadowPopover, useShadowPresets } from './shadow-panel-components';
22
19
  export function useHasBorderPanel(settings) {
23
- const controls = [useHasBorderColorControl(settings), useHasBorderRadiusControl(settings), useHasBorderStyleControl(settings), useHasBorderWidthControl(settings), useHasShadowControl(settings)];
20
+ const controls = Object.values(useHasBorderPanelControls(settings));
24
21
  return controls.some(Boolean);
25
22
  }
23
+ export function useHasBorderPanelControls(settings) {
24
+ const controls = {
25
+ hasBorderColor: useHasBorderColorControl(settings),
26
+ hasBorderRadius: useHasBorderRadiusControl(settings),
27
+ hasBorderStyle: useHasBorderStyleControl(settings),
28
+ hasBorderWidth: useHasBorderWidthControl(settings),
29
+ hasShadow: useHasShadowControl(settings)
30
+ };
31
+ return controls;
32
+ }
26
33
  function useHasBorderColorControl(settings) {
27
34
  return settings?.border?.color;
28
35
  }
@@ -35,6 +42,10 @@ function useHasBorderStyleControl(settings) {
35
42
  function useHasBorderWidthControl(settings) {
36
43
  return settings?.border?.width;
37
44
  }
45
+ function useHasShadowControl(settings) {
46
+ const shadows = useShadowPresets(settings);
47
+ return !!settings?.shadow && shadows.length > 0;
48
+ }
38
49
  function BorderToolsPanel({
39
50
  resetAllFilter,
40
51
  onChange,
@@ -181,10 +192,11 @@ export default function BorderPanel({
181
192
  };
182
193
  }, []);
183
194
  const showBorderByDefault = defaultControls?.color || defaultControls?.width;
184
- const label = getBorderPanelLabel({
195
+ const hasBorderControl = showBorderColor || showBorderStyle || showBorderWidth || showBorderRadius;
196
+ const label = useBorderPanelLabel({
185
197
  blockName: name,
186
198
  hasShadowControl,
187
- hasBorderControl: showBorderColor || showBorderStyle || showBorderWidth || showBorderRadius
199
+ hasBorderControl
188
200
  });
189
201
  return createElement(Wrapper, {
190
202
  resetAllFilter: resetAllFilter,
@@ -227,9 +239,9 @@ export default function BorderPanel({
227
239
  onDeselect: resetShadow,
228
240
  isShownByDefault: defaultControls.shadow,
229
241
  panelId: panelId
230
- }, createElement(BaseControl.VisualLabel, {
242
+ }, hasBorderControl ? createElement(BaseControl.VisualLabel, {
231
243
  as: "legend"
232
- }, __('Shadow')), createElement(ItemGroup, {
244
+ }, __('Shadow')) : null, createElement(ItemGroup, {
233
245
  isBordered: true,
234
246
  isSeparated: true
235
247
  }, createElement(ShadowPopover, {
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalBorderBoxControl","BorderBoxControl","__experimentalHasSplitBorders","hasSplitBorders","__experimentalIsDefinedBorder","isDefinedBorder","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","BaseControl","useCallback","useMemo","__","BorderRadiusControl","useColorsPerOrigin","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","overrideOrigins","setImmutably","getBorderPanelLabel","ShadowPopover","useHasShadowControl","settings","shadow","useHasBorderPanel","controls","useHasBorderColorControl","useHasBorderRadiusControl","useHasBorderStyleControl","useHasBorderWidthControl","some","Boolean","border","color","radius","style","width","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","resetAll","updatedValue","createElement","dropdownMenuProps","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_overrideOrigins","colors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","hasBorderRadius","borderValues","Object","entries","hasShadowControl","shadowPresets","presets","overriddenShadowPresets","setShadow","newValue","shadowName","hasShadow","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","blockName","hasBorderControl","hasValue","onDeselect","isShownByDefault","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","values","VisualLabel","isBordered","isSeparated","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { overrideOrigins } from '../../store/get-block-settings';\nimport { setImmutably } from '../../utils/object';\nimport { getBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover } from './shadow-panel-components';\n\nfunction useHasShadowControl( settings ) {\n\treturn !! settings?.shadow;\n}\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = [\n\t\tuseHasBorderColorControl( settings ),\n\t\tuseHasBorderRadiusControl( settings ),\n\t\tuseHasBorderStyleControl( settings ),\n\t\tuseHasBorderWidthControl( settings ),\n\t\tuseHasShadowControl( settings ),\n\t];\n\n\treturn controls.some( Boolean );\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: false,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst overriddenShadowPresets = overrideOrigins( shadowPresets ) ?? [];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = overriddenShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst label = getBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl:\n\t\t\tshowBorderColor ||\n\t\t\tshowBorderStyle ||\n\t\t\tshowBorderWidth ||\n\t\t\tshowBorderRadius,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["__experimentalBorderBoxControl","BorderBoxControl","__experimentalHasSplitBorders","hasSplitBorders","__experimentalIsDefinedBorder","isDefinedBorder","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__experimentalItemGroup","ItemGroup","BaseControl","useCallback","useMemo","__","BorderRadiusControl","useColorsPerOrigin","getValueFromVariable","TOOLSPANEL_DROPDOWNMENU_PROPS","overrideOrigins","setImmutably","useBorderPanelLabel","ShadowPopover","useShadowPresets","useHasBorderPanel","settings","controls","Object","values","useHasBorderPanelControls","some","Boolean","hasBorderColor","useHasBorderColorControl","hasBorderRadius","useHasBorderRadiusControl","hasBorderStyle","useHasBorderStyleControl","hasBorderWidth","useHasBorderWidthControl","hasShadow","useHasShadowControl","border","color","radius","style","width","shadows","shadow","length","BorderToolsPanel","resetAllFilter","onChange","value","panelId","children","label","resetAll","updatedValue","createElement","dropdownMenuProps","DEFAULT_CONTROLS","BorderPanel","as","Wrapper","inheritedValue","name","defaultControls","_settings$shadow$pres","_overrideOrigins","colors","decodeValue","rawValue","encodeColorValue","colorValue","allColors","flatMap","originColors","colorObject","find","slug","borderValue","forEach","side","undefined","setBorder","newBorder","showBorderColor","showBorderStyle","showBorderWidth","showBorderRadius","borderRadiusValues","setBorderRadius","newBorderRadius","borderValues","entries","hasShadowControl","shadowPresets","presets","overriddenShadowPresets","setShadow","newValue","shadowName","resetShadow","resetBorder","onBorderChange","updatedBorder","previousValue","showBorderByDefault","hasBorderControl","blockName","hasValue","onDeselect","isShownByDefault","enableAlpha","enableStyle","popoverOffset","popoverPlacement","__experimentalIsRenderedInSidebar","size","hideLabelFromVision","VisualLabel","isBordered","isSeparated","onShadowChange"],"sources":["@wordpress/block-editor/src/components/global-styles/border-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalBorderBoxControl as BorderBoxControl,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n\t__experimentalIsDefinedBorder as isDefinedBorder,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalItemGroup as ItemGroup,\n\tBaseControl,\n} from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BorderRadiusControl from '../border-radius-control';\nimport { useColorsPerOrigin } from './hooks';\nimport { getValueFromVariable, TOOLSPANEL_DROPDOWNMENU_PROPS } from './utils';\nimport { overrideOrigins } from '../../store/get-block-settings';\nimport { setImmutably } from '../../utils/object';\nimport { useBorderPanelLabel } from '../../hooks/border';\nimport { ShadowPopover, useShadowPresets } from './shadow-panel-components';\n\nexport function useHasBorderPanel( settings ) {\n\tconst controls = Object.values( useHasBorderPanelControls( settings ) );\n\treturn controls.some( Boolean );\n}\n\nexport function useHasBorderPanelControls( settings ) {\n\tconst controls = {\n\t\thasBorderColor: useHasBorderColorControl( settings ),\n\t\thasBorderRadius: useHasBorderRadiusControl( settings ),\n\t\thasBorderStyle: useHasBorderStyleControl( settings ),\n\t\thasBorderWidth: useHasBorderWidthControl( settings ),\n\t\thasShadow: useHasShadowControl( settings ),\n\t};\n\n\treturn controls;\n}\n\nfunction useHasBorderColorControl( settings ) {\n\treturn settings?.border?.color;\n}\n\nfunction useHasBorderRadiusControl( settings ) {\n\treturn settings?.border?.radius;\n}\n\nfunction useHasBorderStyleControl( settings ) {\n\treturn settings?.border?.style;\n}\n\nfunction useHasBorderWidthControl( settings ) {\n\treturn settings?.border?.width;\n}\n\nfunction useHasShadowControl( settings ) {\n\tconst shadows = useShadowPresets( settings );\n\treturn !! settings?.shadow && shadows.length > 0;\n}\n\nfunction BorderToolsPanel( {\n\tresetAllFilter,\n\tonChange,\n\tvalue,\n\tpanelId,\n\tchildren,\n\tlabel,\n} ) {\n\tconst resetAll = () => {\n\t\tconst updatedValue = resetAllFilter( value );\n\t\tonChange( updatedValue );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tpanelId={ panelId }\n\t\t\tdropdownMenuProps={ TOOLSPANEL_DROPDOWNMENU_PROPS }\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n\nconst DEFAULT_CONTROLS = {\n\tradius: true,\n\tcolor: true,\n\twidth: true,\n\tshadow: false,\n};\n\nexport default function BorderPanel( {\n\tas: Wrapper = BorderToolsPanel,\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tpanelId,\n\tname,\n\tdefaultControls = DEFAULT_CONTROLS,\n} ) {\n\tconst colors = useColorsPerOrigin( settings );\n\tconst decodeValue = useCallback(\n\t\t( rawValue ) => getValueFromVariable( { settings }, '', rawValue ),\n\t\t[ settings ]\n\t);\n\tconst encodeColorValue = ( colorValue ) => {\n\t\tconst allColors = colors.flatMap(\n\t\t\t( { colors: originColors } ) => originColors\n\t\t);\n\t\tconst colorObject = allColors.find(\n\t\t\t( { color } ) => color === colorValue\n\t\t);\n\t\treturn colorObject\n\t\t\t? 'var:preset|color|' + colorObject.slug\n\t\t\t: colorValue;\n\t};\n\tconst border = useMemo( () => {\n\t\tif ( hasSplitBorders( inheritedValue?.border ) ) {\n\t\t\tconst borderValue = { ...inheritedValue?.border };\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tborderValue[ side ] = {\n\t\t\t\t\t...borderValue[ side ],\n\t\t\t\t\tcolor: decodeValue( borderValue[ side ]?.color ),\n\t\t\t\t};\n\t\t\t} );\n\t\t\treturn borderValue;\n\t\t}\n\t\treturn {\n\t\t\t...inheritedValue?.border,\n\t\t\tcolor: inheritedValue?.border?.color\n\t\t\t\t? decodeValue( inheritedValue?.border?.color )\n\t\t\t\t: undefined,\n\t\t};\n\t}, [ inheritedValue?.border, decodeValue ] );\n\tconst setBorder = ( newBorder ) =>\n\t\tonChange( { ...value, border: newBorder } );\n\tconst showBorderColor = useHasBorderColorControl( settings );\n\tconst showBorderStyle = useHasBorderStyleControl( settings );\n\tconst showBorderWidth = useHasBorderWidthControl( settings );\n\n\t// Border radius.\n\tconst showBorderRadius = useHasBorderRadiusControl( settings );\n\tconst borderRadiusValues = decodeValue( border?.radius );\n\tconst setBorderRadius = ( newBorderRadius ) =>\n\t\tsetBorder( { ...border, radius: newBorderRadius } );\n\tconst hasBorderRadius = () => {\n\t\tconst borderValues = value?.border?.radius;\n\t\tif ( typeof borderValues === 'object' ) {\n\t\t\treturn Object.entries( borderValues ).some( Boolean );\n\t\t}\n\t\treturn !! borderValues;\n\t};\n\tconst hasShadowControl = useHasShadowControl( settings );\n\n\t// Shadow\n\tconst shadow = decodeValue( inheritedValue?.shadow );\n\tconst shadowPresets = settings?.shadow?.presets ?? {};\n\tconst overriddenShadowPresets = overrideOrigins( shadowPresets ) ?? [];\n\tconst setShadow = ( newValue ) => {\n\t\tconst slug = overriddenShadowPresets?.find(\n\t\t\t( { shadow: shadowName } ) => shadowName === newValue\n\t\t)?.slug;\n\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tvalue,\n\t\t\t\t[ 'shadow' ],\n\t\t\t\tslug ? `var:preset|shadow|${ slug }` : newValue || undefined\n\t\t\t)\n\t\t);\n\t};\n\tconst hasShadow = () => !! value?.shadow;\n\tconst resetShadow = () => setShadow( undefined );\n\n\tconst resetBorder = () => {\n\t\tif ( hasBorderRadius() ) {\n\t\t\treturn setBorder( { radius: value?.border?.radius } );\n\t\t}\n\n\t\tsetBorder( undefined );\n\t};\n\n\tconst onBorderChange = ( newBorder ) => {\n\t\t// Ensure we have a visible border style when a border width or\n\t\t// color is being selected.\n\t\tconst updatedBorder = { ...newBorder };\n\n\t\tif ( hasSplitBorders( updatedBorder ) ) {\n\t\t\t[ 'top', 'right', 'bottom', 'left' ].forEach( ( side ) => {\n\t\t\t\tif ( updatedBorder[ side ] ) {\n\t\t\t\t\tupdatedBorder[ side ] = {\n\t\t\t\t\t\t...updatedBorder[ side ],\n\t\t\t\t\t\tcolor: encodeColorValue( updatedBorder[ side ]?.color ),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} );\n\t\t} else if ( updatedBorder ) {\n\t\t\tupdatedBorder.color = encodeColorValue( updatedBorder.color );\n\t\t}\n\n\t\t// As radius is maintained separately to color, style, and width\n\t\t// maintain its value. Undefined values here will be cleaned when\n\t\t// global styles are saved.\n\t\tsetBorder( { radius: border?.radius, ...updatedBorder } );\n\t};\n\n\tconst resetAllFilter = useCallback( ( previousValue ) => {\n\t\treturn {\n\t\t\t...previousValue,\n\t\t\tborder: undefined,\n\t\t\tshadow: undefined,\n\t\t};\n\t}, [] );\n\n\tconst showBorderByDefault =\n\t\tdefaultControls?.color || defaultControls?.width;\n\n\tconst hasBorderControl =\n\t\tshowBorderColor ||\n\t\tshowBorderStyle ||\n\t\tshowBorderWidth ||\n\t\tshowBorderRadius;\n\n\tconst label = useBorderPanelLabel( {\n\t\tblockName: name,\n\t\thasShadowControl,\n\t\thasBorderControl,\n\t} );\n\n\treturn (\n\t\t<Wrapper\n\t\t\tresetAllFilter={ resetAllFilter }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tpanelId={ panelId }\n\t\t\tlabel={ label }\n\t\t>\n\t\t\t{ ( showBorderWidth || showBorderColor ) && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => isDefinedBorder( value?.border ) }\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\tonDeselect={ () => resetBorder() }\n\t\t\t\t\tisShownByDefault={ showBorderByDefault }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderBoxControl\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tenableAlpha={ true }\n\t\t\t\t\t\tenableStyle={ showBorderStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpopoverOffset={ 40 }\n\t\t\t\t\t\tpopoverPlacement=\"left-start\"\n\t\t\t\t\t\tvalue={ border }\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={ true }\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t\thideLabelFromVision={ ! hasShadowControl }\n\t\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showBorderRadius && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasBorderRadius }\n\t\t\t\t\tlabel={ __( 'Radius' ) }\n\t\t\t\t\tonDeselect={ () => setBorderRadius( undefined ) }\n\t\t\t\t\tisShownByDefault={ defaultControls.radius }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t<BorderRadiusControl\n\t\t\t\t\t\tvalues={ borderRadiusValues }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tsetBorderRadius( newValue || undefined );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ hasShadowControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tlabel={ __( 'Shadow' ) }\n\t\t\t\t\thasValue={ hasShadow }\n\t\t\t\t\tonDeselect={ resetShadow }\n\t\t\t\t\tisShownByDefault={ defaultControls.shadow }\n\t\t\t\t\tpanelId={ panelId }\n\t\t\t\t>\n\t\t\t\t\t{ hasBorderControl ? (\n\t\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t\t{ __( 'Shadow' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t) : null }\n\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t<ShadowPopover\n\t\t\t\t\t\t\tshadow={ shadow }\n\t\t\t\t\t\t\tonShadowChange={ setShadow }\n\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</Wrapper>\n\t);\n}\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ export { getLayoutStyles, useGlobalStylesOutput, useGlobalStylesOutputWithConfig
4
4
  export { GlobalStylesContext } from './context';
5
5
  export { default as TypographyPanel, useHasTypographyPanel } from './typography-panel';
6
6
  export { default as DimensionsPanel, useHasDimensionsPanel } from './dimensions-panel';
7
- export { default as BorderPanel, useHasBorderPanel } from './border-panel';
7
+ export { default as BorderPanel, useHasBorderPanel, useHasBorderPanelControls } from './border-panel';
8
8
  export { default as ColorPanel, useHasColorPanel } from './color-panel';
9
9
  export { default as FiltersPanel, useHasFiltersPanel } from './filters-panel';
10
10
  export { default as ImageSettingsPanel, useHasImageSettingsPanel } from './image-settings-panel';
@@ -1 +1 @@
1
- {"version":3,"names":["useGlobalStylesReset","useGlobalSetting","useGlobalStyle","useSettingsForBlockElement","getBlockCSSSelector","getLayoutStyles","useGlobalStylesOutput","useGlobalStylesOutputWithConfig","GlobalStylesContext","default","TypographyPanel","useHasTypographyPanel","DimensionsPanel","useHasDimensionsPanel","BorderPanel","useHasBorderPanel","ColorPanel","useHasColorPanel","FiltersPanel","useHasFiltersPanel","ImageSettingsPanel","useHasImageSettingsPanel","AdvancedPanel","areGlobalStyleConfigsEqual","getGlobalStylesChanges"],"sources":["@wordpress/block-editor/src/components/global-styles/index.js"],"sourcesContent":["export {\n\tuseGlobalStylesReset,\n\tuseGlobalSetting,\n\tuseGlobalStyle,\n\tuseSettingsForBlockElement,\n} from './hooks';\nexport { getBlockCSSSelector } from './get-block-css-selector';\nexport {\n\tgetLayoutStyles,\n\tuseGlobalStylesOutput,\n\tuseGlobalStylesOutputWithConfig,\n} from './use-global-styles-output';\nexport { GlobalStylesContext } from './context';\nexport {\n\tdefault as TypographyPanel,\n\tuseHasTypographyPanel,\n} from './typography-panel';\nexport {\n\tdefault as DimensionsPanel,\n\tuseHasDimensionsPanel,\n} from './dimensions-panel';\nexport { default as BorderPanel, useHasBorderPanel } from './border-panel';\nexport { default as ColorPanel, useHasColorPanel } from './color-panel';\nexport { default as FiltersPanel, useHasFiltersPanel } from './filters-panel';\nexport {\n\tdefault as ImageSettingsPanel,\n\tuseHasImageSettingsPanel,\n} from './image-settings-panel';\nexport { default as AdvancedPanel } from './advanced-panel';\nexport { areGlobalStyleConfigsEqual } from './utils';\nexport { default as getGlobalStylesChanges } from './get-global-styles-changes';\n"],"mappings":"AAAA,SACCA,oBAAoB,EACpBC,gBAAgB,EAChBC,cAAc,EACdC,0BAA0B,QACpB,SAAS;AAChB,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SACCC,eAAe,EACfC,qBAAqB,EACrBC,+BAA+B,QACzB,4BAA4B;AACnC,SAASC,mBAAmB,QAAQ,WAAW;AAC/C,SACCC,OAAO,IAAIC,eAAe,EAC1BC,qBAAqB,QACf,oBAAoB;AAC3B,SACCF,OAAO,IAAIG,eAAe,EAC1BC,qBAAqB,QACf,oBAAoB;AAC3B,SAASJ,OAAO,IAAIK,WAAW,EAAEC,iBAAiB,QAAQ,gBAAgB;AAC1E,SAASN,OAAO,IAAIO,UAAU,EAAEC,gBAAgB,QAAQ,eAAe;AACvE,SAASR,OAAO,IAAIS,YAAY,EAAEC,kBAAkB,QAAQ,iBAAiB;AAC7E,SACCV,OAAO,IAAIW,kBAAkB,EAC7BC,wBAAwB,QAClB,wBAAwB;AAC/B,SAASZ,OAAO,IAAIa,aAAa,QAAQ,kBAAkB;AAC3D,SAASC,0BAA0B,QAAQ,SAAS;AACpD,SAASd,OAAO,IAAIe,sBAAsB,QAAQ,6BAA6B"}
1
+ {"version":3,"names":["useGlobalStylesReset","useGlobalSetting","useGlobalStyle","useSettingsForBlockElement","getBlockCSSSelector","getLayoutStyles","useGlobalStylesOutput","useGlobalStylesOutputWithConfig","GlobalStylesContext","default","TypographyPanel","useHasTypographyPanel","DimensionsPanel","useHasDimensionsPanel","BorderPanel","useHasBorderPanel","useHasBorderPanelControls","ColorPanel","useHasColorPanel","FiltersPanel","useHasFiltersPanel","ImageSettingsPanel","useHasImageSettingsPanel","AdvancedPanel","areGlobalStyleConfigsEqual","getGlobalStylesChanges"],"sources":["@wordpress/block-editor/src/components/global-styles/index.js"],"sourcesContent":["export {\n\tuseGlobalStylesReset,\n\tuseGlobalSetting,\n\tuseGlobalStyle,\n\tuseSettingsForBlockElement,\n} from './hooks';\nexport { getBlockCSSSelector } from './get-block-css-selector';\nexport {\n\tgetLayoutStyles,\n\tuseGlobalStylesOutput,\n\tuseGlobalStylesOutputWithConfig,\n} from './use-global-styles-output';\nexport { GlobalStylesContext } from './context';\nexport {\n\tdefault as TypographyPanel,\n\tuseHasTypographyPanel,\n} from './typography-panel';\nexport {\n\tdefault as DimensionsPanel,\n\tuseHasDimensionsPanel,\n} from './dimensions-panel';\nexport {\n\tdefault as BorderPanel,\n\tuseHasBorderPanel,\n\tuseHasBorderPanelControls,\n} from './border-panel';\nexport { default as ColorPanel, useHasColorPanel } from './color-panel';\nexport { default as FiltersPanel, useHasFiltersPanel } from './filters-panel';\nexport {\n\tdefault as ImageSettingsPanel,\n\tuseHasImageSettingsPanel,\n} from './image-settings-panel';\nexport { default as AdvancedPanel } from './advanced-panel';\nexport { areGlobalStyleConfigsEqual } from './utils';\nexport { default as getGlobalStylesChanges } from './get-global-styles-changes';\n"],"mappings":"AAAA,SACCA,oBAAoB,EACpBC,gBAAgB,EAChBC,cAAc,EACdC,0BAA0B,QACpB,SAAS;AAChB,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SACCC,eAAe,EACfC,qBAAqB,EACrBC,+BAA+B,QACzB,4BAA4B;AACnC,SAASC,mBAAmB,QAAQ,WAAW;AAC/C,SACCC,OAAO,IAAIC,eAAe,EAC1BC,qBAAqB,QACf,oBAAoB;AAC3B,SACCF,OAAO,IAAIG,eAAe,EAC1BC,qBAAqB,QACf,oBAAoB;AAC3B,SACCJ,OAAO,IAAIK,WAAW,EACtBC,iBAAiB,EACjBC,yBAAyB,QACnB,gBAAgB;AACvB,SAASP,OAAO,IAAIQ,UAAU,EAAEC,gBAAgB,QAAQ,eAAe;AACvE,SAAST,OAAO,IAAIU,YAAY,EAAEC,kBAAkB,QAAQ,iBAAiB;AAC7E,SACCX,OAAO,IAAIY,kBAAkB,EAC7BC,wBAAwB,QAClB,wBAAwB;AAC/B,SAASb,OAAO,IAAIc,aAAa,QAAQ,kBAAkB;AAC3D,SAASC,0BAA0B,QAAQ,SAAS;AACpD,SAASf,OAAO,IAAIgB,sBAAsB,QAAQ,6BAA6B"}
@@ -3,21 +3,33 @@ import { createElement } from "react";
3
3
  * WordPress dependencies
4
4
  */
5
5
  import { __ } from '@wordpress/i18n';
6
- import { __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalGrid as Grid, __experimentalHStack as HStack, __experimentalDropdownContentWrapper as DropdownContentWrapper, Button, FlexItem, Dropdown } from '@wordpress/components';
6
+ import { __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalHStack as HStack, __experimentalDropdownContentWrapper as DropdownContentWrapper, Button, FlexItem, Dropdown, privateApis as componentsPrivateApis } from '@wordpress/components';
7
+ import { useMemo } from '@wordpress/element';
7
8
  import { shadow as shadowIcon, Icon, check } from '@wordpress/icons';
9
+
8
10
  /**
9
11
  * External dependencies
10
12
  */
11
13
  import classNames from 'classnames';
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+ import { unlock } from '../../lock-unlock';
19
+
20
+ /**
21
+ * Shared reference to an empty array for cases where it is important to avoid
22
+ * returning a new array reference on every invocation.
23
+ *
24
+ * @type {Array}
25
+ */
26
+ const EMPTY_ARRAY = [];
12
27
  export function ShadowPopoverContainer({
13
28
  shadow,
14
29
  onShadowChange,
15
30
  settings
16
31
  }) {
17
- const defaultShadows = settings?.shadow?.presets?.default || [];
18
- const themeShadows = settings?.shadow?.presets?.theme || [];
19
- const defaultPresetsEnabled = settings?.shadow?.defaultPresets;
20
- const shadows = [...(defaultPresetsEnabled ? defaultShadows : []), ...themeShadows];
32
+ const shadows = useShadowPresets(settings);
21
33
  return createElement("div", {
22
34
  className: "block-editor-global-styles__shadow-popover-container"
23
35
  }, createElement(VStack, {
@@ -28,18 +40,28 @@ export function ShadowPopoverContainer({
28
40
  presets: shadows,
29
41
  activeShadow: shadow,
30
42
  onSelect: onShadowChange
31
- })));
43
+ }), createElement("div", {
44
+ className: "block-editor-global-styles__clear-shadow"
45
+ }, createElement(Button, {
46
+ variant: "tertiary",
47
+ onClick: () => onShadowChange(undefined)
48
+ }, __('Clear')))));
32
49
  }
33
50
  export function ShadowPresets({
34
51
  presets,
35
52
  activeShadow,
36
53
  onSelect
37
54
  }) {
38
- return !presets ? null : createElement(Grid, {
39
- columns: 6,
40
- gap: 0,
41
- align: "center",
42
- justify: "center"
55
+ const {
56
+ CompositeV2: Composite,
57
+ useCompositeStoreV2: useCompositeStore
58
+ } = unlock(componentsPrivateApis);
59
+ const compositeStore = useCompositeStore();
60
+ return !presets ? null : createElement(Composite, {
61
+ store: compositeStore,
62
+ role: "listbox",
63
+ className: "block-editor-global-styles__shadow__list",
64
+ "aria-label": __('Drop shadows')
43
65
  }, presets.map(({
44
66
  name,
45
67
  slug,
@@ -48,29 +70,42 @@ export function ShadowPresets({
48
70
  key: slug,
49
71
  label: name,
50
72
  isActive: shadow === activeShadow,
73
+ type: slug === 'unset' ? 'unset' : 'preset',
51
74
  onSelect: () => onSelect(shadow === activeShadow ? undefined : shadow),
52
75
  shadow: shadow
53
76
  })));
54
77
  }
55
78
  export function ShadowIndicator({
79
+ type,
56
80
  label,
57
81
  isActive,
58
82
  onSelect,
59
83
  shadow
60
84
  }) {
61
- return createElement("div", {
62
- className: "block-editor-global-styles__shadow-indicator-wrapper"
63
- }, createElement(Button, {
64
- className: "block-editor-global-styles__shadow-indicator",
65
- onClick: onSelect,
66
- label: label,
67
- style: {
68
- boxShadow: shadow
69
- },
70
- showTooltip: true
71
- }, isActive && createElement(Icon, {
72
- icon: check
73
- })));
85
+ const {
86
+ CompositeItemV2: CompositeItem
87
+ } = unlock(componentsPrivateApis);
88
+ return createElement(CompositeItem, {
89
+ role: "option",
90
+ "aria-label": label,
91
+ "aria-selected": isActive,
92
+ className: classNames('block-editor-global-styles__shadow__item', {
93
+ 'is-active': isActive
94
+ }),
95
+ render: createElement(Button, {
96
+ className: classNames('block-editor-global-styles__shadow-indicator', {
97
+ unset: type === 'unset'
98
+ }),
99
+ onClick: onSelect,
100
+ label: label,
101
+ style: {
102
+ boxShadow: shadow
103
+ },
104
+ showTooltip: true
105
+ }, isActive && createElement(Icon, {
106
+ icon: check
107
+ }))
108
+ });
74
109
  }
75
110
  export function ShadowPopover({
76
111
  shadow,
@@ -118,4 +153,27 @@ function renderShadowToggle() {
118
153
  }), createElement(FlexItem, null, __('Drop shadow'))));
119
154
  };
120
155
  }
156
+ export function useShadowPresets(settings) {
157
+ return useMemo(() => {
158
+ var _settings$shadow$pres;
159
+ if (!settings?.shadow) {
160
+ return EMPTY_ARRAY;
161
+ }
162
+ const defaultPresetsEnabled = settings?.shadow?.defaultPresets;
163
+ const {
164
+ default: defaultShadows,
165
+ theme: themeShadows
166
+ } = (_settings$shadow$pres = settings?.shadow?.presets) !== null && _settings$shadow$pres !== void 0 ? _settings$shadow$pres : {};
167
+ const unsetShadow = {
168
+ name: __('Unset'),
169
+ slug: 'unset',
170
+ shadow: 'none'
171
+ };
172
+ const shadowPresets = [...(defaultPresetsEnabled && defaultShadows || EMPTY_ARRAY), ...(themeShadows || EMPTY_ARRAY)];
173
+ if (shadowPresets.length) {
174
+ shadowPresets.unshift(unsetShadow);
175
+ }
176
+ return shadowPresets;
177
+ }, [settings]);
178
+ }
121
179
  //# sourceMappingURL=shadow-panel-components.js.map