@wordpress/block-editor 15.10.1-next.ba3aee3a2.0 → 15.10.1-next.v.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 (159) hide show
  1. package/build/components/block-bindings/attribute-control.cjs +1 -1
  2. package/build/components/block-bindings/attribute-control.cjs.map +1 -1
  3. package/build/components/block-bindings/source-fields-list.cjs +1 -1
  4. package/build/components/block-bindings/source-fields-list.cjs.map +1 -1
  5. package/build/components/block-tools/index.cjs +82 -70
  6. package/build/components/block-tools/index.cjs.map +2 -2
  7. package/build/components/block-visibility/block-visibility-info.cjs +0 -59
  8. package/build/components/block-visibility/block-visibility-info.cjs.map +3 -3
  9. package/build/components/block-visibility/constants.cjs +10 -5
  10. package/build/components/block-visibility/constants.cjs.map +2 -2
  11. package/build/components/block-visibility/index.cjs +13 -5
  12. package/build/components/block-visibility/index.cjs.map +3 -3
  13. package/build/components/block-visibility/modal.cjs +397 -0
  14. package/build/components/block-visibility/modal.cjs.map +7 -0
  15. package/build/components/block-visibility/toolbar.cjs +1 -1
  16. package/build/components/block-visibility/toolbar.cjs.map +2 -2
  17. package/build/components/block-visibility/use-block-visibility.cjs +13 -17
  18. package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
  19. package/build/components/block-visibility/utils.cjs +81 -0
  20. package/build/components/block-visibility/utils.cjs.map +7 -0
  21. package/build/components/block-visibility/viewport-menu-item.cjs +61 -0
  22. package/build/components/block-visibility/viewport-menu-item.cjs.map +7 -0
  23. package/build/components/block-visibility/viewport-toolbar.cjs +89 -0
  24. package/build/components/block-visibility/viewport-toolbar.cjs.map +7 -0
  25. package/build/components/inner-blocks/use-inner-block-template-sync.cjs +1 -1
  26. package/build/components/inner-blocks/use-inner-block-template-sync.cjs.map +1 -1
  27. package/build/components/inserter/menu.cjs +6 -2
  28. package/build/components/inserter/menu.cjs.map +2 -2
  29. package/build/components/list-view/block-select-button.cjs +2 -2
  30. package/build/components/list-view/block-select-button.cjs.map +2 -2
  31. package/build/components/list-view/block.cjs +39 -22
  32. package/build/components/list-view/block.cjs.map +2 -2
  33. package/build/components/rich-text/index.cjs +1 -1
  34. package/build/components/rich-text/index.cjs.map +1 -1
  35. package/build/components/url-input/index.cjs +2 -0
  36. package/build/components/url-input/index.cjs.map +2 -2
  37. package/build/components/use-block-commands/index.cjs +1 -1
  38. package/build/components/use-block-commands/index.cjs.map +2 -2
  39. package/build/hooks/block-fields/index.cjs +75 -166
  40. package/build/hooks/block-fields/index.cjs.map +2 -2
  41. package/build/hooks/block-fields/link/index.cjs +13 -23
  42. package/build/hooks/block-fields/link/index.cjs.map +2 -2
  43. package/build/hooks/block-fields/media/index.cjs +32 -58
  44. package/build/hooks/block-fields/media/index.cjs.map +2 -2
  45. package/build/hooks/block-fields/rich-text/index.cjs +1 -5
  46. package/build/hooks/block-fields/rich-text/index.cjs.map +2 -2
  47. package/build/hooks/cross-origin-isolation.cjs +102 -0
  48. package/build/hooks/cross-origin-isolation.cjs.map +7 -0
  49. package/build/hooks/index.cjs +1 -0
  50. package/build/hooks/index.cjs.map +2 -2
  51. package/build/layouts/flex.cjs +6 -2
  52. package/build/layouts/flex.cjs.map +2 -2
  53. package/build/store/private-selectors.cjs +33 -1
  54. package/build/store/private-selectors.cjs.map +3 -3
  55. package/build/store/reducer.cjs +1 -1
  56. package/build/store/reducer.cjs.map +1 -1
  57. package/build/store/selectors.cjs +7 -8
  58. package/build/store/selectors.cjs.map +2 -2
  59. package/build-module/components/block-bindings/attribute-control.mjs +1 -1
  60. package/build-module/components/block-bindings/attribute-control.mjs.map +1 -1
  61. package/build-module/components/block-bindings/source-fields-list.mjs +1 -1
  62. package/build-module/components/block-bindings/source-fields-list.mjs.map +1 -1
  63. package/build-module/components/block-tools/index.mjs +85 -73
  64. package/build-module/components/block-tools/index.mjs.map +2 -2
  65. package/build-module/components/block-visibility/block-visibility-info.mjs +0 -59
  66. package/build-module/components/block-visibility/block-visibility-info.mjs.map +3 -3
  67. package/build-module/components/block-visibility/constants.mjs +8 -4
  68. package/build-module/components/block-visibility/constants.mjs.map +2 -2
  69. package/build-module/components/block-visibility/index.mjs +13 -6
  70. package/build-module/components/block-visibility/index.mjs.map +2 -2
  71. package/build-module/components/block-visibility/modal.mjs +384 -0
  72. package/build-module/components/block-visibility/modal.mjs.map +7 -0
  73. package/build-module/components/block-visibility/toolbar.mjs +1 -1
  74. package/build-module/components/block-visibility/toolbar.mjs.map +2 -2
  75. package/build-module/components/block-visibility/use-block-visibility.mjs +13 -13
  76. package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
  77. package/build-module/components/block-visibility/utils.mjs +55 -0
  78. package/build-module/components/block-visibility/utils.mjs.map +7 -0
  79. package/build-module/components/block-visibility/viewport-menu-item.mjs +40 -0
  80. package/build-module/components/block-visibility/viewport-menu-item.mjs.map +7 -0
  81. package/build-module/components/block-visibility/viewport-toolbar.mjs +68 -0
  82. package/build-module/components/block-visibility/viewport-toolbar.mjs.map +7 -0
  83. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs +1 -1
  84. package/build-module/components/inner-blocks/use-inner-block-template-sync.mjs.map +1 -1
  85. package/build-module/components/inserter/menu.mjs +6 -2
  86. package/build-module/components/inserter/menu.mjs.map +2 -2
  87. package/build-module/components/list-view/block-select-button.mjs +2 -2
  88. package/build-module/components/list-view/block-select-button.mjs.map +2 -2
  89. package/build-module/components/list-view/block.mjs +39 -22
  90. package/build-module/components/list-view/block.mjs.map +2 -2
  91. package/build-module/components/rich-text/index.mjs +1 -1
  92. package/build-module/components/rich-text/index.mjs.map +1 -1
  93. package/build-module/components/url-input/index.mjs +2 -0
  94. package/build-module/components/url-input/index.mjs.map +2 -2
  95. package/build-module/components/use-block-commands/index.mjs +1 -1
  96. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  97. package/build-module/hooks/block-fields/index.mjs +75 -166
  98. package/build-module/hooks/block-fields/index.mjs.map +2 -2
  99. package/build-module/hooks/block-fields/link/index.mjs +13 -23
  100. package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
  101. package/build-module/hooks/block-fields/media/index.mjs +32 -58
  102. package/build-module/hooks/block-fields/media/index.mjs.map +2 -2
  103. package/build-module/hooks/block-fields/rich-text/index.mjs +1 -5
  104. package/build-module/hooks/block-fields/rich-text/index.mjs.map +2 -2
  105. package/build-module/hooks/cross-origin-isolation.mjs +100 -0
  106. package/build-module/hooks/cross-origin-isolation.mjs.map +7 -0
  107. package/build-module/hooks/index.mjs +1 -0
  108. package/build-module/hooks/index.mjs.map +2 -2
  109. package/build-module/layouts/flex.mjs +6 -2
  110. package/build-module/layouts/flex.mjs.map +2 -2
  111. package/build-module/store/private-selectors.mjs +34 -1
  112. package/build-module/store/private-selectors.mjs.map +2 -2
  113. package/build-module/store/reducer.mjs +1 -1
  114. package/build-module/store/reducer.mjs.map +1 -1
  115. package/build-module/store/selectors.mjs +7 -8
  116. package/build-module/store/selectors.mjs.map +2 -2
  117. package/build-style/content-rtl.css +4 -1
  118. package/build-style/content.css +4 -1
  119. package/build-style/style-rtl.css +48 -0
  120. package/build-style/style.css +48 -0
  121. package/package.json +39 -39
  122. package/src/components/block-bindings/attribute-control.js +1 -1
  123. package/src/components/block-bindings/source-fields-list.js +1 -1
  124. package/src/components/block-list/content.scss +4 -1
  125. package/src/components/block-tools/index.js +45 -33
  126. package/src/components/block-visibility/block-visibility-info.js +0 -1
  127. package/src/components/block-visibility/constants.js +7 -3
  128. package/src/components/block-visibility/index.js +21 -3
  129. package/src/components/block-visibility/modal.js +358 -0
  130. package/src/components/block-visibility/style.scss +58 -0
  131. package/src/components/block-visibility/test/use-block-visibility.js +12 -56
  132. package/src/components/block-visibility/test/utils.js +266 -0
  133. package/src/components/block-visibility/toolbar.js +1 -1
  134. package/src/components/block-visibility/use-block-visibility.js +18 -21
  135. package/src/components/block-visibility/utils.js +95 -0
  136. package/src/components/block-visibility/viewport-menu-item.js +42 -0
  137. package/src/components/block-visibility/viewport-toolbar.js +88 -0
  138. package/src/components/inner-blocks/use-inner-block-template-sync.js +1 -1
  139. package/src/components/inserter/menu.js +6 -2
  140. package/src/components/list-view/block-select-button.js +2 -2
  141. package/src/components/list-view/block.js +47 -25
  142. package/src/components/rich-text/index.js +1 -1
  143. package/src/components/url-input/index.js +2 -0
  144. package/src/components/use-block-commands/index.js +4 -3
  145. package/src/hooks/block-fields/index.js +104 -224
  146. package/src/hooks/block-fields/link/index.js +13 -39
  147. package/src/hooks/block-fields/media/index.js +31 -90
  148. package/src/hooks/block-fields/rich-text/index.js +1 -5
  149. package/src/hooks/block-fields/styles.scss +2 -0
  150. package/src/hooks/cross-origin-isolation.js +143 -0
  151. package/src/hooks/index.js +1 -0
  152. package/src/layouts/flex.js +8 -3
  153. package/src/layouts/test/flex.js +53 -0
  154. package/src/store/private-selectors.js +64 -1
  155. package/src/store/reducer.js +1 -1
  156. package/src/store/selectors.js +7 -9
  157. package/src/store/test/private-selectors.js +80 -0
  158. package/src/style.scss +1 -0
  159. package/src/components/block-visibility/styles.scss +0 -10
