@wordpress/block-editor 12.8.1 → 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.
Files changed (106) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -12
  3. package/build/components/block-list/block-outline.native.js +4 -3
  4. package/build/components/block-list/block-outline.native.js.map +1 -1
  5. package/build/components/block-list/index.js +4 -3
  6. package/build/components/block-list/index.js.map +1 -1
  7. package/build/components/block-popover/inbetween.js +4 -5
  8. package/build/components/block-popover/inbetween.js.map +1 -1
  9. package/build/components/block-popover/index.js +3 -2
  10. package/build/components/block-popover/index.js.map +1 -1
  11. package/build/components/color-style-selector/index.js +1 -1
  12. package/build/components/color-style-selector/index.js.map +1 -1
  13. package/build/components/inserter/reusable-blocks-tab.native.js +7 -4
  14. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  15. package/build/components/inserter/search-results.native.js +10 -8
  16. package/build/components/inserter/search-results.native.js.map +1 -1
  17. package/build/components/link-control/index.js +1 -7
  18. package/build/components/link-control/index.js.map +1 -1
  19. package/build/components/list-view/block-select-button.js +48 -7
  20. package/build/components/list-view/block-select-button.js.map +1 -1
  21. package/build/components/list-view/drop-indicator.js +3 -3
  22. package/build/components/list-view/drop-indicator.js.map +1 -1
  23. package/build/components/list-view/index.js +14 -8
  24. package/build/components/list-view/index.js.map +1 -1
  25. package/build/components/list-view/use-list-view-images.js +5 -4
  26. package/build/components/list-view/use-list-view-images.js.map +1 -1
  27. package/build/components/preview-options/index.js +3 -1
  28. package/build/components/preview-options/index.js.map +1 -1
  29. package/build/components/provider/index.js +3 -1
  30. package/build/components/provider/index.js.map +1 -1
  31. package/build/components/use-block-commands/index.js +74 -63
  32. package/build/components/use-block-commands/index.js.map +1 -1
  33. package/build/components/warning/index.js +1 -1
  34. package/build/components/warning/index.js.map +1 -1
  35. package/build/hooks/auto-inserting-blocks.js +174 -0
  36. package/build/hooks/auto-inserting-blocks.js.map +1 -0
  37. package/build/hooks/index.js +1 -0
  38. package/build/hooks/index.js.map +1 -1
  39. package/build-module/components/block-list/block-outline.native.js +4 -3
  40. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  41. package/build-module/components/block-list/index.js +4 -3
  42. package/build-module/components/block-list/index.js.map +1 -1
  43. package/build-module/components/block-popover/inbetween.js +4 -5
  44. package/build-module/components/block-popover/inbetween.js.map +1 -1
  45. package/build-module/components/block-popover/index.js +3 -2
  46. package/build-module/components/block-popover/index.js.map +1 -1
  47. package/build-module/components/color-style-selector/index.js +1 -1
  48. package/build-module/components/color-style-selector/index.js.map +1 -1
  49. package/build-module/components/inserter/reusable-blocks-tab.native.js +8 -4
  50. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  51. package/build-module/components/inserter/search-results.native.js +11 -8
  52. package/build-module/components/inserter/search-results.native.js.map +1 -1
  53. package/build-module/components/link-control/index.js +1 -7
  54. package/build-module/components/link-control/index.js.map +1 -1
  55. package/build-module/components/list-view/block-select-button.js +48 -7
  56. package/build-module/components/list-view/block-select-button.js.map +1 -1
  57. package/build-module/components/list-view/drop-indicator.js +3 -3
  58. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  59. package/build-module/components/list-view/index.js +14 -8
  60. package/build-module/components/list-view/index.js.map +1 -1
  61. package/build-module/components/list-view/use-list-view-images.js +5 -4
  62. package/build-module/components/list-view/use-list-view-images.js.map +1 -1
  63. package/build-module/components/preview-options/index.js +3 -1
  64. package/build-module/components/preview-options/index.js.map +1 -1
  65. package/build-module/components/provider/index.js +3 -1
  66. package/build-module/components/provider/index.js.map +1 -1
  67. package/build-module/components/use-block-commands/index.js +74 -63
  68. package/build-module/components/use-block-commands/index.js.map +1 -1
  69. package/build-module/components/warning/index.js +2 -2
  70. package/build-module/components/warning/index.js.map +1 -1
  71. package/build-module/hooks/auto-inserting-blocks.js +167 -0
  72. package/build-module/hooks/auto-inserting-blocks.js.map +1 -0
  73. package/build-module/hooks/index.js +1 -0
  74. package/build-module/hooks/index.js.map +1 -1
  75. package/build-style/content-rtl.css +8 -7
  76. package/build-style/content.css +8 -7
  77. package/package.json +32 -32
  78. package/src/components/block-list/block-outline.native.js +5 -2
  79. package/src/components/block-list/content.scss +2 -3
  80. package/src/components/block-list/index.js +4 -3
  81. package/src/components/block-popover/inbetween.js +4 -3
  82. package/src/components/block-popover/index.js +3 -2
  83. package/src/components/button-block-appender/content.scss +8 -0
  84. package/src/components/color-style-selector/index.js +1 -1
  85. package/src/components/inserter/reusable-blocks-tab.native.js +7 -2
  86. package/src/components/inserter/search-results.native.js +13 -9
  87. package/src/components/link-control/index.js +1 -5
  88. package/src/components/link-control/test/index.js +1 -0
  89. package/src/components/list-view/block-select-button.js +67 -15
  90. package/src/components/list-view/drop-indicator.js +4 -5
  91. package/src/components/list-view/index.js +19 -13
  92. package/src/components/list-view/use-list-view-images.js +8 -4
  93. package/src/components/observe-typing/README.md +2 -2
  94. package/src/components/preview-options/index.js +2 -0
  95. package/src/components/provider/index.js +8 -1
  96. package/src/components/use-block-commands/index.js +92 -88
  97. package/src/components/warning/index.js +2 -2
  98. package/src/hooks/auto-inserting-blocks.js +232 -0
  99. package/src/hooks/index.js +1 -0
  100. package/build/utils/pre-parse-patterns.js +0 -68
  101. package/build/utils/pre-parse-patterns.js.map +0 -1
  102. package/build-module/utils/pre-parse-patterns.js +0 -61
  103. package/build-module/utils/pre-parse-patterns.js.map +0 -1
  104. package/src/components/url-popover/test/__snapshots__/index.js.snap +0 -133
  105. package/src/components/url-popover/test/index.js +0 -75
  106. package/src/utils/pre-parse-patterns.js +0 -69
