@wordpress/components 19.15.0 → 19.16.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 (439) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/build/angle-picker-control/index.js +2 -2
  3. package/build/angle-picker-control/index.js.map +1 -1
  4. package/build/base-control/styles/base-control-styles.js +8 -8
  5. package/build/base-control/styles/base-control-styles.js.map +1 -1
  6. package/build/border-control/border-control/component.js +38 -25
  7. package/build/border-control/border-control/component.js.map +1 -1
  8. package/build/border-control/border-control/hook.js +4 -7
  9. package/build/border-control/border-control/hook.js.map +1 -1
  10. package/build/border-control/border-control-dropdown/component.js +13 -7
  11. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  12. package/build/border-control/border-control-dropdown/hook.js +0 -4
  13. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  14. package/build/border-control/styles.js +33 -56
  15. package/build/border-control/styles.js.map +1 -1
  16. package/build/box-control/axial-input-controls.js +1 -1
  17. package/build/box-control/axial-input-controls.js.map +1 -1
  18. package/build/box-control/utils.js +2 -8
  19. package/build/box-control/utils.js.map +1 -1
  20. package/build/color-palette/index.js +14 -2
  21. package/build/color-palette/index.js.map +1 -1
  22. package/build/color-picker/hex-input.js +2 -1
  23. package/build/color-picker/hex-input.js.map +1 -1
  24. package/build/color-picker/input-with-slider.js +3 -2
  25. package/build/color-picker/input-with-slider.js.map +1 -1
  26. package/build/color-picker/styles.js +8 -15
  27. package/build/color-picker/styles.js.map +1 -1
  28. package/build/combobox-control/index.js +5 -7
  29. package/build/combobox-control/index.js.map +1 -1
  30. package/build/custom-select-control/index.js +26 -8
  31. package/build/custom-select-control/index.js.map +1 -1
  32. package/build/divider/component.js +0 -1
  33. package/build/divider/component.js.map +1 -1
  34. package/build/divider/index.js.map +1 -1
  35. package/build/divider/styles.js +5 -5
  36. package/build/divider/styles.js.map +1 -1
  37. package/build/dropdown/dropdown-content-wrapper.js +60 -0
  38. package/build/dropdown/dropdown-content-wrapper.js.map +1 -0
  39. package/build/dropdown/styles.js +42 -0
  40. package/build/dropdown/styles.js.map +1 -0
  41. package/build/dropdown/types.js +6 -0
  42. package/build/dropdown/types.js.map +1 -0
  43. package/build/elevation/component.js +15 -15
  44. package/build/elevation/component.js.map +1 -1
  45. package/build/elevation/hook.js +5 -17
  46. package/build/elevation/hook.js.map +1 -1
  47. package/build/elevation/index.js.map +1 -1
  48. package/build/elevation/styles.js +1 -1
  49. package/build/elevation/styles.js.map +1 -1
  50. package/build/flex/flex/component.js +11 -17
  51. package/build/flex/flex/component.js.map +1 -1
  52. package/build/flex/flex-block/component.js +9 -3
  53. package/build/flex/flex-block/component.js.map +1 -1
  54. package/build/flex/flex-item/component.js +9 -3
  55. package/build/flex/flex-item/component.js.map +1 -1
  56. package/build/index.js +24 -0
  57. package/build/index.js.map +1 -1
  58. package/build/input-control/index.js +7 -0
  59. package/build/input-control/index.js.map +1 -1
  60. package/build/input-control/input-base.js +23 -1
  61. package/build/input-control/input-base.js.map +1 -1
  62. package/build/input-control/input-prefix-wrapper.js +54 -0
  63. package/build/input-control/input-prefix-wrapper.js.map +1 -0
  64. package/build/input-control/input-suffix-wrapper.js +54 -0
  65. package/build/input-control/input-suffix-wrapper.js.map +1 -0
  66. package/build/input-control/styles/input-control-styles.js +61 -42
  67. package/build/input-control/styles/input-control-styles.js.map +1 -1
  68. package/build/mobile/image/index.native.js +7 -4
  69. package/build/mobile/image/index.native.js.map +1 -1
  70. package/build/mobile/media-edit/index.native.js +1 -7
  71. package/build/mobile/media-edit/index.native.js.map +1 -1
  72. package/build/popover/index.js +13 -10
  73. package/build/popover/index.js.map +1 -1
  74. package/build/radio-control/index.js +1 -3
  75. package/build/radio-control/index.js.map +1 -1
  76. package/build/range-control/utils.js +1 -1
  77. package/build/range-control/utils.js.map +1 -1
  78. package/build/sandbox/index.native.js +13 -2
  79. package/build/sandbox/index.native.js.map +1 -1
  80. package/build/scroll-lock/index.js +35 -6
  81. package/build/scroll-lock/index.js.map +1 -1
  82. package/build/select-control/index.js +1 -3
  83. package/build/select-control/index.js.map +1 -1
  84. package/build/select-control/styles/select-control-styles.js +31 -11
  85. package/build/select-control/styles/select-control-styles.js.map +1 -1
  86. package/build/shortcut/index.js +4 -13
  87. package/build/shortcut/index.js.map +1 -1
  88. package/build/shortcut/types.js +6 -0
  89. package/build/shortcut/types.js.map +1 -0
  90. package/build/spacer/component.js +3 -1
  91. package/build/spacer/component.js.map +1 -1
  92. package/build/toggle-group-control/toggle-group-control/component.js +4 -1
  93. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  94. package/build/toggle-group-control/toggle-group-control/styles.js +20 -4
  95. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  96. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +7 -9
  97. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  98. package/build/tooltip/index.js +51 -14
  99. package/build/tooltip/index.js.map +1 -1
  100. package/build/tree-select/index.js +2 -2
  101. package/build/tree-select/index.js.map +1 -1
  102. package/build/ui/context/use-context-system.js +7 -2
  103. package/build/ui/context/use-context-system.js.map +1 -1
  104. package/build/ui/utils/space.js +7 -1
  105. package/build/ui/utils/space.js.map +1 -1
  106. package/build/unit-control/styles/unit-control-styles.js +10 -26
  107. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  108. package/build-module/angle-picker-control/index.js +2 -2
  109. package/build-module/angle-picker-control/index.js.map +1 -1
  110. package/build-module/base-control/styles/base-control-styles.js +8 -8
  111. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  112. package/build-module/border-control/border-control/component.js +37 -25
  113. package/build-module/border-control/border-control/component.js.map +1 -1
  114. package/build-module/border-control/border-control/hook.js +4 -7
  115. package/build-module/border-control/border-control/hook.js.map +1 -1
  116. package/build-module/border-control/border-control-dropdown/component.js +12 -7
  117. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  118. package/build-module/border-control/border-control-dropdown/hook.js +0 -4
  119. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  120. package/build-module/border-control/styles.js +33 -49
  121. package/build-module/border-control/styles.js.map +1 -1
  122. package/build-module/box-control/axial-input-controls.js +1 -1
  123. package/build-module/box-control/axial-input-controls.js.map +1 -1
  124. package/build-module/box-control/utils.js +2 -7
  125. package/build-module/box-control/utils.js.map +1 -1
  126. package/build-module/color-palette/index.js +10 -1
  127. package/build-module/color-palette/index.js.map +1 -1
  128. package/build-module/color-picker/hex-input.js +2 -1
  129. package/build-module/color-picker/hex-input.js.map +1 -1
  130. package/build-module/color-picker/input-with-slider.js +3 -2
  131. package/build-module/color-picker/input-with-slider.js.map +1 -1
  132. package/build-module/color-picker/styles.js +9 -16
  133. package/build-module/color-picker/styles.js.map +1 -1
  134. package/build-module/combobox-control/index.js +5 -6
  135. package/build-module/combobox-control/index.js.map +1 -1
  136. package/build-module/custom-select-control/index.js +26 -10
  137. package/build-module/custom-select-control/index.js.map +1 -1
  138. package/build-module/divider/component.js +0 -1
  139. package/build-module/divider/component.js.map +1 -1
  140. package/build-module/divider/index.js.map +1 -1
  141. package/build-module/divider/styles.js +5 -5
  142. package/build-module/divider/styles.js.map +1 -1
  143. package/build-module/dropdown/dropdown-content-wrapper.js +47 -0
  144. package/build-module/dropdown/dropdown-content-wrapper.js.map +1 -0
  145. package/build-module/dropdown/styles.js +31 -0
  146. package/build-module/dropdown/styles.js.map +1 -0
  147. package/build-module/dropdown/types.js +2 -0
  148. package/build-module/dropdown/types.js.map +1 -0
  149. package/build-module/elevation/component.js +15 -15
  150. package/build-module/elevation/component.js.map +1 -1
  151. package/build-module/elevation/hook.js +5 -17
  152. package/build-module/elevation/hook.js.map +1 -1
  153. package/build-module/elevation/index.js.map +1 -1
  154. package/build-module/elevation/styles.js +1 -1
  155. package/build-module/elevation/styles.js.map +1 -1
  156. package/build-module/flex/flex/component.js +11 -17
  157. package/build-module/flex/flex/component.js.map +1 -1
  158. package/build-module/flex/flex-block/component.js +9 -3
  159. package/build-module/flex/flex-block/component.js.map +1 -1
  160. package/build-module/flex/flex-item/component.js +9 -3
  161. package/build-module/flex/flex-item/component.js.map +1 -1
  162. package/build-module/index.js +3 -0
  163. package/build-module/index.js.map +1 -1
  164. package/build-module/input-control/index.js +6 -0
  165. package/build-module/input-control/index.js.map +1 -1
  166. package/build-module/input-control/input-base.js +24 -3
  167. package/build-module/input-control/input-base.js.map +1 -1
  168. package/build-module/input-control/input-prefix-wrapper.js +41 -0
  169. package/build-module/input-control/input-prefix-wrapper.js.map +1 -0
  170. package/build-module/input-control/input-suffix-wrapper.js +41 -0
  171. package/build-module/input-control/input-suffix-wrapper.js.map +1 -0
  172. package/build-module/input-control/styles/input-control-styles.js +57 -41
  173. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  174. package/build-module/mobile/image/index.native.js +9 -6
  175. package/build-module/mobile/image/index.native.js.map +1 -1
  176. package/build-module/mobile/media-edit/index.native.js +1 -6
  177. package/build-module/mobile/media-edit/index.native.js.map +1 -1
  178. package/build-module/popover/index.js +13 -10
  179. package/build-module/popover/index.js.map +1 -1
  180. package/build-module/radio-control/index.js +1 -2
  181. package/build-module/radio-control/index.js.map +1 -1
  182. package/build-module/range-control/utils.js +1 -1
  183. package/build-module/range-control/utils.js.map +1 -1
  184. package/build-module/sandbox/index.native.js +13 -3
  185. package/build-module/sandbox/index.native.js.map +1 -1
  186. package/build-module/scroll-lock/index.js +32 -6
  187. package/build-module/scroll-lock/index.js.map +1 -1
  188. package/build-module/select-control/index.js +1 -2
  189. package/build-module/select-control/index.js.map +1 -1
  190. package/build-module/select-control/styles/select-control-styles.js +31 -11
  191. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  192. package/build-module/shortcut/index.js +4 -13
  193. package/build-module/shortcut/index.js.map +1 -1
  194. package/build-module/shortcut/types.js +2 -0
  195. package/build-module/shortcut/types.js.map +1 -0
  196. package/build-module/spacer/component.js +3 -1
  197. package/build-module/spacer/component.js.map +1 -1
  198. package/build-module/toggle-group-control/toggle-group-control/component.js +4 -1
  199. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  200. package/build-module/toggle-group-control/toggle-group-control/styles.js +15 -3
  201. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  202. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +6 -7
  203. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  204. package/build-module/tooltip/index.js +53 -16
  205. package/build-module/tooltip/index.js.map +1 -1
  206. package/build-module/tree-select/index.js +3 -3
  207. package/build-module/tree-select/index.js.map +1 -1
  208. package/build-module/ui/context/use-context-system.js +7 -2
  209. package/build-module/ui/context/use-context-system.js.map +1 -1
  210. package/build-module/ui/utils/space.js +7 -1
  211. package/build-module/ui/utils/space.js.map +1 -1
  212. package/build-module/unit-control/styles/unit-control-styles.js +10 -27
  213. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  214. package/build-style/style-rtl.css +12 -26
  215. package/build-style/style.css +12 -24
  216. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  217. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  218. package/build-types/border-control/border-control/hook.d.ts +1 -1
  219. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  220. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  221. package/build-types/border-control/border-control-dropdown/hook.d.ts +0 -1
  222. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  223. package/build-types/border-control/stories/index.d.ts.map +1 -1
  224. package/build-types/border-control/styles.d.ts +1 -4
  225. package/build-types/border-control/styles.d.ts.map +1 -1
  226. package/build-types/card/card-divider/hook.d.ts +1 -1
  227. package/build-types/color-palette/index.d.ts +1 -0
  228. package/build-types/color-palette/index.d.ts.map +1 -1
  229. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  230. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  231. package/build-types/color-picker/styles.d.ts.map +1 -1
  232. package/build-types/divider/component.d.ts +2 -3
  233. package/build-types/divider/component.d.ts.map +1 -1
  234. package/build-types/divider/index.d.ts +1 -1
  235. package/build-types/divider/index.d.ts.map +1 -1
  236. package/build-types/divider/styles.d.ts +6 -2
  237. package/build-types/divider/styles.d.ts.map +1 -1
  238. package/build-types/divider/test/index.d.ts +2 -0
  239. package/build-types/divider/test/index.d.ts.map +1 -0
  240. package/build-types/divider/types.d.ts +18 -10
  241. package/build-types/divider/types.d.ts.map +1 -1
  242. package/build-types/dropdown/dropdown-content-wrapper.d.ts +23 -0
  243. package/build-types/dropdown/dropdown-content-wrapper.d.ts.map +1 -0
  244. package/build-types/dropdown/styles.d.ts +7 -0
  245. package/build-types/dropdown/styles.d.ts.map +1 -0
  246. package/build-types/dropdown/types.d.ts +9 -0
  247. package/build-types/dropdown/types.d.ts.map +1 -0
  248. package/build-types/elevation/component.d.ts +11 -10
  249. package/build-types/elevation/component.d.ts.map +1 -1
  250. package/build-types/elevation/hook.d.ts +6 -7
  251. package/build-types/elevation/hook.d.ts.map +1 -1
  252. package/build-types/elevation/index.d.ts +2 -2
  253. package/build-types/elevation/index.d.ts.map +1 -1
  254. package/build-types/elevation/stories/index.d.ts +22 -0
  255. package/build-types/elevation/stories/index.d.ts.map +1 -0
  256. package/build-types/elevation/styles.d.ts +1 -1
  257. package/build-types/elevation/styles.d.ts.map +1 -1
  258. package/build-types/elevation/test/index.d.ts +2 -0
  259. package/build-types/elevation/test/index.d.ts.map +1 -0
  260. package/build-types/elevation/types.d.ts +12 -19
  261. package/build-types/elevation/types.d.ts.map +1 -1
  262. package/build-types/flex/flex/component.d.ts +11 -17
  263. package/build-types/flex/flex/component.d.ts.map +1 -1
  264. package/build-types/flex/flex-block/component.d.ts +9 -3
  265. package/build-types/flex/flex-block/component.d.ts.map +1 -1
  266. package/build-types/flex/flex-item/component.d.ts +9 -3
  267. package/build-types/flex/flex-item/component.d.ts.map +1 -1
  268. package/build-types/flex/types.d.ts +4 -1
  269. package/build-types/flex/types.d.ts.map +1 -1
  270. package/build-types/input-control/index.d.ts +1 -1
  271. package/build-types/input-control/index.d.ts.map +1 -1
  272. package/build-types/input-control/input-base.d.ts +1 -1
  273. package/build-types/input-control/input-base.d.ts.map +1 -1
  274. package/build-types/input-control/input-prefix-wrapper.d.ts +19 -0
  275. package/build-types/input-control/input-prefix-wrapper.d.ts.map +1 -0
  276. package/build-types/input-control/input-suffix-wrapper.d.ts +19 -0
  277. package/build-types/input-control/input-suffix-wrapper.d.ts.map +1 -0
  278. package/build-types/input-control/stories/index.d.ts +10 -0
  279. package/build-types/input-control/stories/index.d.ts.map +1 -1
  280. package/build-types/input-control/styles/input-control-styles.d.ts +21 -0
  281. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  282. package/build-types/input-control/types.d.ts +45 -3
  283. package/build-types/input-control/types.d.ts.map +1 -1
  284. package/build-types/popover/index.d.ts.map +1 -1
  285. package/build-types/radio-control/index.d.ts.map +1 -1
  286. package/build-types/range-control/types.d.ts +4 -2
  287. package/build-types/range-control/types.d.ts.map +1 -1
  288. package/build-types/range-control/utils.d.ts.map +1 -1
  289. package/build-types/scroll-lock/index.d.ts +32 -3
  290. package/build-types/scroll-lock/index.d.ts.map +1 -1
  291. package/build-types/scroll-lock/stories/index.d.ts +9 -0
  292. package/build-types/scroll-lock/stories/index.d.ts.map +1 -0
  293. package/build-types/scroll-lock/test/index.d.ts +2 -0
  294. package/build-types/scroll-lock/test/index.d.ts.map +1 -0
  295. package/build-types/select-control/index.d.ts.map +1 -1
  296. package/build-types/select-control/styles/select-control-styles.d.ts +1 -1
  297. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  298. package/build-types/select-control/types.d.ts +1 -1
  299. package/build-types/select-control/types.d.ts.map +1 -1
  300. package/build-types/shortcut/index.d.ts +5 -24
  301. package/build-types/shortcut/index.d.ts.map +1 -1
  302. package/build-types/shortcut/test/index.d.ts +2 -0
  303. package/build-types/shortcut/test/index.d.ts.map +1 -0
  304. package/build-types/shortcut/types.d.ts +14 -0
  305. package/build-types/shortcut/types.d.ts.map +1 -0
  306. package/build-types/spacer/component.d.ts +3 -1
  307. package/build-types/spacer/component.d.ts.map +1 -1
  308. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -1
  309. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  310. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +0 -1
  311. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  312. package/build-types/toggle-group-control/types.d.ts +6 -0
  313. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  314. package/build-types/tooltip/index.d.ts.map +1 -1
  315. package/build-types/tree-select/index.d.ts.map +1 -1
  316. package/build-types/tree-select/types.d.ts +1 -0
  317. package/build-types/tree-select/types.d.ts.map +1 -1
  318. package/build-types/ui/context/use-context-system.d.ts.map +1 -1
  319. package/build-types/ui/utils/space.d.ts +7 -1
  320. package/build-types/ui/utils/space.d.ts.map +1 -1
  321. package/build-types/unit-control/index.d.ts +2 -2
  322. package/build-types/unit-control/index.d.ts.map +1 -1
  323. package/build-types/unit-control/styles/unit-control-styles.d.ts +0 -1
  324. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  325. package/build-types/unit-control/types.d.ts +1 -1
  326. package/build-types/unit-control/types.d.ts.map +1 -1
  327. package/package.json +17 -17
  328. package/src/angle-picker-control/index.js +1 -2
  329. package/src/base-control/styles/base-control-styles.ts +5 -0
  330. package/src/border-control/border-control/component.tsx +41 -32
  331. package/src/border-control/border-control/hook.ts +4 -9
  332. package/src/border-control/border-control-dropdown/component.tsx +50 -45
  333. package/src/border-control/border-control-dropdown/hook.ts +0 -5
  334. package/src/border-control/stories/index.tsx +3 -0
  335. package/src/border-control/styles.ts +23 -69
  336. package/src/border-control/test/index.js +19 -8
  337. package/src/box-control/axial-input-controls.js +1 -1
  338. package/src/box-control/utils.js +6 -13
  339. package/src/card/test/__snapshots__/index.js.snap +8 -8
  340. package/src/color-palette/index.js +19 -8
  341. package/src/color-palette/style.scss +5 -0
  342. package/src/color-palette/test/utils.ts +19 -1
  343. package/src/color-picker/hex-input.tsx +2 -1
  344. package/src/color-picker/input-with-slider.tsx +2 -1
  345. package/src/color-picker/styles.ts +0 -11
  346. package/src/combobox-control/index.js +5 -6
  347. package/src/confirm-dialog/README.md +1 -1
  348. package/src/custom-select-control/index.js +44 -26
  349. package/src/custom-select-control/stories/index.js +7 -2
  350. package/src/custom-select-control/style.scss +4 -29
  351. package/src/divider/README.md +12 -5
  352. package/src/divider/component.tsx +2 -3
  353. package/src/divider/index.ts +1 -1
  354. package/src/divider/stories/index.tsx +4 -4
  355. package/src/divider/styles.ts +7 -7
  356. package/src/divider/test/__snapshots__/{index.js.snap → index.tsx.snap} +7 -7
  357. package/src/divider/test/index.tsx +40 -0
  358. package/src/divider/types.ts +21 -15
  359. package/src/draggable/README.md +1 -1
  360. package/src/dropdown/dropdown-content-wrapper.tsx +59 -0
  361. package/src/dropdown/stories/index.js +60 -69
  362. package/src/dropdown/styles.ts +38 -0
  363. package/src/dropdown/types.ts +8 -0
  364. package/src/elevation/README.md +16 -14
  365. package/src/elevation/component.tsx +48 -0
  366. package/src/elevation/{hook.js → hook.ts} +20 -17
  367. package/src/elevation/{index.js → index.ts} +0 -0
  368. package/src/elevation/stories/index.tsx +85 -0
  369. package/src/elevation/{styles.js → styles.ts} +0 -0
  370. package/src/elevation/test/__snapshots__/{index.js.snap → index.tsx.snap} +19 -13
  371. package/src/elevation/test/index.tsx +64 -0
  372. package/src/elevation/types.ts +12 -19
  373. package/src/flex/flex/README.md +1 -5
  374. package/src/flex/flex/component.js +11 -17
  375. package/src/flex/flex-block/README.md +0 -4
  376. package/src/flex/flex-block/component.js +9 -3
  377. package/src/flex/flex-item/README.md +0 -4
  378. package/src/flex/flex-item/component.js +9 -3
  379. package/src/flex/stories/index.js +1 -1
  380. package/src/flex/types.ts +4 -1
  381. package/src/form-token-field/test/index.js +1 -1
  382. package/src/index.js +3 -0
  383. package/src/input-control/index.tsx +6 -0
  384. package/src/input-control/input-base.tsx +28 -12
  385. package/src/input-control/input-prefix-wrapper.tsx +48 -0
  386. package/src/input-control/input-suffix-wrapper.tsx +48 -0
  387. package/src/input-control/stories/index.tsx +15 -2
  388. package/src/input-control/styles/input-control-styles.tsx +25 -11
  389. package/src/input-control/types.ts +52 -3
  390. package/src/mobile/image/index.native.js +12 -7
  391. package/src/mobile/media-edit/index.native.js +2 -7
  392. package/src/modal/style.scss +5 -1
  393. package/src/popover/index.js +13 -9
  394. package/src/popover/stories/index.js +2 -0
  395. package/src/popover/style.scss +1 -1
  396. package/src/radio-control/index.tsx +1 -2
  397. package/src/range-control/README.md +1 -1
  398. package/src/range-control/test/index.tsx +30 -0
  399. package/src/range-control/types.ts +4 -2
  400. package/src/range-control/utils.ts +4 -1
  401. package/src/sandbox/index.native.js +14 -1
  402. package/src/scroll-lock/README.md +1 -1
  403. package/src/scroll-lock/{index.js → index.tsx} +34 -7
  404. package/src/scroll-lock/stories/index.tsx +96 -0
  405. package/src/scroll-lock/test/index.tsx +26 -0
  406. package/src/select-control/index.tsx +1 -2
  407. package/src/select-control/styles/select-control-styles.ts +33 -9
  408. package/src/select-control/types.ts +1 -0
  409. package/src/shortcut/{index.js → index.tsx} +5 -9
  410. package/src/shortcut/test/__snapshots__/index.tsx.snap +15 -0
  411. package/src/shortcut/test/index.tsx +41 -0
  412. package/src/shortcut/types.ts +10 -0
  413. package/src/spacer/component.tsx +3 -1
  414. package/src/toggle-group-control/stories/index.js +19 -3
  415. package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -4
  416. package/src/toggle-group-control/toggle-group-control/component.tsx +3 -3
  417. package/src/toggle-group-control/toggle-group-control/styles.ts +22 -2
  418. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +0 -4
  419. package/src/toggle-group-control/types.ts +6 -0
  420. package/src/tools-panel/tools-panel/README.md +94 -21
  421. package/src/tooltip/index.js +56 -10
  422. package/src/tooltip/stories/index.js +28 -13
  423. package/src/tooltip/style.scss +1 -1
  424. package/src/tree-select/index.tsx +5 -4
  425. package/src/tree-select/types.ts +4 -0
  426. package/src/ui/context/test/context-system-provider.js +101 -1
  427. package/src/ui/context/use-context-system.js +7 -2
  428. package/src/ui/utils/space.ts +7 -1
  429. package/src/unit-control/styles/unit-control-styles.ts +15 -13
  430. package/src/unit-control/test/__snapshots__/index.tsx.snap +4 -4
  431. package/src/unit-control/types.ts +1 -1
  432. package/tsconfig.tsbuildinfo +1 -1
  433. package/src/divider/test/index.js +0 -41
  434. package/src/elevation/component.js +0 -43
  435. package/src/elevation/stories/index.js +0 -148
  436. package/src/elevation/test/index.js +0 -51
  437. package/src/scroll-lock/stories/index.js +0 -71
  438. package/src/scroll-lock/test/index.js +0 -53
  439. package/src/shortcut/test/index.js +0 -37
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unit-control/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE9E;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,IAAI,SAAS,EACjB,MAAM,wBAAwB,CAAC;AAEhC,oBAAY,UAAU,GAAG,SAAS,CAAC;AAEnC,oBAAY,iBAAiB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,2BAA2B,GAAG,mBAAmB,CAC5D,cAAc,CAAE,iBAAiB,GAAG,gBAAgB,CAAE,EACtD;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAC5B,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACpC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAGF,oBAAY,gBAAgB,GAAG,IAAI,CAAE,sBAAsB,EAAE,MAAM,CAAE,GACpE,IAAI,CACH,iBAAiB,EACjB,qBAAqB,GAAG,uBAAuB,CAC/C,GAAG;IACH,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC,oBAAoB,CAAC,EAAE,aAAa,CAAE,OAAO,CAAE,CAAC;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAE,gBAAgB,GAAG,iBAAiB,CAAE,CAAC;CACnE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unit-control/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE9E;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,IAAI,SAAS,EACjB,MAAM,wBAAwB,CAAC;AAEhC,oBAAY,UAAU,GAAG,SAAS,CAAC;AAEnC,oBAAY,iBAAiB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,2BAA2B,GAAG,mBAAmB,CAC5D,cAAc,CAAE,iBAAiB,GAAG,gBAAgB,CAAE,EACtD;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAC5B,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACpC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAGF,oBAAY,gBAAgB,GAAG,IAAI,CAAE,sBAAsB,EAAE,MAAM,CAAE,GACpE,IAAI,CACH,iBAAiB,EACjB,qBAAqB,GAAG,QAAQ,GAAG,uBAAuB,CAC1D,GAAG;IACH,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC,oBAAoB,CAAC,EAAE,aAAa,CAAE,OAAO,CAAE,CAAC;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAE,gBAAgB,GAAG,iBAAiB,CAAE,CAAC;CACnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/components",
3
- "version": "19.15.0",
3
+ "version": "19.16.0",
4
4
  "description": "UI components for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -38,21 +38,21 @@
