@wordpress/block-editor 17.1.0 → 17.2.1-next.v.202609171837.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 (541) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +214 -214
  3. package/build/autocompleters/block.cjs.map +2 -2
  4. package/build/components/alignment-control/ui.cjs.map +2 -2
  5. package/build/components/background-image-control/index.cjs +1 -1
  6. package/build/components/background-image-control/index.cjs.map +2 -2
  7. package/build/components/block-alignment-control/ui.cjs +21 -7
  8. package/build/components/block-alignment-control/ui.cjs.map +3 -3
  9. package/build/components/block-alignment-control/use-available-alignments.cjs +60 -13
  10. package/build/components/block-alignment-control/use-available-alignments.cjs.map +2 -2
  11. package/build/components/block-allowed-blocks/allowed-blocks-control.cjs.map +2 -2
  12. package/build/components/block-bindings/attribute-control.cjs +30 -30
  13. package/build/components/block-bindings/attribute-control.cjs.map +3 -3
  14. package/build/components/block-bindings/source-fields-list.cjs +27 -32
  15. package/build/components/block-bindings/source-fields-list.cjs.map +3 -3
  16. package/build/components/block-canvas/index.cjs.map +2 -2
  17. package/build/components/block-card/index.cjs +1 -2
  18. package/build/components/block-card/index.cjs.map +3 -3
  19. package/build/components/block-edit/edit.cjs.map +2 -2
  20. package/build/components/block-heading-level-dropdown/index.cjs.map +2 -2
  21. package/build/components/block-icon/index.cjs.map +2 -2
  22. package/build/components/block-inspector/edit-contents.cjs.map +2 -2
  23. package/build/components/block-inspector/index.cjs +27 -8
  24. package/build/components/block-inspector/index.cjs.map +3 -3
  25. package/build/components/block-keyboard-shortcuts/index.cjs.map +2 -2
  26. package/build/components/block-list/block-html.cjs +1 -12
  27. package/build/components/block-list/block-html.cjs.map +3 -3
  28. package/build/components/block-list/block.cjs +2 -4
  29. package/build/components/block-list/block.cjs.map +2 -2
  30. package/build/components/block-list/layout.cjs +1 -1
  31. package/build/components/block-list/layout.cjs.map +2 -2
  32. package/build/components/block-list/use-block-props/index.cjs.map +2 -2
  33. package/build/components/block-lock/modal.cjs +1 -3
  34. package/build/components/block-lock/modal.cjs.map +2 -2
  35. package/build/components/block-parent-selector/index.cjs +8 -5
  36. package/build/components/block-parent-selector/index.cjs.map +2 -2
  37. package/build/components/block-popover/index.cjs.map +2 -2
  38. package/build/components/block-rename/modal.cjs.map +2 -2
  39. package/build/components/block-settings-menu/block-settings-dropdown.cjs.map +2 -2
  40. package/build/components/block-styles/utils.cjs.map +2 -2
  41. package/build/components/block-switcher/index.cjs.map +2 -2
  42. package/build/components/block-toolbar/edit-section-button.cjs.map +2 -2
  43. package/build/components/block-toolbar/index.cjs +6 -4
  44. package/build/components/block-toolbar/index.cjs.map +2 -2
  45. package/build/components/block-toolbar/switch-section-style.cjs.map +2 -2
  46. package/build/components/block-variation-transforms/index.cjs +28 -18
  47. package/build/components/block-variation-transforms/index.cjs.map +3 -3
  48. package/build/components/block-visibility/modal.cjs.map +2 -2
  49. package/build/components/block-visibility/viewport-visibility-info.cjs.map +2 -2
  50. package/build/components/border-radius-control/index.cjs.map +2 -2
  51. package/build/components/color-palette/with-color-context.cjs.map +2 -2
  52. package/build/components/colors/with-colors.cjs.map +2 -2
  53. package/build/components/colors-gradients/control.cjs.map +2 -2
  54. package/build/components/contrast-checker/index.cjs.map +2 -2
  55. package/build/components/date-format-picker/index.cjs.map +2 -2
  56. package/build/components/dimensions-tool/aspect-ratio-tool.cjs.map +3 -3
  57. package/build/components/dimensions-tool/width-height-tool.cjs.map +2 -2
  58. package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
  59. package/build/components/global-styles/background-panel.cjs +1 -1
  60. package/build/components/global-styles/background-panel.cjs.map +2 -2
  61. package/build/components/global-styles/border-panel.cjs +1 -1
  62. package/build/components/global-styles/border-panel.cjs.map +2 -2
  63. package/build/components/global-styles/color-gradient-dropdown-item.cjs +1 -1
  64. package/build/components/global-styles/color-gradient-dropdown-item.cjs.map +2 -2
  65. package/build/components/global-styles/color-panel.cjs +1 -1
  66. package/build/components/global-styles/color-panel.cjs.map +2 -2
  67. package/build/components/global-styles/dimensions-panel.cjs +1 -1
  68. package/build/components/global-styles/dimensions-panel.cjs.map +2 -2
  69. package/build/components/global-styles/filters-panel.cjs +1 -1
  70. package/build/components/global-styles/filters-panel.cjs.map +2 -2
  71. package/build/components/global-styles/hooks.cjs +1 -0
  72. package/build/components/global-styles/hooks.cjs.map +2 -2
  73. package/build/components/global-styles/inheritance/index.cjs +3 -3
  74. package/build/components/global-styles/inheritance/index.cjs.map +2 -2
  75. package/build/components/global-styles/inherited-value-context.cjs +0 -5
  76. package/build/components/global-styles/inherited-value-context.cjs.map +2 -2
  77. package/build/components/global-styles/state-control-badges.cjs +0 -1
  78. package/build/components/global-styles/state-control-badges.cjs.map +2 -2
  79. package/build/components/global-styles/state-control.cjs +6 -4
  80. package/build/components/global-styles/state-control.cjs.map +2 -2
  81. package/build/components/global-styles/text-shadow-panel.cjs +254 -0
  82. package/build/components/global-styles/text-shadow-panel.cjs.map +7 -0
  83. package/build/components/global-styles/typography-panel.cjs +46 -5
  84. package/build/components/global-styles/typography-panel.cjs.map +2 -2
  85. package/build/components/global-styles/typography-utils.cjs.map +2 -2
  86. package/build/components/global-styles/utils.cjs.map +2 -2
  87. package/build/components/html-element-control/index.cjs.map +3 -3
  88. package/build/components/iframe/index.cjs.map +2 -2
  89. package/build/components/iframe/use-scale-canvas.cjs.map +2 -2
  90. package/build/components/image-size-control/index.cjs.map +3 -3
  91. package/build/components/inner-blocks/index.cjs +6 -1
  92. package/build/components/inner-blocks/index.cjs.map +2 -2
  93. package/build/components/inner-content/index.cjs.map +2 -2
  94. package/build/components/inserter/block-patterns-tab/use-pattern-categories.cjs +4 -23
  95. package/build/components/inserter/block-patterns-tab/use-pattern-categories.cjs.map +2 -2
  96. package/build/components/inserter/block-patterns-tab/utils.cjs +26 -0
  97. package/build/components/inserter/block-patterns-tab/utils.cjs.map +2 -2
  98. package/build/components/inserter/hooks/use-block-types-state.cjs.map +2 -2
  99. package/build/components/inserter/hooks/use-insertion-point.cjs.map +2 -2
  100. package/build/components/inserter/hooks/use-patterns-state.cjs.map +2 -2
  101. package/build/components/inserter/media-tab/media-panel.cjs.map +2 -2
  102. package/build/components/inserter/media-tab/media-preview.cjs.map +2 -2
  103. package/build/components/inserter-list-item/index.cjs.map +2 -2
  104. package/build/components/inspector-controls/list-view-content-popover.cjs.map +2 -2
  105. package/build/components/link-control/search-results.cjs.map +2 -2
  106. package/build/components/link-control/use-search-handler.cjs +3 -0
  107. package/build/components/link-control/use-search-handler.cjs.map +2 -2
  108. package/build/components/list-view/branch.cjs.map +2 -2
  109. package/build/components/list-view/drop-indicator.cjs.map +2 -2
  110. package/build/components/list-view/index.cjs.map +2 -2
  111. package/build/components/list-view/use-list-view-drop-zone.cjs.map +2 -2
  112. package/build/components/list-view/utils.cjs.map +2 -2
  113. package/build/components/media-replace-flow/index.cjs +4 -1
  114. package/build/components/media-replace-flow/index.cjs.map +2 -2
  115. package/build/components/plain-text/index.cjs +1 -2
  116. package/build/components/plain-text/index.cjs.map +3 -3
  117. package/build/components/preset-input-control/index.cjs.map +2 -2
  118. package/build/components/provider/index.cjs +3 -1
  119. package/build/components/provider/index.cjs.map +2 -2
  120. package/build/components/provider/use-block-sync.cjs.map +2 -2
  121. package/build/components/publish-date-time-picker/index.cjs.map +2 -2
  122. package/build/components/resizable-box-popover/index.cjs +1 -1
  123. package/build/components/resizable-box-popover/index.cjs.map +1 -1
  124. package/build/components/resolution-tool/index.cjs.map +3 -3
  125. package/build/components/rich-text/event-listeners/enter.cjs +8 -22
  126. package/build/components/rich-text/event-listeners/enter.cjs.map +2 -2
  127. package/build/components/rich-text/format-edit.cjs.map +2 -2
  128. package/build/components/rich-text/index.cjs +20 -0
  129. package/build/components/rich-text/index.cjs.map +2 -2
  130. package/build/components/rich-text/multiline.cjs +10 -2
  131. package/build/components/rich-text/multiline.cjs.map +2 -2
  132. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.cjs.map +2 -2
  133. package/build/components/typewriter/index.cjs.map +2 -2
  134. package/build/components/use-block-commands/index.cjs.map +2 -2
  135. package/build/components/writing-flow/index.cjs +3 -0
  136. package/build/components/writing-flow/index.cjs.map +2 -2
  137. package/build/components/writing-flow/use-clipboard-handler.cjs.map +2 -2
  138. package/build/components/writing-flow/use-selection-observer.cjs +5 -3
  139. package/build/components/writing-flow/use-selection-observer.cjs.map +2 -2
  140. package/build/hooks/align.cjs +3 -5
  141. package/build/hooks/align.cjs.map +2 -2
  142. package/build/hooks/background.cjs.map +2 -2
  143. package/build/hooks/block-bindings.cjs.map +2 -2
  144. package/build/hooks/border.cjs.map +2 -2
  145. package/build/hooks/contrast-checker.cjs.map +2 -2
  146. package/build/hooks/dimensions.cjs.map +2 -2
  147. package/build/hooks/duotone.cjs.map +2 -2
  148. package/build/hooks/elements.cjs.map +2 -2
  149. package/build/hooks/fit-text.cjs.map +2 -2
  150. package/build/hooks/gap.cjs +2 -1
  151. package/build/hooks/gap.cjs.map +3 -3
  152. package/build/hooks/index.cjs +4 -2
  153. package/build/hooks/index.cjs.map +3 -3
  154. package/build/hooks/layout-child.cjs.map +2 -2
  155. package/build/hooks/layout.cjs +15 -14
  156. package/build/hooks/layout.cjs.map +3 -3
  157. package/build/hooks/position.cjs +3 -31
  158. package/build/hooks/position.cjs.map +2 -2
  159. package/build/hooks/states.cjs +3 -2
  160. package/build/hooks/states.cjs.map +2 -2
  161. package/build/hooks/text-shadow.cjs +100 -0
  162. package/build/hooks/text-shadow.cjs.map +7 -0
  163. package/build/hooks/typography.cjs +30 -6
  164. package/build/hooks/typography.cjs.map +2 -2
  165. package/build/hooks/utils.cjs +24 -2
  166. package/build/hooks/utils.cjs.map +2 -2
  167. package/build/layouts/grid.cjs.map +2 -2
  168. package/build/layouts/utils.cjs +7 -2
  169. package/build/layouts/utils.cjs.map +2 -2
  170. package/build/private-apis.cjs +9 -6
  171. package/build/private-apis.cjs.map +2 -2
  172. package/build/store/actions.cjs +26 -4
  173. package/build/store/actions.cjs.map +3 -3
  174. package/build/store/private-selectors.cjs.map +2 -2
  175. package/build/store/reducer.cjs.map +2 -2
  176. package/build/store/selectors.cjs.map +2 -2
  177. package/build/utils/get-font-styles-and-weights.cjs.map +2 -2
  178. package/build/utils/transform-styles/index.cjs.map +1 -1
  179. package/build-module/autocompleters/block.mjs.map +2 -2
  180. package/build-module/components/alignment-control/ui.mjs.map +2 -2
  181. package/build-module/components/background-image-control/index.mjs +2 -2
  182. package/build-module/components/background-image-control/index.mjs.map +2 -2
  183. package/build-module/components/block-alignment-control/ui.mjs +21 -7
  184. package/build-module/components/block-alignment-control/ui.mjs.map +2 -2
  185. package/build-module/components/block-alignment-control/use-available-alignments.mjs +56 -13
  186. package/build-module/components/block-alignment-control/use-available-alignments.mjs.map +2 -2
  187. package/build-module/components/block-allowed-blocks/allowed-blocks-control.mjs.map +2 -2
  188. package/build-module/components/block-bindings/attribute-control.mjs +31 -32
  189. package/build-module/components/block-bindings/attribute-control.mjs.map +2 -2
  190. package/build-module/components/block-bindings/source-fields-list.mjs +25 -30
  191. package/build-module/components/block-bindings/source-fields-list.mjs.map +2 -2
  192. package/build-module/components/block-canvas/index.mjs.map +2 -2
  193. package/build-module/components/block-card/index.mjs +3 -8
  194. package/build-module/components/block-card/index.mjs.map +2 -2
  195. package/build-module/components/block-edit/edit.mjs.map +2 -2
  196. package/build-module/components/block-heading-level-dropdown/index.mjs.map +2 -2
  197. package/build-module/components/block-icon/index.mjs.map +2 -2
  198. package/build-module/components/block-inspector/edit-contents.mjs.map +2 -2
  199. package/build-module/components/block-inspector/index.mjs +29 -10
  200. package/build-module/components/block-inspector/index.mjs.map +2 -2
  201. package/build-module/components/block-keyboard-shortcuts/index.mjs.map +2 -2
  202. package/build-module/components/block-list/block-html.mjs +1 -2
  203. package/build-module/components/block-list/block-html.mjs.map +2 -2
  204. package/build-module/components/block-list/block.mjs +2 -4
  205. package/build-module/components/block-list/block.mjs.map +2 -2
  206. package/build-module/components/block-list/layout.mjs +1 -1
  207. package/build-module/components/block-list/layout.mjs.map +2 -2
  208. package/build-module/components/block-list/use-block-props/index.mjs.map +2 -2
  209. package/build-module/components/block-lock/modal.mjs +1 -3
  210. package/build-module/components/block-lock/modal.mjs.map +2 -2
  211. package/build-module/components/block-parent-selector/index.mjs +8 -5
  212. package/build-module/components/block-parent-selector/index.mjs.map +2 -2
  213. package/build-module/components/block-popover/index.mjs.map +2 -2
  214. package/build-module/components/block-rename/modal.mjs.map +2 -2
  215. package/build-module/components/block-settings-menu/block-settings-dropdown.mjs.map +2 -2
  216. package/build-module/components/block-styles/utils.mjs.map +2 -2
  217. package/build-module/components/block-switcher/index.mjs.map +2 -2
  218. package/build-module/components/block-toolbar/edit-section-button.mjs.map +2 -2
  219. package/build-module/components/block-toolbar/index.mjs +6 -4
  220. package/build-module/components/block-toolbar/index.mjs.map +2 -2
  221. package/build-module/components/block-toolbar/switch-section-style.mjs.map +2 -2
  222. package/build-module/components/block-variation-transforms/index.mjs +30 -21
  223. package/build-module/components/block-variation-transforms/index.mjs.map +2 -2
  224. package/build-module/components/block-visibility/modal.mjs.map +2 -2
  225. package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +2 -2
  226. package/build-module/components/border-radius-control/index.mjs.map +2 -2
  227. package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
  228. package/build-module/components/colors/with-colors.mjs.map +2 -2
  229. package/build-module/components/colors-gradients/control.mjs.map +2 -2
  230. package/build-module/components/contrast-checker/index.mjs.map +2 -2
  231. package/build-module/components/date-format-picker/index.mjs.map +2 -2
  232. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs +2 -2
  233. package/build-module/components/dimensions-tool/aspect-ratio-tool.mjs.map +2 -2
  234. package/build-module/components/dimensions-tool/width-height-tool.mjs.map +2 -2
  235. package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
  236. package/build-module/components/global-styles/background-panel.mjs +2 -2
  237. package/build-module/components/global-styles/background-panel.mjs.map +2 -2
  238. package/build-module/components/global-styles/border-panel.mjs +2 -2
  239. package/build-module/components/global-styles/border-panel.mjs.map +2 -2
  240. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs +2 -2
  241. package/build-module/components/global-styles/color-gradient-dropdown-item.mjs.map +2 -2
  242. package/build-module/components/global-styles/color-panel.mjs +2 -2
  243. package/build-module/components/global-styles/color-panel.mjs.map +2 -2
  244. package/build-module/components/global-styles/dimensions-panel.mjs +2 -2
  245. package/build-module/components/global-styles/dimensions-panel.mjs.map +2 -2
  246. package/build-module/components/global-styles/filters-panel.mjs +2 -2
  247. package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
  248. package/build-module/components/global-styles/hooks.mjs +1 -0
  249. package/build-module/components/global-styles/hooks.mjs.map +2 -2
  250. package/build-module/components/global-styles/inheritance/index.mjs +2 -2
  251. package/build-module/components/global-styles/inheritance/index.mjs.map +2 -2
  252. package/build-module/components/global-styles/inherited-value-context.mjs +0 -5
  253. package/build-module/components/global-styles/inherited-value-context.mjs.map +2 -2
  254. package/build-module/components/global-styles/state-control-badges.mjs +0 -1
  255. package/build-module/components/global-styles/state-control-badges.mjs.map +2 -2
  256. package/build-module/components/global-styles/state-control.mjs +6 -4
  257. package/build-module/components/global-styles/state-control.mjs.map +2 -2
  258. package/build-module/components/global-styles/text-shadow-panel.mjs +224 -0
  259. package/build-module/components/global-styles/text-shadow-panel.mjs.map +7 -0
  260. package/build-module/components/global-styles/typography-panel.mjs +47 -6
  261. package/build-module/components/global-styles/typography-panel.mjs.map +2 -2
  262. package/build-module/components/global-styles/typography-utils.mjs.map +2 -2
  263. package/build-module/components/global-styles/utils.mjs.map +2 -2
  264. package/build-module/components/html-element-control/index.mjs +2 -2
  265. package/build-module/components/html-element-control/index.mjs.map +2 -2
  266. package/build-module/components/iframe/index.mjs.map +2 -2
  267. package/build-module/components/iframe/use-scale-canvas.mjs.map +2 -2
  268. package/build-module/components/image-size-control/index.mjs +2 -2
  269. package/build-module/components/image-size-control/index.mjs.map +2 -2
  270. package/build-module/components/inner-blocks/index.mjs +6 -1
  271. package/build-module/components/inner-blocks/index.mjs.map +2 -2
  272. package/build-module/components/inner-content/index.mjs.map +2 -2
  273. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.mjs +6 -24
  274. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.mjs.map +2 -2
  275. package/build-module/components/inserter/block-patterns-tab/utils.mjs +25 -0
  276. package/build-module/components/inserter/block-patterns-tab/utils.mjs.map +2 -2
  277. package/build-module/components/inserter/hooks/use-block-types-state.mjs.map +2 -2
  278. package/build-module/components/inserter/hooks/use-insertion-point.mjs.map +2 -2
  279. package/build-module/components/inserter/hooks/use-patterns-state.mjs.map +2 -2
  280. package/build-module/components/inserter/media-tab/media-panel.mjs.map +2 -2
  281. package/build-module/components/inserter/media-tab/media-preview.mjs.map +2 -2
  282. package/build-module/components/inserter-list-item/index.mjs.map +2 -2
  283. package/build-module/components/inspector-controls/list-view-content-popover.mjs.map +2 -2
  284. package/build-module/components/link-control/search-results.mjs.map +2 -2
  285. package/build-module/components/link-control/use-search-handler.mjs +3 -0
  286. package/build-module/components/link-control/use-search-handler.mjs.map +2 -2
  287. package/build-module/components/list-view/branch.mjs.map +2 -2
  288. package/build-module/components/list-view/drop-indicator.mjs.map +2 -2
  289. package/build-module/components/list-view/index.mjs.map +2 -2
  290. package/build-module/components/list-view/use-list-view-drop-zone.mjs.map +2 -2
  291. package/build-module/components/list-view/utils.mjs.map +2 -2
  292. package/build-module/components/media-replace-flow/index.mjs +4 -1
  293. package/build-module/components/media-replace-flow/index.mjs.map +2 -2
  294. package/build-module/components/plain-text/index.mjs +1 -2
  295. package/build-module/components/plain-text/index.mjs.map +2 -2
  296. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  297. package/build-module/components/provider/index.mjs +3 -1
  298. package/build-module/components/provider/index.mjs.map +2 -2
  299. package/build-module/components/provider/use-block-sync.mjs.map +2 -2
  300. package/build-module/components/publish-date-time-picker/index.mjs.map +2 -2
  301. package/build-module/components/resizable-box-popover/index.mjs +1 -1
  302. package/build-module/components/resizable-box-popover/index.mjs.map +1 -1
  303. package/build-module/components/resolution-tool/index.mjs +2 -2
  304. package/build-module/components/resolution-tool/index.mjs.map +2 -2
  305. package/build-module/components/rich-text/event-listeners/enter.mjs +8 -22
  306. package/build-module/components/rich-text/event-listeners/enter.mjs.map +2 -2
  307. package/build-module/components/rich-text/format-edit.mjs.map +2 -2
  308. package/build-module/components/rich-text/index.mjs +21 -0
  309. package/build-module/components/rich-text/index.mjs.map +2 -2
  310. package/build-module/components/rich-text/multiline.mjs +11 -3
  311. package/build-module/components/rich-text/multiline.mjs.map +2 -2
  312. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.mjs.map +2 -2
  313. package/build-module/components/typewriter/index.mjs.map +2 -2
  314. package/build-module/components/use-block-commands/index.mjs.map +2 -2
  315. package/build-module/components/writing-flow/index.mjs +3 -0
  316. package/build-module/components/writing-flow/index.mjs.map +2 -2
  317. package/build-module/components/writing-flow/use-clipboard-handler.mjs.map +2 -2
  318. package/build-module/components/writing-flow/use-selection-observer.mjs +5 -3
  319. package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
  320. package/build-module/hooks/align.mjs +6 -6
  321. package/build-module/hooks/align.mjs.map +2 -2
  322. package/build-module/hooks/background.mjs.map +2 -2
  323. package/build-module/hooks/block-bindings.mjs.map +2 -2
  324. package/build-module/hooks/border.mjs.map +2 -2
  325. package/build-module/hooks/contrast-checker.mjs.map +2 -2
  326. package/build-module/hooks/dimensions.mjs.map +2 -2
  327. package/build-module/hooks/duotone.mjs.map +2 -2
  328. package/build-module/hooks/elements.mjs.map +2 -2
  329. package/build-module/hooks/fit-text.mjs.map +2 -2
  330. package/build-module/hooks/gap.mjs +2 -1
  331. package/build-module/hooks/gap.mjs.map +2 -2
  332. package/build-module/hooks/index.mjs +4 -2
  333. package/build-module/hooks/index.mjs.map +2 -2
  334. package/build-module/hooks/layout-child.mjs.map +2 -2
  335. package/build-module/hooks/layout.mjs +6 -5
  336. package/build-module/hooks/layout.mjs.map +2 -2
  337. package/build-module/hooks/position.mjs +5 -33
  338. package/build-module/hooks/position.mjs.map +2 -2
  339. package/build-module/hooks/states.mjs +3 -2
  340. package/build-module/hooks/states.mjs.map +2 -2
  341. package/build-module/hooks/text-shadow.mjs +65 -0
  342. package/build-module/hooks/text-shadow.mjs.map +7 -0
  343. package/build-module/hooks/typography.mjs +30 -6
  344. package/build-module/hooks/typography.mjs.map +2 -2
  345. package/build-module/hooks/utils.mjs +24 -2
  346. package/build-module/hooks/utils.mjs.map +2 -2
  347. package/build-module/layouts/grid.mjs.map +2 -2
  348. package/build-module/layouts/utils.mjs +5 -1
  349. package/build-module/layouts/utils.mjs.map +2 -2
  350. package/build-module/private-apis.mjs +6 -2
  351. package/build-module/private-apis.mjs.map +2 -2
  352. package/build-module/store/actions.mjs +28 -5
  353. package/build-module/store/actions.mjs.map +3 -3
  354. package/build-module/store/private-selectors.mjs.map +2 -2
  355. package/build-module/store/reducer.mjs.map +2 -2
  356. package/build-module/store/selectors.mjs.map +2 -2
  357. package/build-module/utils/get-font-styles-and-weights.mjs.map +2 -2
  358. package/build-module/utils/transform-styles/index.mjs.map +1 -1
  359. package/build-style/content-rtl.css +7 -2
  360. package/build-style/content.css +7 -2
  361. package/build-style/style-rtl.css +90 -25
  362. package/build-style/style.css +92 -25
  363. package/package.json +42 -43
  364. package/src/autocompleters/block.jsx +4 -4
  365. package/src/components/alignment-control/ui.jsx +1 -1
  366. package/src/components/background-image-control/index.jsx +3 -3
  367. package/src/components/block-alignment-control/test/index.jsdom.test.jsx +267 -0
  368. package/src/components/block-alignment-control/ui.jsx +47 -9
  369. package/src/components/block-alignment-control/use-available-alignments.js +106 -20
  370. package/src/components/block-allowed-blocks/allowed-blocks-control.jsx +1 -1
  371. package/src/components/block-bindings/attribute-control.jsx +27 -29
  372. package/src/components/block-bindings/source-fields-list.jsx +22 -32
  373. package/src/components/block-bindings/test/attribute-control.jsdom.test.jsx +115 -0
  374. package/src/components/block-canvas/index.jsx +1 -1
  375. package/src/components/block-card/index.jsx +5 -11
  376. package/src/components/block-card/style.scss +1 -0
  377. package/src/components/block-edit/edit.jsx +1 -1
  378. package/src/components/block-heading-level-dropdown/index.jsx +1 -1
  379. package/src/components/block-icon/index.jsx +1 -1
  380. package/src/components/block-icon/test/index.browser.test.jsx +74 -0
  381. package/src/components/block-inspector/edit-contents.jsx +2 -2
  382. package/src/components/block-inspector/index.jsx +46 -15
  383. package/src/components/block-inspector/style.scss +16 -0
  384. package/src/components/block-keyboard-shortcuts/index.jsx +2 -2
  385. package/src/components/block-list/block-html.jsx +2 -3
  386. package/src/components/block-list/block.jsx +7 -5
  387. package/src/components/block-list/content.scss +3 -2
  388. package/src/components/block-list/layout.jsx +4 -1
  389. package/src/components/block-list/test/layout.jsdom.test.js +40 -0
  390. package/src/components/block-list/use-block-props/index.js +1 -1
  391. package/src/components/block-lock/modal.jsx +2 -3
  392. package/src/components/block-lock/style.scss +1 -1
  393. package/src/components/block-mover/style.scss +0 -13
  394. package/src/components/block-parent-selector/index.jsx +12 -6
  395. package/src/components/block-patterns-list/style.scss +1 -1
  396. package/src/components/block-popover/index.jsx +1 -1
  397. package/src/components/block-rename/modal.jsx +3 -3
  398. package/src/components/block-settings-menu/block-settings-dropdown.jsx +1 -1
  399. package/src/components/block-styles/utils.js +1 -1
  400. package/src/components/block-switcher/index.jsx +3 -3
  401. package/src/components/block-toolbar/edit-section-button.jsx +2 -2
  402. package/src/components/block-toolbar/index.jsx +8 -4
  403. package/src/components/block-toolbar/switch-section-style.jsx +1 -1
  404. package/src/components/block-variation-transforms/index.jsx +24 -23
  405. package/src/components/block-variation-transforms/test/index.jsdom.test.jsx +93 -0
  406. package/src/components/block-visibility/modal.jsx +7 -7
  407. package/src/components/block-visibility/style.scss +1 -1
  408. package/src/components/block-visibility/viewport-visibility-info.jsx +5 -7
  409. package/src/components/border-radius-control/index.jsx +2 -2
  410. package/src/components/border-radius-control/test/index.jsdom.test.jsx +0 -22
  411. package/src/components/border-radius-control/test/select.browser.test.js +30 -0
  412. package/src/components/color-palette/with-color-context.jsx +1 -1
  413. package/src/components/colors/with-colors.jsx +1 -1
  414. package/src/components/colors-gradients/control.jsx +2 -2
  415. package/src/components/colors-gradients/test/{control.jsdom.test.jsx → control.browser.test.jsx} +6 -9
  416. package/src/components/contrast-checker/index.jsx +2 -2
  417. package/src/components/date-format-picker/index.jsx +2 -2
  418. package/src/components/dimensions-tool/aspect-ratio-tool.jsx +4 -4
  419. package/src/components/dimensions-tool/test/index.jsdom.test.jsx +17 -11
  420. package/src/components/dimensions-tool/width-height-tool.jsx +2 -2
  421. package/src/components/font-sizes/with-font-sizes.jsx +2 -3
  422. package/src/components/global-styles/background-panel.jsx +2 -2
  423. package/src/components/global-styles/border-panel.jsx +2 -2
  424. package/src/components/global-styles/color-gradient-dropdown-item.jsx +3 -3
  425. package/src/components/global-styles/color-panel.jsx +3 -3
  426. package/src/components/global-styles/dimensions-panel.jsx +6 -6
  427. package/src/components/global-styles/filters-panel.jsx +2 -2
  428. package/src/components/global-styles/hooks.js +1 -0
  429. package/src/components/global-styles/inheritance/index.jsx +9 -6
  430. package/src/components/global-styles/inheritance/test/{index.jsdom.test.jsx → index.browser.test.jsx} +34 -28
  431. package/src/components/global-styles/inherited-value-context.js +1 -9
  432. package/src/components/global-styles/state-control-badges.jsx +0 -1
  433. package/src/components/global-styles/state-control.jsx +12 -3
  434. package/src/components/global-styles/style.scss +68 -0
  435. package/src/components/global-styles/test/{color-panel.jsdom.test.jsx → color-panel.browser.test.jsx} +53 -54
  436. package/src/components/global-styles/test/inherited-value-context-core.jsdom.test.js +17 -26
  437. package/src/components/global-styles/test/{typography-panel-core.jsdom.test.jsx → typography-panel-core.browser.test.jsx} +84 -39
  438. package/src/components/global-styles/test/{typography-panel.jsdom.test.jsx → typography-panel.browser.test.jsx} +80 -122
  439. package/src/components/global-styles/text-shadow-panel.tsx +257 -0
  440. package/src/components/global-styles/typography-panel.jsx +52 -13
  441. package/src/components/global-styles/typography-utils.js +2 -2
  442. package/src/components/global-styles/utils.js +1 -1
  443. package/src/components/html-element-control/index.jsx +2 -2
  444. package/src/components/iframe/index.jsx +1 -1
  445. package/src/components/iframe/use-scale-canvas.js +1 -1
  446. package/src/components/image-size-control/index.jsx +2 -2
  447. package/src/components/inner-blocks/index.jsx +9 -1
  448. package/src/components/inner-content/index.jsx +1 -1
  449. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +7 -33
  450. package/src/components/inserter/block-patterns-tab/utils.js +44 -0
  451. package/src/components/inserter/hooks/use-block-types-state.js +2 -2
  452. package/src/components/inserter/hooks/use-insertion-point.js +1 -1
  453. package/src/components/inserter/hooks/use-patterns-state.js +1 -1
  454. package/src/components/inserter/media-tab/media-panel.jsx +9 -9
  455. package/src/components/inserter/media-tab/media-preview.jsx +1 -1
  456. package/src/components/inserter-list-item/index.jsx +1 -1
  457. package/src/components/inserter-list-item/style.scss +2 -2
  458. package/src/components/inspector-controls/list-view-content-popover.jsx +1 -1
  459. package/src/components/link-control/search-results.jsx +1 -1
  460. package/src/components/link-control/style.scss +1 -1
  461. package/src/components/link-control/test/index.jsdom.test.jsx +38 -110
  462. package/src/components/link-control/test/keyboard-selection.browser.test.js +110 -0
  463. package/src/components/link-control/use-search-handler.js +8 -3
  464. package/src/components/list-view/branch.jsx +1 -1
  465. package/src/components/list-view/drop-indicator.jsx +3 -3
  466. package/src/components/list-view/index.jsx +1 -1
  467. package/src/components/list-view/style.scss +1 -9
  468. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  469. package/src/components/list-view/utils.js +1 -1
  470. package/src/components/media-replace-flow/index.jsx +4 -1
  471. package/src/components/navigable-toolbar/test/index.browser.test.js +6 -7
  472. package/src/components/plain-text/README.md +3 -2
  473. package/src/components/plain-text/content.scss +0 -1
  474. package/src/components/plain-text/index.jsx +2 -3
  475. package/src/components/plain-text/style.scss +4 -0
  476. package/src/components/preset-input-control/index.jsx +2 -2
  477. package/src/components/preset-input-control/test/index.jsdom.test.jsx +0 -56
  478. package/src/components/preset-input-control/test/interaction.browser.test.js +63 -0
  479. package/src/components/provider/index.jsx +5 -3
  480. package/src/components/provider/use-block-sync.js +5 -5
  481. package/src/components/publish-date-time-picker/index.jsx +1 -1
  482. package/src/components/resizable-box-popover/index.jsx +1 -1
  483. package/src/components/resolution-tool/index.jsx +2 -2
  484. package/src/components/responsive-block-control/style.scss +1 -2
  485. package/src/components/responsive-block-control/test/index.jsdom.test.jsx +2 -2
  486. package/src/components/rich-text/event-listeners/enter.js +16 -23
  487. package/src/components/rich-text/format-edit.jsx +1 -1
  488. package/src/components/rich-text/index.jsx +39 -2
  489. package/src/components/rich-text/multiline.jsx +11 -3
  490. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
  491. package/src/components/spacing-sizes-control/test/index.jsdom.test.jsx +0 -21
  492. package/src/components/spacing-sizes-control/test/select.browser.test.js +58 -0
  493. package/src/components/typewriter/index.jsx +1 -1
  494. package/src/components/url-input/test/fixtures/validated-input-control-deprecation.js +1 -1
  495. package/src/components/use-block-commands/index.js +1 -1
  496. package/src/components/use-block-drop-zone/test/index.js +2 -2
  497. package/src/components/writing-flow/index.jsx +8 -0
  498. package/src/components/writing-flow/use-clipboard-handler.js +1 -1
  499. package/src/components/writing-flow/use-selection-observer.js +15 -6
  500. package/src/content.scss +1 -0
  501. package/src/hooks/align.jsx +22 -6
  502. package/src/hooks/background.jsx +1 -1
  503. package/src/hooks/block-bindings.jsx +1 -1
  504. package/src/hooks/block-hooks.scss +0 -6
  505. package/src/hooks/border.jsx +2 -2
  506. package/src/hooks/contrast-checker.js +1 -1
  507. package/src/hooks/dimensions.jsx +2 -2
  508. package/src/hooks/duotone.jsx +3 -3
  509. package/src/hooks/elements.jsx +3 -3
  510. package/src/hooks/fit-text.jsx +1 -1
  511. package/src/hooks/gap.js +2 -4
  512. package/src/hooks/index.js +3 -1
  513. package/src/hooks/layout-child.jsx +3 -4
  514. package/src/hooks/layout.jsx +17 -18
  515. package/src/hooks/position.jsx +5 -36
  516. package/src/hooks/states.jsx +6 -2
  517. package/src/hooks/test/layout.jsdom.test.js +44 -1
  518. package/src/hooks/text-shadow.ts +105 -0
  519. package/src/hooks/typography.jsx +58 -30
  520. package/src/hooks/utils.jsx +23 -1
  521. package/src/layouts/grid.jsx +2 -2
  522. package/src/layouts/test/flex.jsdom.test.jsx +4 -3
  523. package/src/layouts/test/utils.js +48 -1
  524. package/src/layouts/utils.js +19 -0
  525. package/src/private-apis.js +4 -0
  526. package/src/store/actions.js +50 -10
  527. package/src/store/private-selectors.js +5 -5
  528. package/src/store/reducer.js +6 -6
  529. package/src/store/selectors.js +3 -3
  530. package/src/store/test/actions.jsdom.test.js +60 -0
  531. package/src/style.scss +1 -0
  532. package/src/utils/get-font-styles-and-weights.ts +1 -1
  533. package/src/utils/transform-styles/index.ts +1 -1
  534. package/build/hooks/cross-origin-isolation.cjs +0 -56
  535. package/build/hooks/cross-origin-isolation.cjs.map +0 -7
  536. package/build-module/hooks/cross-origin-isolation.mjs +0 -54
  537. package/build-module/hooks/cross-origin-isolation.mjs.map +0 -7
  538. package/src/components/block-icon/test/__snapshots__/index.jsdom.test.jsx.snap +0 -27
  539. package/src/components/block-icon/test/index.jsdom.test.jsx +0 -67
  540. package/src/hooks/cross-origin-isolation.js +0 -73
  541. package/src/hooks/test/cross-origin-isolation.jsdom.test.js +0 -173
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // packages/block-editor/src/components/global-styles/text-shadow-panel.tsx
31
+ var text_shadow_panel_exports = {};
32
+ __export(text_shadow_panel_exports, {
33
+ TextShadowPopover: () => TextShadowPopover
34
+ });
35
+ module.exports = __toCommonJS(text_shadow_panel_exports);
36
+ var import_i18n = require("@wordpress/i18n");
37
+ var import_components = require("@wordpress/components");
38
+ var import_ui = require("@wordpress/ui");
39
+ var import_element = require("@wordpress/element");
40
+ var import_icons = require("@wordpress/icons");
41
+ var import_clsx = __toESM(require("clsx"));
42
+ var import_use_settings = require("../use-settings/index.cjs");
43
+ var import_jsx_runtime = require("react/jsx-runtime");
44
+ var EMPTY_ARRAY = [];
45
+ var PRESETS_SELECT_THRESHOLD = 7;
46
+ function getTextShadowPresetSlug(rawValue) {
47
+ if (!rawValue || typeof rawValue !== "string") {
48
+ return void 0;
49
+ }
50
+ if (rawValue.startsWith("var:preset|text-shadow|")) {
51
+ return rawValue.replace("var:preset|text-shadow|", "");
52
+ }
53
+ const cssVarMatch = rawValue.match(
54
+ /^var\(--wp--preset--text-shadow--([^)]+)\)$/
55
+ );
56
+ if (cssVarMatch) {
57
+ return cssVarMatch[1];
58
+ }
59
+ return void 0;
60
+ }
61
+ function TextShadowPopover({ textShadow, onChange }) {
62
+ const popoverProps = {
63
+ placement: "left-start",
64
+ offset: 36,
65
+ shift: true,
66
+ className: "block-editor-global-styles__text-shadow-popover"
67
+ };
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
69
+ import_components.Dropdown,
70
+ {
71
+ popoverProps,
72
+ className: "block-editor-global-styles__text-shadow-dropdown",
73
+ renderToggle: ({ onToggle, isOpen }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
+ TextShadowToggle,
75
+ {
76
+ textShadow,
77
+ onChange,
78
+ onToggle,
79
+ isOpen
80
+ }
81
+ ),
82
+ renderContent: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
+ TextShadowControl,
84
+ {
85
+ textShadow,
86
+ onChange
87
+ }
88
+ )
89
+ }
90
+ );
91
+ }
92
+ function TextShadowControl({ textShadow, onChange }) {
93
+ const [
94
+ defaultPresetsEnabled,
95
+ defaultPresets,
96
+ themePresets,
97
+ customPresets
98
+ ] = (0, import_use_settings.useSettings)(
99
+ "typography.defaultTextShadowPresets",
100
+ "typography.textShadowPresets.default",
101
+ "typography.textShadowPresets.theme",
102
+ "typography.textShadowPresets.custom"
103
+ );
104
+ const presets = (0, import_element.useMemo)(
105
+ () => [
106
+ ...defaultPresetsEnabled && defaultPresets || EMPTY_ARRAY,
107
+ ...themePresets || EMPTY_ARRAY,
108
+ ...customPresets || EMPTY_ARRAY
109
+ ],
110
+ [defaultPresetsEnabled, defaultPresets, themePresets, customPresets]
111
+ );
112
+ const choices = [
113
+ { value: "none", label: (0, import_i18n.__)("None") },
114
+ ...presets.map((preset) => ({
115
+ value: `var:preset|text-shadow|${preset.slug}`,
116
+ label: preset.name
117
+ }))
118
+ ];
119
+ const activeSlug = getTextShadowPresetSlug(textShadow);
120
+ const activeValue = activeSlug ? `var:preset|text-shadow|${activeSlug}` : textShadow ?? "";
121
+ const previewValue = activeSlug ? presets.find((preset) => preset.slug === activeSlug)?.textShadow : textShadow;
122
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
123
+ import_ui.Stack,
124
+ {
125
+ className: "block-editor-global-styles__text-shadow",
126
+ direction: "column",
127
+ gap: "sm",
128
+ children: [
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Text, { variant: "heading-sm", render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", {}), children: (0, import_i18n.__)("Text shadow") }),
130
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
131
+ "div",
132
+ {
133
+ className: "block-editor-global-styles__text-shadow-preview",
134
+ style: { textShadow: previewValue },
135
+ children: (0, import_i18n.__)("Code is poetry")
136
+ }
137
+ ),
138
+ presets.length >= PRESETS_SELECT_THRESHOLD ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
139
+ import_components.SelectControl,
140
+ {
141
+ hideLabelFromVision: true,
142
+ label: (0, import_i18n.__)("Text shadow preset"),
143
+ value: activeValue,
144
+ options: [
145
+ { value: "", label: (0, import_i18n.__)("Default") },
146
+ ...choices
147
+ ],
148
+ onChange
149
+ }
150
+ ) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
151
+ import_components.Composite,
152
+ {
153
+ role: "listbox",
154
+ "aria-label": (0, import_i18n.__)("Text shadow presets"),
155
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Stack, { direction: "column" }),
156
+ children: choices.map(({ value, label }) => {
157
+ const isActive = value === activeValue;
158
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
159
+ import_components.Composite.Item,
160
+ {
161
+ role: "option",
162
+ "aria-selected": isActive,
163
+ className: (0, import_clsx.default)(
164
+ "block-editor-global-styles__text-shadow-list-item",
165
+ { "is-active": isActive }
166
+ ),
167
+ onClick: () => onChange(value),
168
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Button, { __next40pxDefaultSize: true }),
169
+ children: [
170
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: label }),
171
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: import_icons.check })
172
+ ]
173
+ },
174
+ value
175
+ );
176
+ })
177
+ }
178
+ ),
179
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ui.Stack, { direction: "row", justify: "flex-end", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
180
+ import_components.Button,
181
+ {
182
+ __next40pxDefaultSize: true,
183
+ variant: "tertiary",
184
+ onClick: () => onChange(void 0),
185
+ disabled: !textShadow,
186
+ accessibleWhenDisabled: true,
187
+ children: (0, import_i18n.__)("Clear")
188
+ }
189
+ ) })
190
+ ]
191
+ }
192
+ );
193
+ }
194
+ function TextShadowToggle({
195
+ textShadow,
196
+ onChange,
197
+ onToggle,
198
+ isOpen
199
+ }) {
200
+ const buttonRef = (0, import_element.useRef)(void 0);
201
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
202
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
203
+ import_components.Button,
204
+ {
205
+ __next40pxDefaultSize: true,
206
+ onClick: onToggle,
207
+ className: (0, import_clsx.default)(
208
+ "block-editor-global-styles__text-shadow-dropdown-toggle",
209
+ { "is-open": isOpen }
210
+ ),
211
+ "aria-expanded": isOpen,
212
+ ref: buttonRef,
213
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
214
+ import_ui.Stack,
215
+ {
216
+ direction: "row",
217
+ justify: "flex-start",
218
+ align: "center",
219
+ gap: "sm",
220
+ children: [
221
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.Icon, { icon: import_icons.shadow, size: 24 }),
222
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: (0, import_i18n.__)("Text shadow") })
223
+ ]
224
+ }
225
+ )
226
+ }
227
+ ),
228
+ !!textShadow && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
229
+ import_components.Button,
230
+ {
231
+ __next40pxDefaultSize: true,
232
+ size: "small",
233
+ icon: import_icons.reset,
234
+ onClick: () => {
235
+ if (isOpen) {
236
+ onToggle();
237
+ }
238
+ onChange(void 0);
239
+ buttonRef.current?.focus();
240
+ },
241
+ className: (0, import_clsx.default)(
242
+ "block-editor-global-styles__text-shadow-remove-button",
243
+ { "is-open": isOpen }
244
+ ),
245
+ label: (0, import_i18n.__)("Remove text shadow")
246
+ }
247
+ )
248
+ ] });
249
+ }
250
+ // Annotate the CommonJS export names for ESM import in node:
251
+ 0 && (module.exports = {
252
+ TextShadowPopover
253
+ });
254
+ //# sourceMappingURL=text-shadow-panel.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/global-styles/text-shadow-panel.tsx"],
4
+ "sourcesContent": ["import { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tComposite,\n\tDropdown,\n\tSelectControl as WCSelectControl,\n} from '@wordpress/components';\nimport { Stack, Text } from '@wordpress/ui';\nimport { useRef, useMemo } from '@wordpress/element';\nimport { shadow as textShadowIcon, Icon, check, reset } from '@wordpress/icons';\nimport type { TextShadowPreset } from '@wordpress/global-styles-engine';\nimport clsx from 'clsx';\nimport { useSettings } from '../use-settings';\n\ntype TextShadowValue = string | undefined;\n\ninterface TextShadowProps {\n\ttextShadow: TextShadowValue;\n\tonChange: ( textShadow: TextShadowValue ) => void;\n}\n\ninterface TextShadowToggleProps extends TextShadowProps {\n\tonToggle: () => void;\n\tisOpen: boolean;\n}\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n */\nconst EMPTY_ARRAY: TextShadowPreset[] = [];\n\n// Above this number of presets, the list is rendered as a compact dropdown\n// rather than a long list of options.\nconst PRESETS_SELECT_THRESHOLD = 7;\n\n/**\n * Extracts the preset slug from a raw text shadow value.\n *\n * @param rawValue The stored text shadow value.\n * @return The preset slug, or undefined for custom values.\n */\nfunction getTextShadowPresetSlug( rawValue: TextShadowValue ) {\n\tif ( ! rawValue || typeof rawValue !== 'string' ) {\n\t\treturn undefined;\n\t}\n\n\t// Block supports use the `var:preset|text-shadow|slug` format.\n\tif ( rawValue.startsWith( 'var:preset|text-shadow|' ) ) {\n\t\treturn rawValue.replace( 'var:preset|text-shadow|', '' );\n\t}\n\n\t// Global styles data uses the `var(--wp--preset--text-shadow--slug)` format.\n\tconst cssVarMatch = rawValue.match(\n\t\t/^var\\(--wp--preset--text-shadow--([^)]+)\\)$/\n\t);\n\tif ( cssVarMatch ) {\n\t\treturn cssVarMatch[ 1 ];\n\t}\n\n\treturn undefined;\n}\n\nexport function TextShadowPopover( { textShadow, onChange }: TextShadowProps ) {\n\tconst popoverProps = {\n\t\tplacement: 'left-start' as const,\n\t\toffset: 36,\n\t\tshift: true,\n\t\tclassName: 'block-editor-global-styles__text-shadow-popover',\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ popoverProps }\n\t\t\tclassName=\"block-editor-global-styles__text-shadow-dropdown\"\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => (\n\t\t\t\t<TextShadowToggle\n\t\t\t\t\ttextShadow={ textShadow }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<TextShadowControl\n\t\t\t\t\ttextShadow={ textShadow }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction TextShadowControl( { textShadow, onChange }: TextShadowProps ) {\n\tconst [\n\t\tdefaultPresetsEnabled,\n\t\tdefaultPresets,\n\t\tthemePresets,\n\t\tcustomPresets,\n\t] = useSettings(\n\t\t'typography.defaultTextShadowPresets',\n\t\t'typography.textShadowPresets.default',\n\t\t'typography.textShadowPresets.theme',\n\t\t'typography.textShadowPresets.custom'\n\t) as [\n\t\tboolean | undefined,\n\t\tTextShadowPreset[] | undefined,\n\t\tTextShadowPreset[] | undefined,\n\t\tTextShadowPreset[] | undefined,\n\t];\n\n\tconst presets = useMemo(\n\t\t() => [\n\t\t\t...( ( defaultPresetsEnabled && defaultPresets ) || EMPTY_ARRAY ),\n\t\t\t...( themePresets || EMPTY_ARRAY ),\n\t\t\t...( customPresets || EMPTY_ARRAY ),\n\t\t],\n\t\t[ defaultPresetsEnabled, defaultPresets, themePresets, customPresets ]\n\t);\n\n\tconst choices = [\n\t\t{ value: 'none', label: __( 'None' ) },\n\t\t...presets.map( ( preset ) => ( {\n\t\t\tvalue: `var:preset|text-shadow|${ preset.slug }`,\n\t\t\tlabel: preset.name,\n\t\t} ) ),\n\t];\n\n\tconst activeSlug = getTextShadowPresetSlug( textShadow );\n\tconst activeValue = activeSlug\n\t\t? `var:preset|text-shadow|${ activeSlug }`\n\t\t: ( textShadow ?? '' );\n\tconst previewValue = activeSlug\n\t\t? presets.find( ( preset ) => preset.slug === activeSlug )?.textShadow\n\t\t: textShadow;\n\n\treturn (\n\t\t<Stack\n\t\t\tclassName=\"block-editor-global-styles__text-shadow\"\n\t\t\tdirection=\"column\"\n\t\t\tgap=\"sm\"\n\t\t>\n\t\t\t<Text variant=\"heading-sm\" render={ <h2 /> }>\n\t\t\t\t{ __( 'Text shadow' ) }\n\t\t\t</Text>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-global-styles__text-shadow-preview\"\n\t\t\t\tstyle={ { textShadow: previewValue } }\n\t\t\t>\n\t\t\t\t{ __( 'Code is poetry' ) }\n\t\t\t</div>\n\t\t\t{ presets.length >= PRESETS_SELECT_THRESHOLD ? (\n\t\t\t\t<WCSelectControl\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\tlabel={ __( 'Text shadow preset' ) }\n\t\t\t\t\tvalue={ activeValue }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ value: '', label: __( 'Default' ) },\n\t\t\t\t\t\t...choices,\n\t\t\t\t\t] }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<Composite\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-label={ __( 'Text shadow presets' ) }\n\t\t\t\t\trender={ <Stack direction=\"column\" /> }\n\t\t\t\t>\n\t\t\t\t\t{ choices.map( ( { value, label } ) => {\n\t\t\t\t\t\tconst isActive = value === activeValue;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\taria-selected={ isActive }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'block-editor-global-styles__text-shadow-list-item',\n\t\t\t\t\t\t\t\t\t{ 'is-active': isActive }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => onChange( value ) }\n\t\t\t\t\t\t\t\trender={ <Button __next40pxDefaultSize /> }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span>{ label }</span>\n\t\t\t\t\t\t\t\t<Icon icon={ check } />\n\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</Composite>\n\t\t\t) }\n\t\t\t<Stack direction=\"row\" justify=\"flex-end\">\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => onChange( undefined ) }\n\t\t\t\t\tdisabled={ ! textShadow }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t</Button>\n\t\t\t</Stack>\n\t\t</Stack>\n\t);\n}\n\nfunction TextShadowToggle( {\n\ttextShadow,\n\tonChange,\n\tonToggle,\n\tisOpen,\n}: TextShadowToggleProps ) {\n\tconst buttonRef = useRef< HTMLButtonElement >( undefined );\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tonClick={ onToggle }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\t'block-editor-global-styles__text-shadow-dropdown-toggle',\n\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t) }\n\t\t\t\taria-expanded={ isOpen }\n\t\t\t\tref={ buttonRef }\n\t\t\t>\n\t\t\t\t<Stack\n\t\t\t\t\tdirection=\"row\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tgap=\"sm\"\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={ textShadowIcon } size={ 24 } />\n\t\t\t\t\t<span>{ __( 'Text shadow' ) }</span>\n\t\t\t\t</Stack>\n\t\t\t</Button>\n\t\t\t{ !! textShadow && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\ticon={ reset }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tif ( isOpen ) {\n\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange( undefined );\n\t\t\t\t\t\t// Return focus to parent button.\n\t\t\t\t\t\tbuttonRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t'block-editor-global-styles__text-shadow-remove-button',\n\t\t\t\t\t\t{ 'is-open': isOpen }\n\t\t\t\t\t) }\n\t\t\t\t\tlabel={ __( 'Remove text shadow' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["WCSelectControl", "clsx", "textShadowIcon"]
7
+ }
@@ -47,6 +47,7 @@ var import_text_transform_control = __toESM(require("../text-transform-control/i
47
47
  var import_text_decoration_control = __toESM(require("../text-decoration-control/index.cjs"));
48
48
  var import_text_indent_control = __toESM(require("../text-indent-control/index.cjs"));
49
49
  var import_writing_mode_control = __toESM(require("../writing-mode-control/index.cjs"));
50
+ var import_text_shadow_panel = require("./text-shadow-panel.cjs");
50
51
  var import_color_gradient_dropdown_item = __toESM(require("./color-gradient-dropdown-item.cjs"));
51
52
  var import_color_panel = require("./color-panel.cjs");
52
53
  var import_hooks = require("./hooks.cjs");
@@ -80,7 +81,8 @@ function useHasTypographyPanel(settings) {
80
81
  const hasTextColumns = useHasTextColumnsControl(settings);
81
82
  const hasFontSize = useHasFontSizeControl(settings);
82
83
  const hasTextColor = (0, import_color_panel.useHasTextPanel)(settings);
83
- return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextAlign || hasTextTransform || hasFontSize || hasTextDecoration || hasTextIndent || hasWritingMode || hasTextColumns || hasTextColor;
84
+ const hasTextShadow = useHasTextShadowControl(settings);
85
+ return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextAlign || hasTextTransform || hasFontSize || hasTextDecoration || hasTextIndent || hasWritingMode || hasTextColumns || hasTextColor || hasTextShadow;
84
86
  }
85
87
  function useHasFontSizeControl(settings) {
86
88
  return settings?.typography?.defaultFontSizes !== false && settings?.typography?.fontSizes?.default?.length || settings?.typography?.fontSizes?.theme?.length || settings?.typography?.fontSizes?.custom?.length || settings?.typography?.customFontSize;
@@ -126,6 +128,9 @@ function useHasTextColumnsControl(settings) {
126
128
  function useHasTextIndentControl(settings) {
127
129
  return settings?.typography?.textIndent;
128
130
  }
131
+ function useHasTextShadowControl(settings) {
132
+ return settings?.typography?.textShadow;
133
+ }
129
134
  function getMergedFontSizes(settings) {
130
135
  const fontSizes = settings?.typography?.fontSizes;
131
136
  const defaultFontSizesEnabled = !!settings?.typography?.defaultFontSizes;
@@ -171,7 +176,8 @@ var DEFAULT_CONTROLS = {
171
176
  textDecoration: true,
172
177
  textIndent: true,
173
178
  writingMode: true,
174
- textColumns: true
179
+ textColumns: true,
180
+ textShadow: true
175
181
  };
176
182
  var EMPTY_VALUES = [void 0, null, ""];
177
183
  function hasValue(value) {
@@ -193,7 +199,7 @@ function TypographyPanel({
193
199
  panelId,
194
200
  defaultControls = DEFAULT_CONTROLS,
195
201
  isGlobalStyles = false,
196
- showInheritanceLabelIndicators = (0, import_inheritance.isGlobalStylesInheritanceEnabled)(),
202
+ showInheritanceLabelIndicators = (0, import_inheritance.isGlobalStylesInheritanceIndicatorUIEnabled)(),
197
203
  contrastWarning
198
204
  }) {
199
205
  const { colors, allColors, areCustomSolidsEnabled, decodeValue } = (0, import_hooks.useColorGradientSettings)(settings);
@@ -213,8 +219,7 @@ function TypographyPanel({
213
219
  newSlug
214
220
  );
215
221
  let changedObject = (0, import_object.setImmutably)(value, ["color", "text"], encoded);
216
- const syncLinkColor = (0, import_inheritance.isGlobalStylesInheritanceEnabled)() ? shouldSyncLinkColor(value, inheritedValue) : inheritedValue?.color?.text === inheritedValue?.elements?.link?.color?.text;
217
- if (syncLinkColor) {
222
+ if (shouldSyncLinkColor(value, inheritedValue)) {
218
223
  changedObject = (0, import_object.setImmutably)(
219
224
  changedObject,
220
225
  ["elements", "link", "color", "text"],
@@ -567,6 +572,21 @@ function TypographyPanel({
567
572
  };
568
573
  const hasTextAlign = () => hasValue(value?.typography?.textAlign);
569
574
  const resetTextAlign = () => setTextAlign(void 0);
575
+ const hasTextShadowControl = useHasTextShadowControl(settings);
576
+ const inheritedTextShadow = inheritedValue?.typography?.textShadow;
577
+ const textShadow = value?.typography?.textShadow ?? inheritedTextShadow;
578
+ const isTextShadowPlaceholder = !hasValue(value?.typography?.textShadow) && hasValue(inheritedTextShadow);
579
+ const setTextShadow = (newValue) => {
580
+ onChange(
581
+ (0, import_object.setImmutably)(
582
+ value,
583
+ ["typography", "textShadow"],
584
+ newValue || void 0
585
+ )
586
+ );
587
+ };
588
+ const hasTextShadow = () => hasValue(value?.typography?.textShadow);
589
+ const resetTextShadow = () => setTextShadow(void 0);
570
590
  const resetAllFilter = (0, import_element.useCallback)(
571
591
  (previousValue) => {
572
592
  if (!hasTextColorEnabled) {
@@ -893,6 +913,27 @@ function TypographyPanel({
893
913
  )
894
914
  }
895
915
  ),
916
+ hasTextShadowControl && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
917
+ import_inheritance.InheritanceToolsPanelItem,
918
+ {
919
+ ...inheritanceProps(
920
+ isTextShadowPlaceholder,
921
+ hasTextShadow() && inheritedTextShadow !== void 0
922
+ ),
923
+ label: (0, import_i18n.__)("Text shadow"),
924
+ hasValue: hasTextShadow,
925
+ onDeselect: resetTextShadow,
926
+ isShownByDefault: defaultControls.textShadow,
927
+ panelId,
928
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
929
+ import_text_shadow_panel.TextShadowPopover,
930
+ {
931
+ textShadow,
932
+ onChange: setTextShadow
933
+ }
934
+ )
935
+ }
936
+ ),
896
937
  hasTextAlignmentControl && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
897
938
  import_inheritance.InheritanceToolsPanelItem,
898
939
  {