@@ -208,13 +208,16 @@ _::-webkit-full-page-media, _:future, :root [data-has-multi-selection=true] .blo
208
208
  border: none !important;
209
209
  padding: 0 !important;
210
210
  opacity: 0;
211
- margin: 0 !important;
211
+ margin-top: 0 !important;
212
+ margin-bottom: 0 !important;
212
213
  }
213
214
  .block-editor-block-list__layout.is-layout-flex:not(.is-vertical) > .is-block-hidden {
214
215
  width: 0;
215
216
  height: auto;
216
217
  align-self: stretch;
217
218
  white-space: nowrap !important;
219
+ margin-right: 0 !important;
220
+ margin-left: 0 !important;
218
221
  }
219
222
  .block-editor-block-list__layout [class^=components-] {
220
223
  -webkit-user-select: text;
@@ -208,13 +208,16 @@ _::-webkit-full-page-media, _:future, :root [data-has-multi-selection=true] .blo
208
208
  border: none !important;
209
209
  padding: 0 !important;
210
210
  opacity: 0;
211
- margin: 0 !important;
211
+ margin-top: 0 !important;
212
+ margin-bottom: 0 !important;
212
213
  }
213
214
  .block-editor-block-list__layout.is-layout-flex:not(.is-vertical) > .is-block-hidden {
214
215
  width: 0;
215
216
  height: auto;
216
217
  align-self: stretch;
217
218
  white-space: nowrap !important;
219
+ margin-left: 0 !important;
220
+ margin-right: 0 !important;
218
221
  }
