@wordpress/block-editor 12.12.0 → 12.13.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 (287) hide show
  1. package/CHANGELOG.md +12 -10
  2. package/README.md +35 -3
  3. package/build/components/block-alignment-control/use-available-alignments.js +30 -28
  4. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  5. package/build/components/block-list/block.native.js +4 -4
  6. package/build/components/block-list/block.native.js.map +1 -1
  7. package/build/components/block-list/layout.js +2 -3
  8. package/build/components/block-list/layout.js.map +1 -1
  9. package/build/components/border-radius-control/index.js +3 -2
  10. package/build/components/border-radius-control/index.js.map +1 -1
  11. package/build/components/color-palette/with-color-context.js +6 -6
  12. package/build/components/color-palette/with-color-context.js.map +1 -1
  13. package/build/components/colors/with-colors.js +2 -8
  14. package/build/components/colors/with-colors.js.map +1 -1
  15. package/build/components/colors-gradients/control.js +6 -7
  16. package/build/components/colors-gradients/control.js.map +1 -1
  17. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -13
  18. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  19. package/build/components/font-family/index.js +2 -3
  20. package/build/components/font-family/index.js.map +1 -1
  21. package/build/components/font-sizes/font-size-picker.js +3 -5
  22. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  23. package/build/components/font-sizes/with-font-sizes.js +3 -4
  24. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  25. package/build/components/global-styles/filters-panel.js +7 -8
  26. package/build/components/global-styles/filters-panel.js.map +1 -1
  27. package/build/components/global-styles/image-settings-panel.js +2 -2
  28. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  29. package/build/components/global-styles/typography-panel.js +1 -1
  30. package/build/components/global-styles/typography-panel.js.map +1 -1
  31. package/build/components/gradients/use-gradient.js +2 -5
  32. package/build/components/gradients/use-gradient.js.map +1 -1
  33. package/build/components/height-control/index.js +3 -3
  34. package/build/components/height-control/index.js.map +1 -1
  35. package/build/components/index.js +9 -2
  36. package/build/components/index.js.map +1 -1
  37. package/build/components/index.native.js +9 -2
  38. package/build/components/index.native.js.map +1 -1
  39. package/build/components/inner-blocks/index.js +2 -2
  40. package/build/components/inner-blocks/index.js.map +1 -1
  41. package/build/components/letter-spacing-control/index.js +3 -3
  42. package/build/components/letter-spacing-control/index.js.map +1 -1
  43. package/build/components/link-control/search-item.js +11 -0
  44. package/build/components/link-control/search-item.js.map +1 -1
  45. package/build/components/link-control/search-results.js +2 -1
  46. package/build/components/link-control/search-results.js.map +1 -1
  47. package/build/components/link-control/use-search-handler.js +10 -5
  48. package/build/components/link-control/use-search-handler.js.map +1 -1
  49. package/build/components/resizable-box-popover/index.js +1 -1
  50. package/build/components/resizable-box-popover/index.js.map +1 -1
  51. package/build/components/rich-text/index.js +1 -1
  52. package/build/components/rich-text/index.js.map +1 -1
  53. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -3
  54. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  55. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
  56. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  57. package/build/components/unit-control/index.js +3 -3
  58. package/build/components/unit-control/index.js.map +1 -1
  59. package/build/components/use-block-commands/index.js +6 -1
  60. package/build/components/use-block-commands/index.js.map +1 -1
  61. package/build/components/use-settings/index.js +212 -0
  62. package/build/components/use-settings/index.js.map +1 -0
  63. package/build/hooks/align.js +51 -35
  64. package/build/hooks/align.js.map +1 -1
  65. package/build/hooks/anchor.js +37 -32
  66. package/build/hooks/anchor.js.map +1 -1
  67. package/build/hooks/background.js +4 -4
  68. package/build/hooks/background.js.map +1 -1
  69. package/build/hooks/color.js +2 -4
  70. package/build/hooks/color.js.map +1 -1
  71. package/build/hooks/duotone.js +10 -9
  72. package/build/hooks/duotone.js.map +1 -1
  73. package/build/hooks/font-size.js +4 -4
  74. package/build/hooks/font-size.js.map +1 -1
  75. package/build/hooks/layout.js +10 -11
  76. package/build/hooks/layout.js.map +1 -1
  77. package/build/hooks/line-height.js +3 -3
  78. package/build/hooks/line-height.js.map +1 -1
  79. package/build/hooks/position.js +2 -3
  80. package/build/hooks/position.js.map +1 -1
  81. package/build/hooks/use-color-props.js +3 -11
  82. package/build/hooks/use-color-props.js.map +1 -1
  83. package/build/hooks/utils.js +1 -42
  84. package/build/hooks/utils.js.map +1 -1
  85. package/build/layouts/constrained.js +3 -3
  86. package/build/layouts/constrained.js.map +1 -1
  87. package/build/utils/object.js +4 -1
  88. package/build/utils/object.js.map +1 -1
  89. package/build/utils/transform-styles/index.js +19 -24
  90. package/build/utils/transform-styles/index.js.map +1 -1
  91. package/build-module/components/block-alignment-control/use-available-alignments.js +30 -28
  92. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  93. package/build-module/components/block-list/block.native.js +4 -4
  94. package/build-module/components/block-list/block.native.js.map +1 -1
  95. package/build-module/components/block-list/layout.js +2 -2
  96. package/build-module/components/block-list/layout.js.map +1 -1
  97. package/build-module/components/border-radius-control/index.js +3 -2
  98. package/build-module/components/border-radius-control/index.js.map +1 -1
  99. package/build-module/components/color-palette/with-color-context.js +6 -5
  100. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  101. package/build-module/components/colors/with-colors.js +2 -7
  102. package/build-module/components/colors/with-colors.js.map +1 -1
  103. package/build-module/components/colors-gradients/control.js +6 -7
  104. package/build-module/components/colors-gradients/control.js.map +1 -1
  105. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -12
  106. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  107. package/build-module/components/font-family/index.js +2 -2
  108. package/build-module/components/font-family/index.js.map +1 -1
  109. package/build-module/components/font-sizes/font-size-picker.js +3 -4
  110. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  111. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  112. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  113. package/build-module/components/global-styles/filters-panel.js +7 -8
  114. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  115. package/build-module/components/global-styles/image-settings-panel.js +2 -2
  116. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  117. package/build-module/components/global-styles/typography-panel.js +1 -1
  118. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  119. package/build-module/components/gradients/use-gradient.js +2 -4
  120. package/build-module/components/gradients/use-gradient.js.map +1 -1
  121. package/build-module/components/height-control/index.js +3 -2
  122. package/build-module/components/height-control/index.js.map +1 -1
  123. package/build-module/components/index.js +1 -1
  124. package/build-module/components/index.js.map +1 -1
  125. package/build-module/components/index.native.js +1 -1
  126. package/build-module/components/index.native.js.map +1 -1
  127. package/build-module/components/inner-blocks/index.js +2 -2
  128. package/build-module/components/inner-blocks/index.js.map +1 -1
  129. package/build-module/components/letter-spacing-control/index.js +3 -2
  130. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  131. package/build-module/components/link-control/search-item.js +12 -1
  132. package/build-module/components/link-control/search-item.js.map +1 -1
  133. package/build-module/components/link-control/search-results.js +2 -1
  134. package/build-module/components/link-control/search-results.js.map +1 -1
  135. package/build-module/components/link-control/use-search-handler.js +10 -5
  136. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  137. package/build-module/components/resizable-box-popover/index.js +1 -1
  138. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  139. package/build-module/components/rich-text/index.js +1 -1
  140. package/build-module/components/rich-text/index.js.map +1 -1
  141. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -2
  142. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  143. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -2
  144. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build-module/components/unit-control/index.js +3 -2
  146. package/build-module/components/unit-control/index.js.map +1 -1
  147. package/build-module/components/use-block-commands/index.js +5 -1
  148. package/build-module/components/use-block-commands/index.js.map +1 -1
  149. package/build-module/components/use-settings/index.js +203 -0
  150. package/build-module/components/use-settings/index.js.map +1 -0
  151. package/build-module/hooks/align.js +51 -35
  152. package/build-module/hooks/align.js.map +1 -1
  153. package/build-module/hooks/anchor.js +37 -32
  154. package/build-module/hooks/anchor.js.map +1 -1
  155. package/build-module/hooks/background.js +4 -4
  156. package/build-module/hooks/background.js.map +1 -1
  157. package/build-module/hooks/color.js +2 -4
  158. package/build-module/hooks/color.js.map +1 -1
  159. package/build-module/hooks/duotone.js +11 -10
  160. package/build-module/hooks/duotone.js.map +1 -1
  161. package/build-module/hooks/font-size.js +4 -4
  162. package/build-module/hooks/font-size.js.map +1 -1
  163. package/build-module/hooks/layout.js +10 -11
  164. package/build-module/hooks/layout.js.map +1 -1
  165. package/build-module/hooks/line-height.js +3 -3
  166. package/build-module/hooks/line-height.js.map +1 -1
  167. package/build-module/hooks/position.js +2 -3
  168. package/build-module/hooks/position.js.map +1 -1
  169. package/build-module/hooks/use-color-props.js +3 -11
  170. package/build-module/hooks/use-color-props.js.map +1 -1
  171. package/build-module/hooks/utils.js +2 -43
  172. package/build-module/hooks/utils.js.map +1 -1
  173. package/build-module/layouts/constrained.js +3 -2
  174. package/build-module/layouts/constrained.js.map +1 -1
  175. package/build-module/utils/object.js +3 -1
  176. package/build-module/utils/object.js.map +1 -1
  177. package/build-module/utils/transform-styles/index.js +20 -24
  178. package/build-module/utils/transform-styles/index.js.map +1 -1
  179. package/build-style/style-rtl.css +13 -6
  180. package/build-style/style.css +13 -6
  181. package/package.json +36 -34
  182. package/src/components/block-alignment-control/use-available-alignments.js +49 -34
  183. package/src/components/block-list/block.native.js +4 -4
  184. package/src/components/block-list/layout.js +2 -2
  185. package/src/components/block-styles/style.scss +1 -1
  186. package/src/components/border-radius-control/index.js +3 -2
  187. package/src/components/color-palette/with-color-context.js +9 -9
  188. package/src/components/colors/with-colors.js +6 -7
  189. package/src/components/colors-gradients/control.js +10 -7
  190. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +29 -15
  191. package/src/components/font-family/index.js +2 -2
  192. package/src/components/font-sizes/font-size-picker.js +6 -4
  193. package/src/components/font-sizes/with-font-sizes.js +3 -5
  194. package/src/components/global-styles/filters-panel.js +9 -15
  195. package/src/components/global-styles/image-settings-panel.js +2 -2
  196. package/src/components/global-styles/typography-panel.js +1 -1
  197. package/src/components/gradients/use-gradient.js +10 -4
  198. package/src/components/height-control/index.js +3 -2
  199. package/src/components/index.js +1 -1
  200. package/src/components/index.native.js +1 -1
  201. package/src/components/inner-blocks/index.js +2 -2
  202. package/src/components/inserter/style.scss +9 -1
  203. package/src/components/letter-spacing-control/index.js +3 -2
  204. package/src/components/link-control/search-item.js +14 -0
  205. package/src/components/link-control/search-results.js +1 -0
  206. package/src/components/link-control/use-search-handler.js +22 -15
  207. package/src/components/resizable-box-popover/index.js +1 -1
  208. package/src/components/rich-text/index.js +1 -1
  209. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -5
  210. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -2
  211. package/src/components/unit-control/index.js +3 -8
  212. package/src/components/use-block-commands/index.js +2 -1
  213. package/src/components/{use-setting → use-settings}/README.md +9 -10
  214. package/src/components/use-settings/index.js +272 -0
  215. package/src/components/{use-setting → use-settings}/test/index.js +47 -5
  216. package/src/hooks/align.js +79 -54
  217. package/src/hooks/anchor.js +75 -65
  218. package/src/hooks/background.js +7 -9
  219. package/src/hooks/color.js +7 -4
  220. package/src/hooks/duotone.js +24 -19
  221. package/src/hooks/font-size.js +4 -4
  222. package/src/hooks/layout.js +11 -11
  223. package/src/hooks/line-height.js +3 -3
  224. package/src/hooks/position.js +5 -3
  225. package/src/hooks/use-color-props.js +21 -14
  226. package/src/hooks/utils.js +88 -43
  227. package/src/layouts/constrained.js +3 -8
  228. package/src/utils/object.js +4 -1
  229. package/src/utils/test/__snapshots__/transform-styles.js.snap +103 -0
  230. package/src/utils/test/transform-styles.js +217 -0
  231. package/src/utils/transform-styles/index.js +25 -25
  232. package/build/components/use-setting/index.js +0 -161
  233. package/build/components/use-setting/index.js.map +0 -1
  234. package/build/utils/transform-styles/ast/index.js +0 -21
  235. package/build/utils/transform-styles/ast/index.js.map +0 -1
  236. package/build/utils/transform-styles/ast/parse.js +0 -660
  237. package/build/utils/transform-styles/ast/parse.js.map +0 -1
  238. package/build/utils/transform-styles/ast/stringify/compiler.js +0 -52
  239. package/build/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  240. package/build/utils/transform-styles/ast/stringify/compress.js +0 -178
  241. package/build/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  242. package/build/utils/transform-styles/ast/stringify/identity.js +0 -207
  243. package/build/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  244. package/build/utils/transform-styles/ast/stringify/index.js +0 -36
  245. package/build/utils/transform-styles/ast/stringify/index.js.map +0 -1
  246. package/build/utils/transform-styles/transforms/url-rewrite.js +0 -130
  247. package/build/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  248. package/build/utils/transform-styles/transforms/wrap.js +0 -59
  249. package/build/utils/transform-styles/transforms/wrap.js.map +0 -1
  250. package/build/utils/transform-styles/traverse.js +0 -37
  251. package/build/utils/transform-styles/traverse.js.map +0 -1
  252. package/build-module/components/use-setting/index.js +0 -154
  253. package/build-module/components/use-setting/index.js.map +0 -1
  254. package/build-module/utils/transform-styles/ast/index.js +0 -6
  255. package/build-module/utils/transform-styles/ast/index.js.map +0 -1
  256. package/build-module/utils/transform-styles/ast/parse.js +0 -654
  257. package/build-module/utils/transform-styles/ast/parse.js.map +0 -1
  258. package/build-module/utils/transform-styles/ast/stringify/compiler.js +0 -49
  259. package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  260. package/build-module/utils/transform-styles/ast/stringify/compress.js +0 -176
  261. package/build-module/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  262. package/build-module/utils/transform-styles/ast/stringify/identity.js +0 -206
  263. package/build-module/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  264. package/build-module/utils/transform-styles/ast/stringify/index.js +0 -29
  265. package/build-module/utils/transform-styles/ast/stringify/index.js.map +0 -1
  266. package/build-module/utils/transform-styles/transforms/url-rewrite.js +0 -123
  267. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  268. package/build-module/utils/transform-styles/transforms/wrap.js +0 -52
  269. package/build-module/utils/transform-styles/transforms/wrap.js.map +0 -1
  270. package/build-module/utils/transform-styles/traverse.js +0 -28
  271. package/build-module/utils/transform-styles/traverse.js.map +0 -1
  272. package/src/components/use-setting/index.js +0 -218
  273. package/src/utils/transform-styles/ast/index.js +0 -5
  274. package/src/utils/transform-styles/ast/parse.js +0 -732
  275. package/src/utils/transform-styles/ast/stringify/compiler.js +0 -50
  276. package/src/utils/transform-styles/ast/stringify/compress.js +0 -238
  277. package/src/utils/transform-styles/ast/stringify/identity.js +0 -286
  278. package/src/utils/transform-styles/ast/stringify/index.js +0 -32
  279. package/src/utils/transform-styles/test/__snapshots__/traverse.js.snap +0 -7
  280. package/src/utils/transform-styles/test/traverse.js +0 -24
  281. package/src/utils/transform-styles/transforms/test/__snapshots__/url-rewrite.js.snap +0 -25
  282. package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +0 -64
  283. package/src/utils/transform-styles/transforms/test/url-rewrite.js +0 -39
  284. package/src/utils/transform-styles/transforms/test/wrap.js +0 -95
  285. package/src/utils/transform-styles/transforms/url-rewrite.js +0 -139
  286. package/src/utils/transform-styles/transforms/wrap.js +0 -56
  287. package/src/utils/transform-styles/traverse.js +0 -32