@@ -1,61 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, select } from '@wordpress/data';
5
- import { useEffect } from '@wordpress/element';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as blockEditorStore } from '../store';
11
- const requestIdleCallback = (() => {
12
- if (typeof window === 'undefined') {
13
- return callback => {
14
- setTimeout(() => callback(Date.now()), 0);
15
- };
16
- }
17
- return window.requestIdleCallback || window.requestAnimationFrame;
18
- })();
19
- const cancelIdleCallback = (() => {
20
- if (typeof window === 'undefined') {
21
- return clearTimeout;
22
- }
23
- return window.cancelIdleCallback || window.cancelAnimationFrame;
24
- })();
25
- export function usePreParsePatterns() {
26
- const {
27
- patterns,
28
- isPreviewMode
29
- } = useSelect(_select => {
30
- const {
31
- __experimentalBlockPatterns,
32
- __unstableIsPreviewMode
33
- } = _select(blockEditorStore).getSettings();
34
- return {
35
- patterns: __experimentalBlockPatterns,
36
- isPreviewMode: __unstableIsPreviewMode
37
- };
38
- }, []);
39
- useEffect(() => {
40
- if (isPreviewMode) {
41
- return;
42
- }
43
- if (!patterns?.length) {
44
- return;
45
- }
46
- let handle;
47
- let index = -1;
48
- const callback = () => {
49
- index++;
50
- if (index >= patterns.length) {
51
- return;
52
- }
53
- select(blockEditorStore).__experimentalGetParsedPattern(patterns[index].name);
54
- handle = requestIdleCallback(callback);
55
- };
56
- handle = requestIdleCallback(callback);
57
- return () => cancelIdleCallback(handle);
58
- }, [patterns, isPreviewMode]);
59
- return null;
60
- }
61
- //# sourceMappingURL=pre-parse-patterns.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useSelect","select","useEffect","store","blockEditorStore","requestIdleCallback","window","callback","setTimeout","Date","now","requestAnimationFrame","cancelIdleCallback","clearTimeout","cancelAnimationFrame","usePreParsePatterns","patterns","isPreviewMode","_select","__experimentalBlockPatterns","__unstableIsPreviewMode","getSettings","length","handle","index","__experimentalGetParsedPattern","name"],"sources":["@wordpress/block-editor/src/utils/pre-parse-patterns.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, select } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\n\nconst requestIdleCallback = ( () => {\n\tif ( typeof window === 'undefined' ) {\n\t\treturn ( callback ) => {\n\t\t\tsetTimeout( () => callback( Date.now() ), 0 );\n\t\t};\n\t}\n\n\treturn window.requestIdleCallback || window.requestAnimationFrame;\n} )();\n\nconst cancelIdleCallback = ( () => {\n\tif ( typeof window === 'undefined' ) {\n\t\treturn clearTimeout;\n\t}\n\n\treturn window.cancelIdleCallback || window.cancelAnimationFrame;\n} )();\n\nexport function usePreParsePatterns() {\n\tconst { patterns, isPreviewMode } = useSelect( ( _select ) => {\n\t\tconst { __experimentalBlockPatterns, __unstableIsPreviewMode } =\n\t\t\t_select( blockEditorStore ).getSettings();\n\t\treturn {\n\t\t\tpatterns: __experimentalBlockPatterns,\n\t\t\tisPreviewMode: __unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( isPreviewMode ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( ! patterns?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet handle;\n\t\tlet index = -1;\n\n\t\tconst callback = () => {\n\t\t\tindex++;\n\t\t\tif ( index >= patterns.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern(\n\t\t\t\tpatterns[ index ].name\n\t\t\t);\n\n\t\t\thandle = requestIdleCallback( callback );\n\t\t};\n\n\t\thandle = requestIdleCallback( callback );\n\t\treturn () => cancelIdleCallback( handle );\n\t}, [ patterns, isPreviewMode ] );\n\n\treturn null;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,iBAAiB;AACnD,SAASC,SAAS,QAAQ,oBAAoB;;AAE9C;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,UAAU;AAEpD,MAAMC,mBAAmB,GAAG,CAAE,MAAM;EACnC,IAAK,OAAOC,MAAM,KAAK,WAAW,EAAG;IACpC,OAASC,QAAQ,IAAM;MACtBC,UAAU,CAAE,MAAMD,QAAQ,CAAEE,IAAI,CAACC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAE,CAAC;IAC9C,CAAC;EACF;EAEA,OAAOJ,MAAM,CAACD,mBAAmB,IAAIC,MAAM,CAACK,qBAAqB;AAClE,CAAC,EAAG,CAAC;AAEL,MAAMC,kBAAkB,GAAG,CAAE,MAAM;EAClC,IAAK,OAAON,MAAM,KAAK,WAAW,EAAG;IACpC,OAAOO,YAAY;EACpB;EAEA,OAAOP,MAAM,CAACM,kBAAkB,IAAIN,MAAM,CAACQ,oBAAoB;AAChE,CAAC,EAAG,CAAC;AAEL,OAAO,SAASC,mBAAmBA,CAAA,EAAG;EACrC,MAAM;IAAEC,QAAQ;IAAEC;EAAc,CAAC,GAAGjB,SAAS,CAAIkB,OAAO,IAAM;IAC7D,MAAM;MAAEC,2BAA2B;MAAEC;IAAwB,CAAC,GAC7DF,OAAO,CAAEd,gBAAiB,CAAC,CAACiB,WAAW,CAAC,CAAC;IAC1C,OAAO;MACNL,QAAQ,EAAEG,2BAA2B;MACrCF,aAAa,EAAEG;IAChB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEPlB,SAAS,CAAE,MAAM;IAChB,IAAKe,aAAa,EAAG;MACpB;IACD;IACA,IAAK,CAAED,QAAQ,EAAEM,MAAM,EAAG;MACzB;IACD;IAEA,IAAIC,MAAM;IACV,IAAIC,KAAK,GAAG,CAAC,CAAC;IAEd,MAAMjB,QAAQ,GAAGA,CAAA,KAAM;MACtBiB,KAAK,EAAE;MACP,IAAKA,KAAK,IAAIR,QAAQ,CAACM,MAAM,EAAG;QAC/B;MACD;MAEArB,MAAM,CAAEG,gBAAiB,CAAC,CAACqB,8BAA8B,CACxDT,QAAQ,CAAEQ,KAAK,CAAE,CAACE,IACnB,CAAC;MAEDH,MAAM,GAAGlB,mBAAmB,CAAEE,QAAS,CAAC;IACzC,CAAC;IAEDgB,MAAM,GAAGlB,mBAAmB,CAAEE,QAAS,CAAC;IACxC,OAAO,MAAMK,kBAAkB,CAAEW,MAAO,CAAC;EAC1C,CAAC,EAAE,CAAEP,QAAQ,EAAEC,aAAa,CAAG,CAAC;EAEhC,OAAO,IAAI;AACZ"}
@@ -1,133 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`URLPopover matches the snapshot in its default state 1`] = `
4
- <div>
5
- <span>
6
- <div
7
- class="components-popover block-editor-url-popover is-positioned"
8
- style="position: absolute; top: 0px; left: 0px; transform: none;"
9
- tabindex="-1"
10
- >
11
- <div
12
- class="components-popover__content"
13
- style="max-height: 0px; overflow: auto;"
14
- >
15
- <div
16
- class="block-editor-url-popover__input-container"
17
- >
18
- <div
19
- class="block-editor-url-popover__row"
20
- >
21
- <div>
22
- Editor
23
- </div>
24
- <button
25
- aria-expanded="false"
26
- aria-label="Link settings"
27
- class="components-button block-editor-url-popover__settings-toggle has-icon"
28
- type="button"
29
- >
30
- <svg
31
- aria-hidden="true"
32
- focusable="false"
33
- height="24"
34
- viewBox="0 0 24 24"
35
- width="24"
36
- xmlns="http://www.w3.org/2000/svg"
37
- >
38
- <path
39
- d="M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
40
- />
41
- </svg>
42
- </button>
43
- </div>
44
- </div>
45
- </div>
46
- </div>
47
- </span>
48
- </div>
49
- `;
50
-
51
- exports[`URLPopover matches the snapshot when the settings are toggled open 1`] = `
52
- <div>
53
- <span>
54
- <div
55
- class="components-popover block-editor-url-popover is-positioned"
56
- style="position: absolute; top: 0px; left: 0px; transform: none;"
57
- tabindex="-1"
58
- >
59
- <div
60
- class="components-popover__content"
61
- style="max-height: 0px; overflow: auto;"
62
- >
63
- <div
64
- class="block-editor-url-popover__input-container"
65
- >
66
- <div
67
- class="block-editor-url-popover__row"
68
- >
69
- <div>
70
- Editor
71
- </div>
72
- <button
73
- aria-expanded="true"
74
- aria-label="Link settings"
75
- class="components-button block-editor-url-popover__settings-toggle has-icon"
76
- type="button"
77
- >
78
- <svg
79
- aria-hidden="true"
80
- focusable="false"
81
- height="24"
82
- viewBox="0 0 24 24"
83
- width="24"
84
- xmlns="http://www.w3.org/2000/svg"
85
- >
86
- <path
87
- d="M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"
88
- />
89
- </svg>
90
- </button>
91
- </div>
92
- <div
93
- class="block-editor-url-popover__row block-editor-url-popover__settings"
94
- >
95
- <div>
96
- Settings
97
- </div>
98
- </div>
99
- </div>
100
- </div>
101
- </div>
102
- </span>
103
- </div>
104
- `;
105
-
106
- exports[`URLPopover matches the snapshot when there are no settings 1`] = `
107
- <div>
108
- <span>
109
- <div
110
- class="components-popover block-editor-url-popover is-positioned"
111
- style="position: absolute; top: 0px; left: 0px; transform: none;"
112
- tabindex="-1"
113
- >
114
- <div
115
- class="components-popover__content"
116
- style="max-height: 0px; overflow: auto;"
117
- >
118
- <div
119
- class="block-editor-url-popover__input-container"
120
- >
121
- <div
122
- class="block-editor-url-popover__row"
123
- >
124
- <div>
125
- Editor
126
- </div>
127
- </div>
128
- </div>
129
- </div>
130
- </div>
131
- </span>
132
- </div>
133
- `;
@@ -1,75 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { render, screen, waitFor } from '@testing-library/react';
5
- import userEvent from '@testing-library/user-event';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import URLPopover from '../';
11
-
12
- /**
13
- * Returns the first found popover element up the DOM tree.
14
- *
15
- * @param {HTMLElement} element Element to start with.
16
- * @return {HTMLElement|null} Popover element, or `null` if not found.
17
- */
18
- function getWrappingPopoverElement( element ) {
19
- return element.closest( '.components-popover' );
20
- }
21
-
22
- describe( 'URLPopover', () => {
23
- it( 'matches the snapshot in its default state', async () => {
24
- const { container } = render(
25
- <URLPopover
26
- animate={ false }
27
- renderSettings={ () => <div>Settings</div> }
28
- >
29
- <div>Editor</div>
30
- </URLPopover>
31
- );
32
-
33
- await waitFor( () =>
34
- expect(
35
- getWrappingPopoverElement( screen.getByText( 'Editor' ) )
36
- ).toBePositionedPopover()
37
- );
38
-
39
- expect( container ).toMatchSnapshot();
40
- } );
41
-
42
- it( 'matches the snapshot when the settings are toggled open', async () => {
43
- const user = userEvent.setup();
44
- const { container } = render(
45
- <URLPopover
46
- animate={ false }
47
- renderSettings={ () => <div>Settings</div> }
48
- >
49
- <div>Editor</div>
50
- </URLPopover>
51
- );
52
-
53
- await user.click(
54
- screen.getByRole( 'button', { name: 'Link settings' } )
55
- );
56
-
57
- expect( container ).toMatchSnapshot();
58
- } );
59
-
60
- it( 'matches the snapshot when there are no settings', async () => {
61
- const { container } = render(
62
- <URLPopover animate={ false }>
63
- <div>Editor</div>
64
- </URLPopover>
65
- );
66
-
67
- await waitFor( () =>
68
- expect(
69
- getWrappingPopoverElement( screen.getByText( 'Editor' ) )
70
- ).toBePositionedPopover()
71
- );
72
-
73
- expect( container ).toMatchSnapshot();
74
- } );
75
- } );
@@ -1,69 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useSelect, select } from '@wordpress/data';
5
- import { useEffect } from '@wordpress/element';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as blockEditorStore } from '../store';
11
-
12
- const requestIdleCallback = ( () => {
13
- if ( typeof window === 'undefined' ) {
14
- return ( callback ) => {
15
- setTimeout( () => callback( Date.now() ), 0 );
16
- };
17
- }
18
-
19
- return window.requestIdleCallback || window.requestAnimationFrame;
20
- } )();
21
-
22
- const cancelIdleCallback = ( () => {
23
- if ( typeof window === 'undefined' ) {
24
- return clearTimeout;
25
- }
26
-
27
- return window.cancelIdleCallback || window.cancelAnimationFrame;
28
- } )();
29
-
30
- export function usePreParsePatterns() {
31
- const { patterns, isPreviewMode } = useSelect( ( _select ) => {
32
- const { __experimentalBlockPatterns, __unstableIsPreviewMode } =
33
- _select( blockEditorStore ).getSettings();
34
- return {
35
- patterns: __experimentalBlockPatterns,
36
- isPreviewMode: __unstableIsPreviewMode,
37
- };
38
- }, [] );
39
-
40
- useEffect( () => {
41
- if ( isPreviewMode ) {
42
- return;
43
- }
44
- if ( ! patterns?.length ) {
45
- return;
46
- }
47
-
48
- let handle;
49
- let index = -1;
50
-
51
- const callback = () => {
52
- index++;
53
- if ( index >= patterns.length ) {
54
- return;
55
- }
56
-
57
- select( blockEditorStore ).__experimentalGetParsedPattern(
58
- patterns[ index ].name
59
- );
60
-
61
- handle = requestIdleCallback( callback );
62
- };
63
-
64
- handle = requestIdleCallback( callback );
65
- return () => cancelIdleCallback( handle );
66
- }, [ patterns, isPreviewMode ] );
67
-
68
- return null;
69
- }