@wordpress/components 37.0.1-next.v.202607070741.0 → 38.0.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 (786) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +65 -1
  3. package/build/angle-picker-control/index.cjs +0 -1
  4. package/build/angle-picker-control/index.cjs.map +2 -2
  5. package/build/autocomplete/index.cjs +6 -4
  6. package/build/autocomplete/index.cjs.map +3 -3
  7. package/build/border-box-control/styles.cjs +9 -9
  8. package/build/border-box-control/styles.cjs.map +2 -2
  9. package/build/color-palette/styles.cjs +1 -1
  10. package/build/color-palette/styles.cjs.map +2 -2
  11. package/build/color-picker/component.cjs +14 -5
  12. package/build/color-picker/component.cjs.map +2 -2
  13. package/build/color-picker/hex-input.cjs +0 -1
  14. package/build/color-picker/hex-input.cjs.map +2 -2
  15. package/build/color-picker/input-with-slider.cjs +0 -1
  16. package/build/color-picker/input-with-slider.cjs.map +2 -2
  17. package/build/color-picker/picker.cjs +95 -23
  18. package/build/color-picker/picker.cjs.map +2 -2
  19. package/build/confirm-dialog/component.cjs +86 -4
  20. package/build/confirm-dialog/component.cjs.map +3 -3
  21. package/build/content-editable-control/docs-manifest.json +5 -0
  22. package/build/content-editable-control/index.cjs +181 -0
  23. package/build/content-editable-control/index.cjs.map +7 -0
  24. package/build/{theme → content-editable-control}/types.cjs +1 -1
  25. package/build/{theme → content-editable-control}/types.cjs.map +1 -1
  26. package/build/custom-select-control/index.cjs +1 -2
  27. package/build/custom-select-control/index.cjs.map +2 -2
  28. package/build/custom-select-control-v2/custom-select.cjs +0 -1
  29. package/build/custom-select-control-v2/custom-select.cjs.map +2 -2
  30. package/build/date-time/date-picker/styles.cjs +8 -8
  31. package/build/date-time/date-picker/styles.cjs.map +2 -2
  32. package/build/date-time/time-picker/index.cjs +0 -2
  33. package/build/date-time/time-picker/index.cjs.map +2 -2
  34. package/build/date-time/time-picker/time-input/index.cjs +0 -2
  35. package/build/date-time/time-picker/time-input/index.cjs.map +2 -2
  36. package/build/disabled/index.cjs +87 -4
  37. package/build/disabled/index.cjs.map +4 -4
  38. package/build/form-token-field/index.cjs +87 -2
  39. package/build/form-token-field/index.cjs.map +3 -3
  40. package/build/gradient-picker/index.cjs +26 -20
  41. package/build/gradient-picker/index.cjs.map +2 -2
  42. package/build/heading/hook.cjs +1 -1
  43. package/build/heading/hook.cjs.map +1 -1
  44. package/build/input-control/index.cjs +4 -14
  45. package/build/input-control/index.cjs.map +2 -2
  46. package/build/input-control/input-base.cjs +2 -6
  47. package/build/input-control/input-base.cjs.map +2 -2
  48. package/build/input-control/styles/input-control-styles.cjs +25 -39
  49. package/build/input-control/styles/input-control-styles.cjs.map +2 -2
  50. package/build/menu/group-label.cjs +2 -1
  51. package/build/menu/group-label.cjs.map +2 -2
  52. package/build/number-control/index.cjs +1 -11
  53. package/build/number-control/index.cjs.map +2 -2
  54. package/build/palette-edit/styles.cjs +9 -9
  55. package/build/palette-edit/styles.cjs.map +2 -2
  56. package/build/private-apis.cjs +3 -2
  57. package/build/private-apis.cjs.map +3 -3
  58. package/build/range-control/index.cjs +0 -2
  59. package/build/range-control/index.cjs.map +2 -2
  60. package/build/sandbox/index.cjs +96 -73
  61. package/build/sandbox/index.cjs.map +3 -3
  62. package/build/search-control/index.cjs +93 -11
  63. package/build/search-control/index.cjs.map +4 -4
  64. package/build/select-control/index.cjs +0 -2
  65. package/build/select-control/index.cjs.map +2 -2
  66. package/build/select-control/styles/select-control-styles.cjs +9 -16
  67. package/build/select-control/styles/select-control-styles.cjs.map +2 -2
  68. package/build/slot-fill/fill.cjs.map +2 -2
  69. package/build/spacer/hook.cjs +150 -14
  70. package/build/spacer/hook.cjs.map +4 -4
  71. package/build/toggle-group-control/toggle-group-control/component.cjs +91 -8
  72. package/build/toggle-group-control/toggle-group-control/component.cjs.map +4 -4
  73. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs +98 -17
  74. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs.map +4 -4
  75. package/build/tools-panel/tools-panel/component.cjs +6 -0
  76. package/build/tools-panel/tools-panel/component.cjs.map +2 -2
  77. package/build/tools-panel/tools-panel/hook.cjs +87 -11
  78. package/build/tools-panel/tools-panel/hook.cjs.map +4 -4
  79. package/build/tools-panel/tools-panel-header/component.cjs +87 -2
  80. package/build/tools-panel/tools-panel-header/component.cjs.map +3 -3
  81. package/build/tools-panel/tools-panel-header/hook.cjs +90 -20
  82. package/build/tools-panel/tools-panel-header/hook.cjs.map +4 -4
  83. package/build/tools-panel/tools-panel-item/hook.cjs +88 -9
  84. package/build/tools-panel/tools-panel-item/hook.cjs.map +4 -4
  85. package/build/unit-control/index.cjs +0 -1
  86. package/build/unit-control/index.cjs.map +2 -2
  87. package/build/utils/base-label.cjs +1 -1
  88. package/build/utils/base-label.cjs.map +2 -2
  89. package/build/utils/config-values.cjs +1 -3
  90. package/build/utils/config-values.cjs.map +2 -2
  91. package/build/utils/font-values.cjs +1 -1
  92. package/build/utils/font-values.cjs.map +1 -1
  93. package/build/validated-form-controls/components/content-editable-control.cjs +84 -0
  94. package/build/validated-form-controls/components/content-editable-control.cjs.map +7 -0
  95. package/build/validated-form-controls/components/index.cjs +2 -0
  96. package/build/validated-form-controls/components/index.cjs.map +2 -2
  97. package/build/validated-form-controls/components/input-control.cjs +0 -1
  98. package/build/validated-form-controls/components/input-control.cjs.map +2 -2
  99. package/build/validated-form-controls/components/number-control.cjs +0 -1
  100. package/build/validated-form-controls/components/number-control.cjs.map +2 -2
  101. package/build/validated-form-controls/control-with-error.cjs +4 -4
  102. package/build/validated-form-controls/control-with-error.cjs.map +2 -2
  103. package/build-module/angle-picker-control/index.mjs +0 -1
  104. package/build-module/angle-picker-control/index.mjs.map +2 -2
  105. package/build-module/autocomplete/index.mjs +8 -6
  106. package/build-module/autocomplete/index.mjs.map +2 -2
  107. package/build-module/border-box-control/styles.mjs +9 -9
  108. package/build-module/border-box-control/styles.mjs.map +2 -2
  109. package/build-module/color-palette/styles.mjs +1 -1
  110. package/build-module/color-palette/styles.mjs.map +2 -2
  111. package/build-module/color-picker/component.mjs +14 -5
  112. package/build-module/color-picker/component.mjs.map +2 -2
  113. package/build-module/color-picker/hex-input.mjs +0 -1
  114. package/build-module/color-picker/hex-input.mjs.map +2 -2
  115. package/build-module/color-picker/input-with-slider.mjs +0 -1
  116. package/build-module/color-picker/input-with-slider.mjs.map +2 -2
  117. package/build-module/color-picker/picker.mjs +96 -24
  118. package/build-module/color-picker/picker.mjs.map +2 -2
  119. package/build-module/confirm-dialog/component.mjs +86 -4
  120. package/build-module/confirm-dialog/component.mjs.map +3 -3
  121. package/build-module/content-editable-control/docs-manifest.json +5 -0
  122. package/build-module/content-editable-control/index.mjs +146 -0
  123. package/build-module/content-editable-control/index.mjs.map +7 -0
  124. package/build-module/custom-select-control/index.mjs +1 -2
  125. package/build-module/custom-select-control/index.mjs.map +2 -2
  126. package/build-module/custom-select-control-v2/custom-select.mjs +0 -1
  127. package/build-module/custom-select-control-v2/custom-select.mjs.map +2 -2
  128. package/build-module/date-time/date-picker/styles.mjs +8 -8
  129. package/build-module/date-time/date-picker/styles.mjs.map +2 -2
  130. package/build-module/date-time/time-picker/index.mjs +0 -2
  131. package/build-module/date-time/time-picker/index.mjs.map +2 -2
  132. package/build-module/date-time/time-picker/time-input/index.mjs +0 -2
  133. package/build-module/date-time/time-picker/time-input/index.mjs.map +2 -2
  134. package/build-module/disabled/index.mjs +87 -4
  135. package/build-module/disabled/index.mjs.map +3 -3
  136. package/build-module/form-token-field/index.mjs +88 -3
  137. package/build-module/form-token-field/index.mjs.map +3 -3
  138. package/build-module/gradient-picker/index.mjs +26 -20
  139. package/build-module/gradient-picker/index.mjs.map +2 -2
  140. package/build-module/heading/hook.mjs +1 -1
  141. package/build-module/heading/hook.mjs.map +1 -1
  142. package/build-module/input-control/index.mjs +4 -14
  143. package/build-module/input-control/index.mjs.map +2 -2
  144. package/build-module/input-control/input-base.mjs +2 -6
  145. package/build-module/input-control/input-base.mjs.map +2 -2
  146. package/build-module/input-control/styles/input-control-styles.mjs +25 -39
  147. package/build-module/input-control/styles/input-control-styles.mjs.map +2 -2
  148. package/build-module/menu/group-label.mjs +2 -1
  149. package/build-module/menu/group-label.mjs.map +2 -2
  150. package/build-module/number-control/index.mjs +1 -11
  151. package/build-module/number-control/index.mjs.map +2 -2
  152. package/build-module/palette-edit/styles.mjs +9 -9
  153. package/build-module/palette-edit/styles.mjs.map +2 -2
  154. package/build-module/private-apis.mjs +4 -3
  155. package/build-module/private-apis.mjs.map +2 -2
  156. package/build-module/range-control/index.mjs +0 -2
  157. package/build-module/range-control/index.mjs.map +2 -2
  158. package/build-module/sandbox/index.mjs +84 -72
  159. package/build-module/sandbox/index.mjs.map +2 -2
  160. package/build-module/search-control/index.mjs +93 -11
  161. package/build-module/search-control/index.mjs.map +3 -3
  162. package/build-module/select-control/index.mjs +0 -2
  163. package/build-module/select-control/index.mjs.map +2 -2
  164. package/build-module/select-control/styles/select-control-styles.mjs +9 -16
  165. package/build-module/select-control/styles/select-control-styles.mjs.map +2 -2
  166. package/build-module/slot-fill/fill.mjs.map +2 -2
  167. package/build-module/spacer/hook.mjs +140 -14
  168. package/build-module/spacer/hook.mjs.map +3 -3
  169. package/build-module/toggle-group-control/toggle-group-control/component.mjs +92 -9
  170. package/build-module/toggle-group-control/toggle-group-control/component.mjs.map +3 -3
  171. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs +99 -18
  172. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs.map +3 -3
  173. package/build-module/tools-panel/tools-panel/component.mjs +6 -0
  174. package/build-module/tools-panel/tools-panel/component.mjs.map +2 -2
  175. package/build-module/tools-panel/tools-panel/hook.mjs +87 -11
  176. package/build-module/tools-panel/tools-panel/hook.mjs.map +3 -3
  177. package/build-module/tools-panel/tools-panel-header/component.mjs +87 -2
  178. package/build-module/tools-panel/tools-panel-header/component.mjs.map +3 -3
  179. package/build-module/tools-panel/tools-panel-header/hook.mjs +90 -20
  180. package/build-module/tools-panel/tools-panel-header/hook.mjs.map +3 -3
  181. package/build-module/tools-panel/tools-panel-item/hook.mjs +89 -10
  182. package/build-module/tools-panel/tools-panel-item/hook.mjs.map +3 -3
  183. package/build-module/unit-control/index.mjs +0 -1
  184. package/build-module/unit-control/index.mjs.map +2 -2
  185. package/build-module/utils/base-label.mjs +1 -1
  186. package/build-module/utils/base-label.mjs.map +2 -2
  187. package/build-module/utils/config-values.mjs +1 -3
  188. package/build-module/utils/config-values.mjs.map +2 -2
  189. package/build-module/utils/font-values.mjs +1 -1
  190. package/build-module/utils/font-values.mjs.map +1 -1
  191. package/build-module/validated-form-controls/components/content-editable-control.mjs +49 -0
  192. package/build-module/validated-form-controls/components/content-editable-control.mjs.map +7 -0
  193. package/build-module/validated-form-controls/components/index.mjs +1 -0
  194. package/build-module/validated-form-controls/components/index.mjs.map +2 -2
  195. package/build-module/validated-form-controls/components/input-control.mjs +0 -1
  196. package/build-module/validated-form-controls/components/input-control.mjs.map +2 -2
  197. package/build-module/validated-form-controls/components/number-control.mjs +0 -1
  198. package/build-module/validated-form-controls/components/number-control.mjs.map +2 -2
  199. package/build-module/validated-form-controls/control-with-error.mjs +4 -4
  200. package/build-module/validated-form-controls/control-with-error.mjs.map +2 -2
  201. package/build-style/style-rtl.css +70 -81
  202. package/build-style/style.css +70 -81
  203. package/build-types/angle-picker-control/index.d.ts.map +1 -1
  204. package/build-types/autocomplete/autocompleter-ui.d.ts +1 -1
  205. package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
  206. package/build-types/autocomplete/index.d.ts +8 -4
  207. package/build-types/autocomplete/index.d.ts.map +1 -1
  208. package/build-types/border-box-control/border-box-control/component.d.ts +1 -3
  209. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  210. package/build-types/border-box-control/stories/index.story.d.ts +1 -3
  211. package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
  212. package/build-types/border-box-control/styles.d.ts.map +1 -1
  213. package/build-types/border-box-control/types.d.ts +1 -15
  214. package/build-types/border-box-control/types.d.ts.map +1 -1
  215. package/build-types/box-control/index.d.ts +1 -1
  216. package/build-types/box-control/index.d.ts.map +1 -1
  217. package/build-types/box-control/input-control.d.ts +3 -0
  218. package/build-types/box-control/input-control.d.ts.map +1 -0
  219. package/build-types/box-control/styles/box-control-styles.d.ts +4 -8
  220. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
  221. package/build-types/box-control/types.d.ts +1 -8
  222. package/build-types/box-control/types.d.ts.map +1 -1
  223. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  224. package/build-types/calendar/date-range-calendar/index.d.ts +1 -1
  225. package/build-types/calendar/date-range-calendar/index.d.ts.map +1 -1
  226. package/build-types/calendar/utils/use-localization-props.d.ts +6 -2
  227. package/build-types/calendar/utils/use-localization-props.d.ts.map +1 -1
  228. package/build-types/card/context.d.ts +3 -0
  229. package/build-types/card/context.d.ts.map +1 -0
  230. package/build-types/card/styles.d.ts +3 -3
  231. package/build-types/card/styles.d.ts.map +1 -1
  232. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts +1 -1
  233. package/build-types/circular-option-picker/circular-option-picker-actions.d.ts.map +1 -1
  234. package/build-types/circular-option-picker/circular-option-picker.d.ts +8 -13
  235. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  236. package/build-types/color-picker/component.d.ts.map +1 -1
  237. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  238. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  239. package/build-types/color-picker/picker.d.ts +17 -1
  240. package/build-types/color-picker/picker.d.ts.map +1 -1
  241. package/build-types/color-picker/styles.d.ts +3 -6
  242. package/build-types/color-picker/styles.d.ts.map +1 -1
  243. package/build-types/color-picker/types.d.ts +2 -0
  244. package/build-types/color-picker/types.d.ts.map +1 -1
  245. package/build-types/composite/legacy/stories/utils.d.ts.map +1 -1
  246. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  247. package/build-types/content-editable-control/index.d.ts +31 -0
  248. package/build-types/content-editable-control/index.d.ts.map +1 -0
  249. package/build-types/content-editable-control/stories/index.story.d.ts +13 -0
  250. package/build-types/content-editable-control/stories/index.story.d.ts.map +1 -0
  251. package/build-types/content-editable-control/test/index.d.ts +2 -0
  252. package/build-types/content-editable-control/test/index.d.ts.map +1 -0
  253. package/build-types/content-editable-control/types.d.ts +32 -0
  254. package/build-types/content-editable-control/types.d.ts.map +1 -0
  255. package/build-types/context/context-system-provider.d.ts +21 -2
  256. package/build-types/context/context-system-provider.d.ts.map +1 -1
  257. package/build-types/context/wordpress-component.d.ts +2 -1
  258. package/build-types/context/wordpress-component.d.ts.map +1 -1
  259. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts +3 -2
  260. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
  261. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts +1 -1
  262. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  263. package/build-types/custom-gradient-picker/index.d.ts +1 -1
  264. package/build-types/custom-gradient-picker/index.d.ts.map +1 -1
  265. package/build-types/custom-gradient-picker/serializer.d.ts +3 -3
  266. package/build-types/custom-gradient-picker/serializer.d.ts.map +1 -1
  267. package/build-types/custom-select-control/index.d.ts.map +1 -1
  268. package/build-types/custom-select-control/types.d.ts +1 -8
  269. package/build-types/custom-select-control/types.d.ts.map +1 -1
  270. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  271. package/build-types/custom-select-control-v2/index.d.ts +2 -1
  272. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  273. package/build-types/custom-select-control-v2/item.d.ts.map +1 -1
  274. package/build-types/date-time/date/index.d.ts +23 -0
  275. package/build-types/date-time/date/index.d.ts.map +1 -0
  276. package/build-types/date-time/date/styles.d.ts +45 -0
  277. package/build-types/date-time/date/styles.d.ts.map +1 -0
  278. package/build-types/date-time/date/test/index.d.ts +2 -0
  279. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  280. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  281. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  282. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  283. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  284. package/build-types/date-time/date-picker/index.d.ts +1 -1
  285. package/build-types/date-time/date-picker/index.d.ts.map +1 -1
  286. package/build-types/date-time/time/index.d.ts +27 -0
  287. package/build-types/date-time/time/index.d.ts.map +1 -0
  288. package/build-types/date-time/time/styles.d.ts +93 -0
  289. package/build-types/date-time/time/styles.d.ts.map +1 -0
  290. package/build-types/date-time/time/test/index.d.ts +2 -0
  291. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  292. package/build-types/date-time/time/time-input/index.d.ts +4 -0
  293. package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
  294. package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
  295. package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
  296. package/build-types/date-time/time/timezone.d.ts +7 -0
  297. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  298. package/build-types/date-time/time-picker/index.d.ts +3 -2
  299. package/build-types/date-time/time-picker/index.d.ts.map +1 -1
  300. package/build-types/date-time/time-picker/styles.d.ts +4 -8
  301. package/build-types/date-time/time-picker/styles.d.ts.map +1 -1
  302. package/build-types/date-time/time-picker/time-input/index.d.ts +1 -1
  303. package/build-types/date-time/time-picker/time-input/index.d.ts.map +1 -1
  304. package/build-types/disabled/index.d.ts +4 -4
  305. package/build-types/disabled/index.d.ts.map +1 -1
  306. package/build-types/divider/styles.d.ts +10 -0
  307. package/build-types/divider/styles.d.ts.map +1 -0
  308. package/build-types/draggable/index.d.ts +1 -1
  309. package/build-types/draggable/index.d.ts.map +1 -1
  310. package/build-types/drop-zone/provider.d.ts +1 -1
  311. package/build-types/drop-zone/provider.d.ts.map +1 -1
  312. package/build-types/duotone-picker/color-list-picker/index.d.ts +1 -1
  313. package/build-types/duotone-picker/color-list-picker/index.d.ts.map +1 -1
  314. package/build-types/duotone-picker/custom-duotone-bar.d.ts +1 -1
  315. package/build-types/duotone-picker/custom-duotone-bar.d.ts.map +1 -1
  316. package/build-types/flex/styles.d.ts +17 -0
  317. package/build-types/flex/styles.d.ts.map +1 -0
  318. package/build-types/focal-point-picker/controls.d.ts +1 -1
  319. package/build-types/focal-point-picker/controls.d.ts.map +1 -1
  320. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -4
  321. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  322. package/build-types/font-size-picker/index.d.ts +12 -2
  323. package/build-types/font-size-picker/index.d.ts.map +1 -1
  324. package/build-types/font-size-picker/stories/e2e/index.story.d.ts +12 -1
  325. package/build-types/font-size-picker/stories/e2e/index.story.d.ts.map +1 -1
  326. package/build-types/font-size-picker/types.d.ts +2 -15
  327. package/build-types/font-size-picker/types.d.ts.map +1 -1
  328. package/build-types/form-token-field/index.d.ts.map +1 -1
  329. package/build-types/form-token-field/suggestions-list.d.ts +1 -1
  330. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
  331. package/build-types/form-token-field/token.d.ts +1 -1
  332. package/build-types/form-token-field/token.d.ts.map +1 -1
  333. package/build-types/gradient-picker/index.d.ts.map +1 -1
  334. package/build-types/gradient-picker/stories/index.story.d.ts +1 -0
  335. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  336. package/build-types/gradient-picker/test/index.d.ts +2 -0
  337. package/build-types/gradient-picker/test/index.d.ts.map +1 -0
  338. package/build-types/gradient-picker/types.d.ts +19 -4
  339. package/build-types/gradient-picker/types.d.ts.map +1 -1
  340. package/build-types/guide/index.d.ts +1 -1
  341. package/build-types/guide/index.d.ts.map +1 -1
  342. package/build-types/guide/page-control.d.ts +1 -1
  343. package/build-types/guide/page-control.d.ts.map +1 -1
  344. package/build-types/higher-order/with-fallback-styles/index.d.ts +3 -3
  345. package/build-types/higher-order/with-fallback-styles/index.d.ts.map +1 -1
  346. package/build-types/input-control/index.d.ts +0 -1
  347. package/build-types/input-control/index.d.ts.map +1 -1
  348. package/build-types/input-control/input-base.d.ts.map +1 -1
  349. package/build-types/input-control/stories/index.story.d.ts.map +1 -1
  350. package/build-types/input-control/styles/input-control-styles.d.ts +1 -8
  351. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  352. package/build-types/input-control/types.d.ts +15 -29
  353. package/build-types/input-control/types.d.ts.map +1 -1
  354. package/build-types/keyboard-shortcuts/index.d.ts +1 -1
  355. package/build-types/keyboard-shortcuts/index.d.ts.map +1 -1
  356. package/build-types/menu/group-label.d.ts.map +1 -1
  357. package/build-types/menu-items-choice/index.d.ts +1 -1
  358. package/build-types/menu-items-choice/index.d.ts.map +1 -1
  359. package/build-types/mobile/image/constants.d.ts +5 -0
  360. package/build-types/mobile/image/constants.d.ts.map +1 -0
  361. package/build-types/modal/stories/index.story.d.ts.map +1 -1
  362. package/build-types/navigation/back-button/index.d.ts +7 -0
  363. package/build-types/navigation/back-button/index.d.ts.map +1 -0
  364. package/build-types/navigation/constants.d.ts +3 -0
  365. package/build-types/navigation/constants.d.ts.map +1 -0
  366. package/build-types/navigation/context.d.ts +4 -0
  367. package/build-types/navigation/context.d.ts.map +1 -0
  368. package/build-types/navigation/group/context.d.ts +7 -0
  369. package/build-types/navigation/group/context.d.ts.map +1 -0
  370. package/build-types/navigation/group/index.d.ts +7 -0
  371. package/build-types/navigation/group/index.d.ts.map +1 -0
  372. package/build-types/navigation/index.d.ts +46 -0
  373. package/build-types/navigation/index.d.ts.map +1 -0
  374. package/build-types/navigation/item/base-content.d.ts +3 -0
  375. package/build-types/navigation/item/base-content.d.ts.map +1 -0
  376. package/build-types/navigation/item/base.d.ts +3 -0
  377. package/build-types/navigation/item/base.d.ts.map +1 -0
  378. package/build-types/navigation/item/index.d.ts +7 -0
  379. package/build-types/navigation/item/index.d.ts.map +1 -0
  380. package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
  381. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
  382. package/build-types/navigation/menu/context.d.ts +7 -0
  383. package/build-types/navigation/menu/context.d.ts.map +1 -0
  384. package/build-types/navigation/menu/index.d.ts +7 -0
  385. package/build-types/navigation/menu/index.d.ts.map +1 -0
  386. package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
  387. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
  388. package/build-types/navigation/menu/menu-title.d.ts +3 -0
  389. package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
  390. package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
  391. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
  392. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
  393. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
  394. package/build-types/navigation/stories/index.story.d.ts +23 -0
  395. package/build-types/navigation/stories/index.story.d.ts.map +1 -0
  396. package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
  397. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
  398. package/build-types/navigation/stories/utils/default.d.ts +10 -0
  399. package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
  400. package/build-types/navigation/stories/utils/group.d.ts +10 -0
  401. package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
  402. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
  403. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
  404. package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
  405. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
  406. package/build-types/navigation/stories/utils/search.d.ts +10 -0
  407. package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
  408. package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
  409. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
  410. package/build-types/navigation/test/index.d.ts +2 -0
  411. package/build-types/navigation/test/index.d.ts.map +1 -0
  412. package/build-types/navigation/types.d.ts +266 -0
  413. package/build-types/navigation/types.d.ts.map +1 -0
  414. package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
  415. package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
  416. package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
  417. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
  418. package/build-types/navigation/utils.d.ts +3 -0
  419. package/build-types/navigation/utils.d.ts.map +1 -0
  420. package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts +1 -1
  421. package/build-types/navigator/navigator-screen/use-screen-animate-presence.d.ts.map +1 -1
  422. package/build-types/notice/index.d.ts +1 -1
  423. package/build-types/notice/index.d.ts.map +1 -1
  424. package/build-types/notice/list.d.ts +1 -1
  425. package/build-types/notice/list.d.ts.map +1 -1
  426. package/build-types/number-control/index.d.ts +1 -2
  427. package/build-types/number-control/index.d.ts.map +1 -1
  428. package/build-types/number-control/stories/index.story.d.ts +1 -2
  429. package/build-types/number-control/stories/index.story.d.ts.map +1 -1
  430. package/build-types/number-control/types.d.ts +0 -7
  431. package/build-types/number-control/types.d.ts.map +1 -1
  432. package/build-types/palette-edit/index.d.ts +1 -1
  433. package/build-types/palette-edit/index.d.ts.map +1 -1
  434. package/build-types/private-apis.d.ts.map +1 -1
  435. package/build-types/query-controls/author-select.d.ts +1 -1
  436. package/build-types/query-controls/author-select.d.ts.map +1 -1
  437. package/build-types/range-control/index.d.ts +2 -4
  438. package/build-types/range-control/index.d.ts.map +1 -1
  439. package/build-types/range-control/styles/range-control-styles.d.ts +1 -2
  440. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  441. package/build-types/range-control/types.d.ts +2 -16
  442. package/build-types/range-control/types.d.ts.map +1 -1
  443. package/build-types/resizable-box/resize-tooltip/utils.d.ts +1 -1
  444. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  445. package/build-types/responsive-wrapper/index.d.ts +1 -1
  446. package/build-types/responsive-wrapper/index.d.ts.map +1 -1
  447. package/build-types/sandbox/index.d.ts +34 -0
  448. package/build-types/sandbox/index.d.ts.map +1 -1
  449. package/build-types/sandbox/types.d.ts +11 -0
  450. package/build-types/sandbox/types.d.ts.map +1 -1
  451. package/build-types/search-control/index.d.ts.map +1 -1
  452. package/build-types/search-control/types.d.ts +1 -1
  453. package/build-types/search-control/types.d.ts.map +1 -1
  454. package/build-types/select-control/index.d.ts.map +1 -1
  455. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  456. package/build-types/select-control/types.d.ts +9 -1
  457. package/build-types/select-control/types.d.ts.map +1 -1
  458. package/build-types/slot-fill/fill.d.ts.map +1 -1
  459. package/build-types/slot-fill/index.d.ts +1 -1
  460. package/build-types/slot-fill/index.d.ts.map +1 -1
  461. package/build-types/slot-fill/stories/index.story.d.ts +1 -6
  462. package/build-types/slot-fill/stories/index.story.d.ts.map +1 -1
  463. package/build-types/snackbar/list.d.ts +1 -1
  464. package/build-types/snackbar/list.d.ts.map +1 -1
  465. package/build-types/spacer/hook.d.ts +2 -4
  466. package/build-types/spacer/hook.d.ts.map +1 -1
  467. package/build-types/spacer/stories/index.story.d.ts +1 -6
  468. package/build-types/spacer/stories/index.story.d.ts.map +1 -1
  469. package/build-types/surface/styles.d.ts +11 -0
  470. package/build-types/surface/styles.d.ts.map +1 -0
  471. package/build-types/text/types.d.ts +4 -4
  472. package/build-types/text/types.d.ts.map +1 -1
  473. package/build-types/text/utils.d.ts +1 -1
  474. package/build-types/text/utils.d.ts.map +1 -1
  475. package/build-types/theme/styles.d.ts +10 -0
  476. package/build-types/theme/styles.d.ts.map +1 -0
  477. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +0 -1
  478. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  479. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  480. package/build-types/toggle-group-control/types.d.ts +0 -7
  481. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  482. package/build-types/tools-panel/styles.d.ts +1 -1
  483. package/build-types/tools-panel/styles.d.ts.map +1 -1
  484. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  485. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  486. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  487. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  488. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  489. package/build-types/tree-grid/roving-tab-index.d.ts +1 -1
  490. package/build-types/tree-grid/roving-tab-index.d.ts.map +1 -1
  491. package/build-types/tree-grid/stories/index.story.d.ts.map +1 -1
  492. package/build-types/tree-select/types.d.ts +1 -8
  493. package/build-types/tree-select/types.d.ts.map +1 -1
  494. package/build-types/truncate/styles.d.ts +2 -0
  495. package/build-types/truncate/styles.d.ts.map +1 -0
  496. package/build-types/unit-control/index.d.ts +2 -4
  497. package/build-types/unit-control/index.d.ts.map +1 -1
  498. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -2
  499. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  500. package/build-types/unit-control/types.d.ts +1 -15
  501. package/build-types/unit-control/types.d.ts.map +1 -1
  502. package/build-types/utils/config-values.d.ts +1 -2
  503. package/build-types/utils/hooks/use-animated-offset-rect.d.ts +1 -1
  504. package/build-types/utils/hooks/use-animated-offset-rect.d.ts.map +1 -1
  505. package/build-types/utils/hooks/use-controlled-state.d.ts +6 -0
  506. package/build-types/utils/hooks/use-controlled-state.d.ts.map +1 -1
  507. package/build-types/utils/hooks/use-controlled-value.d.ts +1 -1
  508. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  509. package/build-types/utils/rtl.d.ts.map +1 -1
  510. package/build-types/validated-form-controls/components/content-editable-control.d.ts +16 -0
  511. package/build-types/validated-form-controls/components/content-editable-control.d.ts.map +1 -0
  512. package/build-types/validated-form-controls/components/index.d.ts +1 -0
  513. package/build-types/validated-form-controls/components/index.d.ts.map +1 -1
  514. package/build-types/validated-form-controls/components/input-control.d.ts +1 -1
  515. package/build-types/validated-form-controls/components/input-control.d.ts.map +1 -1
  516. package/build-types/validated-form-controls/components/number-control.d.ts +2 -3
  517. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
  518. package/build-types/validated-form-controls/components/range-control.d.ts +2 -4
  519. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
  520. package/build-types/validated-form-controls/components/stories/content-editable-control.story.d.ts +9 -0
  521. package/build-types/validated-form-controls/components/stories/content-editable-control.story.d.ts.map +1 -0
  522. package/build-types/validated-form-controls/components/stories/overview.story.d.ts +5 -0
  523. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
  524. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +1 -2
  525. package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -1
  526. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
  527. package/build-types/validated-form-controls/test/content-editable-control.d.ts +2 -0
  528. package/build-types/validated-form-controls/test/content-editable-control.d.ts.map +1 -0
  529. package/build-types/validated-form-controls/validity-indicator.d.ts +1 -1
  530. package/build-types/validated-form-controls/validity-indicator.d.ts.map +1 -1
  531. package/build-types/visually-hidden/test/index.d.ts +2 -0
  532. package/build-types/visually-hidden/test/index.d.ts.map +1 -0
  533. package/package.json +30 -30
  534. package/src/angle-picker-control/index.tsx +0 -1
  535. package/src/autocomplete/index.tsx +20 -11
  536. package/src/autocomplete/style.scss +1 -0
  537. package/src/badge/stories/index.story.tsx +1 -1
  538. package/src/base-control/README.md +2 -2
  539. package/src/base-control/stories/index.story.tsx +1 -1
  540. package/src/border-box-control/styles.ts +6 -2
  541. package/src/border-box-control/types.ts +4 -15
  542. package/src/box-control/types.ts +4 -8
  543. package/src/button/stories/e2e/index.story.tsx +10 -2
  544. package/src/button/stories/index.story.tsx +1 -1
  545. package/src/button/style.scss +32 -27
  546. package/src/button-group/style.scss +1 -6
  547. package/src/calendar/style.scss +1 -1
  548. package/src/card/stories/index.story.tsx +1 -1
  549. package/src/card/test/__snapshots__/index.tsx.snap +1 -1
  550. package/src/checkbox-control/stories/index.story.tsx +1 -1
  551. package/src/checkbox-control/test/__snapshots__/index.tsx.snap +1 -1
  552. package/src/color-indicator/test/__snapshots__/index.tsx.snap +1 -1
  553. package/src/color-palette/styles.ts +1 -1
  554. package/src/color-picker/component.tsx +23 -19
  555. package/src/color-picker/hex-input.tsx +0 -1
  556. package/src/color-picker/input-with-slider.tsx +0 -1
  557. package/src/color-picker/picker.tsx +144 -21
  558. package/src/color-picker/test/index.tsx +502 -0
  559. package/src/color-picker/types.ts +2 -0
  560. package/src/combobox-control/style.scss +2 -2
  561. package/src/confirm-dialog/component.tsx +2 -4
  562. package/src/confirm-dialog/stories/index.story.tsx +1 -1
  563. package/src/confirm-dialog/style.module.scss +7 -0
  564. package/src/confirm-dialog/test/index.tsx +5 -0
  565. package/src/content-editable-control/README.md +88 -0
  566. package/src/content-editable-control/docs-manifest.json +5 -0
  567. package/src/content-editable-control/index.tsx +110 -0
  568. package/src/content-editable-control/stories/index.story.tsx +32 -0
  569. package/src/content-editable-control/style.module.scss +34 -0
  570. package/src/content-editable-control/test/index.tsx +176 -0
  571. package/src/content-editable-control/types.ts +35 -0
  572. package/src/context/test/__snapshots__/context-system-provider.js.snap +1 -1
  573. package/src/context/wordpress-component.ts +7 -2
  574. package/src/custom-gradient-picker/test/index.tsx +111 -1
  575. package/src/custom-select-control/index.tsx +1 -2
  576. package/src/custom-select-control/stories/index.story.tsx +1 -1
  577. package/src/custom-select-control/test/__snapshots__/index.tsx.snap +6 -0
  578. package/src/custom-select-control/test/index.tsx +23 -0
  579. package/src/custom-select-control/types.ts +1 -8
  580. package/src/custom-select-control-v2/custom-select.tsx +1 -5
  581. package/src/custom-select-control-v2/stories/index.story.tsx +1 -1
  582. package/src/date-time/date-picker/styles.ts +1 -1
  583. package/src/date-time/time-picker/index.tsx +0 -2
  584. package/src/date-time/time-picker/time-input/index.tsx +0 -2
  585. package/src/disabled/index.tsx +7 -5
  586. package/src/disabled/style.module.scss +15 -0
  587. package/src/disabled/test/index.tsx +6 -4
  588. package/src/dropdown-menu/style.scss +1 -1
  589. package/src/elevation/stories/index.story.tsx +1 -1
  590. package/src/elevation/test/__snapshots__/index.tsx.snap +1 -1
  591. package/src/external-link/stories/index.story.tsx +1 -1
  592. package/src/external-link/style.scss +7 -13
  593. package/src/flex/stories/index.story.tsx +1 -1
  594. package/src/flex/test/__snapshots__/index.tsx.snap +1 -1
  595. package/src/font-size-picker/types.ts +6 -15
  596. package/src/form-toggle/test/__snapshots__/index.tsx.snap +1 -1
  597. package/src/form-token-field/index.tsx +5 -4
  598. package/src/form-token-field/style.module.scss +6 -0
  599. package/src/form-token-field/style.scss +2 -2
  600. package/src/gradient-picker/README.md +21 -3
  601. package/src/gradient-picker/index.tsx +43 -28
  602. package/src/gradient-picker/stories/index.story.tsx +41 -5
  603. package/src/gradient-picker/test/index.tsx +148 -0
  604. package/src/gradient-picker/types.ts +24 -4
  605. package/src/h-stack/stories/index.story.tsx +1 -1
  606. package/src/h-stack/test/__snapshots__/index.tsx.snap +1 -1
  607. package/src/heading/hook.ts +1 -1
  608. package/src/heading/stories/index.story.tsx +1 -1
  609. package/src/heading/test/__snapshots__/index.tsx.snap +1 -1
  610. package/src/higher-order/with-filters/test/__snapshots__/index.tsx.snap +1 -1
  611. package/src/icon/stories/index.story.tsx +1 -1
  612. package/src/input-control/README.md +0 -8
  613. package/src/input-control/index.tsx +4 -16
  614. package/src/input-control/input-base.tsx +4 -8
  615. package/src/input-control/stories/index.story.tsx +2 -4
  616. package/src/input-control/styles/input-control-styles.tsx +1 -19
  617. package/src/input-control/test/__snapshots__/index.js.snap +11 -0
  618. package/src/input-control/test/index.js +29 -7
  619. package/src/input-control/types.ts +15 -30
  620. package/src/item-group/test/__snapshots__/index.js.snap +1 -1
  621. package/src/menu/README.md +2 -2
  622. package/src/menu/group-label.tsx +2 -1
  623. package/src/menu-group/style.scss +1 -1
  624. package/src/menu-item/style.scss +1 -1
  625. package/src/menu-item/test/__snapshots__/index.js.snap +1 -1
  626. package/src/modal/stories/index.story.tsx +2 -5
  627. package/src/modal/style.scss +1 -1
  628. package/src/modal/test/index.tsx +42 -0
  629. package/src/notice/stories/index.story.tsx +1 -1
  630. package/src/notice/test/__snapshots__/index.tsx.snap +1 -1
  631. package/src/number-control/README.md +0 -8
  632. package/src/number-control/index.tsx +1 -12
  633. package/src/number-control/stories/index.story.tsx +1 -3
  634. package/src/number-control/test/index.tsx +1 -1
  635. package/src/number-control/types.ts +0 -7
  636. package/src/palette-edit/styles.ts +1 -1
  637. package/src/panel/stories/index.story.tsx +4 -4
  638. package/src/panel/style.scss +2 -5
  639. package/src/panel/test/__snapshots__/body.tsx.snap +1 -1
  640. package/src/panel/test/__snapshots__/header.tsx.snap +1 -1
  641. package/src/panel/test/__snapshots__/index.tsx.snap +1 -1
  642. package/src/panel/test/__snapshots__/row.tsx.snap +1 -1
  643. package/src/placeholder/style.scss +1 -1
  644. package/src/private-apis.ts +4 -2
  645. package/src/range-control/index.tsx +0 -2
  646. package/src/range-control/types.ts +2 -15
  647. package/src/sandbox/index.tsx +165 -98
  648. package/src/sandbox/test/index.tsx +63 -1
  649. package/src/sandbox/types.ts +11 -0
  650. package/src/scrollable/test/__snapshots__/index.tsx.snap +1 -1
  651. package/src/search-control/index.tsx +23 -21
  652. package/src/search-control/style.module.scss +16 -0
  653. package/src/search-control/test/index.tsx +8 -0
  654. package/src/search-control/types.ts +1 -1
  655. package/src/select-control/index.tsx +0 -2
  656. package/src/select-control/stories/index.story.tsx +1 -1
  657. package/src/select-control/styles/select-control-styles.ts +0 -7
  658. package/src/select-control/test/__snapshots__/select-control.tsx.snap +11 -0
  659. package/src/select-control/test/select-control.tsx +37 -0
  660. package/src/select-control/types.ts +8 -2
  661. package/src/shortcut/test/__snapshots__/index.tsx.snap +1 -1
  662. package/src/slot-fill/fill.tsx +3 -9
  663. package/src/slot-fill/stories/index.story.tsx +52 -10
  664. package/src/slot-fill/test/__snapshots__/slot.js.snap +1 -1
  665. package/src/slot-fill/test/slot.js +53 -11
  666. package/src/spacer/hook.ts +93 -77
  667. package/src/spacer/stories/index.story.tsx +8 -6
  668. package/src/spacer/style.module.scss +25 -0
  669. package/src/spacer/test/__snapshots__/index.tsx.snap +3 -223
  670. package/src/spacer/test/index.tsx +106 -110
  671. package/src/tab-panel/stories/index.story.tsx +1 -1
  672. package/src/tab-panel/style.scss +1 -1
  673. package/src/tabs/stories/index.story.tsx +1 -1
  674. package/src/text/stories/index.story.tsx +1 -1
  675. package/src/text/test/__snapshots__/index.tsx.snap +1 -1
  676. package/src/text/types.ts +5 -5
  677. package/src/text-control/style.scss +1 -1
  678. package/src/textarea-control/stories/index.story.tsx +1 -1
  679. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +37 -715
  680. package/src/toggle-group-control/test/index.tsx +33 -3
  681. package/src/toggle-group-control/toggle-group-control/component.tsx +11 -16
  682. package/src/toggle-group-control/toggle-group-control/style.module.scss +63 -0
  683. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +22 -24
  684. package/src/toggle-group-control/toggle-group-control-option-base/style.module.scss +88 -0
  685. package/src/toggle-group-control/types.ts +0 -7
  686. package/src/toolbar/toolbar-button/style.scss +1 -1
  687. package/src/tools-panel/style.module.scss +117 -0
  688. package/src/tools-panel/test/index.tsx +105 -39
  689. package/src/tools-panel/tools-panel/component.tsx +12 -1
  690. package/src/tools-panel/tools-panel/hook.ts +13 -15
  691. package/src/tools-panel/tools-panel-header/component.tsx +6 -2
  692. package/src/tools-panel/tools-panel-header/hook.ts +7 -25
  693. package/src/tools-panel/tools-panel-item/hook.ts +16 -34
  694. package/src/tooltip/stories/index.story.tsx +1 -1
  695. package/src/tooltip/test/index.tsx +1 -1
  696. package/src/tree-grid/stories/index.story.tsx +0 -2
  697. package/src/tree-grid/test/__snapshots__/cell.tsx.snap +1 -1
  698. package/src/tree-grid/test/__snapshots__/index.tsx.snap +1 -1
  699. package/src/tree-grid/test/__snapshots__/roving-tab-index-item.tsx.snap +1 -1
  700. package/src/tree-grid/test/__snapshots__/roving-tab-index.tsx.snap +1 -1
  701. package/src/tree-grid/test/__snapshots__/row.tsx.snap +1 -1
  702. package/src/tree-select/README.md +1 -1
  703. package/src/tree-select/types.ts +1 -8
  704. package/src/unit-control/index.tsx +0 -1
  705. package/src/unit-control/types.ts +1 -18
  706. package/src/utils/base-label.ts +1 -1
  707. package/src/utils/config-values.js +1 -2
  708. package/src/utils/font-values.js +1 -1
  709. package/src/utils/theme-variables.scss +1 -0
  710. package/src/v-stack/stories/index.story.tsx +1 -1
  711. package/src/v-stack/test/__snapshots__/index.tsx.snap +1 -1
  712. package/src/validated-form-controls/components/content-editable-control.tsx +88 -0
  713. package/src/validated-form-controls/components/index.ts +1 -0
  714. package/src/validated-form-controls/components/input-control.tsx +2 -10
  715. package/src/validated-form-controls/components/number-control.tsx +2 -10
  716. package/src/validated-form-controls/components/stories/content-editable-control.story.tsx +56 -0
  717. package/src/validated-form-controls/components/stories/overview.story.tsx +51 -0
  718. package/src/validated-form-controls/control-with-error.tsx +10 -1
  719. package/src/validated-form-controls/style.scss +9 -2
  720. package/src/validated-form-controls/test/content-editable-control.tsx +71 -0
  721. package/src/validated-form-controls/test/control-with-error.tsx +42 -0
  722. package/src/view/test/__snapshots__/index.js.snap +1 -1
  723. package/src/visually-hidden/stories/index.story.tsx +1 -1
  724. package/build/confirm-dialog/styles.cjs +0 -42
  725. package/build/confirm-dialog/styles.cjs.map +0 -7
  726. package/build/disabled/styles/disabled-styles.cjs +0 -42
  727. package/build/disabled/styles/disabled-styles.cjs.map +0 -7
  728. package/build/form-token-field/styles.cjs +0 -49
  729. package/build/form-token-field/styles.cjs.map +0 -7
  730. package/build/search-control/styles.cjs +0 -74
  731. package/build/search-control/styles.cjs.map +0 -7
  732. package/build/theme/color-algorithms.cjs +0 -131
  733. package/build/theme/color-algorithms.cjs.map +0 -7
  734. package/build/theme/index.cjs +0 -160
  735. package/build/theme/index.cjs.map +0 -7
  736. package/build/toggle-group-control/toggle-group-control/styles.cjs +0 -53
  737. package/build/toggle-group-control/toggle-group-control/styles.cjs.map +0 -7
  738. package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs +0 -94
  739. package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs.map +0 -7
  740. package/build/tools-panel/styles.cjs +0 -129
  741. package/build/tools-panel/styles.cjs.map +0 -7
  742. package/build/utils/deprecated-36px-size.cjs +0 -56
  743. package/build/utils/deprecated-36px-size.cjs.map +0 -7
  744. package/build/utils/use-deprecated-props.cjs +0 -41
  745. package/build/utils/use-deprecated-props.cjs.map +0 -7
  746. package/build-module/confirm-dialog/styles.mjs +0 -17
  747. package/build-module/confirm-dialog/styles.mjs.map +0 -7
  748. package/build-module/disabled/styles/disabled-styles.mjs +0 -17
  749. package/build-module/disabled/styles/disabled-styles.mjs.map +0 -7
  750. package/build-module/form-token-field/styles.mjs +0 -14
  751. package/build-module/form-token-field/styles.mjs.map +0 -7
  752. package/build-module/search-control/styles.mjs +0 -38
  753. package/build-module/search-control/styles.mjs.map +0 -7
  754. package/build-module/theme/color-algorithms.mjs +0 -94
  755. package/build-module/theme/color-algorithms.mjs.map +0 -7
  756. package/build-module/theme/index.mjs +0 -129
  757. package/build-module/theme/index.mjs.map +0 -7
  758. package/build-module/toggle-group-control/toggle-group-control/styles.mjs +0 -27
  759. package/build-module/toggle-group-control/toggle-group-control/styles.mjs.map +0 -7
  760. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs +0 -56
  761. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs.map +0 -7
  762. package/build-module/tools-panel/styles.mjs +0 -84
  763. package/build-module/tools-panel/styles.mjs.map +0 -7
  764. package/build-module/utils/deprecated-36px-size.mjs +0 -21
  765. package/build-module/utils/deprecated-36px-size.mjs.map +0 -7
  766. package/build-module/utils/use-deprecated-props.mjs +0 -16
  767. package/build-module/utils/use-deprecated-props.mjs.map +0 -7
  768. package/src/confirm-dialog/styles.ts +0 -18
  769. package/src/disabled/styles/disabled-styles.tsx +0 -23
  770. package/src/form-token-field/styles.ts +0 -15
  771. package/src/search-control/styles.ts +0 -27
  772. package/src/theme/README.md +0 -47
  773. package/src/theme/color-algorithms.ts +0 -142
  774. package/src/theme/index.tsx +0 -80
  775. package/src/theme/stories/index.story.tsx +0 -127
  776. package/src/theme/style.module.scss +0 -4
  777. package/src/theme/test/color-algorithms.ts +0 -100
  778. package/src/theme/test/index.tsx +0 -151
  779. package/src/theme/types.ts +0 -61
  780. package/src/toggle-group-control/toggle-group-control/styles.ts +0 -84
  781. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +0 -109
  782. package/src/tools-panel/styles.ts +0 -176
  783. package/src/utils/deprecated-36px-size.ts +0 -30
  784. package/src/utils/use-deprecated-props.ts +0 -14
  785. /package/build-module/{theme → content-editable-control}/types.mjs +0 -0
  786. /package/build-module/{theme → content-editable-control}/types.mjs.map +0 -0