38
38
  "@emotion/utils": "1.0.0",
39
39
  "@floating-ui/react-dom": "0.6.3",
40
40
  "@use-gesture/react": "^10.2.6",
41
- "@wordpress/a11y": "^3.13.0",
42
- "@wordpress/compose": "^5.11.0",
43
- "@wordpress/date": "^4.13.0",
44
- "@wordpress/deprecated": "^3.13.0",
45
- "@wordpress/dom": "^3.13.0",
46
- "@wordpress/element": "^4.11.0",
47
- "@wordpress/escape-html": "^2.13.0",
48
- "@wordpress/hooks": "^3.13.0",
49
- "@wordpress/i18n": "^4.13.0",
50
- "@wordpress/icons": "^9.4.0",
51
- "@wordpress/is-shallow-equal": "^4.13.0",
52
- "@wordpress/keycodes": "^3.13.0",
53
- "@wordpress/primitives": "^3.11.0",
54
- "@wordpress/rich-text": "^5.11.0",
55
- "@wordpress/warning": "^2.13.0",
41
+ "@wordpress/a11y": "^3.14.0",
42
+ "@wordpress/compose": "^5.12.0",
43
+ "@wordpress/date": "^4.14.0",
44
+ "@wordpress/deprecated": "^3.14.0",
45
+ "@wordpress/dom": "^3.14.0",
46
+ "@wordpress/element": "^4.12.0",
47
+ "@wordpress/escape-html": "^2.14.0",
48
+ "@wordpress/hooks": "^3.14.0",
49
+ "@wordpress/i18n": "^4.14.0",
50
+ "@wordpress/icons": "^9.5.0",
51
+ "@wordpress/is-shallow-equal": "^4.14.0",
52
+ "@wordpress/keycodes": "^3.14.0",
53
+ "@wordpress/primitives": "^3.12.0",
54
+ "@wordpress/rich-text": "^5.12.0",
55
+ "@wordpress/warning": "^2.14.0",
56
56
  "classnames": "^2.3.1",
