@wordpress/block-editor 12.8.0 → 12.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +30 -12
- package/build/components/block-controls/slot.js +1 -1
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js +1 -1
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-controls/use-has-block-controls.js +1 -1
- package/build/components/block-controls/use-has-block-controls.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +4 -3
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/index.js +4 -3
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +27 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js +1 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
- package/build/components/block-lock/menu-item.js +3 -1
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/toolbar.js +3 -1
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-popover/inbetween.js +4 -5
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +3 -2
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/color-style-selector/index.js +1 -1
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/iframe/index.js +1 -0
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +7 -4
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.native.js +10 -8
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inspector-controls/fill.js +1 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +1 -1
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/slot.js +1 -1
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +1 -1
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/link-control/index.js +1 -7
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +48 -7
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +3 -3
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +14 -8
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-images.js +5 -4
- package/build/components/list-view/use-list-view-images.js.map +1 -1
- package/build/components/preview-options/index.js +3 -1
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/index.js +3 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/rich-text/use-remove-browser-shortcuts.js +1 -1
- package/build/components/rich-text/use-remove-browser-shortcuts.js.map +1 -1
- package/build/components/use-block-commands/index.js +74 -63
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/warning/index.js +1 -1
- package/build/components/warning/index.js.map +1 -1
- package/build/hooks/auto-inserting-blocks.js +174 -0
- package/build/hooks/auto-inserting-blocks.js.map +1 -0
- package/build/hooks/index.js +1 -0
- package/build/hooks/index.js.map +1 -1
- package/build/store/selectors.js +1 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-controls/slot.js +1 -1
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js +1 -1
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-controls/use-has-block-controls.js +1 -1
- package/build-module/components/block-controls/use-has-block-controls.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +4 -3
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/index.js +4 -3
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +27 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +1 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +3 -1
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +3 -1
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +4 -5
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +3 -2
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/color-style-selector/index.js +1 -1
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/iframe/index.js +1 -0
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +8 -4
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +11 -8
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +1 -1
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +1 -1
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +1 -1
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +1 -1
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/link-control/index.js +1 -7
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +48 -7
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +3 -3
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +14 -8
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-images.js +5 -4
- package/build-module/components/list-view/use-list-view-images.js.map +1 -1
- package/build-module/components/preview-options/index.js +3 -1
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/index.js +3 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js +1 -1
- package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +74 -63
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/warning/index.js +2 -2
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/hooks/auto-inserting-blocks.js +167 -0
- package/build-module/hooks/auto-inserting-blocks.js.map +1 -0
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/store/selectors.js +1 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/content-rtl.css +8 -7
- package/build-style/content.css +8 -7
- package/build-style/style-rtl.css +0 -3
- package/build-style/style.css +0 -3
- package/package.json +32 -32
- package/src/components/block-icon/test/index.js +2 -2
- package/src/components/block-list/block-outline.native.js +5 -2
- package/src/components/block-list/content.scss +2 -3
- package/src/components/block-list/index.js +4 -3
- package/src/components/block-list/use-block-props/index.js +26 -0
- package/src/components/block-list/use-block-props/use-nav-mode-exit.js +1 -1
- package/src/components/block-lock/menu-item.js +2 -0
- package/src/components/block-lock/toolbar.js +3 -1
- package/src/components/block-popover/inbetween.js +4 -3
- package/src/components/block-popover/index.js +3 -2
- package/src/components/block-styles/style.scss +0 -3
- package/src/components/button-block-appender/content.scss +8 -0
- package/src/components/color-style-selector/index.js +1 -1
- package/src/components/iframe/index.js +1 -0
- package/src/components/inserter/reusable-blocks-tab.native.js +7 -2
- package/src/components/inserter/search-results.native.js +13 -9
- package/src/components/link-control/index.js +1 -5
- package/src/components/link-control/test/index.js +1 -0
- package/src/components/list-view/block-select-button.js +67 -15
- package/src/components/list-view/drop-indicator.js +4 -5
- package/src/components/list-view/index.js +19 -13
- package/src/components/list-view/use-list-view-images.js +8 -4
- package/src/components/observe-typing/README.md +2 -2
- package/src/components/preview-options/index.js +2 -0
- package/src/components/provider/index.js +8 -1
- package/src/components/rich-text/use-remove-browser-shortcuts.js +1 -1
- package/src/components/use-block-commands/index.js +92 -88
- package/src/components/warning/index.js +2 -2
- package/src/hooks/auto-inserting-blocks.js +232 -0
- package/src/hooks/index.js +1 -0
- package/src/store/selectors.js +1 -1
- package/build/utils/pre-parse-patterns.js +0 -68
- package/build/utils/pre-parse-patterns.js.map +0 -1
- package/build-module/utils/pre-parse-patterns.js +0 -61
- package/build-module/utils/pre-parse-patterns.js.map +0 -1
- package/src/components/url-popover/test/__snapshots__/index.js.snap +0 -133
- package/src/components/url-popover/test/index.js +0 -75
- package/src/utils/pre-parse-patterns.js +0 -69
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 12.9.0 (2023-08-31)
|
|
6
|
+
|
|
7
|
+
### Enhancements
|
|
8
|
+
|
|
9
|
+
- Embed the `ObserveTyping` behavior within the `BlockList` component making to simplify instanciations of third-party block editors.
|
|
10
|
+
|
|
5
11
|
## 12.8.0 (2023-08-16)
|
|
6
12
|
|
|
7
13
|
## 12.7.0 (2023-08-10)
|
package/README.md
CHANGED
|
@@ -20,9 +20,7 @@ import {
|
|
|
20
20
|
BlockList,
|
|
21
21
|
BlockTools,
|
|
22
22
|
WritingFlow,
|
|
23
|
-
ObserveTyping,
|
|
24
23
|
} from '@wordpress/block-editor';
|
|
25
|
-
import { SlotFillProvider, Popover } from '@wordpress/components';
|
|
26
24
|
import { useState } from '@wordpress/element';
|
|
27
25
|
|
|
28
26
|
function MyEditorComponent() {
|
|
@@ -34,16 +32,11 @@ function MyEditorComponent() {
|
|
|
34
32
|
onInput={ ( blocks ) => updateBlocks( blocks ) }
|
|
35
33
|
onChange={ ( blocks ) => updateBlocks( blocks ) }
|
|
36
34
|
>
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
</ObserveTyping>
|
|
43
|
-
</WritingFlow>
|
|
44
|
-
</BlockTools>
|
|
45
|
-
<Popover.Slot />
|
|
46
|
-
</SlotFillProvider>
|
|
35
|
+
<BlockTools>
|
|
36
|
+
<WritingFlow>
|
|
37
|
+
<BlockList />
|
|
38
|
+
</WritingFlow>
|
|
39
|
+
</BlockTools>
|
|
47
40
|
</BlockEditorProvider>
|
|
48
41
|
);
|
|
49
42
|
}
|
|
@@ -857,6 +850,31 @@ _Returns_
|
|
|
857
850
|
|
|
858
851
|
This hook is used to lightly mark an element as a block element. The element should be the outermost element of a block. Call this hook and pass the returned props to the element to mark as a block. If you define a ref for the element, it is important to pass the ref to this hook, which the hook in turn will pass to the component through the props it returns. Optionally, you can also pass any other props through this hook, and they will be merged and returned.
|
|
859
852
|
|
|
853
|
+
Use of this hook on the outermost element of a block is required if using API >= v2.
|
|
854
|
+
|
|
855
|
+
_Usage_
|
|
856
|
+
|
|
857
|
+
```js
|
|
858
|
+
import { useBlockProps } from '@wordpress/block-editor';
|
|
859
|
+
|
|
860
|
+
export default function Edit() {
|
|
861
|
+
|
|
862
|
+
const blockProps = useBlockProps(
|
|
863
|
+
className: 'my-custom-class',
|
|
864
|
+
style: {
|
|
865
|
+
color: '#222222',
|
|
866
|
+
backgroundColor: '#eeeeee'
|
|
867
|
+
}
|
|
868
|
+
)
|
|
869
|
+
|
|
870
|
+
return (
|
|
871
|
+
<div { ...blockProps }>
|
|
872
|
+
|
|
873
|
+
</div>
|
|
874
|
+
)
|
|
875
|
+
}
|
|
876
|
+
```
|
|
877
|
+
|
|
860
878
|
_Parameters_
|
|
861
879
|
|
|
862
880
|
- _props_ `Object`: Optional. Props to pass to the element. Must contain the ref if one is defined.
|
|
@@ -37,7 +37,7 @@ function BlockControlsSlot({
|
|
|
37
37
|
const Slot = _groups.default[group]?.Slot;
|
|
38
38
|
const fills = (0, _components.__experimentalUseSlotFills)(Slot?.__unstableName);
|
|
39
39
|
if (!Slot) {
|
|
40
|
-
typeof
|
|
40
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0;
|
|
41
41
|
return null;
|
|
42
42
|
}
|
|
43
43
|
if (!fills?.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_warning","_interopRequireDefault","_groups","_lockUnlock","ComponentsContext","unlock","privateApis","BlockControlsSlot","group","props","toolbarState","useContext","ToolbarContext","contextState","fillProps","useMemo","forwardedContext","Provider","value","Slot","groups","fills","useSlotFills","__unstableName","
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_warning","_interopRequireDefault","_groups","_lockUnlock","ComponentsContext","unlock","privateApis","BlockControlsSlot","group","props","toolbarState","useContext","ToolbarContext","contextState","fillProps","useMemo","forwardedContext","Provider","value","Slot","groups","fills","useSlotFills","__unstableName","SCRIPT_DEBUG","warning","length","slot","createElement","bubblesVirtually","ToolbarGroup"],"sources":["@wordpress/block-editor/src/components/block-controls/slot.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useMemo } from '@wordpress/element';\nimport {\n\tprivateApis,\n\t__experimentalToolbarContext as ToolbarContext,\n\tToolbarGroup,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\nimport { unlock } from '../../lock-unlock';\n\nconst { ComponentsContext } = unlock( privateApis );\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst toolbarState = useContext( ToolbarContext );\n\tconst contextState = useContext( ComponentsContext );\n\tconst fillProps = useMemo(\n\t\t() => ( {\n\t\t\tforwardedContext: [\n\t\t\t\t[ ToolbarContext.Provider, { value: toolbarState } ],\n\t\t\t\t[ ComponentsContext.Provider, { value: contextState } ],\n\t\t\t],\n\t\t} ),\n\t\t[ toolbarState, contextState ]\n\t);\n\n\tconst Slot = groups[ group ]?.Slot;\n\tconst fills = useSlotFills( Slot?.__unstableName );\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( ! fills?.length ) {\n\t\treturn null;\n\t}\n\n\tconst slot = <Slot { ...props } bubblesVirtually fillProps={ fillProps } />;\n\n\tif ( group === 'default' ) {\n\t\treturn slot;\n\t}\n\n\treturn <ToolbarGroup>{ slot }</ToolbarGroup>;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAMA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AAKA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAhBA;AACA;AACA;;AAUA;AACA;AACA;;AAIA,MAAM;EAAEM;AAAkB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAY,CAAC;AAEpC,SAASC,iBAAiBA,CAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC5E,MAAMC,YAAY,GAAG,IAAAC,mBAAU,EAAEC,wCAAe,CAAC;EACjD,MAAMC,YAAY,GAAG,IAAAF,mBAAU,EAAEP,iBAAkB,CAAC;EACpD,MAAMU,SAAS,GAAG,IAAAC,gBAAO,EACxB,OAAQ;IACPC,gBAAgB,EAAE,CACjB,CAAEJ,wCAAc,CAACK,QAAQ,EAAE;MAAEC,KAAK,EAAER;IAAa,CAAC,CAAE,EACpD,CAAEN,iBAAiB,CAACa,QAAQ,EAAE;MAAEC,KAAK,EAAEL;IAAa,CAAC,CAAE;EAEzD,CAAC,CAAE,EACH,CAAEH,YAAY,EAAEG,YAAY,CAC7B,CAAC;EAED,MAAMM,IAAI,GAAGC,eAAM,CAAEZ,KAAK,CAAE,EAAEW,IAAI;EAClC,MAAME,KAAK,GAAG,IAAAC,sCAAY,EAAEH,IAAI,EAAEI,cAAe,CAAC;EAClD,IAAK,CAAEJ,IAAI,EAAG;IACb,OAAAK,YAAA,oBAAAA,YAAA,gBAAAC,gBAAO,EAAG,gCAAgCjB,KAAO,aAAa,CAAC;IAC/D,OAAO,IAAI;EACZ;EAEA,IAAK,CAAEa,KAAK,EAAEK,MAAM,EAAG;IACtB,OAAO,IAAI;EACZ;EAEA,MAAMC,IAAI,GAAG,IAAA9B,QAAA,CAAA+B,aAAA,EAACT,IAAI;IAAA,GAAMV,KAAK;IAAGoB,gBAAgB;IAACf,SAAS,EAAGA;EAAW,CAAE,CAAC;EAE3E,IAAKN,KAAK,KAAK,SAAS,EAAG;IAC1B,OAAOmB,IAAI;EACZ;EAEA,OAAO,IAAA9B,QAAA,CAAA+B,aAAA,EAAC7B,WAAA,CAAA+B,YAAY,QAAGH,IAAoB,CAAC;AAC7C"}
|
|
@@ -23,7 +23,7 @@ function BlockControlsSlot({
|
|
|
23
23
|
}) {
|
|
24
24
|
const Slot = _groups.default[group]?.Slot;
|
|
25
25
|
if (!Slot) {
|
|
26
|
-
typeof
|
|
26
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0;
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
29
|
if (group === 'default') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_warning","_interopRequireDefault","_groups","BlockControlsSlot","group","props","Slot","groups","
|
|
1
|
+
{"version":3,"names":["_components","require","_warning","_interopRequireDefault","_groups","BlockControlsSlot","group","props","Slot","groups","SCRIPT_DEBUG","warning","_element","createElement","fills","length","ToolbarGroup"],"sources":["@wordpress/block-editor/src/components/block-controls/slot.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarGroup } from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport default function BlockControlsSlot( { group = 'default', ...props } ) {\n\tconst Slot = groups[ group ]?.Slot;\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tif ( group === 'default' ) {\n\t\treturn <Slot { ...props } />;\n\t}\n\n\treturn (\n\t\t<Slot { ...props }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif ( ! fills.length ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn <ToolbarGroup>{ fills }</ToolbarGroup>;\n\t\t\t} }\n\t\t</Slot>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AAKA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASI,iBAAiBA,CAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC5E,MAAMC,IAAI,GAAGC,eAAM,CAAEH,KAAK,CAAE,EAAEE,IAAI;EAClC,IAAK,CAAEA,IAAI,EAAG;IACb,OAAAE,YAAA,oBAAAA,YAAA,gBAAAC,gBAAO,EAAG,gCAAgCL,KAAO,aAAa,CAAC;IAC/D,OAAO,IAAI;EACZ;EAEA,IAAKA,KAAK,KAAK,SAAS,EAAG;IAC1B,OAAO,IAAAM,QAAA,CAAAC,aAAA,EAACL,IAAI;MAAA,GAAMD;IAAK,CAAI,CAAC;EAC7B;EAEA,OACC,IAAAK,QAAA,CAAAC,aAAA,EAACL,IAAI;IAAA,GAAMD;EAAK,GACXO,KAAK,IAAM;IACd,IAAK,CAAEA,KAAK,CAACC,MAAM,EAAG;MACrB,OAAO,IAAI;IACZ;IACA,OAAO,IAAAH,QAAA,CAAAC,aAAA,EAACb,WAAA,CAAAgB,YAAY,QAAGF,KAAqB,CAAC;EAC9C,CACK,CAAC;AAET"}
|
|
@@ -35,7 +35,7 @@ function useHasBlockControls(group = 'default') {
|
|
|
35
35
|
const Slot = _groups.default[group]?.Slot;
|
|
36
36
|
const fills = (0, _components.__experimentalUseSlotFills)(Slot?.__unstableName);
|
|
37
37
|
if (!Slot) {
|
|
38
|
-
typeof
|
|
38
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? (0, _warning.default)(`Unknown BlockControls group "${group}" provided.`) : void 0;
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
41
|
return !!fills?.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_warning","_interopRequireDefault","_groups","useHasAnyBlockControls","hasAnyBlockControls","group","groups","useHasBlockControls","Slot","fills","useSlotFills","__unstableName","
|
|
1
|
+
{"version":3,"names":["_components","require","_warning","_interopRequireDefault","_groups","useHasAnyBlockControls","hasAnyBlockControls","group","groups","useHasBlockControls","Slot","fills","useSlotFills","__unstableName","SCRIPT_DEBUG","warning","length"],"sources":["@wordpress/block-editor/src/components/block-controls/use-has-block-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalUseSlotFills as useSlotFills } from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\n\nexport function useHasAnyBlockControls() {\n\tlet hasAnyBlockControls = false;\n\tfor ( const group in groups ) {\n\t\t// It is safe to violate the rules of hooks here as the `groups` object\n\t\t// is static and will not change length between renders. Do not return\n\t\t// early as that will cause the hook to be called a different number of\n\t\t// times between renders.\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tif ( useHasBlockControls( group ) ) {\n\t\t\thasAnyBlockControls = true;\n\t\t}\n\t}\n\treturn hasAnyBlockControls;\n}\n\nexport function useHasBlockControls( group = 'default' ) {\n\tconst Slot = groups[ group ]?.Slot;\n\tconst fills = useSlotFills( Slot?.__unstableName );\n\tif ( ! Slot ) {\n\t\twarning( `Unknown BlockControls group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\treturn !! fills?.length;\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAC,sBAAA,CAAAF,OAAA;AAKA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGO,SAASI,sBAAsBA,CAAA,EAAG;EACxC,IAAIC,mBAAmB,GAAG,KAAK;EAC/B,KAAM,MAAMC,KAAK,IAAIC,eAAM,EAAG;IAC7B;IACA;IACA;IACA;IACA;IACA,IAAKC,mBAAmB,CAAEF,KAAM,CAAC,EAAG;MACnCD,mBAAmB,GAAG,IAAI;IAC3B;EACD;EACA,OAAOA,mBAAmB;AAC3B;AAEO,SAASG,mBAAmBA,CAAEF,KAAK,GAAG,SAAS,EAAG;EACxD,MAAMG,IAAI,GAAGF,eAAM,CAAED,KAAK,CAAE,EAAEG,IAAI;EAClC,MAAMC,KAAK,GAAG,IAAAC,sCAAY,EAAEF,IAAI,EAAEG,cAAe,CAAC;EAClD,IAAK,CAAEH,IAAI,EAAG;IACb,OAAAI,YAAA,oBAAAA,YAAA,gBAAAC,gBAAO,EAAG,gCAAgCR,KAAO,aAAa,CAAC;IAC/D,OAAO,IAAI;EACZ;EACA,OAAO,CAAC,CAAEI,KAAK,EAAEK,MAAM;AACxB"}
|
|
@@ -21,7 +21,7 @@ var _block = _interopRequireDefault(require("./block.scss"));
|
|
|
21
21
|
* Internal dependencies
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
const
|
|
24
|
+
const TEXT_BLOCKS_WITH_OUTLINE = ['core/missing'];
|
|
25
25
|
function BlockOutline({
|
|
26
26
|
blockCategory,
|
|
27
27
|
hasInnerBlocks,
|
|
@@ -29,12 +29,13 @@ function BlockOutline({
|
|
|
29
29
|
isSelected,
|
|
30
30
|
name
|
|
31
31
|
}) {
|
|
32
|
-
const textBlockWithOutline =
|
|
32
|
+
const textBlockWithOutline = TEXT_BLOCKS_WITH_OUTLINE.includes(name);
|
|
33
|
+
const socialBlockWithOutline = name.includes('core/social-link');
|
|
33
34
|
const hasBlockTextCategory = blockCategory === 'text' && !textBlockWithOutline;
|
|
34
35
|
const hasBlockMediaCategory = blockCategory === 'media' || blockCategory === 'embed' || !blockCategory;
|
|
35
36
|
const shouldShowCompactOutline = hasBlockMediaCategory && !hasInnerBlocks || textBlockWithOutline;
|
|
36
37
|
const styleSolidBorder = [_block.default.solidBorder, (0, _compose.usePreferredColorSchemeStyle)(_block.default.solidBorderColor, _block.default.solidBorderColorDark), shouldShowCompactOutline && _block.default.solidBorderCompact, hasBlockTextCategory && _block.default.solidBorderTextContent];
|
|
37
|
-
const shoudlShowOutline = isSelected && (hasBlockTextCategory && hasInnerBlocks || !hasBlockTextCategory && hasInnerBlocks || !hasBlockTextCategory && isRootList || textBlockWithOutline);
|
|
38
|
+
const shoudlShowOutline = isSelected && (hasBlockTextCategory && hasInnerBlocks || !hasBlockTextCategory && hasInnerBlocks || !hasBlockTextCategory && isRootList || socialBlockWithOutline || textBlockWithOutline);
|
|
38
39
|
return shoudlShowOutline && (0, _element.createElement)(_reactNative.View, {
|
|
39
40
|
pointerEvents: "box-none",
|
|
40
41
|
style: styleSolidBorder
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_compose","_block","_interopRequireDefault","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_compose","_block","_interopRequireDefault","TEXT_BLOCKS_WITH_OUTLINE","BlockOutline","blockCategory","hasInnerBlocks","isRootList","isSelected","name","textBlockWithOutline","includes","socialBlockWithOutline","hasBlockTextCategory","hasBlockMediaCategory","shouldShowCompactOutline","styleSolidBorder","styles","solidBorder","usePreferredColorSchemeStyle","solidBorderColor","solidBorderColorDark","solidBorderCompact","solidBorderTextContent","shoudlShowOutline","_element","createElement","View","pointerEvents","style","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-list/block-outline.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\n\nconst TEXT_BLOCKS_WITH_OUTLINE = [ 'core/missing' ];\n\nfunction BlockOutline( {\n\tblockCategory,\n\thasInnerBlocks,\n\tisRootList,\n\tisSelected,\n\tname,\n} ) {\n\tconst textBlockWithOutline = TEXT_BLOCKS_WITH_OUTLINE.includes( name );\n\tconst socialBlockWithOutline = name.includes( 'core/social-link' );\n\n\tconst hasBlockTextCategory =\n\t\tblockCategory === 'text' && ! textBlockWithOutline;\n\tconst hasBlockMediaCategory =\n\t\tblockCategory === 'media' ||\n\t\tblockCategory === 'embed' ||\n\t\t! blockCategory;\n\tconst shouldShowCompactOutline =\n\t\t( hasBlockMediaCategory && ! hasInnerBlocks ) || textBlockWithOutline;\n\n\tconst styleSolidBorder = [\n\t\tstyles.solidBorder,\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.solidBorderColor,\n\t\t\tstyles.solidBorderColorDark\n\t\t),\n\t\tshouldShowCompactOutline && styles.solidBorderCompact,\n\t\thasBlockTextCategory && styles.solidBorderTextContent,\n\t];\n\n\tconst shoudlShowOutline =\n\t\tisSelected &&\n\t\t( ( hasBlockTextCategory && hasInnerBlocks ) ||\n\t\t\t( ! hasBlockTextCategory && hasInnerBlocks ) ||\n\t\t\t( ! hasBlockTextCategory && isRootList ) ||\n\t\t\tsocialBlockWithOutline ||\n\t\t\ttextBlockWithOutline );\n\n\treturn (\n\t\tshoudlShowOutline && (\n\t\t\t<View pointerEvents=\"box-none\" style={ styleSolidBorder } />\n\t\t)\n\t);\n}\n\nexport default BlockOutline;\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMI,wBAAwB,GAAG,CAAE,cAAc,CAAE;AAEnD,SAASC,YAAYA,CAAE;EACtBC,aAAa;EACbC,cAAc;EACdC,UAAU;EACVC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,MAAMC,oBAAoB,GAAGP,wBAAwB,CAACQ,QAAQ,CAAEF,IAAK,CAAC;EACtE,MAAMG,sBAAsB,GAAGH,IAAI,CAACE,QAAQ,CAAE,kBAAmB,CAAC;EAElE,MAAME,oBAAoB,GACzBR,aAAa,KAAK,MAAM,IAAI,CAAEK,oBAAoB;EACnD,MAAMI,qBAAqB,GAC1BT,aAAa,KAAK,OAAO,IACzBA,aAAa,KAAK,OAAO,IACzB,CAAEA,aAAa;EAChB,MAAMU,wBAAwB,GAC3BD,qBAAqB,IAAI,CAAER,cAAc,IAAMI,oBAAoB;EAEtE,MAAMM,gBAAgB,GAAG,CACxBC,cAAM,CAACC,WAAW,EAClB,IAAAC,qCAA4B,EAC3BF,cAAM,CAACG,gBAAgB,EACvBH,cAAM,CAACI,oBACR,CAAC,EACDN,wBAAwB,IAAIE,cAAM,CAACK,kBAAkB,EACrDT,oBAAoB,IAAII,cAAM,CAACM,sBAAsB,CACrD;EAED,MAAMC,iBAAiB,GACtBhB,UAAU,KACNK,oBAAoB,IAAIP,cAAc,IACvC,CAAEO,oBAAoB,IAAIP,cAAgB,IAC1C,CAAEO,oBAAoB,IAAIN,UAAY,IACxCK,sBAAsB,IACtBF,oBAAoB,CAAE;EAExB,OACCc,iBAAiB,IAChB,IAAAC,QAAA,CAAAC,aAAA,EAAC5B,YAAA,CAAA6B,IAAI;IAACC,aAAa,EAAC,UAAU;IAACC,KAAK,EAAGb;EAAkB,CAAE,CAC3D;AAEH;AAAC,IAAAc,QAAA,GAEc1B,YAAY;AAAA2B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -15,11 +15,11 @@ var _block = _interopRequireDefault(require("./block"));
|
|
|
15
15
|
var _blockListAppender = _interopRequireDefault(require("../block-list-appender"));
|
|
16
16
|
var _useInBetweenInserter = require("./use-in-between-inserter");
|
|
17
17
|
var _store = require("../../store");
|
|
18
|
-
var _preParsePatterns = require("../../utils/pre-parse-patterns");
|
|
19
18
|
var _layout = require("./layout");
|
|
20
19
|
var _blockSelectionClearer = require("../block-selection-clearer");
|
|
21
20
|
var _innerBlocks = require("../inner-blocks");
|
|
22
21
|
var _context = require("../block-edit/context");
|
|
22
|
+
var _observeTyping = require("../observe-typing");
|
|
23
23
|
/**
|
|
24
24
|
* External dependencies
|
|
25
25
|
*/
|
|
@@ -93,7 +93,7 @@ function Root({
|
|
|
93
93
|
});
|
|
94
94
|
}, []);
|
|
95
95
|
const innerBlocksProps = (0, _innerBlocks.useInnerBlocksProps)({
|
|
96
|
-
ref: (0, _compose.useMergeRefs)([(0, _blockSelectionClearer.useBlockSelectionClearer)(), (0, _useInBetweenInserter.useInBetweenInserter)(),
|
|
96
|
+
ref: (0, _compose.useMergeRefs)([(0, _blockSelectionClearer.useBlockSelectionClearer)(), (0, _useInBetweenInserter.useInBetweenInserter)(), (0, _observeTyping.useTypingObserver)()]),
|
|
97
97
|
className: (0, _classnames.default)('is-root-container', className, {
|
|
98
98
|
'is-outline-mode': isOutlineMode,
|
|
99
99
|
'is-focus-mode': isFocusMode && isLargeViewport,
|
|
@@ -106,10 +106,11 @@ function Root({
|
|
|
106
106
|
value: intersectionObserver
|
|
107
107
|
}, (0, _element.createElement)("div", {
|
|
108
108
|
...innerBlocksProps
|
|
109
|
+
}), (0, _element.createElement)("div", {
|
|
110
|
+
ref: setElement
|
|
109
111
|
})));
|
|
110
112
|
}
|
|
111
113
|
function BlockList(settings) {
|
|
112
|
-
(0, _preParsePatterns.usePreParsePatterns)();
|
|
113
114
|
return (0, _element.createElement)(_context.BlockEditContextProvider, {
|
|
114
115
|
value: _context.DEFAULT_BLOCK_EDIT_CONTEXT
|
|
115
116
|
}, (0, _element.createElement)(Root, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_data","_compose","_block","_blockListAppender","_useInBetweenInserter","_store","_preParsePatterns","_layout","_blockSelectionClearer","_innerBlocks","_context","elementContext","createContext","IntersectionObserver","exports","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","element","setElement","useState","isLargeViewport","useViewportMatch","isOutlineMode","isFocusMode","editorMode","useSelect","select","getSettings","__unstableGetEditorMode","blockEditorStore","outlineMode","focusMode","registry","useRegistry","setBlockVisibility","useDispatch","delayedBlockVisibilityUpdates","useDebounce","useCallback","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","useMemo","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","useInnerBlocksProps","ref","useMergeRefs","useBlockSelectionClearer","useInBetweenInserter","classnames","createElement","Provider","value","BlockList","usePreParsePatterns","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","__unstableElementContext","Items","placeholder","rootClientId","renderAppender","__experimentalAppenderTagName","layout","defaultLayout","order","selectedBlocks","visibleBlocks","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","LayoutProvider","map","AsyncModeProvider","key","has","includes","default","length","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { usePreParsePatterns } from '../../utils/pre-parse-patterns';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\n\nconst elementContext = createContext();\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst [ element, setElement ] = useState();\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, editorMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode,\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tsetElement,\n\t\t\t] ),\n\t\t\tclassName: classnames( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t\t'is-navigate-mode': editorMode === 'navigation',\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<elementContext.Provider value={ element }>\n\t\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</IntersectionObserver.Provider>\n\t\t</elementContext.Provider>\n\t);\n}\n\nexport default function BlockList( settings ) {\n\tusePreParsePatterns();\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nBlockList.__unstableElementContext = elementContext;\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\tconst { order, selectedBlocks, visibleBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\torder: getBlockOrder( rootClientId ),\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t<BlockListAppender\n\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t/>\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_data","_compose","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","elementContext","createContext","IntersectionObserver","exports","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","element","setElement","useState","isLargeViewport","useViewportMatch","isOutlineMode","isFocusMode","editorMode","useSelect","select","getSettings","__unstableGetEditorMode","blockEditorStore","outlineMode","focusMode","registry","useRegistry","setBlockVisibility","useDispatch","delayedBlockVisibilityUpdates","useDebounce","useCallback","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","useMemo","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","useInnerBlocksProps","ref","useMergeRefs","useBlockSelectionClearer","useInBetweenInserter","useTypingObserver","classnames","createElement","Provider","value","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","__unstableElementContext","Items","placeholder","rootClientId","renderAppender","__experimentalAppenderTagName","layout","defaultLayout","order","selectedBlocks","visibleBlocks","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","LayoutProvider","map","AsyncModeProvider","key","has","includes","default","length","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\n\nconst elementContext = createContext();\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst [ element, setElement ] = useState();\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, editorMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode,\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: classnames( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t\t'is-navigate-mode': editorMode === 'navigation',\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<elementContext.Provider value={ element }>\n\t\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t\t{ /* Ensure element and layout styles are always at the end of the document */ }\n\t\t\t\t<div ref={ setElement } />\n\t\t\t</IntersectionObserver.Provider>\n\t\t</elementContext.Provider>\n\t);\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nBlockList.__unstableElementContext = elementContext;\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\tconst { order, selectedBlocks, visibleBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\torder: getBlockOrder( rootClientId ),\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t<BlockListAppender\n\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t/>\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":";;;;;;;;;AAmBA,IAAAA,QAAA,GAAAC,OAAA;AAhBA,IAAAC,WAAA,GAAAC,sBAAA,CAAAF,OAAA;AAKA,IAAAG,KAAA,GAAAH,OAAA;AAMA,IAAAI,QAAA,GAAAJ,OAAA;AAeA,IAAAK,MAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,kBAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,sBAAA,GAAAV,OAAA;AACA,IAAAW,YAAA,GAAAX,OAAA;AACA,IAAAY,QAAA,GAAAZ,OAAA;AAIA,IAAAa,cAAA,GAAAb,OAAA;AAxCA;AACA;AACA;;AAGA;AACA;AACA;;AAmBA;AACA;AACA;;AAcA,MAAMc,cAAc,GAAG,IAAAC,sBAAa,EAAC,CAAC;AAE/B,MAAMC,oBAAoB,GAAG,IAAAD,sBAAa,EAAC,CAAC;AAACE,OAAA,CAAAD,oBAAA,GAAAA,oBAAA;AACpD,MAAME,wCAAwC,GAAG,IAAIC,OAAO,CAAC,CAAC;AAE9D,SAASC,IAAIA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAS,CAAC,EAAG;EAC3C,MAAM,CAAEC,OAAO,EAAEC,UAAU,CAAE,GAAG,IAAAC,iBAAQ,EAAC,CAAC;EAC1C,MAAMC,eAAe,GAAG,IAAAC,yBAAgB,EAAE,QAAS,CAAC;EACpD,MAAM;IAAEC,aAAa;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EACzDC,MAAM,IAAM;IACb,MAAM;MAAEC,WAAW;MAAEC;IAAwB,CAAC,GAC7CF,MAAM,CAAEG,YAAiB,CAAC;IAC3B,MAAM;MAAEC,WAAW;MAAEC;IAAU,CAAC,GAAGJ,WAAW,CAAC,CAAC;IAChD,OAAO;MACNL,aAAa,EAAEQ,WAAW;MAC1BP,WAAW,EAAEQ,SAAS;MACtBP,UAAU,EAAEI,uBAAuB,CAAC;IACrC,CAAC;EACF,CAAC,EACD,EACD,CAAC;EACD,MAAMI,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,iBAAW,EAAEN,YAAiB,CAAC;EAE9D,MAAMO,6BAA6B,GAAG,IAAAC,oBAAW,EAChD,IAAAC,oBAAW,EAAE,MAAM;IAClB,MAAMC,OAAO,GAAG,CAAC,CAAC;IAClB3B,wCAAwC,CACtC4B,GAAG,CAAER,QAAS,CAAC,CACfS,OAAO,CAAE,CAAE,CAAEC,EAAE,EAAEC,cAAc,CAAE,KAAM;MACvCJ,OAAO,CAAEG,EAAE,CAAE,GAAGC,cAAc;IAC/B,CAAE,CAAC;IACJT,kBAAkB,CAAEK,OAAQ,CAAC;EAC9B,CAAC,EAAE,CAAEP,QAAQ,CAAG,CAAC,EACjB,GAAG,EACH;IACCY,QAAQ,EAAE;EACX,CACD,CAAC;EACD,MAAMC,oBAAoB,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC3C,MAAM;MAAEpC,oBAAoB,EAAEqC;IAAS,CAAC,GAAGC,MAAM;IAEjD,IAAK,CAAED,QAAQ,EAAG;MACjB;IACD;IAEA,OAAO,IAAIA,QAAQ,CAAIE,OAAO,IAAM;MACnC,IAAK,CAAErC,wCAAwC,CAAC4B,GAAG,CAAER,QAAS,CAAC,EAAG;QACjEpB,wCAAwC,CAACsC,GAAG,CAAElB,QAAQ,EAAE,EAAG,CAAC;MAC7D;MACA,KAAM,MAAMmB,KAAK,IAAIF,OAAO,EAAG;QAC9B,MAAMG,QAAQ,GAAGD,KAAK,CAACE,MAAM,CAACC,YAAY,CAAE,YAAa,CAAC;QAC1D1C,wCAAwC,CACtC4B,GAAG,CAAER,QAAS,CAAC,CACfuB,IAAI,CAAE,CAAEH,QAAQ,EAAED,KAAK,CAACR,cAAc,CAAG,CAAC;MAC7C;MACAP,6BAA6B,CAAC,CAAC;IAChC,CAAE,CAAC;EACJ,CAAC,EAAE,EAAG,CAAC;EACP,MAAMoB,gBAAgB,GAAG,IAAAC,gCAAmB,EAC3C;IACCC,GAAG,EAAE,IAAAC,qBAAY,EAAE,CAClB,IAAAC,+CAAwB,EAAC,CAAC,EAC1B,IAAAC,0CAAoB,EAAC,CAAC,EACtB,IAAAC,gCAAiB,EAAC,CAAC,CAClB,CAAC;IACH/C,SAAS,EAAE,IAAAgD,mBAAU,EAAE,mBAAmB,EAAEhD,SAAS,EAAE;MACtD,iBAAiB,EAAEO,aAAa;MAChC,eAAe,EAAEC,WAAW,IAAIH,eAAe;MAC/C,kBAAkB,EAAEI,UAAU,KAAK;IACpC,CAAE;EACH,CAAC,EACDR,QACD,CAAC;EACD,OACC,IAAAvB,QAAA,CAAAuE,aAAA,EAACxD,cAAc,CAACyD,QAAQ;IAACC,KAAK,EAAGjD;EAAS,GACzC,IAAAxB,QAAA,CAAAuE,aAAA,EAACtD,oBAAoB,CAACuD,QAAQ;IAACC,KAAK,EAAGrB;EAAsB,GAC5D,IAAApD,QAAA,CAAAuE,aAAA;IAAA,GAAUR;EAAgB,CAAI,CAAC,EAE/B,IAAA/D,QAAA,CAAAuE,aAAA;IAAKN,GAAG,EAAGxC;EAAY,CAAE,CACK,CACP,CAAC;AAE5B;AAEe,SAASiD,SAASA,CAAEnD,QAAQ,EAAG;EAC7C,OACC,IAAAvB,QAAA,CAAAuE,aAAA,EAAC1D,QAAA,CAAA8D,wBAAwB;IAACF,KAAK,EAAGG;EAA4B,GAC7D,IAAA5E,QAAA,CAAAuE,aAAA,EAAClD,IAAI;IAAA,GAAME;EAAQ,CAAI,CACE,CAAC;AAE7B;AAEAmD,SAAS,CAACG,wBAAwB,GAAG9D,cAAc;AAEnD,SAAS+D,KAAKA,CAAE;EACfC,WAAW;EACXC,YAAY;EACZC,cAAc;EACdC,6BAA6B;EAC7BC,MAAM,GAAGC;AACV,CAAC,EAAG;EACH,MAAM;IAAEC,KAAK;IAAEC,cAAc;IAAEC;EAAc,CAAC,GAAG,IAAAvD,eAAS,EACvDC,MAAM,IAAM;IACb,MAAM;MACLuD,aAAa;MACbC,yBAAyB;MACzBC;IACD,CAAC,GAAGzD,MAAM,CAAEG,YAAiB,CAAC;IAC9B,OAAO;MACNiD,KAAK,EAAEG,aAAa,CAAER,YAAa,CAAC;MACpCM,cAAc,EAAEG,yBAAyB,CAAC,CAAC;MAC3CF,aAAa,EAAEG,0BAA0B,CAAC;IAC3C,CAAC;EACF,CAAC,EACD,CAAEV,YAAY,CACf,CAAC;EAED,OACC,IAAAhF,QAAA,CAAAuE,aAAA,EAAC7D,OAAA,CAAAiF,cAAc;IAAClB,KAAK,EAAGU;EAAQ,GAC7BE,KAAK,CAACO,GAAG,CAAIjC,QAAQ,IACtB,IAAA3D,QAAA,CAAAuE,aAAA,EAACnE,KAAA,CAAAyF,iBAAiB;IACjBC,GAAG,EAAGnC,QAAU;IAChBc,KAAK;IACJ;IACA;IACA,CAAEc,aAAa,CAACQ,GAAG,CAAEpC,QAAS,CAAC,IAC/B,CAAE2B,cAAc,CAACU,QAAQ,CAAErC,QAAS;EACpC,GAED,IAAA3D,QAAA,CAAAuE,aAAA,EAACjE,MAAA,CAAA2F,OAAc;IACdjB,YAAY,EAAGA,YAAc;IAC7BrB,QAAQ,EAAGA;EAAU,CACrB,CACiB,CAClB,CAAC,EACD0B,KAAK,CAACa,MAAM,GAAG,CAAC,IAAInB,WAAW,EACjC,IAAA/E,QAAA,CAAAuE,aAAA,EAAChE,kBAAA,CAAA0F,OAAiB;IACjBE,OAAO,EAAGjB,6BAA+B;IACzCF,YAAY,EAAGA,YAAc;IAC7BC,cAAc,EAAGA;EAAgB,CACjC,CACc,CAAC;AAEnB;AAEO,SAASmB,cAAcA,CAAEC,KAAK,EAAG;EACvC;EACA;EACA,OACC,IAAArG,QAAA,CAAAuE,aAAA,EAACnE,KAAA,CAAAyF,iBAAiB;IAACpB,KAAK,EAAG;EAAO,GACjC,IAAAzE,QAAA,CAAAuE,aAAA,EAACO,KAAK;IAAA,GAAMuB;EAAK,CAAI,CACH,CAAC;AAEtB"}
|
|
@@ -56,6 +56,32 @@ const BLOCK_ANIMATION_THRESHOLD = 200;
|
|
|
56
56
|
* also pass any other props through this hook, and they will be merged and
|
|
57
57
|
* returned.
|
|
58
58
|
*
|
|
59
|
+
* Use of this hook on the outermost element of a block is required if using API >= v2.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```js
|
|
63
|
+
* import { useBlockProps } from '@wordpress/block-editor';
|
|
64
|
+
*
|
|
65
|
+
* export default function Edit() {
|
|
66
|
+
*
|
|
67
|
+
* const blockProps = useBlockProps(
|
|
68
|
+
* className: 'my-custom-class',
|
|
69
|
+
* style: {
|
|
70
|
+
* color: '#222222',
|
|
71
|
+
* backgroundColor: '#eeeeee'
|
|
72
|
+
* }
|
|
73
|
+
* )
|
|
74
|
+
*
|
|
75
|
+
* return (
|
|
76
|
+
* <div { ...blockProps }>
|
|
77
|
+
*
|
|
78
|
+
* </div>
|
|
79
|
+
* )
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
*
|
|
59
85
|
* @param {Object} props Optional. Props to pass to the element. Must contain
|
|
60
86
|
* the ref if one is defined.
|
|
61
87
|
* @param {Object} options Options for internal use only.
|
|
@@ -133,7 +159,7 @@ function useBlockProps(props = {}, {
|
|
|
133
159
|
const blockEditContext = (0, _context.useBlockEditContext)();
|
|
134
160
|
// Ensures it warns only inside the `edit` implementation for the block.
|
|
135
161
|
if (blockApiVersion < 2 && clientId === blockEditContext.clientId) {
|
|
136
|
-
typeof
|
|
162
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? (0, _warning.default)(`Block type "${name}" must support API version 2 or higher to work correctly with "useBlockProps" method.`) : void 0;
|
|
137
163
|
}
|
|
138
164
|
return {
|
|
139
165
|
tabIndex: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_i18n","_blocks","_compose","_data","_warning","_useMovingAnimation","_blockListBlockContext","_useFocusFirstElement","_useIsHovered","_context","_useBlockClassNames","_useBlockDefaultClassName","_useBlockCustomClassName","_useBlockMovingModeClassNames","_useFocusHandler","_useSelectedBlockEventHandlers","_useNavModeExit","_useBlockRefs","_useIntersectionObserver","_store","_blockContentOverlay","_lockUnlock","BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","useContext","BlockListBlockContext","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","isSubtreeDisabled","useSelect","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","isBlockSubtreeDisabled","unlock","blockEditorStore","getActiveBlockVariation","blocksStore","isSelected","isPartOfMultiSelection","blockName","blockType","getBlockType","attributes","match","apiVersion","title","hasOverlay","useBlockOverlayActive","blockLabel","sprintf","__","htmlSuffix","mergedRefs","useMergeRefs","ref","useFocusFirstElement","useBlockRefProvider","useFocusHandler","useEventHandlers","useNavModeExit","useIsHovered","useIntersectionObserver","useMovingAnimation","triggerAnimationOnChange","useDisabled","isDisabled","blockEditContext","useBlockEditContext","process","env","NODE_ENV","warning","tabIndex","id","role","inert","undefined","classnames","useBlockClassNames","useBlockDefaultClassName","useBlockCustomClassName","useBlockMovingModeClassNames","style","save","getBlockProps"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__unstableGetBlockProps as getBlockProps,\n\tgetBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { BlockListBlockContext } from '../block-list-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport { useBlockEditContext } from '../../block-edit/context';\nimport { useBlockClassNames } from './use-block-class-names';\nimport { useBlockDefaultClassName } from './use-block-default-class-name';\nimport { useBlockCustomClassName } from './use-block-custom-class-name';\nimport { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { store as blockEditorStore } from '../../../store';\nimport useBlockOverlayActive from '../../block-content-overlay';\nimport { unlock } from '../../../lock-unlock';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t} = useContext( BlockListBlockContext );\n\tconst {\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisPartOfSelection,\n\t\tadjustScrolling,\n\t\tenableAnimation,\n\t\tisSubtreeDisabled,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisTyping,\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisAncestorMultiSelected,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst isPartOfMultiSelection =\n\t\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\t\tisAncestorMultiSelected( clientId );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\n\t\t\treturn {\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisPartOfSelection: isSelected || isPartOfMultiSelection,\n\t\t\t\tadjustScrolling:\n\t\t\t\t\tisSelected || isFirstMultiSelectedBlock( clientId ),\n\t\t\t\tenableAnimation:\n\t\t\t\t\t! isTyping() &&\n\t\t\t\t\tgetGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,\n\t\t\t\tisSubtreeDisabled: isBlockSubtreeDisabled( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasOverlay = useBlockOverlayActive( clientId );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( clientId ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( clientId ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( {\n\t\t\tisSelected: isPartOfSelection,\n\t\t\tadjustScrolling,\n\t\t\tenableAnimation,\n\t\t\ttriggerAnimationOnChange: index,\n\t\t} ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\treturn {\n\t\ttabIndex: 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: classnames(\n\t\t\t// The wp-block className is important for editor styles.\n\t\t\tclassnames( 'block-editor-block-list__block', {\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t} ),\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tuseBlockClassNames( clientId ),\n\t\t\tuseBlockDefaultClassName( clientId ),\n\t\t\tuseBlockCustomClassName( clientId ),\n\t\t\tuseBlockMovingModeClassNames( clientId )\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_i18n","_blocks","_compose","_data","_warning","_useMovingAnimation","_blockListBlockContext","_useFocusFirstElement","_useIsHovered","_context","_useBlockClassNames","_useBlockDefaultClassName","_useBlockCustomClassName","_useBlockMovingModeClassNames","_useFocusHandler","_useSelectedBlockEventHandlers","_useNavModeExit","_useBlockRefs","_useIntersectionObserver","_store","_blockContentOverlay","_lockUnlock","BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","useContext","BlockListBlockContext","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","isSubtreeDisabled","useSelect","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","isBlockSubtreeDisabled","unlock","blockEditorStore","getActiveBlockVariation","blocksStore","isSelected","isPartOfMultiSelection","blockName","blockType","getBlockType","attributes","match","apiVersion","title","hasOverlay","useBlockOverlayActive","blockLabel","sprintf","__","htmlSuffix","mergedRefs","useMergeRefs","ref","useFocusFirstElement","useBlockRefProvider","useFocusHandler","useEventHandlers","useNavModeExit","useIsHovered","useIntersectionObserver","useMovingAnimation","triggerAnimationOnChange","useDisabled","isDisabled","blockEditContext","useBlockEditContext","SCRIPT_DEBUG","warning","tabIndex","id","role","inert","undefined","classnames","useBlockClassNames","useBlockDefaultClassName","useBlockCustomClassName","useBlockMovingModeClassNames","style","save","getBlockProps"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__unstableGetBlockProps as getBlockProps,\n\tgetBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { BlockListBlockContext } from '../block-list-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport { useBlockEditContext } from '../../block-edit/context';\nimport { useBlockClassNames } from './use-block-class-names';\nimport { useBlockDefaultClassName } from './use-block-default-class-name';\nimport { useBlockCustomClassName } from './use-block-custom-class-name';\nimport { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { store as blockEditorStore } from '../../../store';\nimport useBlockOverlayActive from '../../block-content-overlay';\nimport { unlock } from '../../../lock-unlock';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps(\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t} = useContext( BlockListBlockContext );\n\tconst {\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisPartOfSelection,\n\t\tadjustScrolling,\n\t\tenableAnimation,\n\t\tisSubtreeDisabled,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisTyping,\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisAncestorMultiSelected,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst isPartOfMultiSelection =\n\t\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\t\tisAncestorMultiSelected( clientId );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\n\t\t\treturn {\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisPartOfSelection: isSelected || isPartOfMultiSelection,\n\t\t\t\tadjustScrolling:\n\t\t\t\t\tisSelected || isFirstMultiSelectedBlock( clientId ),\n\t\t\t\tenableAnimation:\n\t\t\t\t\t! isTyping() &&\n\t\t\t\t\tgetGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,\n\t\t\t\tisSubtreeDisabled: isBlockSubtreeDisabled( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasOverlay = useBlockOverlayActive( clientId );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( clientId ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( clientId ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( {\n\t\t\tisSelected: isPartOfSelection,\n\t\t\tadjustScrolling,\n\t\t\tenableAnimation,\n\t\t\ttriggerAnimationOnChange: index,\n\t\t} ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\treturn {\n\t\ttabIndex: 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: classnames(\n\t\t\t// The wp-block className is important for editor styles.\n\t\t\tclassnames( 'block-editor-block-list__block', {\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t} ),\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tuseBlockClassNames( clientId ),\n\t\t\tuseBlockDefaultClassName( clientId ),\n\t\t\tuseBlockCustomClassName( clientId ),\n\t\t\tuseBlockMovingModeClassNames( clientId )\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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"}
|
|
@@ -47,7 +47,7 @@ function useNavModeExit(clientId) {
|
|
|
47
47
|
}
|
|
48
48
|
node.addEventListener('mousedown', onMouseDown);
|
|
49
49
|
return () => {
|
|
50
|
-
node.
|
|
50
|
+
node.removeEventListener('mousedown', onMouseDown);
|
|
51
51
|
};
|
|
52
52
|
}, [clientId, isNavigationMode, isBlockSelected, setNavigationMode]);
|
|
53
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_compose","_store","useNavModeExit","clientId","isNavigationMode","isBlockSelected","useSelect","blockEditorStore","setNavigationMode","selectBlock","useDispatch","useRefEffect","node","onMouseDown","event","defaultPrevented","preventDefault","addEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-nav-mode-exit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Allows navigation mode to be exited by clicking in the selected block.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useNavModeExit( clientId ) {\n\tconst { isNavigationMode, isBlockSelected } = useSelect( blockEditorStore );\n\tconst { setNavigationMode, selectBlock } = useDispatch( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// Don't select a block if it's already handled by a child\n\t\t\t\t// block.\n\t\t\t\tif ( isNavigationMode() && ! event.defaultPrevented ) {\n\t\t\t\t\t// Prevent focus from moving to the block.\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// When clicking on a selected block, exit navigation mode.\n\t\t\t\t\tif ( isBlockSelected( clientId ) ) {\n\t\t\t\t\t\tsetNavigationMode( false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\n\t\t\treturn () => {\n\t\t\t\tnode.
|
|
1
|
+
{"version":3,"names":["_data","require","_compose","_store","useNavModeExit","clientId","isNavigationMode","isBlockSelected","useSelect","blockEditorStore","setNavigationMode","selectBlock","useDispatch","useRefEffect","node","onMouseDown","event","defaultPrevented","preventDefault","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-nav-mode-exit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\n\n/**\n * Allows navigation mode to be exited by clicking in the selected block.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useNavModeExit( clientId ) {\n\tconst { isNavigationMode, isBlockSelected } = useSelect( blockEditorStore );\n\tconst { setNavigationMode, selectBlock } = useDispatch( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// Don't select a block if it's already handled by a child\n\t\t\t\t// block.\n\t\t\t\tif ( isNavigationMode() && ! event.defaultPrevented ) {\n\t\t\t\t\t// Prevent focus from moving to the block.\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t// When clicking on a selected block, exit navigation mode.\n\t\t\t\t\tif ( isBlockSelected( clientId ) ) {\n\t\t\t\t\t\tsetNavigationMode( false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\t};\n\t\t},\n\t\t[ clientId, isNavigationMode, isBlockSelected, setNavigationMode ]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASG,cAAcA,CAAEC,QAAQ,EAAG;EAC1C,MAAM;IAAEC,gBAAgB;IAAEC;EAAgB,CAAC,GAAG,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EAC3E,MAAM;IAAEC,iBAAiB;IAAEC;EAAY,CAAC,GAAG,IAAAC,iBAAW,EAAEH,YAAiB,CAAC;EAC1E,OAAO,IAAAI,qBAAY,EAChBC,IAAI,IAAM;IACX,SAASC,WAAWA,CAAEC,KAAK,EAAG;MAC7B;MACA;MACA,IAAKV,gBAAgB,CAAC,CAAC,IAAI,CAAEU,KAAK,CAACC,gBAAgB,EAAG;QACrD;QACAD,KAAK,CAACE,cAAc,CAAC,CAAC;;QAEtB;QACA,IAAKX,eAAe,CAAEF,QAAS,CAAC,EAAG;UAClCK,iBAAiB,CAAE,KAAM,CAAC;QAC3B,CAAC,MAAM;UACNC,WAAW,CAAEN,QAAS,CAAC;QACxB;MACD;IACD;IAEAS,IAAI,CAACK,gBAAgB,CAAE,WAAW,EAAEJ,WAAY,CAAC;IAEjD,OAAO,MAAM;MACZD,IAAI,CAACM,mBAAmB,CAAE,WAAW,EAAEL,WAAY,CAAC;IACrD,CAAC;EACF,CAAC,EACD,CAAEV,QAAQ,EAAEC,gBAAgB,EAAEC,eAAe,EAAEG,iBAAiB,CACjE,CAAC;AACF"}
|
|
@@ -33,7 +33,9 @@ function BlockLockMenuItem({
|
|
|
33
33
|
const label = isLocked ? (0, _i18n.__)('Unlock') : (0, _i18n.__)('Lock');
|
|
34
34
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuItem, {
|
|
35
35
|
icon: isLocked ? _icons.unlock : _icons.lockOutline,
|
|
36
|
-
onClick: toggleModal
|
|
36
|
+
onClick: toggleModal,
|
|
37
|
+
"aria-expanded": isModalOpen,
|
|
38
|
+
"aria-haspopup": "dialog"
|
|
37
39
|
}, label), isModalOpen && (0, _element.createElement)(_modal.default, {
|
|
38
40
|
clientId: clientId,
|
|
39
41
|
onClose: toggleModal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_components","_icons","_useBlockLock","_interopRequireDefault","_modal","BlockLockMenuItem","clientId","canLock","isLocked","useBlockLock","isModalOpen","toggleModal","useReducer","isActive","label","__","createElement","Fragment","MenuItem","icon","unlock","lockOutline","onClick","default","onClose"],"sources":["@wordpress/block-editor/src/components/block-lock/menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useReducer } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { lockOutline, unlock } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport BlockLockModal from './modal';\n\nexport default function BlockLockMenuItem( { clientId } ) {\n\tconst { canLock, isLocked } = useBlockLock( clientId );\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tif ( ! canLock ) {\n\t\treturn null;\n\t}\n\n\tconst label = isLocked ? __( 'Unlock' ) : __( 'Lock' );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ isLocked ? unlock : lockOutline }\n\t\t\t\tonClick={ toggleModal }\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAKA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAD,sBAAA,CAAAL,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIe,SAASO,iBAAiBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACzD,MAAM;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAG,IAAAC,qBAAY,EAAEH,QAAS,CAAC;EAEtD,MAAM,CAAEI,WAAW,EAAEC,WAAW,CAAE,GAAG,IAAAC,mBAAU,EAC5CC,QAAQ,IAAM,CAAEA,QAAQ,EAC1B,KACD,CAAC;EAED,IAAK,CAAEN,OAAO,EAAG;IAChB,OAAO,IAAI;EACZ;EAEA,MAAMO,KAAK,GAAGN,QAAQ,GAAG,IAAAO,QAAE,EAAE,QAAS,CAAC,GAAG,IAAAA,QAAE,EAAE,MAAO,CAAC;EAEtD,OACC,IAAAlB,QAAA,CAAAmB,aAAA,EAAAnB,QAAA,CAAAoB,QAAA,QACC,IAAApB,QAAA,CAAAmB,aAAA,EAAChB,WAAA,CAAAkB,QAAQ;IACRC,IAAI,EAAGX,QAAQ,GAAGY,aAAM,GAAGC,kBAAa;IACxCC,OAAO,EAAGX;
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_icons","_useBlockLock","_interopRequireDefault","_modal","BlockLockMenuItem","clientId","canLock","isLocked","useBlockLock","isModalOpen","toggleModal","useReducer","isActive","label","__","createElement","Fragment","MenuItem","icon","unlock","lockOutline","onClick","default","onClose"],"sources":["@wordpress/block-editor/src/components/block-lock/menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useReducer } from '@wordpress/element';\nimport { MenuItem } from '@wordpress/components';\nimport { lockOutline, unlock } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport BlockLockModal from './modal';\n\nexport default function BlockLockMenuItem( { clientId } ) {\n\tconst { canLock, isLocked } = useBlockLock( clientId );\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tif ( ! canLock ) {\n\t\treturn null;\n\t}\n\n\tconst label = isLocked ? __( 'Unlock' ) : __( 'Lock' );\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\ticon={ isLocked ? unlock : lockOutline }\n\t\t\t\tonClick={ toggleModal }\n\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</MenuItem>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAKA,IAAAI,aAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAD,sBAAA,CAAAL,OAAA;AAZA;AACA;AACA;;AAMA;AACA;AACA;;AAIe,SAASO,iBAAiBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EACzD,MAAM;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAG,IAAAC,qBAAY,EAAEH,QAAS,CAAC;EAEtD,MAAM,CAAEI,WAAW,EAAEC,WAAW,CAAE,GAAG,IAAAC,mBAAU,EAC5CC,QAAQ,IAAM,CAAEA,QAAQ,EAC1B,KACD,CAAC;EAED,IAAK,CAAEN,OAAO,EAAG;IAChB,OAAO,IAAI;EACZ;EAEA,MAAMO,KAAK,GAAGN,QAAQ,GAAG,IAAAO,QAAE,EAAE,QAAS,CAAC,GAAG,IAAAA,QAAE,EAAE,MAAO,CAAC;EAEtD,OACC,IAAAlB,QAAA,CAAAmB,aAAA,EAAAnB,QAAA,CAAAoB,QAAA,QACC,IAAApB,QAAA,CAAAmB,aAAA,EAAChB,WAAA,CAAAkB,QAAQ;IACRC,IAAI,EAAGX,QAAQ,GAAGY,aAAM,GAAGC,kBAAa;IACxCC,OAAO,EAAGX,WAAa;IACvB,iBAAgBD,WAAa;IAC7B,iBAAc;EAAQ,GAEpBI,KACO,CAAC,EACTJ,WAAW,IACZ,IAAAb,QAAA,CAAAmB,aAAA,EAACZ,MAAA,CAAAmB,OAAc;IAACjB,QAAQ,EAAGA,QAAU;IAACkB,OAAO,EAAGb;EAAa,CAAE,CAE/D,CAAC;AAEL"}
|
|
@@ -56,10 +56,12 @@ function BlockLockToolbar({
|
|
|
56
56
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.ToolbarGroup, {
|
|
57
57
|
className: "block-editor-block-lock-toolbar"
|
|
58
58
|
}, (0, _element.createElement)(_components.ToolbarButton, {
|
|
59
|
+
ref: lockButtonRef,
|
|
59
60
|
icon: _icons.lock,
|
|
60
61
|
label: (0, _i18n.__)('Unlock'),
|
|
61
62
|
onClick: toggleModal,
|
|
62
|
-
|
|
63
|
+
"aria-expanded": isModalOpen,
|
|
64
|
+
"aria-haspopup": "dialog"
|
|
63
65
|
})), isModalOpen && (0, _element.createElement)(_modal.default, {
|
|
64
66
|
clientId: clientId,
|
|
65
67
|
onClose: toggleModal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_components","_dom","_icons","_modal","_interopRequireDefault","_useBlockLock","BlockLockToolbar","clientId","wrapperRef","canEdit","canMove","canRemove","canLock","useBlockLock","isModalOpen","toggleModal","useReducer","isActive","lockButtonRef","useRef","isFirstRender","shouldHideBlockLockUI","useEffect","current","focus","focusable","find","sequential","element","tagName","createElement","Fragment","ToolbarGroup","className","ToolbarButton","icon","lock","label","__","onClick","
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_dom","_icons","_modal","_interopRequireDefault","_useBlockLock","BlockLockToolbar","clientId","wrapperRef","canEdit","canMove","canRemove","canLock","useBlockLock","isModalOpen","toggleModal","useReducer","isActive","lockButtonRef","useRef","isFirstRender","shouldHideBlockLockUI","useEffect","current","focus","focusable","find","sequential","element","tagName","createElement","Fragment","ToolbarGroup","className","ToolbarButton","ref","icon","lock","label","__","onClick","default","onClose"],"sources":["@wordpress/block-editor/src/components/block-lock/toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { focus } from '@wordpress/dom';\nimport { useReducer, useRef, useEffect } from '@wordpress/element';\nimport { lock } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockLockModal from './modal';\nimport useBlockLock from './use-block-lock';\n\nexport default function BlockLockToolbar( { clientId, wrapperRef } ) {\n\tconst { canEdit, canMove, canRemove, canLock } = useBlockLock( clientId );\n\n\tconst [ isModalOpen, toggleModal ] = useReducer(\n\t\t( isActive ) => ! isActive,\n\t\tfalse\n\t);\n\n\tconst lockButtonRef = useRef( null );\n\tconst isFirstRender = useRef( true );\n\n\tconst shouldHideBlockLockUI =\n\t\t! canLock || ( canEdit && canMove && canRemove );\n\n\t// Restore focus manually on the first focusable element in the toolbar\n\t// when the block lock modal is closed and the block is not locked anymore.\n\t// See https://github.com/WordPress/gutenberg/issues/51447\n\tuseEffect( () => {\n\t\tif ( isFirstRender.current ) {\n\t\t\tisFirstRender.current = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isModalOpen && shouldHideBlockLockUI ) {\n\t\t\tfocus.focusable\n\t\t\t\t.find( wrapperRef.current, {\n\t\t\t\t\tsequential: false,\n\t\t\t\t} )\n\t\t\t\t.find(\n\t\t\t\t\t( element ) =>\n\t\t\t\t\t\telement.tagName === 'BUTTON' &&\n\t\t\t\t\t\telement !== lockButtonRef.current\n\t\t\t\t)\n\t\t\t\t?.focus();\n\t\t}\n\t\t// wrapperRef is a reference object and should be stable\n\t}, [ isModalOpen, shouldHideBlockLockUI, wrapperRef ] );\n\n\tif ( shouldHideBlockLockUI ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup className=\"block-editor-block-lock-toolbar\">\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ lockButtonRef }\n\t\t\t\t\ticon={ lock }\n\t\t\t\t\tlabel={ __( 'Unlock' ) }\n\t\t\t\t\tonClick={ toggleModal }\n\t\t\t\t\taria-expanded={ isModalOpen }\n\t\t\t\t\taria-haspopup=\"dialog\"\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ isModalOpen && (\n\t\t\t\t<BlockLockModal clientId={ clientId } onClose={ toggleModal } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAMA,IAAAA,QAAA,GAAAC,OAAA;AAHA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AAKA,IAAAK,MAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,aAAA,GAAAD,sBAAA,CAAAN,OAAA;AAbA;AACA;AACA;;AAOA;AACA;AACA;;AAIe,SAASQ,gBAAgBA,CAAE;EAAEC,QAAQ;EAAEC;AAAW,CAAC,EAAG;EACpE,MAAM;IAAEC,OAAO;IAAEC,OAAO;IAAEC,SAAS;IAAEC;EAAQ,CAAC,GAAG,IAAAC,qBAAY,EAAEN,QAAS,CAAC;EAEzE,MAAM,CAAEO,WAAW,EAAEC,WAAW,CAAE,GAAG,IAAAC,mBAAU,EAC5CC,QAAQ,IAAM,CAAEA,QAAQ,EAC1B,KACD,CAAC;EAED,MAAMC,aAAa,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EACpC,MAAMC,aAAa,GAAG,IAAAD,eAAM,EAAE,IAAK,CAAC;EAEpC,MAAME,qBAAqB,GAC1B,CAAET,OAAO,IAAMH,OAAO,IAAIC,OAAO,IAAIC,SAAW;;EAEjD;EACA;EACA;EACA,IAAAW,kBAAS,EAAE,MAAM;IAChB,IAAKF,aAAa,CAACG,OAAO,EAAG;MAC5BH,aAAa,CAACG,OAAO,GAAG,KAAK;MAC7B;IACD;IAEA,IAAK,CAAET,WAAW,IAAIO,qBAAqB,EAAG;MAC7CG,UAAK,CAACC,SAAS,CACbC,IAAI,CAAElB,UAAU,CAACe,OAAO,EAAE;QAC1BI,UAAU,EAAE;MACb,CAAE,CAAC,CACFD,IAAI,CACFE,OAAO,IACRA,OAAO,CAACC,OAAO,KAAK,QAAQ,IAC5BD,OAAO,KAAKV,aAAa,CAACK,OAC5B,CAAC,EACCC,KAAK,CAAC,CAAC;IACX;IACA;EACD,CAAC,EAAE,CAAEV,WAAW,EAAEO,qBAAqB,EAAEb,UAAU,CAAG,CAAC;EAEvD,IAAKa,qBAAqB,EAAG;IAC5B,OAAO,IAAI;EACZ;EAEA,OACC,IAAAxB,QAAA,CAAAiC,aAAA,EAAAjC,QAAA,CAAAkC,QAAA,QACC,IAAAlC,QAAA,CAAAiC,aAAA,EAAC9B,WAAA,CAAAgC,YAAY;IAACC,SAAS,EAAC;EAAiC,GACxD,IAAApC,QAAA,CAAAiC,aAAA,EAAC9B,WAAA,CAAAkC,aAAa;IACbC,GAAG,EAAGjB,aAAe;IACrBkB,IAAI,EAAGC,WAAM;IACbC,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;IACxBC,OAAO,EAAGzB,WAAa;IACvB,iBAAgBD,WAAa;IAC7B,iBAAc;EAAQ,CACtB,CACY,CAAC,EACbA,WAAW,IACZ,IAAAjB,QAAA,CAAAiC,aAAA,EAAC3B,MAAA,CAAAsC,OAAc;IAAClC,QAAQ,EAAGA,QAAU;IAACmC,OAAO,EAAG3B;EAAa,CAAE,CAE/D,CAAC;AAEL"}
|
|
@@ -68,11 +68,9 @@ function BlockPopoverInbetween({
|
|
|
68
68
|
popoverRecomputeCounter < 0 || !previousElement && !nextElement || !isVisible) {
|
|
69
69
|
return undefined;
|
|
70
70
|
}
|
|
71
|
-
const
|
|
72
|
-
ownerDocument
|
|
73
|
-
} = previousElement || nextElement;
|
|
71
|
+
const contextElement = previousElement || nextElement;
|
|
74
72
|
return {
|
|
75
|
-
|
|
73
|
+
contextElement,
|
|
76
74
|
getBoundingClientRect() {
|
|
77
75
|
const previousRect = previousElement ? previousElement.getBoundingClientRect() : null;
|
|
78
76
|
const nextRect = nextElement ? nextElement.getBoundingClientRect() : null;
|
|
@@ -169,7 +167,8 @@ function BlockPopoverInbetween({
|
|
|
169
167
|
// Render in the old slot if needed for backward compatibility,
|
|
170
168
|
// otherwise render in place (not in the default popover slot).
|
|
171
169
|
,
|
|
172
|
-
__unstableSlotName: __unstablePopoverSlot
|
|
170
|
+
__unstableSlotName: __unstablePopoverSlot,
|
|
171
|
+
inline: !__unstablePopoverSlot
|
|
173
172
|
// Forces a remount of the popover when its position changes
|
|
174
173
|
// This makes sure the popover doesn't animate from its previous position.
|
|
175
174
|
,
|