@@ -26,8 +26,6 @@ import type { NumberControlProps } from './types';
26
26
  import { HStack } from '../h-stack';
27
27
  import { Spacer } from '../spacer';
28
28
  import { useCx } from '../utils';
29
- import { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';
30
- import { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';
31
29
 
32
30
  const noop = () => {};
33
31
 
@@ -55,16 +53,8 @@ function UnforwardedNumberControl(
55
53
  size = 'default',
56
54
  suffix,
57
55
  onChange = noop,
58
- __shouldNotWarnDeprecated36pxSize,
59
56
  ...restProps
60
- } = useDeprecated36pxDefaultSizeProp< NumberControlProps >( props );
61
-
62
- maybeWarnDeprecated36pxSize( {
63
- componentName: 'NumberControl',
64
- size,
65
- __next40pxDefaultSize: restProps.__next40pxDefaultSize,
66
- __shouldNotWarnDeprecated36pxSize,
67
- } );
57
+ } = props;
68
58
 
69
59
  if ( hideHTMLArrows ) {
70
60
  deprecated( 'wp.components.NumberControl hideHTMLArrows prop ', {
@@ -239,7 +229,6 @@ function UnforwardedNumberControl(
239
229
  value={ valueProp }
240
230
  __unstableStateReducer={ numberControlStateReducer }
241
231
  size={ size }
242
- __shouldNotWarnDeprecated36pxSize
243
232
  suffix={
244
233
  spinControls === 'custom' ? (
245
234
  <>
@@ -32,7 +32,7 @@ const meta: Meta< typeof NumberControl > = {
32
32
  componentStatus: {
33
33
  status: 'recommended',
34
34
  whereUsed: 'global',
35
- notes: 'Will be superseded by `InputControl` with `type="number"` in `@wordpress/ui`, but continue using for now.',
35
+ notes: 'Will be superseded by [`InputControl`](?path=/docs/design-system-components-form-inputcontrol--docs) with `type="number"` in `@wordpress/ui`, but continue using for now.',
36
36
  },
37
37
  },
38
38
  };
@@ -49,7 +49,6 @@ const Template: StoryFn< typeof NumberControl > = ( {
49
49
  return (
50
50
  <>
51
51
  <NumberControl
52
- __next40pxDefaultSize
53
52
  { ...props }
54
53
  value={ value }
55
54
  onChange={ ( v, extra ) => {
@@ -69,5 +68,4 @@ const Template: StoryFn< typeof NumberControl > = ( {
69
68
  export const Default = Template.bind( {} );
70
69
  Default.args = {
71
70
  label: 'Value',
72
- __next40pxDefaultSize: true,
73
71
  };
@@ -17,7 +17,7 @@ import type { NumberControlProps } from '../types';
17
17
 
18
18
  const NumberControl = (
19
19
  props: React.ComponentProps< typeof _NumberControl >
20
- ) => <_NumberControl __next40pxDefaultSize { ...props } />;
20
+ ) => <_NumberControl { ...props } />;
21
21
 
22
22
  function StatefulNumberControl( props: NumberControlProps ) {
23
23
  const [ value, setValue ] = useState( props.value );
@@ -91,11 +91,4 @@ export type NumberControlProps = Omit<
91
91
  * The value of the input.
92
92
  */
93
93
  value?: number | string;
94
- /**
95
- * Do not throw a warning for the deprecated 36px default size.
96
- * For internal components of other components that already throw the warning.
97
- *
98
- * @ignore
99
- */
100
- __shouldNotWarnDeprecated36pxSize?: boolean;
101
94
  };
@@ -52,7 +52,7 @@ export const NameContainer = styled.div`
52
52
  export const PaletteHeading = styled( Heading )`
53
53
  text-transform: uppercase;
54
54
  line-height: ${ space( 6 ) };
55
- font-weight: ${ CONFIG.fontWeightMedium };
55
+ font-weight: ${ CONFIG.fontWeightEmphasis };
56
56
  &&& {
57
57
  font-size: 11px;
58
58
  margin-bottom: 0;
@@ -30,7 +30,7 @@ const meta: Meta< typeof Panel > = {
30
30
  componentStatus: {
31
31
  status: 'recommended',
32
32
  whereUsed: 'editor',
33
- notes: 'Intended for the block inspector sidebar. For collapsible sections elsewhere, use `CollapsibleCard` from `@wordpress/ui` instead.',
33
+ notes: 'Intended for the block inspector sidebar. For collapsible sections elsewhere, use [`CollapsibleCard`](?path=/docs/design-system-components-collapsiblecard--docs) from `@wordpress/ui` instead.',
34
34
  },
35
35
  },
36
36
  };
@@ -78,12 +78,12 @@ _PanelRow.args = {
78
78
  children: (
79
79
  <PanelBody title="My Profile">
80
80
  <PanelRow>
81
- <InputControl label="First name" __next40pxDefaultSize />
82
- <InputControl label="Last name" __next40pxDefaultSize />
81
+ <InputControl label="First name" />
82
+ <InputControl label="Last name" />
83
83
  </PanelRow>
84
84
  <PanelRow>
85
85
  <div style={ { flex: 1 } }>
86
- <InputControl label="Email" __next40pxDefaultSize />
86
+ <InputControl label="Email" />
87
87
  </div>
88
88
  </PanelRow>
89
89
  </PanelBody>
@@ -87,13 +87,10 @@
87
87
  .components-panel__body-toggle.components-button {
88
88
  position: relative;
89
89
  padding: $grid-unit-20 $grid-unit-60 $grid-unit-20 $grid-unit-20;
90
- outline: none;
91
90
  width: 100%;
92
- font-weight: $font-weight-medium;
91
+ font-weight: var(--wpds-typography-font-weight-emphasis);
93
92
  text-align: left;
94
93
  color: $gray-900;
95
- border: none;
96
- box-shadow: none;
97
94
 
98
95
  @media not (prefers-reduced-motion) {
99
96
  transition: 0.1s background ease-in-out;
@@ -102,7 +99,7 @@
102
99
  height: auto;
103
100
 
104
101
  &:focus {
105
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) $components-color-accent;
102
+ outline-offset: calc(var(--wpds-border-width-focus) * -1);
106
103
  border-radius: 0;
107
104
  }
108
105
 
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`PanelBody basic rendering should render an empty div with the matching className 1`] = `
4
4
  <div>
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`PanelHeader basic rendering should render PanelHeader with empty div inside 1`] = `
4
4
  <div>
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`Panel basic rendering should render an additional className 1`] = `
4
4
  <div>
@@ -1,4 +1,4 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
1
+ // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
2
2
 
3
3
  exports[`PanelRow should render with the custom class name 1`] = `
4
4
  <div>
@@ -42,7 +42,7 @@
42
42
  }
43
43
 
44
44
  .components-placeholder__label {
45
- font-weight: 600;
45
+ font-weight: var(--wpds-typography-font-weight-emphasis);
46
46
  align-items: center;
47
47
  display: flex;
48
48
 
@@ -9,7 +9,6 @@ import { useDrag } from '@use-gesture/react';
9
9
  import { positionToPlacement as __experimentalPopoverLegacyPositionToPlacement } from './popover/utils';
10
10
  import { Menu } from './menu';
11
11
  import { ComponentsContext } from './context/context-system-provider';
12
- import Theme from './theme';
13
12
  import { Tabs } from './tabs';
14
13
  import { kebabCase, normalizeTextString } from './utils/strings';
15
14
  import { withIgnoreIMEEvents } from './utils/with-ignore-ime-events';
@@ -24,19 +23,21 @@ import {
24
23
  ValidatedNumberControl,
25
24
  ValidatedSelectControl,
26
25
  ValidatedRadioControl,
26
+ ValidatedContentEditableControl,
27
27
  ValidatedTextControl,
28
28
  ValidatedTextareaControl,
29
29
  ValidatedToggleControl,
30
30
  ValidatedToggleGroupControl,
31
31
  } from './validated-form-controls';
32
32
  import { ValidatedFormTokenField } from './validated-form-controls/components/form-token-field';
33
+ import ContentEditableControl from './content-editable-control';
33
34
 
34
35
  export const privateApis = {};
35
36
  lock( privateApis, {
37
+ ContentEditableControl,
36
38
  __experimentalPopoverLegacyPositionToPlacement,
37
39
  ComponentsContext,
38
40
  Tabs,
39
- Theme,
40
41
  Menu,
41
42
  kebabCase,
42
43
  withIgnoreIMEEvents,
@@ -52,6 +53,7 @@ lock( privateApis, {
52
53
  ValidatedNumberControl,
53
54
  ValidatedSelectControl,
54
55
  ValidatedRadioControl,
56
+ ValidatedContentEditableControl,
55
57
  ValidatedTextControl,
56
58
  ValidatedTextareaControl,
57
59
  ValidatedToggleControl,
@@ -68,7 +68,6 @@ function UnforwardedRangeControl(
68
68
  // Prevent passing legacy props to internal component.
69
69
  __nextHasNoMarginBottom: _,
70
70
  __next40pxDefaultSize: _next40pxDefaultSize,
71
- __shouldNotWarnDeprecated36pxSize: _shouldNotWarnDeprecated36pxSize,
72
71
  afterIcon,
73
72
  allowReset = false,
74
73
  beforeIcon,
@@ -326,7 +325,6 @@ function UnforwardedRangeControl(
326
325
  onChange={ handleOnChange }
327
326
  shiftStep={ shiftStep }
328
327
  __unstableInputWidth={ space( 20 ) }
329
- __next40pxDefaultSize
330
328
  step={ step }
331
329
  // @ts-expect-error TODO: Investigate if the `null` value is necessary
332
330
  value={ inputSliderValue }
@@ -13,6 +13,7 @@ import type {
13
13
  */
14
14
  import type { BaseControlProps } from '../base-control/types';
15
15
  import type { IconType } from '../icon';
16
+ import type { NumberControlProps } from '../number-control/types';
16
17
 
17
18
  export type NumericProps = {
18
19
  /**
@@ -78,6 +79,7 @@ export type RangeControlProps = Pick<
78
79
  BaseControlProps,
79
80
  '__nextHasNoMarginBottom' | 'hideLabelFromVision' | 'help'
80
81
  > &
82
+ Pick< NumberControlProps, '__next40pxDefaultSize' > &
81
83
  MarksProps & {
82
84
  /**
83
85
  * If this property is added, an Icon component will be rendered
@@ -199,13 +201,6 @@ export type RangeControlProps = Pick<
199
201
  * @default 10
200
202
  */
201
203
  shiftStep?: number;
202
- /**
203
- * Start opting into the larger default height that will become the default size in a future version.
204
- *
205
- * @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
206
- * @ignore
207
- */
208
- __next40pxDefaultSize?: boolean;
209
204
  /**
210
205
  * Forcing the Tooltip UI to show or hide. This is overridden to `false`
211
206
  * when `step` is set to the special string value `any`.
@@ -230,14 +225,6 @@ export type RangeControlProps = Pick<
230
225
  * @default true
231
226
  */
232
227
  withInputField?: boolean;
233
- /**
234
- * Do not throw a warning for the deprecated 36px default size.
235
- * For internal components of other components that already throw the warning.
236
- *
237
- * @deprecated Default behavior since WordPress 7.1. Prop can be safely removed.
238
- * @ignore
239
- */
240
- __shouldNotWarnDeprecated36pxSize?: boolean;
241
228
  };
242
229
 
243
230
  export type RailProps = MarksProps & {
@@ -1,3 +1,8 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import clsx from 'clsx';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
@@ -37,11 +42,17 @@ export const VIEWPORT_UNIT_VALUE_REGEX =
37
42
  const observeAndResizeJS = function () {
38
43
  const { MutationObserver } = window;
39
44
 
40
- if ( ! MutationObserver || ! document.body || ! window.parent ) {
45
+ if ( ! MutationObserver || ! window.parent ) {
41
46
  return;
42
47
  }
43
48
 
44
49
  function sendResize() {
50
+ // This runs in the document <head>, and as a `load`/`resize` listener,
51
+ // so the body may not exist yet. Bail rather than throw on a null body.
52
+ if ( ! document.body ) {
53
+ return;
54
+ }
55
+
45
56
  const clientBoundingRect = document.body.getBoundingClientRect();
46
57
 
47
58
  window.parent.postMessage(
@@ -54,60 +65,88 @@ const observeAndResizeJS = function () {
54
65
  );
55
66
  }
56
67
 
57
- const observer = new MutationObserver( sendResize );
58
- observer.observe( document.body, {
59
- attributes: true,
60
- attributeOldValue: false,
61
- characterData: true,
62
- characterDataOldValue: false,
63
- childList: true,
64
- subtree: true,
65
- } );
68
+ // Runs the body-dependent setup once the document body is available. Reads
69
+ // `document.body` into a local so the null check narrows it for the rest of
70
+ // the function: this runs in <head> and via DOMContentLoaded, so the body
71
+ // isn't guaranteed to exist yet.
72
+ function connect() {
73
+ const { body } = document;
74
+ if ( ! body ) {
75
+ return;
76
+ }
66
77
 
67
- window.addEventListener( 'load', sendResize, true );
78
+ const observer = new MutationObserver( sendResize );
79
+ observer.observe( body, {
80
+ attributes: true,
81
+ attributeOldValue: false,
82
+ characterData: true,
83
+ characterDataOldValue: false,
84
+ childList: true,
85
+ subtree: true,
86
+ } );
87
+
88
+ // Hack: Remove viewport unit styles, as these are relative
89
+ // the iframe root and interfere with our mechanism for
90
+ // determining the unconstrained page bounds.
91
+ function removeViewportStyles( ruleOrNode: ElementCSSInlineStyle ) {
92
+ if ( ruleOrNode.style ) {
93
+ (
94
+ [ 'width', 'height', 'minHeight', 'maxHeight' ] as const
95
+ ).forEach( function ( style ) {
96
+ if (
97
+ /^\d*\.?\d+(?:vw|vh|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)$/.test(
98
+ ruleOrNode.style[ style ]
99
+ )
100
+ ) {
101
+ ruleOrNode.style[ style ] = '';
102
+ }
103
+ } );
104
+ }
105
+ }
68
106
 
69
- // Hack: Remove viewport unit styles, as these are relative
70
- // the iframe root and interfere with our mechanism for
71
- // determining the unconstrained page bounds.
72
- function removeViewportStyles( ruleOrNode: ElementCSSInlineStyle ) {
73
- if ( ruleOrNode.style ) {
74
- (
75
- [ 'width', 'height', 'minHeight', 'maxHeight' ] as const
76
- ).forEach( function ( style ) {
77
- if (
78
- /^\d*\.?\d+(?:vw|vh|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)$/.test(
79
- ruleOrNode.style[ style ]
80
- )
81
- ) {
82
- ruleOrNode.style[ style ] = '';
107
+ Array.prototype.forEach.call(
108
+ document.querySelectorAll( '[style]' ),
109
+ removeViewportStyles
110
+ );
111
+ Array.prototype.forEach.call(
112
+ document.styleSheets,
113
+ function ( stylesheet ) {
114
+ let rules;
115
+ try {
116
+ rules = stylesheet.cssRules || stylesheet.rules;
117
+ } catch {
118
+ // Reading `cssRules` throws a SecurityError for a
119
+ // cross-origin stylesheet (e.g. a remote <link> in the
120
+ // user's HTML). Skip those rather than aborting the setup.
121
+ return;
83
122
  }
84
- } );
85
- }
86
- }
123
+ Array.prototype.forEach.call( rules, removeViewportStyles );
124
+ }
125
+ );
87
126
 
88
- Array.prototype.forEach.call(
89
- document.querySelectorAll( '[style]' ),
90
- removeViewportStyles
91
- );
92
- Array.prototype.forEach.call(
93
- document.styleSheets,
94
- function ( stylesheet ) {
95
- Array.prototype.forEach.call(
96
- stylesheet.cssRules || stylesheet.rules,
97
- removeViewportStyles
98
- );
99
- }
100
- );
127
+ body.style.position = 'absolute';
128
+ body.style.width = '100%';
129
+ body.setAttribute( 'data-resizable-iframe-connected', '' );
101
130
 
102
- document.body.style.position = 'absolute';
103
- document.body.style.width = '100%';
104
- document.body.setAttribute( 'data-resizable-iframe-connected', '' );
131
+ sendResize();
132
+ }
105
133
 
106
- sendResize();
134
+ window.addEventListener( 'load', sendResize, true );
107
135
 
108
136
  // Resize events can change the width of elements with 100% width, but we don't
109
137
  // get an DOM mutations for that, so do the resize when the window is resized, too.
110
138
  window.addEventListener( 'resize', sendResize, true );
139
+
140
+ // This script is injected into the document <head> so it parses before the
141
+ // (possibly malformed) user content in <body>: an unclosed attribute quote
142
+ // in that content can't then swallow this <script> tag and dump its source
143
+ // into the preview as visible text. Because <head> runs before <body>
144
+ // exists, defer the body-dependent setup until the DOM is ready.
145
+ if ( document.body ) {
146
+ connect();
147
+ } else {
148
+ document.addEventListener( 'DOMContentLoaded', connect );
149
+ }
111
150
  };
112
151
 
113
152
  // TODO: These styles shouldn't be coupled with WordPress.
@@ -135,23 +174,48 @@ const style = `
135
174
  `;
136
175
 
137
176
  /**
138
- * Builds the full HTML document string for the sandbox iframe content.
177
+ * Builds the full HTML document string for the sandbox iframe content. Shared
178
+ * by both the isolated (`srcdoc`) and same-origin (`contentDocument.write`)
179
+ * sandboxes so the two paths always emit the same markup — notably keeping the
180
+ * resize script in `<head>`, ahead of the user content, on both. A single
181
+ * builder means the write path cannot drift back to putting the script in
182
+ * `<body>` while the `srcdoc` path keeps it in `<head>`.
183
+ *
184
+ * `lang` is passed in rather than read here because the two callers source it
185
+ * from different documents: the isolated sandbox uses the module's `document`,
186
+ * while the same-origin sandbox uses the iframe's `ownerDocument`. They are
187
+ * normally the same document, but keeping the argument preserves each path's
188
+ * exact prior behavior.
189
+ *
190
+ * Exported for tests.
191
+ *
192
+ * @param props
193
+ * @param props.html User-supplied HTML for the iframe body.
194
+ * @param props.title Document title.
195
+ * @param props.type Optional class name for the `<html>`/`<body>` elements.
196
+ * @param props.styles CSS rule strings, injected as `<style>` tags in the head.
197
+ * @param props.scripts External script URLs, injected as `<script src>` in the
198
+ * body (embeds expect their scripts there).
199
+ * @param props.lang Language for the `<html lang>` attribute.
200
+ * @return The full `<!DOCTYPE html>…` document string.
139
201
  */
140
- function buildSandBoxDocument( {
202
+ export function buildSandBoxDocument( {
141
203
  html,
142
204
  title,
143
205
  type,
144
206
  styles,
145
207
  scripts,
208
+ lang,
146
209
  }: {
147
210
  html: string;
148
211
  title: string;
149
212
  type?: string;
150
213
  styles: string[];
151
214
  scripts: string[];
215
+ lang: string;
152
216
  } ): string {
153
217
  const htmlDoc = (
154
- <html lang={ document.documentElement.lang } className={ type }>
218
+ <html lang={ lang } className={ type }>
155
219
  <head>
156
220
  <title>{ title }</title>
157
221
  <style dangerouslySetInnerHTML={ { __html: style } } />
@@ -161,18 +225,18 @@ function buildSandBoxDocument( {
161
225
  dangerouslySetInnerHTML={ { __html: rules } }
162
226
  />
163
227
  ) ) }
164
- </head>
165
- <body
166
- data-resizable-iframe-connected="data-resizable-iframe-connected"
167
- className={ type }
168
- >
169
- <div dangerouslySetInnerHTML={ { __html: html } } />
170
228
  <script
171
229
  type="text/javascript"
172
230
  dangerouslySetInnerHTML={ {
173
231
  __html: `(${ observeAndResizeJS.toString() })();`,
174
232
  } }
175
233
  />
234
+ </head>
235
+ <body
236
+ data-resizable-iframe-connected="data-resizable-iframe-connected"
237
+ className={ type }
238
+ >
239
+ <div dangerouslySetInnerHTML={ { __html: html } } />
176
240
  { scripts.map( ( src ) => (
177
241
  <script key={ src } src={ src } />
178
242
  ) ) }
@@ -203,13 +267,29 @@ function IsolatedSandBox( {
203
267
  scripts = [],
204
268
  onFocus,
205
269
  tabIndex,
270
+ allowPopups = false,
206
271
  }: SandBoxContentProps ) {
207
272
  const ref = useRef< HTMLIFrameElement >( null );
208
273
  const [ width, setWidth ] = useState( 0 );
209
274
  const [ height, setHeight ] = useState( 0 );
210
275
 
276
+ const sandbox = clsx( 'allow-scripts', 'allow-presentation', {
277
+ 'allow-popups': allowPopups,
278
+ } );
279
+
211
280
  const srcDoc = useMemo(
212
- () => buildSandBoxDocument( { html, title, type, styles, scripts } ),
281
+ () =>
282
+ buildSandBoxDocument( {
283
+ html,
284
+ title,
285
+ type,
286
+ styles,
287
+ scripts,
288
+ // Read inside the memo: the `no-dom-globals-in-react-fc` lint
289
+ // rule forbids DOM globals in the render body. `lang` rarely
290
+ // changes after load, so leaving it out of the deps is fine.
291
+ lang: document.documentElement.lang,
292
+ } ),
213
293
  [ html, title, type, styles, scripts ]
214
294
  );
215
295
 
@@ -281,7 +361,7 @@ function IsolatedSandBox( {
281
361
  title={ title }
282
362
  tabIndex={ tabIndex }
283
363
  className="components-sandbox"
284
- sandbox="allow-scripts allow-presentation"
364
+ sandbox={ sandbox }
285
365
  srcDoc={ srcDoc }
286
366
  onFocus={ onFocus }
287
367
  width={ Math.ceil( width ) }
@@ -312,11 +392,21 @@ function SameOriginSandBox( {
312
392
  scripts = [],
313
393
  onFocus,
314
394
  tabIndex,
395
+ allowPopups = false,
315
396
  }: SandBoxContentProps ) {
316
397
  const ref = useRef< HTMLIFrameElement >( null );
317
398
  const [ width, setWidth ] = useState( 0 );
318
399
  const [ height, setHeight ] = useState( 0 );
319
400
 
401
+ const sandbox = clsx(
402
+ 'allow-scripts',
403
+ 'allow-same-origin',
404
+ 'allow-presentation',
405
+ {
406
+ 'allow-popups': allowPopups,
407
+ }
408
+ );
409
+
320
410
  function isFrameAccessible() {
321
411
  try {
322
412
  return !! ref.current?.contentDocument?.body;
@@ -345,48 +435,25 @@ function SameOriginSandBox( {
345
435
  return;
346
436
  }
347
437
 
348
- // Put the html snippet into a html document, and then write it to the iframe's document
349
- // we can use this in the future to inject custom styles or scripts.
350
- // Scripts go into the body rather than the head, to support embedded content such as Instagram
351
- // that expect the scripts to be part of the body.
352
- const htmlDoc = (
353
- <html
354
- lang={ ownerDocument.documentElement.lang }
355
- className={ type }
356
- >
357
- <head>
358
- <title>{ title }</title>
359
- <style dangerouslySetInnerHTML={ { __html: style } } />
360
- { styles.map( ( rules, i ) => (
361
- <style
362
- key={ i }
363
- dangerouslySetInnerHTML={ { __html: rules } }
364
- />
365
- ) ) }
366
- </head>
367
- <body
368
- data-resizable-iframe-connected="data-resizable-iframe-connected"
369
- className={ type }
370
- >
371
- <div dangerouslySetInnerHTML={ { __html: html } } />
372
- <script
373
- type="text/javascript"
374
- dangerouslySetInnerHTML={ {
375
- __html: `(${ observeAndResizeJS.toString() })();`,
376
- } }
377
- />
378
- { scripts.map( ( src ) => (
379
- <script key={ src } src={ src } />
380
- ) ) }
381
- </body>
382
- </html>
383
- );
384
-
385
- // Writing the document like this makes it act in the same way as if it was
386
- // loaded over the network, so DOM creation and mutation, script execution, etc.
387
- // all work as expected.
438
+ // Put the html snippet into a html document, and then write it to the
439
+ // iframe's document. The external `scripts` still go into the body to
440
+ // support embedded content such as Instagram that expects them there;
441
+ // only the resize helper lives in the head.
442
+ //
443
+ // Writing the document like this makes it act in the same way as if it
444
+ // was loaded over the network, so DOM creation and mutation, script
445
+ // execution, etc. all work as expected.
388
446
  contentDocument.open();
389
- contentDocument.write( '<!DOCTYPE html>' + renderToString( htmlDoc ) );
447
+ contentDocument.write(
448
+ buildSandBoxDocument( {
449
+ html,
450
+ title,
451
+ type,
452
+ styles,
453
+ scripts,
454
+ lang: ownerDocument.documentElement.lang,
455
+ } )
456
+ );
390
457
  contentDocument.close();
391
458
  }
392
459
 
@@ -463,7 +530,7 @@ function SameOriginSandBox( {
463
530
  title={ title }
464
531
  tabIndex={ tabIndex }
465
532
  className="components-sandbox"
466
- sandbox="allow-scripts allow-same-origin allow-presentation"
533
+ sandbox={ sandbox }
467
534
  onFocus={ onFocus }
468
535
  width={ Math.ceil( width ) }
469
536
  height={ Math.ceil( height ) }