57
57
  "colord": "^2.7.0",
58
58
  "dom-scroll-into-view": "^1.2.1",
@@ -77,5 +77,5 @@
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  },
80
- "gitHead": "9d9d33bbdf317a4381b8ca1713e43bb50df653b3"
80
+ "gitHead": "0315dbc240cb2aa146d7c1bafd251f004b88300e"
81
81
  }
@@ -34,7 +34,7 @@ export default function AnglePickerControl( {
34
34
  const classes = classnames( 'components-angle-picker-control', className );
35
35
 
36
36
  return (
37
- <Root className={ classes }>
37
+ <Root className={ classes } gap={ 4 }>
38
38
  <FlexBlock>
39
39
  <NumberControl
40
40
  label={ label }
@@ -62,7 +62,6 @@ export default function AnglePickerControl( {
62
62
  </FlexBlock>
63
63
  <FlexItem
64
64
  style={ {
65
- marginLeft: space( 4 ),
66
65
  marginBottom: space( 1 ),
67
66
  marginTop: 'auto',
68
67
  } }
@@ -39,6 +39,11 @@ const labelStyles = css`
39
39
 
40
40
  export const StyledLabel = styled.label`
41
41
  ${ labelStyles }
42
+ /**
43
+ * Removes Chrome/Safari/Firefox user agent stylesheet padding from
44
+ * StyledLabel when it is rendered as a legend.
45
+ */
46
+ padding: 0;
42
47
  `;
43
48
 
44
49
  const deprecatedMarginHelp = ( { __nextHasNoMarginBottom = false } ) => {
@@ -1,3 +1,8 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+
1
6
  /**
2
7
  * Internal dependencies
3
8
  */
@@ -21,9 +26,9 @@ const BorderLabel = ( props: LabelProps ) => {
21
26
  }
22
27
 
23
28
  return hideLabelFromVision ? (
24
- <VisuallyHidden as="label">{ label }</VisuallyHidden>
29
+ <VisuallyHidden as="legend">{ label }</VisuallyHidden>
25
30
  ) : (
26
- <StyledLabel>{ label }</StyledLabel>
31
+ <StyledLabel as="legend">{ label }</StyledLabel>
27
32
  );
28
33
  };
29
34
 
@@ -38,6 +43,7 @@ const UnconnectedBorderControl = (
38
43
  enableStyle = true,
39
44
  hideLabelFromVision,
40
45
  innerWrapperClassName,
46
+ inputWidth,
41
47
  label,
42
48
  onBorderChange,
43
49
  onSliderChange,
@@ -48,7 +54,6 @@ const UnconnectedBorderControl = (
48
54
  showDropdownHeader,
49
55
  sliderClassName,
50
56
  value: border,
51
- widthControlClassName,
52
57
  widthUnit,
53
58
  widthValue,
54
59
  withSlider,
@@ -59,41 +64,45 @@ const UnconnectedBorderControl = (
59
64
  } = useBorderControl( props );
60
65
 
61
66
  return (
62
- <View { ...otherProps } ref={ forwardedRef }>
67
+ <View as="fieldset" { ...otherProps } ref={ forwardedRef }>
63
68
  <BorderLabel
64
69
  label={ label }
65
70
  hideLabelFromVision={ hideLabelFromVision }
66
71
  />
67
- <HStack spacing={ 3 }>
68
- <HStack className={ innerWrapperClassName } alignment="stretch">
69
- <BorderControlDropdown
70
- border={ border }
71
- colors={ colors }
72
- __unstablePopoverProps={ __unstablePopoverProps }
73
- disableCustomColors={ disableCustomColors }
74
- enableAlpha={ enableAlpha }
75
- enableStyle={ enableStyle }
76
- onChange={ onBorderChange }
77
- previousStyleSelection={ previousStyleSelection }
78
- showDropdownHeader={ showDropdownHeader }
79
- __experimentalHasMultipleOrigins={
80
- __experimentalHasMultipleOrigins
81
- }
82
- __experimentalIsRenderedInSidebar={
83
- __experimentalIsRenderedInSidebar
84
- }
85
- __next36pxDefaultSize={ __next36pxDefaultSize }
86
- />
87
- <UnitControl
88
- className={ widthControlClassName }
89
- min={ 0 }
90
- onChange={ onWidthChange }
91
- value={ border?.width || '' }
92
- placeholder={ placeholder }
93
- />
94
- </HStack>
72
+ <HStack spacing={ 3 } className={ innerWrapperClassName }>
73
+ <UnitControl
74
+ prefix={
75
+ <BorderControlDropdown
76
+ border={ border }
77
+ colors={ colors }
78
+ __unstablePopoverProps={ __unstablePopoverProps }
79
+ disableCustomColors={ disableCustomColors }
80
+ enableAlpha={ enableAlpha }
81
+ enableStyle={ enableStyle }
82
+ onChange={ onBorderChange }
83
+ previousStyleSelection={ previousStyleSelection }
84
+ showDropdownHeader={ showDropdownHeader }
85
+ __experimentalHasMultipleOrigins={
86
+ __experimentalHasMultipleOrigins
87
+ }
88
+ __experimentalIsRenderedInSidebar={
89
+ __experimentalIsRenderedInSidebar
90
+ }
91
+ __next36pxDefaultSize={ __next36pxDefaultSize }
92
+ />
93
+ }
94
+ label={ __( 'Border width' ) }
95
+ hideLabelFromVision
96
+ min={ 0 }
97
+ onChange={ onWidthChange }
98
+ value={ border?.width || '' }
99
+ placeholder={ placeholder }
100
+ __unstableInputWidth={ inputWidth }
101
+ />
95
102
  { withSlider && (
96
103
  <RangeControl
104
+ label={ __( 'Border width' ) }
105
+ hideLabelFromVision
97
106
  className={ sliderClassName }
98
107
  initialPosition={ 0 }
99
108
  max={ 100 }
@@ -118,18 +118,13 @@ export function useBorderControl(
118
118
  return cx( styles.borderControl, className );
119
119
  }, [ className, cx ] );
120
120
 
121
+ const wrapperWidth = isCompact ? '90px' : width;
121
122
  const innerWrapperClassName = useMemo( () => {
122
- const wrapperWidth = isCompact ? '90px' : width;
123
- const widthStyle =
124
- !! wrapperWidth && styles.wrapperWidth( wrapperWidth );
123
+ const widthStyle = !! wrapperWidth && styles.wrapperWidth;
125
124
  const heightStyle = styles.wrapperHeight( __next36pxDefaultSize );
126
125
 
127
126
  return cx( styles.innerWrapper(), widthStyle, heightStyle );
128
- }, [ isCompact, width, cx, __next36pxDefaultSize ] );
129
-
130
- const widthControlClassName = useMemo( () => {
131
- return cx( styles.borderWidthControl() );
132
- }, [ cx ] );
127
+ }, [ wrapperWidth, cx, __next36pxDefaultSize ] );
133
128
 
134
129
  const sliderClassName = useMemo( () => {
135
130
  return cx( styles.borderSlider() );
@@ -139,13 +134,13 @@ export function useBorderControl(
139
134
  ...otherProps,
140
135
  className: classes,
141
136
  innerWrapperClassName,
137
+ inputWidth: wrapperWidth,
142
138
  onBorderChange,
143
139
  onSliderChange,
144
140
  onWidthChange,
145
141
  previousStyleSelection: styleSelection,
146
142
  sliderClassName,
147
143
  value: border,
148
- widthControlClassName,
149
144
  widthUnit,
150
145
  widthValue,
151
146
  __next36pxDefaultSize,
@@ -22,6 +22,7 @@ import { VStack } from '../../v-stack';
22
22
  import { contextConnect, WordPressComponentProps } from '../../ui/context';
23
23
  import { useBorderControlDropdown } from './hook';
24
24
  import { StyledLabel } from '../../base-control/styles/base-control-styles';
25
+ import DropdownContentWrapper from '../../dropdown/dropdown-content-wrapper';
25
26
 
26
27
  import type {
27
28
  Color,
@@ -141,7 +142,6 @@ const BorderControlDropdown = (
141
142
  onReset,
142
143
  onColorChange,
143
144
  onStyleChange,
144
- popoverClassName,
145
145
  popoverContentClassName,
146
146
  popoverControlsClassName,
147
147
  resetButtonClassName,
@@ -176,6 +176,8 @@ const BorderControlDropdown = (
176
176
  variant="tertiary"
177
177
  aria-label={ toggleAriaLabel }
178
178
  position={ dropdownPosition }
179
+ label={ __( 'Border color and style picker' ) }
180
+ showTooltip={ true }
179
181
  >
180
182
  <span className={ indicatorWrapperClassName }>
181
183
  <ColorIndicator
@@ -188,51 +190,55 @@ const BorderControlDropdown = (
188
190
 
189
191
  const renderContent = ( { onClose }: PopoverProps ) => (
190
192
  <>
191
- <VStack className={ popoverControlsClassName } spacing={ 6 }>
192
- { showDropdownHeader ? (
193
- <HStack>
194
- <StyledLabel>{ __( 'Border color' ) }</StyledLabel>
195
- <Button
196
- isSmall
197
- label={ __( 'Close border color' ) }
198
- icon={ closeSmall }
199
- onClick={ onClose }
200
- />
201
- </HStack>
202
- ) : undefined }
203
- <ColorPalette
204
- className={ popoverContentClassName }
205
- value={ color }
206
- onChange={ onColorChange }
207
- { ...{ colors, disableCustomColors } }
208
- __experimentalHasMultipleOrigins={
209
- __experimentalHasMultipleOrigins
210
- }
211
- __experimentalIsRenderedInSidebar={
212
- __experimentalIsRenderedInSidebar
213
- }
214
- clearable={ false }
215
- enableAlpha={ enableAlpha }
216
- />
217
- { enableStyle && (
218
- <BorderControlStylePicker
219
- label={ __( 'Style' ) }
220
- value={ style }
221
- onChange={ onStyleChange }
193
+ <DropdownContentWrapper paddingSize="medium">
194
+ <VStack className={ popoverControlsClassName } spacing={ 6 }>
195
+ { showDropdownHeader ? (
196
+ <HStack>
197
+ <StyledLabel>{ __( 'Border color' ) }</StyledLabel>
198
+ <Button
199
+ isSmall
200
+ label={ __( 'Close border color' ) }
201
+ icon={ closeSmall }
202
+ onClick={ onClose }
203
+ />
204
+ </HStack>
205
+ ) : undefined }
206
+ <ColorPalette
207
+ className={ popoverContentClassName }
208
+ value={ color }
209
+ onChange={ onColorChange }
210
+ { ...{ colors, disableCustomColors } }
211
+ __experimentalHasMultipleOrigins={
212
+ __experimentalHasMultipleOrigins
213
+ }
214
+ __experimentalIsRenderedInSidebar={
215
+ __experimentalIsRenderedInSidebar
216
+ }
217
+ clearable={ false }
218
+ enableAlpha={ enableAlpha }
222
219
  />
223
- ) }
224
- </VStack>
220
+ { enableStyle && (
221
+ <BorderControlStylePicker
222
+ label={ __( 'Style' ) }
223
+ value={ style }
224
+ onChange={ onStyleChange }
225
+ />
226
+ ) }
227
+ </VStack>
228
+ </DropdownContentWrapper>
225
229
  { showResetButton && (
226
- <Button
227
- className={ resetButtonClassName }
228
- variant="tertiary"
229
- onClick={ () => {
230
- onReset();
231
- onClose();
232
- } }
233
- >
234
- { __( 'Reset to default' ) }
235
- </Button>
230
+ <DropdownContentWrapper paddingSize="none">
231
+ <Button
232
+ className={ resetButtonClassName }
233
+ variant="tertiary"
234
+ onClick={ () => {
235
+ onReset();
236
+ onClose();
237
+ } }
238
+ >
239
+ { __( 'Reset to default' ) }
240
+ </Button>
241
+ </DropdownContentWrapper>
236
242
  ) }
237
243
  </>
238
244
  );
@@ -243,7 +249,6 @@ const BorderControlDropdown = (
243
249
  renderContent={ renderContent }
244
250
  popoverProps={ {
245
251
  ...__unstablePopoverProps,
246
- className: popoverClassName,
247
252
  } }
248
253
  { ...otherProps }
249
254
  ref={ forwardedRef }
@@ -66,10 +66,6 @@ export function useBorderControlDropdown(
66
66
  );
67
67
  }, [ border, cx, __next36pxDefaultSize ] );
68
68
 
69
- const popoverClassName = useMemo( () => {
70
- return cx( styles.borderControlPopover );
71
- }, [ cx ] );
72
-
73
69
  const popoverControlsClassName = useMemo( () => {
74
70
  return cx( styles.borderControlPopoverControls );
75
71
  }, [ cx ] );
@@ -92,7 +88,6 @@ export function useBorderControlDropdown(
92
88
  onColorChange,
93
89
  onStyleChange,
94
90
  onReset,
95
- popoverClassName,
96
91
  popoverContentClassName,
97
92
  popoverControlsClassName,
98
93
  resetButtonClassName,
@@ -39,6 +39,9 @@ const colors = [
39
39
  { name: 'Blue', color: '#72aee6' },
40
40
  { name: 'Red', color: '#e65054' },
41
41
  { name: 'Yellow', color: '#f2d675' },
42
+ { name: 'Blue', color: '#72aee6' },
43
+ { name: 'Red', color: '#e65054' },
44
+ { name: 'Yellow', color: '#f2d675' },
42
45
  ];
43
46
 
44
47
  // Multiple origin colors.
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { css } from '@emotion/react';
5
- import type { CSSProperties } from 'react';
6
5
 
7
6
  /**
8
7
  * Internal dependencies
@@ -13,7 +12,6 @@ import {
13
12
  StyledField,
14
13
  StyledLabel,
15
14
  } from '../base-control/styles/base-control-styles';
16
- import { BackdropUI } from '../input-control/styles/input-control-styles';
17
15
  import {
18
16
  Root as UnitControlWrapper,
19
17
  UnitSelect,
@@ -30,57 +28,32 @@ const focusBoxShadow = css`
30
28
  `;
31
29
 
32
30
  export const borderControl = css`
33
- position: relative;
31
+ border: 0;
32
+ padding: 0;
33
+ margin: 0;
34
34
  `;
35
35
 
36
36
  export const innerWrapper = () => css`
37
- flex: 1 0 40%;
38
-
39
- /*
40
- * Needs more thought. Aim is to prevent the border for BorderBoxControl
41
- * showing through the control. Likely needs to take into account
42
- * light/dark themes etc.
43
- */
44
- background: #fff;
45
-
46
- /*
47
- * Forces the width control to fill available space given UnitControl
48
- * passes its className directly through to the input.
49
- */
50
37
  ${ UnitControlWrapper } {
51
- flex: 1;
52
- ${ rtl( { marginLeft: -1 } )() }
38
+ flex: 1 1 40%;
53
39
  }
54
-
55
40
  && ${ UnitSelect } {
56
- /* Prevent default styles forcing heights larger than BorderControl */
41
+ /* Prevent unit select forcing min height larger than its UnitControl */
57
42
  min-height: 0;
58
- ${ rtl(
59
- {
60
- borderRadius: '0 1px 1px 0',
61
- marginRight: 0,
62
- },
63
- {
64
- borderRadius: '1px 0 0 1px',
65
- marginLeft: 0,
66
- }
67
- )() }
68
- transition: box-shadow 0.1s linear, border 0.1s linear;
69
-
70
- &:focus {
71
- z-index: 1;
72
- ${ focusBoxShadow }
73
- border: 1px solid ${ COLORS.ui.borderFocus };
74
- }
75
43
  }
76
44
  `;
77
45
 
78
- export const wrapperWidth = ( width: CSSProperties[ 'width' ] ) => {
79
- return css`
80
- width: ${ width };
46
+ /*
47
+ * This style is only applied to the UnitControl wrapper when the border width
48
+ * field should be a set width. Omitting this allows the UnitControl &
49
+ * RangeControl to share the available width in a 40/60 split respectively.
50
+ */
51
+ export const wrapperWidth = css`
52
+ ${ UnitControlWrapper } {
53
+ /* Force the UnitControl's set width. */
81
54
  flex: 0 0 auto;
82
- `;
83
- };
55
+ }
56
+ `;
84
57
 
85
58
  /*
86
59
  * When default control height is 36px the following should be removed.
@@ -98,7 +71,7 @@ export const borderControlDropdown = () => css`
98
71
  && > button {
99
72
  /*
100
73
  * Override button component height and padding to fit within
101
- * BorderControl
74
+ * BorderControl regardless of size.
102
75
  */
103
76
  height: 100%;
104
77
  padding: ${ space( 0.75 ) };
@@ -107,7 +80,6 @@ export const borderControlDropdown = () => css`
107
80
  { borderRadius: `0 2px 2px 0` }
108
81
  )() }
109
82
  border: ${ CONFIG.borderWidth } solid ${ COLORS.ui.border };
110
- position: relative;
111
83
 
112
84
  &:focus,
113
85
  &:hover:not( :disabled ) {
@@ -170,16 +142,13 @@ export const colorIndicatorWrapper = (
170
142
  `;
171
143
  };
172
144
 
173
- export const borderControlPopover = css`
174
- /* Remove padding from content, this will be re-added via inner elements*/
175
- && .components-popover__content {
176
- padding: 0;
177
- width: 264px;
178
- }
179
- `;
145
+ // Must equal $color-palette-circle-size from:
146
+ // @wordpress/components/src/circular-option-picker/style.scss
147
+ const swatchSize = 28;
148
+ const swatchGap = 12;
180
149
 
181
150
  export const borderControlPopoverControls = css`
182
- padding: ${ space( 2 ) };
151
+ width: ${ swatchSize * 6 + swatchGap * 5 }px;
183
152
 
184
153
  > div:first-of-type > ${ StyledLabel } {
185
154
  margin-bottom: 0;
@@ -202,27 +171,12 @@ export const resetButton = css`
202
171
  /* Override button component styling */
203
172
  && {
204
173
  border-top: ${ CONFIG.borderWidth } solid ${ COLORS.gray[ 200 ] };
174
+ border-top-left-radius: 0;
175
+ border-top-right-radius: 0;
205
176
  height: 46px;
206
177
  }
207
178
  `;
208
179
 
209
- export const borderWidthControl = () => css`
210
- /* Target the InputControl's backdrop */
211
- &&& ${ BackdropUI } {
212
- ${ rtl( {
213
- borderTopLeftRadius: 0,
214
- borderBottomLeftRadius: 0,
215
- } )() }
216
- transition: box-shadow 0.1s linear;
217
- }
218
-
219
- /* Specificity required to overcome UnitControl padding */
220
- /* See packages/components/src/unit-control/styles/unit-control-styles.ts */
221
- &&& input {
222
- ${ rtl( { paddingRight: 0 } )() }
223
- }
224
- `;
225
-
226
180
  export const borderControlStylePicker = css`
227
181
  ${ StyledLabel } {
228
182
  ${ labelStyles }
@@ -58,8 +58,15 @@ const clickButton = ( name ) => {
58
58
  fireEvent.click( getButton( name ) );
59
59
  };
60
60
 
61
+ const getSliderInput = () => {
62
+ return screen.getByRole( 'slider', { name: 'Border width' } );
63
+ };
64
+
65
+ const getWidthInput = () => {
66
+ return screen.getByRole( 'spinbutton', { name: 'Border width' } );
67
+ };
61
68
  const setWidthInput = ( value ) => {
62
- const widthInput = screen.getByRole( 'spinbutton' );
69
+ const widthInput = getWidthInput();
63
70
  widthInput.focus();
64
71
  fireEvent.change( widthInput, { target: { value } } );
65
72
  };
@@ -73,9 +80,13 @@ describe( 'BorderControl', () => {
73
80
 
74
81
  const label = screen.getByText( props.label );
75
82
  const colorButton = screen.getByLabelText( toggleLabelRegex );
76
- const widthInput = screen.getByRole( 'spinbutton' );
77
- const unitSelect = screen.getByRole( 'combobox' );
78
- const slider = screen.queryByRole( 'slider' );
83
+ const widthInput = getWidthInput();
84
+ const unitSelect = screen.getByRole( 'combobox', {
85
+ name: 'Select unit',
86
+ } );
87
+ const slider = screen.queryByRole( 'slider', {
88
+ name: 'Border width',
89
+ } );
79
90
 
80
91
  expect( label ).toBeInTheDocument();
81
92
  expect( colorButton ).toBeInTheDocument();
@@ -100,13 +111,13 @@ describe( 'BorderControl', () => {
100
111
  it( 'should render with slider', () => {
101
112
  renderBorderControl( { withSlider: true } );
102
113
 
103
- const slider = screen.getByRole( 'slider' );
114
+ const slider = getSliderInput();
104
115
  expect( slider ).toBeInTheDocument();
105
116
  } );
106
117
 
107
118
  it( 'should render placeholder in UnitControl', () => {
108
119
  renderBorderControl( { placeholder: 'Mixed' } );
109
- const widthInput = screen.getByRole( 'spinbutton' );
120
+ const widthInput = getWidthInput();
110
121
 
111
122
  expect( widthInput ).toHaveAttribute( 'placeholder', 'Mixed' );
112
123
  } );
@@ -262,7 +273,7 @@ describe( 'BorderControl', () => {
262
273
  it( 'should update width with slider value', () => {
263
274
  const { rerender } = renderBorderControl( { withSlider: true } );
264
275
 
265
- const slider = screen.getByRole( 'slider' );
276
+ const slider = getSliderInput();
266
277
  fireEvent.change( slider, { target: { value: '5' } } );
267
278
 
268
279
  expect( props.onChange ).toHaveBeenNthCalledWith( 1, {
@@ -271,7 +282,7 @@ describe( 'BorderControl', () => {
271
282
  } );
272
283
 
273
284
  rerenderBorderControl( rerender, { withSlider: true } );
274
- const widthInput = screen.getByRole( 'spinbutton' );
285
+ const widthInput = getWidthInput();
275
286
 
276
287
  expect( widthInput.value ).toEqual( '5' );
277
288
  } );
@@ -106,7 +106,7 @@ export default function AxialInputControls( {
106
106
 
107
107
  const first = filteredSides[ 0 ];
108
108
  const last = filteredSides[ filteredSides.length - 1 ];
109
- const only = first === last;
109
+ const only = first === last && first;
110
110
 
111
111
  return (
112
112
  <Layout
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { isEmpty } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -145,14 +140,12 @@ export function isValuesMixed( values = {}, selectedUnits, sides = ALL_SIDES ) {
145
140
  export function isValuesDefined( values ) {
146
141
  return (
147
142
  values !== undefined &&
148
- ! isEmpty(
149
- Object.values( values ).filter(
150
- // Switching units when input is empty causes values only
151
- // containing units. This gives false positive on mixed values
152
- // unless filtered.
153
- ( value ) => !! value && /\d/.test( value )
154
- )
155
- )
143
+ Object.values( values ).filter(
144
+ // Switching units when input is empty causes values only
145
+ // containing units. This gives false positive on mixed values
146
+ // unless filtered.
147
+ ( value ) => !! value && /\d/.test( value )
148
+ ).length > 0
156
149
  );
157
150
  }
158
151