package/CHANGELOG.md CHANGED
@@ -2,23 +2,27 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 12.13.0 (2023-11-02)
6
+
7
+ - Deprecated the `useSetting` function in favor of new `useSettings` one that can retrieve multiple settings at once ([#55337](https://github.com/WordPress/gutenberg/pull/55337)).
8
+
5
9
  ## 12.12.0 (2023-10-18)
6
10
 
7
11
  ## 12.11.0 (2023-10-05)
8
12
 
9
- - Deprecated `CopyHandler`, absorbed into `WritingFlow`.
13
+ - Deprecated `CopyHandler`, absorbed into `WritingFlow`.
10
14
 
11
15
  ## 12.10.0 (2023-09-20)
12
16
 
13
- - The Deprecated multiline prop on RichText will now fall back to using multiple
14
- rich text instances instead of a single multiline instance. The prop remains
15
- deprecated.
17
+ - The Deprecated multiline prop on RichText will now fall back to using multiple
18
+ rich text instances instead of a single multiline instance. The prop remains
19
+ deprecated.
16
20
 
17
21
  ## 12.9.0 (2023-08-31)
18
22
 
19
23
  ### Enhancements
20
24
 
21
- - Embed the `ObserveTyping` behavior within the `BlockList` component making to simplify instanciations of third-party block editors.
25
+ - Embed the `ObserveTyping` behavior within the `BlockList` component making to simplify instanciations of third-party block editors.
22
26
 
23
27
  ## 12.8.0 (2023-08-16)
24
28
 
@@ -32,13 +36,12 @@
32
36
 
33
37
  ### Enhancements
34
38
 
35
- - Add `HeadingLevelDropdown` component for selecting H1-H6 and paragraph HTML tags from the block toolbar.
39
+ - Add `HeadingLevelDropdown` component for selecting H1-H6 and paragraph HTML tags from the block toolbar.
36
40
 
37
41
  ### Bug Fix
38
42
 
39
43
  - Fluid typography: custom font-sizes should use max viewport width ([#51516](https://github.com/WordPress/gutenberg/pull/51516)).
40
44
 
41
-
42
45
  ## 12.3.0 (2023-06-07)
43
46
 
44
47
  ## 12.2.0 (2023-05-24)
@@ -51,11 +54,10 @@
51
54
 
52
55
  ### Breaking Changes
53
56
 
54
- - Renamed utility function `immutableSet` to `setImmutably` ([#50040](https://github.com/WordPress/gutenberg/pull/50040)).
57
+ - Renamed utility function `immutableSet` to `setImmutably` ([#50040](https://github.com/WordPress/gutenberg/pull/50040)).
55
58
 
56
59
  ## 11.8.0 (2023-04-12)
57
60
 
58
-
59
61
  ## 11.7.0 (2023-03-29)
60
62
 
61
63
  - `ImageSizeControl`: Update image size label ([#49112](https://github.com/WordPress/gutenberg/pull/49112)).
@@ -102,7 +104,7 @@
102
104
  ### Bug Fix
103
105
 
104
106
  - `SpacingSizesControl`: Change ARIA role from `region` to `group` to avoid unwanted ARIA landmark regions ([#46530](https://github.com/WordPress/gutenberg/pull/46530)).
105
- - `FocalPointPicker`: Fix layout misalignment when placed in the `BlockInspector` ([#46631](https://github.com/WordPress/gutenberg/pull/46631)).
107
+ - `FocalPointPicker`: Fix layout misalignment when placed in the `BlockInspector` ([#46631](https://github.com/WordPress/gutenberg/pull/46631)).
106
108
 
107
109
  ## 10.5.0 (2022-11-16)
108
110
 
package/README.md CHANGED
@@ -789,13 +789,23 @@ Applies a series of CSS rule transforms to wrap selectors inside a given class a
789
789
 
790
790
  _Parameters_
791
791
 
792
- - _styles_ `Object|Array`: CSS rules.
793
- - _wrapperClassName_ `string`: Wrapper Class Name.
792
+ - _styles_ `EditorStyle[]`: CSS rules.
793
+ - _wrapperSelector_ `string`: Wrapper selector.
794
794
 
795
795
  _Returns_
796
796
 
797
797
  - `Array`: converted rules.
798
798
 
799
+ _Type Definition_
800
+
801
+ - _EditorStyle_ `Object`
802
+
803
+ _Properties_
804
+
805
+ - _css_ `string`: the CSS block(s), as a single string.
806
+ - _baseURL_ `?string`: the base URL to be used as the reference when rewritting urls.
807
+ - _ignoredSelectors_ `?string[]`: the selectors not to wrap.
808
+
799
809
  ### Typewriter
800
810
 
801
811
  Ensures that the text selection keeps the same vertical distance from the viewport during keyboard events within this component. The vertical distance can vary. It is the last clicked or scrolled to position.
@@ -944,9 +954,11 @@ _Parameters_
944
954
 
945
955
  ### useSetting
946
956
 
957
+ > **Deprecated** 6.4.0 Use useSettings instead.
958
+
947
959
  Hook that retrieves the given setting for the block instance in use.
948
960
 
949
- It looks up the settings first in the block instance hierarchy. If none is found, it'll look it up in the block editor store.
961
+ It looks up the setting first in the block instance hierarchy. If none is found, it'll look it up in the block editor settings.
950
962
 
951
963
  _Usage_
952
964
 
@@ -962,6 +974,26 @@ _Returns_
962
974
 
963
975
  - `any`: Returns the value defined for the setting.
964
976
 
977
+ ### useSettings
978
+
979
+ Hook that retrieves the given settings for the block instance in use.
980
+
981
+ It looks up the settings first in the block instance hierarchy. If none are found, it'll look them up in the block editor settings.
982
+
983
+ _Usage_
984
+
985
+ ```js
986
+ const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' );
987
+ ```
988
+
989
+ _Parameters_
990
+
991
+ - _paths_ `string[]`: The paths to the settings.
992
+
993
+ _Returns_
994
+
995
+ - `any[]`: Returns the values defined for the settings.
996
+
965
997
  ### Warning
966
998
 
967
999
  _Related_
@@ -24,28 +24,27 @@ function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
24
24
  if (!controls.includes('none')) {
25
25
  controls = ['none', ...controls];
26
26
  }
27
- const {
28
- wideControlsEnabled = false,
29
- themeSupportsLayout,
30
- isBlockBasedTheme
31
- } = (0, _data.useSelect)(select => {
32
- const {
33
- getSettings
34
- } = select(_store.store);
35
- const settings = getSettings();
36
- return {
37
- wideControlsEnabled: settings.alignWide,
38
- themeSupportsLayout: settings.supportsLayout,
39
- isBlockBasedTheme: settings.__unstableIsBlockBasedTheme
40
- };
41
- }, []);
27
+ const isNoneOnly = controls.length === 1 && controls[0] === 'none';
28
+ const [wideControlsEnabled, themeSupportsLayout, isBlockBasedTheme] = (0, _data.useSelect)(select => {
29
+ var _settings$alignWide;
30
+ // If `isNoneOnly` is true, we'll be returning early because there is
31
+ // nothing to filter on an empty array. We won't need the info from
32
+ // the `useSelect` but we must call it anyway because Rules of Hooks.
33
+ // So the callback returns early to avoid block editor subscription.
34
+ if (isNoneOnly) {
35
+ return [false, false, false];
36
+ }
37
+ const settings = select(_store.store).getSettings();
38
+ return [(_settings$alignWide = settings.alignWide) !== null && _settings$alignWide !== void 0 ? _settings$alignWide : false, settings.supportsLayout, settings.__unstableIsBlockBasedTheme];
39
+ }, [isNoneOnly]);
42
40
  const layout = (0, _layout.useLayout)();
41
+ if (isNoneOnly) {
42
+ return EMPTY_ARRAY;
43
+ }
43
44
  const layoutType = (0, _layouts.getLayoutType)(layout?.type);
44
- const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme);
45
45
  if (themeSupportsLayout) {
46
- const alignments = layoutAlignments.filter(({
47
- name: alignmentName
48
- }) => controls.includes(alignmentName));
46
+ const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme);
47
+ const alignments = layoutAlignments.filter(alignment => controls.includes(alignment.name));
49
48
  // While we treat `none` as an alignment, we shouldn't return it if no
50
49
  // other alignments exist.
51
50
  if (alignments.length === 1 && alignments[0].name === 'none') {
@@ -58,20 +57,23 @@ function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
58
57
  if (layoutType.name !== 'default' && layoutType.name !== 'constrained') {
59
58
  return EMPTY_ARRAY;
60
59
  }
61
- const {
62
- alignments: availableAlignments = DEFAULT_CONTROLS
63
- } = layout;
64
- const enabledControls = controls.filter(control => (layout.alignments ||
65
- // Ignore the global wideAlignment check if the layout explicitely defines alignments.
66
- wideControlsEnabled || !WIDE_CONTROLS.includes(control)) && availableAlignments.includes(control)).map(enabledControl => ({
67
- name: enabledControl
60
+ const alignments = controls.filter(control => {
61
+ if (layout.alignments) {
62
+ return layout.alignments.includes(control);
63
+ }
64
+ if (!wideControlsEnabled && WIDE_CONTROLS.includes(control)) {
65
+ return false;
66
+ }
67
+ return DEFAULT_CONTROLS.includes(control);
68
+ }).map(name => ({
69
+ name
68
70
  }));
69
71
 
70
72
  // While we treat `none` as an alignment, we shouldn't return it if no
71
73
  // other alignments exist.
72
- if (enabledControls.length === 1 && enabledControls[0].name === 'none') {
74
+ if (alignments.length === 1 && alignments[0].name === 'none') {
73
75
  return EMPTY_ARRAY;
74
76
  }
75
- return enabledControls;
77
+ return alignments;
76
78
  }
77
79
  //# sourceMappingURL=use-available-alignments.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_layout","_store","_layouts","EMPTY_ARRAY","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","wideControlsEnabled","themeSupportsLayout","isBlockBasedTheme","useSelect","select","getSettings","blockEditorStore","settings","alignWide","supportsLayout","__unstableIsBlockBasedTheme","layout","useLayout","layoutType","getLayoutType","type","layoutAlignments","getAlignments","alignments","filter","name","alignmentName","length","availableAlignments","enabledControls","control","map","enabledControl"],"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useLayout } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\nconst EMPTY_ARRAY = [];\nconst DEFAULT_CONTROLS = [ 'none', 'left', 'center', 'right', 'wide', 'full' ];\nconst WIDE_CONTROLS = [ 'wide', 'full' ];\n\nexport default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {\n\t// Always add the `none` option if not exists.\n\tif ( ! controls.includes( 'none' ) ) {\n\t\tcontrols = [ 'none', ...controls ];\n\t}\n\tconst {\n\t\twideControlsEnabled = false,\n\t\tthemeSupportsLayout,\n\t\tisBlockBasedTheme,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst settings = getSettings();\n\t\treturn {\n\t\t\twideControlsEnabled: settings.alignWide,\n\t\t\tthemeSupportsLayout: settings.supportsLayout,\n\t\t\tisBlockBasedTheme: settings.__unstableIsBlockBasedTheme,\n\t\t};\n\t}, [] );\n\tconst layout = useLayout();\n\tconst layoutType = getLayoutType( layout?.type );\n\tconst layoutAlignments = layoutType.getAlignments(\n\t\tlayout,\n\t\tisBlockBasedTheme\n\t);\n\n\tif ( themeSupportsLayout ) {\n\t\tconst alignments = layoutAlignments.filter(\n\t\t\t( { name: alignmentName } ) => controls.includes( alignmentName )\n\t\t);\n\t\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t\t// other alignments exist.\n\t\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn alignments;\n\t}\n\n\t// Starting here, it's the fallback for themes not supporting the layout config.\n\tif ( layoutType.name !== 'default' && layoutType.name !== 'constrained' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\tconst { alignments: availableAlignments = DEFAULT_CONTROLS } = layout;\n\tconst enabledControls = controls\n\t\t.filter(\n\t\t\t( control ) =>\n\t\t\t\t( layout.alignments || // Ignore the global wideAlignment check if the layout explicitely defines alignments.\n\t\t\t\t\twideControlsEnabled ||\n\t\t\t\t\t! WIDE_CONTROLS.includes( control ) ) &&\n\t\t\t\tavailableAlignments.includes( control )\n\t\t)\n\t\t.map( ( enabledControl ) => ( { name: enabledControl } ) );\n\n\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t// other alignments exist.\n\tif (\n\t\tenabledControls.length === 1 &&\n\t\tenabledControls[ 0 ].name === 'none'\n\t) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\treturn enabledControls;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;AAKA,MAAMI,WAAW,GAAG,EAAE;AACtB,MAAMC,gBAAgB,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAE;AAC9E,MAAMC,aAAa,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE;AAEzB,SAASC,sBAAsBA,CAAEC,QAAQ,GAAGH,gBAAgB,EAAG;EAC7E;EACA,IAAK,CAAEG,QAAQ,CAACC,QAAQ,CAAE,MAAO,CAAC,EAAG;IACpCD,QAAQ,GAAG,CAAE,MAAM,EAAE,GAAGA,QAAQ,CAAE;EACnC;EACA,MAAM;IACLE,mBAAmB,GAAG,KAAK;IAC3BC,mBAAmB;IACnBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MAAEC;IAAY,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAClD,MAAMC,QAAQ,GAAGF,WAAW,CAAC,CAAC;IAC9B,OAAO;MACNL,mBAAmB,EAAEO,QAAQ,CAACC,SAAS;MACvCP,mBAAmB,EAAEM,QAAQ,CAACE,cAAc;MAC5CP,iBAAiB,EAAEK,QAAQ,CAACG;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMC,MAAM,GAAG,IAAAC,iBAAS,EAAC,CAAC;EAC1B,MAAMC,UAAU,GAAG,IAAAC,sBAAa,EAAEH,MAAM,EAAEI,IAAK,CAAC;EAChD,MAAMC,gBAAgB,GAAGH,UAAU,CAACI,aAAa,CAChDN,MAAM,EACNT,iBACD,CAAC;EAED,IAAKD,mBAAmB,EAAG;IAC1B,MAAMiB,UAAU,GAAGF,gBAAgB,CAACG,MAAM,CACzC,CAAE;MAAEC,IAAI,EAAEC;IAAc,CAAC,KAAMvB,QAAQ,CAACC,QAAQ,CAAEsB,aAAc,CACjE,CAAC;IACD;IACA;IACA,IAAKH,UAAU,CAACI,MAAM,KAAK,CAAC,IAAIJ,UAAU,CAAE,CAAC,CAAE,CAACE,IAAI,KAAK,MAAM,EAAG;MACjE,OAAO1B,WAAW;IACnB;IACA,OAAOwB,UAAU;EAClB;;EAEA;EACA,IAAKL,UAAU,CAACO,IAAI,KAAK,SAAS,IAAIP,UAAU,CAACO,IAAI,KAAK,aAAa,EAAG;IACzE,OAAO1B,WAAW;EACnB;EACA,MAAM;IAAEwB,UAAU,EAAEK,mBAAmB,GAAG5B;EAAiB,CAAC,GAAGgB,MAAM;EACrE,MAAMa,eAAe,GAAG1B,QAAQ,CAC9BqB,MAAM,CACJM,OAAO,IACR,CAAEd,MAAM,CAACO,UAAU;EAAI;EACtBlB,mBAAmB,IACnB,CAAEJ,aAAa,CAACG,QAAQ,CAAE0B,OAAQ,CAAC,KACpCF,mBAAmB,CAACxB,QAAQ,CAAE0B,OAAQ,CACxC,CAAC,CACAC,GAAG,CAAIC,cAAc,KAAQ;IAAEP,IAAI,EAAEO;EAAe,CAAC,CAAG,CAAC;;EAE3D;EACA;EACA,IACCH,eAAe,CAACF,MAAM,KAAK,CAAC,IAC5BE,eAAe,CAAE,CAAC,CAAE,CAACJ,IAAI,KAAK,MAAM,EACnC;IACD,OAAO1B,WAAW;EACnB;EAEA,OAAO8B,eAAe;AACvB"}
1
+ {"version":3,"names":["_data","require","_layout","_store","_layouts","EMPTY_ARRAY","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","isNoneOnly","length","wideControlsEnabled","themeSupportsLayout","isBlockBasedTheme","useSelect","select","_settings$alignWide","settings","blockEditorStore","getSettings","alignWide","supportsLayout","__unstableIsBlockBasedTheme","layout","useLayout","layoutType","getLayoutType","type","layoutAlignments","getAlignments","alignments","filter","alignment","name","control","map"],"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useLayout } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\nconst EMPTY_ARRAY = [];\nconst DEFAULT_CONTROLS = [ 'none', 'left', 'center', 'right', 'wide', 'full' ];\nconst WIDE_CONTROLS = [ 'wide', 'full' ];\n\nexport default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {\n\t// Always add the `none` option if not exists.\n\tif ( ! controls.includes( 'none' ) ) {\n\t\tcontrols = [ 'none', ...controls ];\n\t}\n\tconst isNoneOnly = controls.length === 1 && controls[ 0 ] === 'none';\n\n\tconst [ wideControlsEnabled, themeSupportsLayout, isBlockBasedTheme ] =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\t// If `isNoneOnly` is true, we'll be returning early because there is\n\t\t\t\t// nothing to filter on an empty array. We won't need the info from\n\t\t\t\t// the `useSelect` but we must call it anyway because Rules of Hooks.\n\t\t\t\t// So the callback returns early to avoid block editor subscription.\n\t\t\t\tif ( isNoneOnly ) {\n\t\t\t\t\treturn [ false, false, false ];\n\t\t\t\t}\n\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\treturn [\n\t\t\t\t\tsettings.alignWide ?? false,\n\t\t\t\t\tsettings.supportsLayout,\n\t\t\t\t\tsettings.__unstableIsBlockBasedTheme,\n\t\t\t\t];\n\t\t\t},\n\t\t\t[ isNoneOnly ]\n\t\t);\n\tconst layout = useLayout();\n\n\tif ( isNoneOnly ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\tconst layoutType = getLayoutType( layout?.type );\n\n\tif ( themeSupportsLayout ) {\n\t\tconst layoutAlignments = layoutType.getAlignments(\n\t\t\tlayout,\n\t\t\tisBlockBasedTheme\n\t\t);\n\t\tconst alignments = layoutAlignments.filter( ( alignment ) =>\n\t\t\tcontrols.includes( alignment.name )\n\t\t);\n\t\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t\t// other alignments exist.\n\t\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn alignments;\n\t}\n\n\t// Starting here, it's the fallback for themes not supporting the layout config.\n\tif ( layoutType.name !== 'default' && layoutType.name !== 'constrained' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\tconst alignments = controls\n\t\t.filter( ( control ) => {\n\t\t\tif ( layout.alignments ) {\n\t\t\t\treturn layout.alignments.includes( control );\n\t\t\t}\n\n\t\t\tif ( ! wideControlsEnabled && WIDE_CONTROLS.includes( control ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn DEFAULT_CONTROLS.includes( control );\n\t\t} )\n\t\t.map( ( name ) => ( { name } ) );\n\n\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t// other alignments exist.\n\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\treturn alignments;\n}\n"],"mappings":"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"}
@@ -18,7 +18,7 @@ var _blockInvalidWarning = _interopRequireDefault(require("./block-invalid-warni
18
18
  var _blockOutline = _interopRequireDefault(require("./block-outline"));
19
19
  var _store = require("../../store");
20
20
  var _layout = require("./layout");
21
- var _useSetting = _interopRequireDefault(require("../use-setting"));
21
+ var _useSettings = require("../use-settings");
22
22
  /**
23
23
  * External dependencies
24
24
  */
@@ -31,7 +31,7 @@ var _useSetting = _interopRequireDefault(require("../use-setting"));
31
31
  * Internal dependencies
32
32
  */
33
33
 
34
- const emptyArray = [];
34
+ const EMPTY_ARRAY = [];
35
35
 
36
36
  // Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.
37
37
  const wrapperPropsCache = new WeakMap();
@@ -181,7 +181,7 @@ function BlockListBlock({
181
181
  const parentLayout = (0, _layout.useLayout)() || {};
182
182
  const defaultColors = (0, _components.useMobileGlobalStylesColors)();
183
183
  const globalStyle = (0, _components.useGlobalStyles)();
184
- const fontSizes = (0, _useSetting.default)('typography.fontSizes') || emptyArray;
184
+ const [fontSizes] = (0, _useSettings.useSettings)('typography.fontSizes');
185
185
  const onRemove = (0, _element.useCallback)(() => removeBlock(clientId), [clientId, removeBlock]);
186
186
  const onFocus = (0, _element.useCallback)(() => {
187
187
  if (!isSelected) {
@@ -205,7 +205,7 @@ function BlockListBlock({
205
205
 
206
206
  // Inherited styles merged with block level styles.
207
207
  const mergedStyle = (0, _element.useMemo)(() => {
208
- return (0, _components.getMergedGlobalStyles)(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes);
208
+ return (0, _components.getMergedGlobalStyles)(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes || EMPTY_ARRAY);
209
209
  // eslint-disable-next-line react-hooks/exhaustive-deps
210
210
  }, [
211
211
  // It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_element","_components","_blocks","_data","_compose","_blockEdit","_interopRequireDefault","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useSetting","emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","_react","createElement","Pressable","accessibilityRole","disabled","onPress","style","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","useState","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSetting","onRemove","useCallback","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","pure","ifCondition","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_element","_components","_blocks","_data","_compose","_blockEdit","_interopRequireDefault","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","_react","createElement","Pressable","accessibilityRole","disabled","onPress","style","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","useState","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","useCallback","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","pure","ifCondition","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
@@ -11,7 +10,7 @@ exports.useLayout = useLayout;
11
10
  var _react = require("react");
12
11
  var _element = require("@wordpress/element");
13
12
  var _layouts = require("../../layouts");
14
- var _useSetting = _interopRequireDefault(require("../use-setting"));
13
+ var _useSettings = require("../use-settings");
15
14
  /**
16
15
  * WordPress dependencies
17
16
  */
@@ -44,7 +43,7 @@ function LayoutStyle({
44
43
  ...props
45
44
  }) {
46
45
  const layoutType = (0, _layouts.getLayoutType)(layout.type);
47
- const blockGapSupport = (0, _useSetting.default)('spacing.blockGap');
46
+ const [blockGapSupport] = (0, _useSettings.useSettings)('spacing.blockGap');
48
47
  const hasBlockGapSupport = blockGapSupport !== null;
49
48
  if (layoutType) {
50
49
  if (css) {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_layouts","_useSetting","_interopRequireDefault","defaultLayout","type","exports","Layout","createContext","LayoutProvider","Provider","useLayout","useContext","LayoutStyle","layout","css","props","layoutType","getLayoutType","blockGapSupport","useSetting","hasBlockGapSupport","_react","createElement","layoutStyle","getLayoutStyle"],"sources":["@wordpress/block-editor/src/components/block-list/layout.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getLayoutType } from '../../layouts';\nimport useSetting from '../use-setting';\n\nexport const defaultLayout = { type: 'default' };\n\nconst Layout = createContext( defaultLayout );\n\n/**\n * Allows to define the layout.\n */\nexport const LayoutProvider = Layout.Provider;\n\n/**\n * React hook used to retrieve the layout config.\n */\nexport function useLayout() {\n\treturn useContext( Layout );\n}\n\nexport function LayoutStyle( { layout = {}, css, ...props } ) {\n\tconst layoutType = getLayoutType( layout.type );\n\tconst blockGapSupport = useSetting( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\tif ( layoutType ) {\n\t\tif ( css ) {\n\t\t\treturn <style>{ css }</style>;\n\t\t}\n\t\tconst layoutStyle = layoutType.getLayoutStyle?.( {\n\t\t\thasBlockGapSupport,\n\t\t\tlayout,\n\t\t\t...props,\n\t\t} );\n\t\tif ( layoutStyle ) {\n\t\t\treturn <style>{ layoutStyle }</style>;\n\t\t}\n\t}\n\treturn null;\n}\n"],"mappings":";;;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,MAAMI,aAAa,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC;AAACC,OAAA,CAAAF,aAAA,GAAAA,aAAA;AAEjD,MAAMG,MAAM,GAAG,IAAAC,sBAAa,EAAEJ,aAAc,CAAC;;AAE7C;AACA;AACA;AACO,MAAMK,cAAc,GAAGF,MAAM,CAACG,QAAQ;;AAE7C;AACA;AACA;AAFAJ,OAAA,CAAAG,cAAA,GAAAA,cAAA;AAGO,SAASE,SAASA,CAAA,EAAG;EAC3B,OAAO,IAAAC,mBAAU,EAAEL,MAAO,CAAC;AAC5B;AAEO,SAASM,WAAWA,CAAE;EAAEC,MAAM,GAAG,CAAC,CAAC;EAAEC,GAAG;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC7D,MAAMC,UAAU,GAAG,IAAAC,sBAAa,EAAEJ,MAAM,CAACT,IAAK,CAAC;EAC/C,MAAMc,eAAe,GAAG,IAAAC,mBAAU,EAAE,kBAAmB,CAAC;EACxD,MAAMC,kBAAkB,GAAGF,eAAe,KAAK,IAAI;EAEnD,IAAKF,UAAU,EAAG;IACjB,IAAKF,GAAG,EAAG;MACV,OAAO,IAAAO,MAAA,CAAAC,aAAA,iBAASR,GAAY,CAAC;IAC9B;IACA,MAAMS,WAAW,GAAGP,UAAU,CAACQ,cAAc,GAAI;MAChDJ,kBAAkB;MAClBP,MAAM;MACN,GAAGE;IACJ,CAAE,CAAC;IACH,IAAKQ,WAAW,EAAG;MAClB,OAAO,IAAAF,MAAA,CAAAC,aAAA,iBAASC,WAAoB,CAAC;IACtC;EACD;EACA,OAAO,IAAI;AACZ"}
1
+ {"version":3,"names":["_element","require","_layouts","_useSettings","defaultLayout","type","exports","Layout","createContext","LayoutProvider","Provider","useLayout","useContext","LayoutStyle","layout","css","props","layoutType","getLayoutType","blockGapSupport","useSettings","hasBlockGapSupport","_react","createElement","layoutStyle","getLayoutStyle"],"sources":["@wordpress/block-editor/src/components/block-list/layout.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getLayoutType } from '../../layouts';\nimport { useSettings } from '../use-settings';\n\nexport const defaultLayout = { type: 'default' };\n\nconst Layout = createContext( defaultLayout );\n\n/**\n * Allows to define the layout.\n */\nexport const LayoutProvider = Layout.Provider;\n\n/**\n * React hook used to retrieve the layout config.\n */\nexport function useLayout() {\n\treturn useContext( Layout );\n}\n\nexport function LayoutStyle( { layout = {}, css, ...props } ) {\n\tconst layoutType = getLayoutType( layout.type );\n\tconst [ blockGapSupport ] = useSettings( 'spacing.blockGap' );\n\tconst hasBlockGapSupport = blockGapSupport !== null;\n\n\tif ( layoutType ) {\n\t\tif ( css ) {\n\t\t\treturn <style>{ css }</style>;\n\t\t}\n\t\tconst layoutStyle = layoutType.getLayoutStyle?.( {\n\t\t\thasBlockGapSupport,\n\t\t\tlayout,\n\t\t\t...props,\n\t\t} );\n\t\tif ( layoutStyle ) {\n\t\t\treturn <style>{ layoutStyle }</style>;\n\t\t}\n\t}\n\treturn null;\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,MAAMG,aAAa,GAAG;EAAEC,IAAI,EAAE;AAAU,CAAC;AAACC,OAAA,CAAAF,aAAA,GAAAA,aAAA;AAEjD,MAAMG,MAAM,GAAG,IAAAC,sBAAa,EAAEJ,aAAc,CAAC;;AAE7C;AACA;AACA;AACO,MAAMK,cAAc,GAAGF,MAAM,CAACG,QAAQ;;AAE7C;AACA;AACA;AAFAJ,OAAA,CAAAG,cAAA,GAAAA,cAAA;AAGO,SAASE,SAASA,CAAA,EAAG;EAC3B,OAAO,IAAAC,mBAAU,EAAEL,MAAO,CAAC;AAC5B;AAEO,SAASM,WAAWA,CAAE;EAAEC,MAAM,GAAG,CAAC,CAAC;EAAEC,GAAG;EAAE,GAAGC;AAAM,CAAC,EAAG;EAC7D,MAAMC,UAAU,GAAG,IAAAC,sBAAa,EAAEJ,MAAM,CAACT,IAAK,CAAC;EAC/C,MAAM,CAAEc,eAAe,CAAE,GAAG,IAAAC,wBAAW,EAAE,kBAAmB,CAAC;EAC7D,MAAMC,kBAAkB,GAAGF,eAAe,KAAK,IAAI;EAEnD,IAAKF,UAAU,EAAG;IACjB,IAAKF,GAAG,EAAG;MACV,OAAO,IAAAO,MAAA,CAAAC,aAAA,iBAASR,GAAY,CAAC;IAC9B;IACA,MAAMS,WAAW,GAAGP,UAAU,CAACQ,cAAc,GAAI;MAChDJ,kBAAkB;MAClBP,MAAM;MACN,GAAGE;IACJ,CAAE,CAAC;IACH,IAAKQ,WAAW,EAAG;MAClB,OAAO,IAAAF,MAAA,CAAAC,aAAA,iBAASC,WAAoB,CAAC;IACtC;EACD;EACA,OAAO,IAAI;AACZ"}
@@ -12,7 +12,7 @@ var _i18n = require("@wordpress/i18n");
12
12
  var _allInputControl = _interopRequireDefault(require("./all-input-control"));
13
13
  var _inputControls = _interopRequireDefault(require("./input-controls"));
14
14
  var _linkedButton = _interopRequireDefault(require("./linked-button"));
15
- var _useSetting = _interopRequireDefault(require("../use-setting"));
15
+ var _useSettings = require("../use-settings");
16
16
  var _utils = require("./utils");
17
17
  /**
18
18
  * WordPress dependencies
@@ -60,8 +60,9 @@ function BorderRadiusControl({
60
60
  bottomLeft: (0, _components.__experimentalParseQuantityAndUnitFromRawValue)(values?.bottomLeft)[1],
61
61
  bottomRight: (0, _components.__experimentalParseQuantityAndUnitFromRawValue)(values?.bottomRight)[1]
62
62
  });
63
+ const [availableUnits] = (0, _useSettings.useSettings)('spacing.units');
63
64
  const units = (0, _components.__experimentalUseCustomUnits)({
64
- availableUnits: (0, _useSetting.default)('spacing.units') || ['px', 'em', 'rem']
65
+ availableUnits: availableUnits || ['px', 'em', 'rem']
65
66
  });
66
67
  const unit = (0, _utils.getAllUnit)(selectedUnits);
67
68
  const unitConfig = units && units.find(item => item.value === unit);
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_allInputControl","_interopRequireDefault","_inputControls","_linkedButton","_useSetting","_utils","DEFAULT_VALUES","topLeft","undefined","topRight","bottomLeft","bottomRight","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUES","px","em","rem","BorderRadiusControl","onChange","values","isLinked","setIsLinked","useState","hasDefinedValues","hasMixedValues","selectedUnits","setSelectedUnits","flat","parseQuantityAndUnitFromRawValue","units","useCustomUnits","availableUnits","useSetting","unit","getAllUnit","unitConfig","find","item","value","step","allValue","getAllValue","toggleLinked","handleSliderChange","next","_react","createElement","className","BaseControl","VisualLabel","as","__","Fragment","default","min","RangeControl","label","hideLabelFromVision","max","initialPosition","withInputField","__nextHasNoMarginBottom","onClick"],"sources":["@wordpress/block-editor/src/components/border-radius-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tRangeControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AllInputControl from './all-input-control';\nimport InputControls from './input-controls';\nimport LinkedButton from './linked-button';\nimport useSetting from '../use-setting';\nimport {\n\tgetAllValue,\n\tgetAllUnit,\n\thasDefinedValues,\n\thasMixedValues,\n} from './utils';\n\nconst DEFAULT_VALUES = {\n\ttopLeft: undefined,\n\ttopRight: undefined,\n\tbottomLeft: undefined,\n\tbottomRight: undefined,\n};\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUES = {\n\tpx: 100,\n\tem: 20,\n\trem: 20,\n};\n\n/**\n * Control to display border radius options.\n *\n * @param {Object} props Component props.\n * @param {Function} props.onChange Callback to handle onChange.\n * @param {Object} props.values Border radius values.\n *\n * @return {Element} Custom border radius control.\n */\nexport default function BorderRadiusControl( { onChange, values } ) {\n\tconst [ isLinked, setIsLinked ] = useState(\n\t\t! hasDefinedValues( values ) || ! hasMixedValues( values )\n\t);\n\n\t// Tracking selected units via internal state allows filtering of CSS unit\n\t// only values from being saved while maintaining preexisting unit selection\n\t// behaviour. Filtering CSS unit only values prevents invalid style values.\n\tconst [ selectedUnits, setSelectedUnits ] = useState( {\n\t\tflat:\n\t\t\ttypeof values === 'string'\n\t\t\t\t? parseQuantityAndUnitFromRawValue( values )[ 1 ]\n\t\t\t\t: undefined,\n\t\ttopLeft: parseQuantityAndUnitFromRawValue( values?.topLeft )[ 1 ],\n\t\ttopRight: parseQuantityAndUnitFromRawValue( values?.topRight )[ 1 ],\n\t\tbottomLeft: parseQuantityAndUnitFromRawValue( values?.bottomLeft )[ 1 ],\n\t\tbottomRight: parseQuantityAndUnitFromRawValue(\n\t\t\tvalues?.bottomRight\n\t\t)[ 1 ],\n\t} );\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tconst unit = getAllUnit( selectedUnits );\n\tconst unitConfig = units && units.find( ( item ) => item.value === unit );\n\tconst step = unitConfig?.step || 1;\n\n\tconst [ allValue ] = parseQuantityAndUnitFromRawValue(\n\t\tgetAllValue( values )\n\t);\n\n\tconst toggleLinked = () => setIsLinked( ! isLinked );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( next !== undefined ? `${ next }${ unit }` : undefined );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"components-border-radius-control\">\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Radius' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<div className=\"components-border-radius-control__wrapper\">\n\t\t\t\t{ isLinked ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AllInputControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__unit-control\"\n\t\t\t\t\t\t\tvalues={ values }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tselectedUnits={ selectedUnits }\n\t\t\t\t\t\t\tsetSelectedUnits={ setSelectedUnits }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Border radius' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__range-control\"\n\t\t\t\t\t\t\tvalue={ allValue ?? '' }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUES[ unit ] }\n\t\t\t\t\t\t\tinitialPosition={ 0 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<InputControls\n\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tselectedUnits={ selectedUnits }\n\t\t\t\t\t\tsetSelectedUnits={ setSelectedUnits }\n\t\t\t\t\t\tvalues={ values || DEFAULT_VALUES }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<LinkedButton onClick={ toggleLinked } isLinked={ isLinked } />\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAKA,IAAAG,gBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,aAAA,GAAAF,sBAAA,CAAAJ,OAAA;AACA,IAAAO,WAAA,GAAAH,sBAAA,CAAAJ,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AAnBA;AACA;AACA;;AAUA;AACA;AACA;;AAYA,MAAMS,cAAc,GAAG;EACtBC,OAAO,EAAEC,SAAS;EAClBC,QAAQ,EAAED,SAAS;EACnBE,UAAU,EAAEF,SAAS;EACrBG,WAAW,EAAEH;AACd,CAAC;AACD,MAAMI,uBAAuB,GAAG,CAAC;AACjC,MAAMC,wBAAwB,GAAG;EAChCC,EAAE,EAAE,GAAG;EACPC,EAAE,EAAE,EAAE;EACNC,GAAG,EAAE;AACN,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,mBAAmBA,CAAE;EAAEC,QAAQ;EAAEC;AAAO,CAAC,EAAG;EACnE,MAAM,CAAEC,QAAQ,EAAEC,WAAW,CAAE,GAAG,IAAAC,iBAAQ,EACzC,CAAE,IAAAC,uBAAgB,EAAEJ,MAAO,CAAC,IAAI,CAAE,IAAAK,qBAAc,EAAEL,MAAO,CAC1D,CAAC;;EAED;EACA;EACA;EACA,MAAM,CAAEM,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAAJ,iBAAQ,EAAE;IACrDK,IAAI,EACH,OAAOR,MAAM,KAAK,QAAQ,GACvB,IAAAS,0DAAgC,EAAET,MAAO,CAAC,CAAE,CAAC,CAAE,GAC/CX,SAAS;IACbD,OAAO,EAAE,IAAAqB,0DAAgC,EAAET,MAAM,EAAEZ,OAAQ,CAAC,CAAE,CAAC,CAAE;IACjEE,QAAQ,EAAE,IAAAmB,0DAAgC,EAAET,MAAM,EAAEV,QAAS,CAAC,CAAE,CAAC,CAAE;IACnEC,UAAU,EAAE,IAAAkB,0DAAgC,EAAET,MAAM,EAAET,UAAW,CAAC,CAAE,CAAC,CAAE;IACvEC,WAAW,EAAE,IAAAiB,0DAAgC,EAC5CT,MAAM,EAAER,WACT,CAAC,CAAE,CAAC;EACL,CAAE,CAAC;EAEH,MAAMkB,KAAK,GAAG,IAAAC,wCAAc,EAAE;IAC7BC,cAAc,EAAE,IAAAC,mBAAU,EAAE,eAAgB,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,KAAK;EACrE,CAAE,CAAC;EAEH,MAAMC,IAAI,GAAG,IAAAC,iBAAU,EAAET,aAAc,CAAC;EACxC,MAAMU,UAAU,GAAGN,KAAK,IAAIA,KAAK,CAACO,IAAI,CAAIC,IAAI,IAAMA,IAAI,CAACC,KAAK,KAAKL,IAAK,CAAC;EACzE,MAAMM,IAAI,GAAGJ,UAAU,EAAEI,IAAI,IAAI,CAAC;EAElC,MAAM,CAAEC,QAAQ,CAAE,GAAG,IAAAZ,0DAAgC,EACpD,IAAAa,kBAAW,EAAEtB,MAAO,CACrB,CAAC;EAED,MAAMuB,YAAY,GAAGA,CAAA,KAAMrB,WAAW,CAAE,CAAED,QAAS,CAAC;EAEpD,MAAMuB,kBAAkB,GAAKC,IAAI,IAAM;IACtC1B,QAAQ,CAAE0B,IAAI,KAAKpC,SAAS,GAAI,GAAGoC,IAAM,GAAGX,IAAM,EAAC,GAAGzB,SAAU,CAAC;EAClE,CAAC;EAED,OACC,IAAAqC,MAAA,CAAAC,aAAA;IAAUC,SAAS,EAAC;EAAkC,GACrD,IAAAF,MAAA,CAAAC,aAAA,EAAClD,WAAA,CAAAoD,WAAW,CAACC,WAAW;IAACC,EAAE,EAAC;EAAQ,GACjC,IAAAC,QAAE,EAAE,QAAS,CACS,CAAC,EAC1B,IAAAN,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA2C,GACvD3B,QAAQ,GACT,IAAAyB,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAO,QAAA,QACC,IAAAP,MAAA,CAAAC,aAAA,EAAC9C,gBAAA,CAAAqD,OAAe;IACfN,SAAS,EAAC,gDAAgD;IAC1D5B,MAAM,EAAGA,MAAQ;IACjBmC,GAAG,EAAG1C,uBAAyB;IAC/BM,QAAQ,EAAGA,QAAU;IACrBO,aAAa,EAAGA,aAAe;IAC/BC,gBAAgB,EAAGA,gBAAkB;IACrCG,KAAK,EAAGA;EAAO,CACf,CAAC,EACF,IAAAgB,MAAA,CAAAC,aAAA,EAAClD,WAAA,CAAA2D,YAAY;IACZC,KAAK,EAAG,IAAAL,QAAE,EAAE,eAAgB,CAAG;IAC/BM,mBAAmB;IACnBV,SAAS,EAAC,iDAAiD;IAC3DT,KAAK,EAAGE,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAI;IACxBc,GAAG,EAAG1C,uBAAyB;IAC/B8C,GAAG,EAAG7C,wBAAwB,CAAEoB,IAAI,CAAI;IACxC0B,eAAe,EAAG,CAAG;IACrBC,cAAc,EAAG,KAAO;IACxB1C,QAAQ,EAAGyB,kBAAoB;IAC/BJ,IAAI,EAAGA,IAAM;IACbsB,uBAAuB;EAAA,CACvB,CACA,CAAC,GAEH,IAAAhB,MAAA,CAAAC,aAAA,EAAC5C,cAAA,CAAAmD,OAAa;IACbC,GAAG,EAAG1C,uBAAyB;IAC/BM,QAAQ,EAAGA,QAAU;IACrBO,aAAa,EAAGA,aAAe;IAC/BC,gBAAgB,EAAGA,gBAAkB;IACrCP,MAAM,EAAGA,MAAM,IAAIb,cAAgB;IACnCuB,KAAK,EAAGA;EAAO,CACf,CACD,EACD,IAAAgB,MAAA,CAAAC,aAAA,EAAC3C,aAAA,CAAAkD,OAAY;IAACS,OAAO,EAAGpB,YAAc;IAACtB,QAAQ,EAAGA;EAAU,CAAE,CAC1D,CACI,CAAC;AAEb"}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_allInputControl","_interopRequireDefault","_inputControls","_linkedButton","_useSettings","_utils","DEFAULT_VALUES","topLeft","undefined","topRight","bottomLeft","bottomRight","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUES","px","em","rem","BorderRadiusControl","onChange","values","isLinked","setIsLinked","useState","hasDefinedValues","hasMixedValues","selectedUnits","setSelectedUnits","flat","parseQuantityAndUnitFromRawValue","availableUnits","useSettings","units","useCustomUnits","unit","getAllUnit","unitConfig","find","item","value","step","allValue","getAllValue","toggleLinked","handleSliderChange","next","_react","createElement","className","BaseControl","VisualLabel","as","__","Fragment","default","min","RangeControl","label","hideLabelFromVision","max","initialPosition","withInputField","__nextHasNoMarginBottom","onClick"],"sources":["@wordpress/block-editor/src/components/border-radius-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tRangeControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AllInputControl from './all-input-control';\nimport InputControls from './input-controls';\nimport LinkedButton from './linked-button';\nimport { useSettings } from '../use-settings';\nimport {\n\tgetAllValue,\n\tgetAllUnit,\n\thasDefinedValues,\n\thasMixedValues,\n} from './utils';\n\nconst DEFAULT_VALUES = {\n\ttopLeft: undefined,\n\ttopRight: undefined,\n\tbottomLeft: undefined,\n\tbottomRight: undefined,\n};\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUES = {\n\tpx: 100,\n\tem: 20,\n\trem: 20,\n};\n\n/**\n * Control to display border radius options.\n *\n * @param {Object} props Component props.\n * @param {Function} props.onChange Callback to handle onChange.\n * @param {Object} props.values Border radius values.\n *\n * @return {Element} Custom border radius control.\n */\nexport default function BorderRadiusControl( { onChange, values } ) {\n\tconst [ isLinked, setIsLinked ] = useState(\n\t\t! hasDefinedValues( values ) || ! hasMixedValues( values )\n\t);\n\n\t// Tracking selected units via internal state allows filtering of CSS unit\n\t// only values from being saved while maintaining preexisting unit selection\n\t// behaviour. Filtering CSS unit only values prevents invalid style values.\n\tconst [ selectedUnits, setSelectedUnits ] = useState( {\n\t\tflat:\n\t\t\ttypeof values === 'string'\n\t\t\t\t? parseQuantityAndUnitFromRawValue( values )[ 1 ]\n\t\t\t\t: undefined,\n\t\ttopLeft: parseQuantityAndUnitFromRawValue( values?.topLeft )[ 1 ],\n\t\ttopRight: parseQuantityAndUnitFromRawValue( values?.topRight )[ 1 ],\n\t\tbottomLeft: parseQuantityAndUnitFromRawValue( values?.bottomLeft )[ 1 ],\n\t\tbottomRight: parseQuantityAndUnitFromRawValue(\n\t\t\tvalues?.bottomRight\n\t\t)[ 1 ],\n\t} );\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tconst unit = getAllUnit( selectedUnits );\n\tconst unitConfig = units && units.find( ( item ) => item.value === unit );\n\tconst step = unitConfig?.step || 1;\n\n\tconst [ allValue ] = parseQuantityAndUnitFromRawValue(\n\t\tgetAllValue( values )\n\t);\n\n\tconst toggleLinked = () => setIsLinked( ! isLinked );\n\n\tconst handleSliderChange = ( next ) => {\n\t\tonChange( next !== undefined ? `${ next }${ unit }` : undefined );\n\t};\n\n\treturn (\n\t\t<fieldset className=\"components-border-radius-control\">\n\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t{ __( 'Radius' ) }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t<div className=\"components-border-radius-control__wrapper\">\n\t\t\t\t{ isLinked ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<AllInputControl\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__unit-control\"\n\t\t\t\t\t\t\tvalues={ values }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tselectedUnits={ selectedUnits }\n\t\t\t\t\t\t\tsetSelectedUnits={ setSelectedUnits }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Border radius' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tclassName=\"components-border-radius-control__range-control\"\n\t\t\t\t\t\t\tvalue={ allValue ?? '' }\n\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUES[ unit ] }\n\t\t\t\t\t\t\tinitialPosition={ 0 }\n\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\tonChange={ handleSliderChange }\n\t\t\t\t\t\t\tstep={ step }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<InputControls\n\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tselectedUnits={ selectedUnits }\n\t\t\t\t\t\tsetSelectedUnits={ setSelectedUnits }\n\t\t\t\t\t\tvalues={ values || DEFAULT_VALUES }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<LinkedButton onClick={ toggleLinked } isLinked={ isLinked } />\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n}\n"],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = void 0;
8
7
  var _react = require("react");
9
8
  var _compose = require("@wordpress/compose");
10
- var _useSetting = _interopRequireDefault(require("../use-setting"));
9
+ var _useSettings = require("../use-settings");
11
10
  /**
12
11
  * WordPress dependencies
13
12
  */
@@ -16,10 +15,11 @@ var _useSetting = _interopRequireDefault(require("../use-setting"));
16
15
  */
17
16
  var _default = (0, _compose.createHigherOrderComponent)(WrappedComponent => {
18
17
  return props => {
19
- const colorsFeature = (0, _useSetting.default)('color.palette');
20
- const disableCustomColorsFeature = !(0, _useSetting.default)('color.custom');
21
- const colors = props.colors === undefined ? colorsFeature : props.colors;
22
- const disableCustomColors = props.disableCustomColors === undefined ? disableCustomColorsFeature : props.disableCustomColors;
18
+ const [colorsFeature, enableCustomColors] = (0, _useSettings.useSettings)('color.palette', 'color.custom');
19
+ const {
20
+ colors = colorsFeature,
21
+ disableCustomColors = !enableCustomColors
22
+ } = props;
23
23
  const hasColorsToChoose = colors && colors.length > 0 || !disableCustomColors;
24
24
  return (0, _react.createElement)(WrappedComponent, {
25
25
  ...props,