219
222
  .block-editor-block-list__layout [class^=components-] {
220
223
  -webkit-user-select: text;
@@ -3569,6 +3569,7 @@ iframe[name=editor-canvas] {
3569
3569
 
3570
3570
  .block-editor-block-fields__header-title {
3571
3571
  flex: 1;
3572
+ margin: 0 !important;
3572
3573
  }
3573
3574
 
3574
3575
  .block-editor-hooks__block-hooks {
@@ -4524,4 +4525,51 @@ div.block-editor-bindings__panel button:hover .block-editor-bindings__item span
4524
4525
 
4525
4526
  .spacing-sizes-control__wrapper .preset-input-control__icon {
4526
4527
  margin-right: -4px;
4528
+ }
4529
+
4530
+ .block-editor-block-visibility-modal {
4531
+ z-index: 1000001;
4532
+ }
4533
+ .block-editor-block-visibility-modal__options {
4534
+ border: 0;
4535
+ padding: 0;
4536
+ list-style: none;
4537
+ margin: 24px 0;
4538
+ }
4539
+ .block-editor-block-visibility-modal__options-item {
4540
+ display: flex;
4541
+ align-items: center;
4542
+ justify-content: space-between;
4543
+ margin: 0 0 16px 0;
4544
+ gap: 24px;
4545
+ }
4546
+ .block-editor-block-visibility-modal__options-item:last-child {
4547
+ margin: 0;
4548
+ }
4549
+ .block-editor-block-visibility-modal__options-item--everywhere {
4550
+ flex-direction: column;
4551
+ align-items: start;
4552
+ }
4553
+ .block-editor-block-visibility-modal__options-checkbox--everywhere {
4554
+ font-weight: 600;
4555
+ }
4556
+ .block-editor-block-visibility-modal__options-icon--checked {
4557
+ fill: #ddd;
4558
+ }
4559
+ .block-editor-block-visibility-modal__sub-options {
4560
+ width: 100%;
4561
+ padding-inline-start: 12px;
4562
+ }
4563
+ .block-editor-block-visibility-modal__description {
4564
+ font-size: 12px;
4565
+ color: #757575;
4566
+ }
4567
+
4568
+ .block-editor-block-visibility-info {
4569
+ padding-top: 4px;
4570
+ padding-bottom: 4px;
4571
+ margin: 0 16px 16px;
4572
+ display: flex;
4573
+ align-items: center;
4574
+ justify-content: start;
4527
4575
  }
@@ -3571,6 +3571,7 @@ iframe[name=editor-canvas] {
3571
3571
 
3572
3572
  .block-editor-block-fields__header-title {
3573
3573
  flex: 1;
3574
+ margin: 0 !important;
3574
3575
  }
3575
3576
 
3576
3577
  .block-editor-hooks__block-hooks {
@@ -4526,4 +4527,51 @@ div.block-editor-bindings__panel button:hover .block-editor-bindings__item span
4526
4527
 
4527
4528
  .spacing-sizes-control__wrapper .preset-input-control__icon {
4528
4529
  margin-left: -4px;
4530
+ }
4531
+
4532
+ .block-editor-block-visibility-modal {
4533
+ z-index: 1000001;
4534
+ }
4535
+ .block-editor-block-visibility-modal__options {
4536
+ border: 0;
4537
+ padding: 0;
4538
+ list-style: none;
4539
+ margin: 24px 0;
4540
+ }
4541
+ .block-editor-block-visibility-modal__options-item {
4542
+ display: flex;
4543
+ align-items: center;
4544
+ justify-content: space-between;
4545
+ margin: 0 0 16px 0;
4546
+ gap: 24px;
4547
+ }
4548
+ .block-editor-block-visibility-modal__options-item:last-child {
4549
+ margin: 0;
4550
+ }
4551
+ .block-editor-block-visibility-modal__options-item--everywhere {
4552
+ flex-direction: column;
4553
+ align-items: start;
4554
+ }
4555
+ .block-editor-block-visibility-modal__options-checkbox--everywhere {
4556
+ font-weight: 600;
4557
+ }
4558
+ .block-editor-block-visibility-modal__options-icon--checked {
4559
+ fill: #ddd;
4560
+ }
4561
+ .block-editor-block-visibility-modal__sub-options {
4562
+ width: 100%;
4563
+ padding-inline-start: 12px;
4564
+ }
4565
+ .block-editor-block-visibility-modal__description {
4566
+ font-size: 12px;
4567
+ color: #757575;
4568
+ }
4569
+
4570
+ .block-editor-block-visibility-info {
4571
+ padding-top: 4px;
4572
+ padding-bottom: 4px;
4573
+ margin: 0 16px 16px;
4574
+ display: flex;
4575
+ align-items: center;
4576
+ justify-content: start;
4529
4577
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "15.10.1-next.ba3aee3a2.0",
3
+ "version": "15.10.1-next.v.0+500f87dd8",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -61,43 +61,43 @@
61
61
  ],
62
62
  "dependencies": {
63
63
  "@react-spring/web": "^9.4.5",
64
- "@wordpress/a11y": "^4.37.1-next.ba3aee3a2.0",
65
- "@wordpress/api-fetch": "^7.37.1-next.ba3aee3a2.0",
66
- "@wordpress/base-styles": "^6.13.2-next.ba3aee3a2.0",
67
- "@wordpress/blob": "^4.37.1-next.ba3aee3a2.0",
68
- "@wordpress/block-serialization-default-parser": "^5.37.1-next.ba3aee3a2.0",
69
- "@wordpress/blocks": "^15.10.1-next.ba3aee3a2.0",
70
- "@wordpress/commands": "^1.37.1-next.ba3aee3a2.0",
71
- "@wordpress/components": "^32.0.1-next.ba3aee3a2.0",
72
- "@wordpress/compose": "^7.37.1-next.ba3aee3a2.0",
73
- "@wordpress/data": "^10.37.1-next.ba3aee3a2.0",
74
- "@wordpress/dataviews": "^11.2.1-next.ba3aee3a2.0",
75
- "@wordpress/date": "^5.37.2-next.ba3aee3a2.0",
76
- "@wordpress/deprecated": "^4.37.1-next.ba3aee3a2.0",
77
- "@wordpress/dom": "^4.37.1-next.ba3aee3a2.0",
78
- "@wordpress/element": "^6.37.1-next.ba3aee3a2.0",
79
- "@wordpress/escape-html": "^3.37.1-next.ba3aee3a2.0",
80
- "@wordpress/global-styles-engine": "^1.4.1-next.ba3aee3a2.0",
81
- "@wordpress/hooks": "^4.37.1-next.ba3aee3a2.0",
82
- "@wordpress/html-entities": "^4.37.1-next.ba3aee3a2.0",
83
- "@wordpress/i18n": "^6.10.1-next.ba3aee3a2.0",
84
- "@wordpress/icons": "^11.4.1-next.ba3aee3a2.0",
85
- "@wordpress/image-cropper": "^1.1.1-next.ba3aee3a2.0",
86
- "@wordpress/interactivity": "^6.37.2-next.ba3aee3a2.0",
87
- "@wordpress/is-shallow-equal": "^5.37.1-next.ba3aee3a2.0",
88
- "@wordpress/keyboard-shortcuts": "^5.37.1-next.ba3aee3a2.0",
89
- "@wordpress/keycodes": "^4.38.1-next.ba3aee3a2.0",
90
- "@wordpress/notices": "^5.37.1-next.ba3aee3a2.0",
91
- "@wordpress/preferences": "^4.37.1-next.ba3aee3a2.0",
92
- "@wordpress/priority-queue": "^3.37.1-next.ba3aee3a2.0",
93
- "@wordpress/private-apis": "^1.37.1-next.ba3aee3a2.0",
94
- "@wordpress/rich-text": "^7.37.1-next.ba3aee3a2.0",
95
- "@wordpress/style-engine": "^2.37.1-next.ba3aee3a2.0",
96
- "@wordpress/token-list": "^3.37.1-next.ba3aee3a2.0",
97
- "@wordpress/upload-media": "^0.22.1-next.ba3aee3a2.0",
98
- "@wordpress/url": "^4.37.1-next.ba3aee3a2.0",
99
- "@wordpress/warning": "^3.37.1-next.ba3aee3a2.0",
100
- "@wordpress/wordcount": "^4.37.1-next.ba3aee3a2.0",
64
+ "@wordpress/a11y": "^4.37.1-next.v.0+500f87dd8",
65
+ "@wordpress/api-fetch": "^7.37.1-next.v.0+500f87dd8",
66
+ "@wordpress/base-styles": "^6.13.2-next.v.0+500f87dd8",
67
+ "@wordpress/blob": "^4.37.1-next.v.0+500f87dd8",
68
+ "@wordpress/block-serialization-default-parser": "^5.37.1-next.v.0+500f87dd8",
69
+ "@wordpress/blocks": "^15.10.1-next.v.0+500f87dd8",
70
+ "@wordpress/commands": "^1.37.1-next.v.0+500f87dd8",
71
+ "@wordpress/components": "^32.0.1-next.v.0+500f87dd8",
72
+ "@wordpress/compose": "^7.37.1-next.v.0+500f87dd8",
73
+ "@wordpress/data": "^10.37.1-next.v.0+500f87dd8",
74
+ "@wordpress/dataviews": "^11.2.1-next.v.0+500f87dd8",
75
+ "@wordpress/date": "^5.37.2-next.v.0+500f87dd8",
76
+ "@wordpress/deprecated": "^4.37.1-next.v.0+500f87dd8",
77
+ "@wordpress/dom": "^4.37.1-next.v.0+500f87dd8",
78
+ "@wordpress/element": "^6.37.1-next.v.0+500f87dd8",
79
+ "@wordpress/escape-html": "^3.37.1-next.v.0+500f87dd8",
80
+ "@wordpress/global-styles-engine": "^1.4.1-next.v.0+500f87dd8",
81
+ "@wordpress/hooks": "^4.37.1-next.v.0+500f87dd8",
82
+ "@wordpress/html-entities": "^4.37.1-next.v.0+500f87dd8",
83
+ "@wordpress/i18n": "^6.10.1-next.v.0+500f87dd8",
84
+ "@wordpress/icons": "^11.4.1-next.v.0+500f87dd8",
85
+ "@wordpress/image-cropper": "^1.1.1-next.v.0+500f87dd8",
86
+ "@wordpress/interactivity": "^6.37.2-next.v.0+500f87dd8",
87
+ "@wordpress/is-shallow-equal": "^5.37.1-next.v.0+500f87dd8",
88
+ "@wordpress/keyboard-shortcuts": "^5.37.1-next.v.0+500f87dd8",
89
+ "@wordpress/keycodes": "^4.38.1-next.v.0+500f87dd8",
90
+ "@wordpress/notices": "^5.38.1-next.v.0+500f87dd8",
91
+ "@wordpress/preferences": "^4.37.1-next.v.0+500f87dd8",
92
+ "@wordpress/priority-queue": "^3.37.1-next.v.0+500f87dd8",
93
+ "@wordpress/private-apis": "^1.37.1-next.v.0+500f87dd8",
94
+ "@wordpress/rich-text": "^7.37.1-next.v.0+500f87dd8",
95
+ "@wordpress/style-engine": "^2.37.1-next.v.0+500f87dd8",
96
+ "@wordpress/token-list": "^3.37.1-next.v.0+500f87dd8",
97
+ "@wordpress/upload-media": "^0.22.1-next.v.0+500f87dd8",
98
+ "@wordpress/url": "^4.37.1-next.v.0+500f87dd8",
99
+ "@wordpress/warning": "^3.37.1-next.v.0+500f87dd8",
100
+ "@wordpress/wordcount": "^4.37.1-next.v.0+500f87dd8",
101
101
  "change-case": "^4.1.2",
102
102
  "clsx": "^2.1.1",
103
103
  "colord": "^2.7.0",
@@ -124,5 +124,5 @@
124
124
  "publishConfig": {
125
125
  "access": "public"
126
126
  },
127
- "gitHead": "67d2e486fcd40c753591cf911ca0659132f519ca"
127
+ "gitHead": "ca0db0ee8ac2116cd307650136027d26d0cdd9bd"
128
128
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import fastDeepEqual from 'fast-deep-equal/es6';
4
+ import fastDeepEqual from 'fast-deep-equal/es6/index.js';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import fastDeepEqual from 'fast-deep-equal/es6';
4
+ import fastDeepEqual from 'fast-deep-equal/es6/index.js';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -109,7 +109,8 @@ _::-webkit-full-page-media, _:future, :root [data-has-multi-selection="true"] .b
109
109
  border: none !important;
110
110
  padding: 0 !important;
111
111
  opacity: 0;
112
- margin: 0 !important;
112
+ margin-top: 0 !important;
113
+ margin-bottom: 0 !important;
113
114
  }
114
115
 
115
116
  &.is-layout-flex:not(.is-vertical) > .is-block-hidden {
@@ -117,6 +118,8 @@ _::-webkit-full-page-media, _:future, :root [data-has-multi-selection="true"] .b
117
118
  height: auto;
118
119
  align-self: stretch;
119
120
  white-space: nowrap !important;
121
+ margin-left: 0 !important;
122
+ margin-right: 0 !important;
120
123
  }
121
124
 
122
125
  // Re-enable it on components inside.
@@ -10,11 +10,11 @@ import { useSelect, useDispatch } from '@wordpress/data';
10
10
  import { isTextField } from '@wordpress/dom';
11
11
  import { Popover } from '@wordpress/components';
12
12
  import { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
13
- import { useRef } from '@wordpress/element';
13
+ import { useRef, useState } from '@wordpress/element';
14
14
  import {
15
15
  switchToBlockType,
16
- store as blocksStore,
17
16
  hasBlockSupport,
17
+ store as blocksStore,
18
18
  } from '@wordpress/blocks';
19
19
  import { speak } from '@wordpress/a11y';
20
20
  import { __, sprintf, _n } from '@wordpress/i18n';
@@ -33,8 +33,9 @@ import usePopoverScroll from '../block-popover/use-popover-scroll';
33
33
  import ZoomOutModeInserters from './zoom-out-mode-inserters';
34
34
  import { useShowBlockTools } from './use-show-block-tools';
35
35
  import { unlock } from '../../lock-unlock';
36
- import { cleanEmptyObject } from '../../hooks/utils';
37
36
  import usePasteStyles from '../use-paste-styles';
37
+ import { BlockVisibilityModal } from '../block-visibility';
38
+ import { cleanEmptyObject } from '../../hooks/utils';
38
39
 
39
40
  function selector( select ) {
40
41
  const {
@@ -74,14 +75,14 @@ export default function BlockTools( {
74
75
  } ) {
75
76
  const { clientId, hasFixedToolbar, isTyping, isZoomOutMode, isDragging } =
76
77
  useSelect( selector, [] );
77
-
78
+ const [ visibilityModalClientIds, setVisibilityModalClientIds ] =
79
+ useState( null );
78
80
  const isMatch = useShortcutEventMatch();
79
81
  const {
80
82
  getBlocksByClientId,
81
83
  getSelectedBlockClientIds,
82
84
  getBlockRootClientId,
83
85
  isGroupable,
84
- getBlockName,
85
86
  getEditedContentOnlySection,
86
87
  } = unlock( useSelect( blockEditorStore ) );
87
88
  const { getGroupingBlockName } = useSelect( blocksStore );
@@ -99,8 +100,8 @@ export default function BlockTools( {
99
100
  moveBlocksUp,
100
101
  moveBlocksDown,
101
102
  expandBlock,
102
- updateBlockAttributes,
103
103
  stopEditingContentOnlySection,
104
+ updateBlockAttributes,
104
105
  } = unlock( useDispatch( blockEditorStore ) );
105
106
 
106
107
  function onKeyDown( event ) {
@@ -221,36 +222,41 @@ export default function BlockTools( {
221
222
  if ( clientIds.length ) {
222
223
  event.preventDefault();
223
224
  const blocks = getBlocksByClientId( clientIds );
224
- const canToggleBlockVisibility = blocks.every( ( block ) =>
225
- hasBlockSupport(
226
- getBlockName( block.clientId ),
227
- 'visibility',
228
- true
229
- )
225
+ const supportsBlockVisibility = blocks.every( ( block ) =>
226
+ hasBlockSupport( block.name, 'visibility', true )
230
227
  );
231
- if ( ! canToggleBlockVisibility ) {
228
+
229
+ if ( ! supportsBlockVisibility ) {
232
230
  return;
233
231
  }
234
- const hasHiddenBlock = blocks.some(
235
- ( block ) =>
236
- block.attributes.metadata?.blockVisibility === false
237
- );
238
- const attributesByClientId = Object.fromEntries(
239
- blocks.map( ( { clientId: mapClientId, attributes } ) => [
240
- mapClientId,
241
- {
242
- metadata: cleanEmptyObject( {
243
- ...attributes?.metadata,
244
- blockVisibility: hasHiddenBlock
245
- ? undefined
246
- : false,
247
- } ),
248
- },
249
- ] )
250
- );
251
- updateBlockAttributes( clientIds, attributesByClientId, {
252
- uniqueByBlock: true,
253
- } );
232
+
233
+ if ( window.__experimentalHideBlocksBasedOnScreenSize ) {
234
+ // Open the visibility breakpoints modal.
235
+ setVisibilityModalClientIds( clientIds );
236
+ } else {
237
+ const hasHiddenBlock = blocks.some(
238
+ ( block ) =>
239
+ block.attributes.metadata?.blockVisibility === false
240
+ );
241
+ const attributesByClientId = Object.fromEntries(
242
+ blocks.map(
243
+ ( { clientId: mapClientId, attributes } ) => [
244
+ mapClientId,
245
+ {
246
+ metadata: cleanEmptyObject( {
247
+ ...attributes?.metadata,
248
+ blockVisibility: hasHiddenBlock
249
+ ? undefined
250
+ : false,
251
+ } ),
252
+ },
253
+ ]
254
+ )
255
+ );
256
+ updateBlockAttributes( clientIds, attributesByClientId, {
257
+ uniqueByBlock: true,
258
+ } );
259
+ }
254
260
  }
255
261
  }
256
262
 
@@ -317,6 +323,12 @@ export default function BlockTools( {
317
323
  />
318
324
  ) }
319
325
  </InsertionPointOpenRef.Provider>
326
+ { visibilityModalClientIds && (
327
+ <BlockVisibilityModal
328
+ clientIds={ visibilityModalClientIds }
329
+ onClose={ () => setVisibilityModalClientIds( null ) }
330
+ />
331
+ ) }
320
332
  </div>
321
333
  );
322
334
  }
@@ -16,7 +16,6 @@ import { unseen } from '@wordpress/icons';
16
16
  */
17
17
  import { unlock } from '../../lock-unlock';
18
18
  import { store as blockEditorStore } from '../../store';
19
- import './styles.scss';
20
19
 
21
20
  const { Badge } = unlock( componentsPrivateApis );
22
21
 
@@ -14,16 +14,20 @@ export const BLOCK_VISIBILITY_VIEWPORTS = {
14
14
  desktop: {
15
15
  label: __( 'Desktop' ),
16
16
  icon: desktop,
17
- value: 'desktop',
17
+ key: 'desktop',
18
18
  },
19
19
  tablet: {
20
20
  label: __( 'Tablet' ),
21
21
  icon: tablet,
22
- value: 'tablet',
22
+ key: 'tablet',
23
23
  },
24
24
  mobile: {
25
25
  label: __( 'Mobile' ),
26
26
  icon: mobile,
27
- value: 'mobile',
27
+ key: 'mobile',
28
28
  },
29
29
  };
30
+
31
+ export const BLOCK_VISIBILITY_VIEWPORT_ENTRIES = Object.entries(
32
+ BLOCK_VISIBILITY_VIEWPORTS
33
+ );
@@ -1,3 +1,21 @@
1
- export { default as BlockVisibilityMenuItem } from './menu-item';
2
- export { default as BlockVisibilityToolbar } from './toolbar';
3
- export { useBlockVisibility } from './use-block-visibility';
1
+ export { default as BlockVisibilityModal } from './modal';
2
+ export { default as useBlockVisibility } from './use-block-visibility';
3
+
4
+ import BlockVisibilityToolbarDefault from './toolbar';
5
+ import BlockVisibilityViewportToolbar from './viewport-toolbar';
6
+
7
+ import BlockVisibilityMenuItemDefault from './menu-item';
8
+ import BlockVisibilityViewportMenuItem from './viewport-menu-item';
9
+
10
+ const hasViewportVisibilityExperiment =
11
+ typeof window !== 'undefined' &&
12
+ window.__experimentalHideBlocksBasedOnScreenSize;
13
+
14
+ // Conditionally export the viewport versions when the experimental flag is enabled.
15
+ export const BlockVisibilityMenuItem = hasViewportVisibilityExperiment
16
+ ? BlockVisibilityViewportMenuItem
17
+ : BlockVisibilityMenuItemDefault;
18
+
19
+ export const BlockVisibilityToolbar = hasViewportVisibilityExperiment
20
+ ? BlockVisibilityViewportToolbar
21
+ : BlockVisibilityToolbarDefault;