@wordpress/components 19.6.1 → 19.8.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 (514) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +38 -0
  3. package/build/base-control/index.js +41 -32
  4. package/build/base-control/index.js.map +1 -1
  5. package/build/base-control/styles/base-control-styles.js +43 -22
  6. package/build/base-control/styles/base-control-styles.js.map +1 -1
  7. package/build/base-control/types.js +6 -0
  8. package/build/base-control/types.js.map +1 -0
  9. package/build/border-box-control/border-box-control/component.js +124 -0
  10. package/build/border-box-control/border-box-control/component.js.map +1 -0
  11. package/build/border-box-control/border-box-control/hook.js +113 -0
  12. package/build/border-box-control/border-box-control/hook.js.map +1 -0
  13. package/build/border-box-control/border-box-control/index.js +24 -0
  14. package/build/border-box-control/border-box-control/index.js.map +1 -0
  15. package/build/border-box-control/border-box-control-linked-button/component.js +59 -0
  16. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  17. package/build/border-box-control/border-box-control-linked-button/hook.js +41 -0
  18. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  19. package/build/border-box-control/border-box-control-linked-button/index.js +16 -0
  20. package/build/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  21. package/build/border-box-control/border-box-control-split-controls/component.js +93 -0
  22. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  23. package/build/border-box-control/border-box-control-split-controls/hook.js +45 -0
  24. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  25. package/build/border-box-control/border-box-control-split-controls/index.js +16 -0
  26. package/build/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  27. package/build/border-box-control/border-box-control-visualizer/component.js +40 -0
  28. package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  29. package/build/border-box-control/border-box-control-visualizer/hook.js +43 -0
  30. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  31. package/build/border-box-control/border-box-control-visualizer/index.js +16 -0
  32. package/build/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  33. package/build/border-box-control/index.js +44 -0
  34. package/build/border-box-control/index.js.map +1 -0
  35. package/build/border-box-control/styles.js +76 -0
  36. package/build/border-box-control/styles.js.map +1 -0
  37. package/build/border-box-control/types.js +6 -0
  38. package/build/border-box-control/types.js.map +1 -0
  39. package/build/border-box-control/utils.js +161 -0
  40. package/build/border-box-control/utils.js.map +1 -0
  41. package/build/border-control/border-control/component.js +119 -0
  42. package/build/border-control/border-control/component.js.map +1 -0
  43. package/build/border-control/border-control/hook.js +130 -0
  44. package/build/border-control/border-control/hook.js.map +1 -0
  45. package/build/border-control/border-control/index.js +24 -0
  46. package/build/border-control/border-control/index.js.map +1 -0
  47. package/build/border-control/border-control-dropdown/component.js +196 -0
  48. package/build/border-control/border-control-dropdown/component.js.map +1 -0
  49. package/build/border-control/border-control-dropdown/hook.js +105 -0
  50. package/build/border-control/border-control-dropdown/hook.js.map +1 -0
  51. package/build/border-control/border-control-dropdown/index.js +16 -0
  52. package/build/border-control/border-control-dropdown/index.js.map +1 -0
  53. package/build/border-control/border-control-style-picker/component.js +101 -0
  54. package/build/border-control/border-control-style-picker/component.js.map +1 -0
  55. package/build/border-control/border-control-style-picker/hook.js +45 -0
  56. package/build/border-control/border-control-style-picker/hook.js.map +1 -0
  57. package/build/border-control/border-control-style-picker/index.js +16 -0
  58. package/build/border-control/border-control-style-picker/index.js.map +1 -0
  59. package/build/border-control/index.js +24 -0
  60. package/build/border-control/index.js.map +1 -0
  61. package/build/border-control/styles.js +125 -0
  62. package/build/border-control/styles.js.map +1 -0
  63. package/build/border-control/types.js +6 -0
  64. package/build/border-control/types.js.map +1 -0
  65. package/build/box-control/all-input-control.js +3 -7
  66. package/build/box-control/all-input-control.js.map +1 -1
  67. package/build/box-control/axial-input-controls.js +20 -15
  68. package/build/box-control/axial-input-controls.js.map +1 -1
  69. package/build/box-control/input-controls.js +21 -16
  70. package/build/box-control/input-controls.js.map +1 -1
  71. package/build/box-control/utils.js +25 -11
  72. package/build/box-control/utils.js.map +1 -1
  73. package/build/card/styles.js +22 -17
  74. package/build/card/styles.js.map +1 -1
  75. package/build/checkbox-control/index.js +21 -1
  76. package/build/checkbox-control/index.js.map +1 -1
  77. package/build/color-palette/index.js +53 -4
  78. package/build/color-palette/index.js.map +1 -1
  79. package/build/custom-select-control/index.js +12 -4
  80. package/build/custom-select-control/index.js.map +1 -1
  81. package/build/divider/styles.js +28 -16
  82. package/build/divider/styles.js.map +1 -1
  83. package/build/focal-point-picker/controls.js +2 -3
  84. package/build/focal-point-picker/controls.js.map +1 -1
  85. package/build/form-file-upload/index.js +4 -1
  86. package/build/form-file-upload/index.js.map +1 -1
  87. package/build/index.js +40 -0
  88. package/build/index.js.map +1 -1
  89. package/build/input-control/input-field.js +21 -14
  90. package/build/input-control/input-field.js.map +1 -1
  91. package/build/input-control/reducer/actions.js +1 -3
  92. package/build/input-control/reducer/actions.js.map +1 -1
  93. package/build/input-control/reducer/reducer.js +1 -43
  94. package/build/input-control/reducer/reducer.js.map +1 -1
  95. package/build/item-group/styles.js +14 -14
  96. package/build/item-group/styles.js.map +1 -1
  97. package/build/mobile/picker/index.android.js +0 -3
  98. package/build/mobile/picker/index.android.js.map +1 -1
  99. package/build/number-control/index.js +15 -10
  100. package/build/number-control/index.js.map +1 -1
  101. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  102. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  103. package/build/surface/styles.js +8 -8
  104. package/build/surface/styles.js.map +1 -1
  105. package/build/toggle-group-control/index.js +8 -0
  106. package/build/toggle-group-control/index.js.map +1 -1
  107. package/build/toggle-group-control/toggle-group-control/component.js +10 -1
  108. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  109. package/build/toggle-group-control/toggle-group-control/styles.js +14 -3
  110. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  111. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +90 -0
  112. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  113. package/build/toggle-group-control/toggle-group-control-option/component.js +9 -87
  114. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  115. package/build/toggle-group-control/toggle-group-control-option-base/component.js +127 -0
  116. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  117. package/build/toggle-group-control/toggle-group-control-option-base/index.js +16 -0
  118. package/build/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  119. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +66 -0
  120. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  121. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +55 -0
  122. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  123. package/build/toggle-group-control/toggle-group-control-option-icon/index.js +16 -0
  124. package/build/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  125. package/build/toolbar-dropdown-menu/index.js +1 -1
  126. package/build/toolbar-dropdown-menu/index.js.map +1 -1
  127. package/build/unit-control/index.js +56 -29
  128. package/build/unit-control/index.js.map +1 -1
  129. package/build/unit-control/unit-select-control.js +2 -4
  130. package/build/unit-control/unit-select-control.js.map +1 -1
  131. package/build/utils/colors-values.js +5 -3
  132. package/build/utils/colors-values.js.map +1 -1
  133. package/build/utils/config-values.js +9 -4
  134. package/build/utils/config-values.js.map +1 -1
  135. package/build-module/base-control/index.js +39 -35
  136. package/build-module/base-control/index.js.map +1 -1
  137. package/build-module/base-control/styles/base-control-styles.js +44 -16
  138. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  139. package/build-module/base-control/types.js +2 -0
  140. package/build-module/base-control/types.js.map +1 -0
  141. package/build-module/border-box-control/border-box-control/component.js +104 -0
  142. package/build-module/border-box-control/border-box-control/component.js.map +1 -0
  143. package/build-module/border-box-control/border-box-control/hook.js +97 -0
  144. package/build-module/border-box-control/border-box-control/hook.js.map +1 -0
  145. package/build-module/border-box-control/border-box-control/index.js +3 -0
  146. package/build-module/border-box-control/border-box-control/index.js.map +1 -0
  147. package/build-module/border-box-control/border-box-control-linked-button/component.js +42 -0
  148. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  149. package/build-module/border-box-control/border-box-control-linked-button/hook.js +26 -0
  150. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  151. package/build-module/border-box-control/border-box-control-linked-button/index.js +2 -0
  152. package/build-module/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  153. package/build-module/border-box-control/border-box-control-split-controls/component.js +77 -0
  154. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  155. package/build-module/border-box-control/border-box-control-split-controls/hook.js +30 -0
  156. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  157. package/build-module/border-box-control/border-box-control-split-controls/index.js +2 -0
  158. package/build-module/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  159. package/build-module/border-box-control/border-box-control-visualizer/component.js +27 -0
  160. package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  161. package/build-module/border-box-control/border-box-control-visualizer/hook.js +28 -0
  162. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  163. package/build-module/border-box-control/border-box-control-visualizer/index.js +2 -0
  164. package/build-module/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  165. package/build-module/border-box-control/index.js +4 -0
  166. package/build-module/border-box-control/index.js.map +1 -0
  167. package/build-module/border-box-control/styles.js +66 -0
  168. package/build-module/border-box-control/styles.js.map +1 -0
  169. package/build-module/border-box-control/types.js +2 -0
  170. package/build-module/border-box-control/types.js.map +1 -0
  171. package/build-module/border-box-control/utils.js +127 -0
  172. package/build-module/border-box-control/utils.js.map +1 -0
  173. package/build-module/border-control/border-control/component.js +100 -0
  174. package/build-module/border-control/border-control/component.js.map +1 -0
  175. package/build-module/border-control/border-control/hook.js +115 -0
  176. package/build-module/border-control/border-control/hook.js.map +1 -0
  177. package/build-module/border-control/border-control/index.js +3 -0
  178. package/build-module/border-control/border-control/index.js.map +1 -0
  179. package/build-module/border-control/border-control-dropdown/component.js +174 -0
  180. package/build-module/border-control/border-control-dropdown/component.js.map +1 -0
  181. package/build-module/border-control/border-control-dropdown/hook.js +89 -0
  182. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -0
  183. package/build-module/border-control/border-control-dropdown/index.js +2 -0
  184. package/build-module/border-control/border-control-dropdown/index.js.map +1 -0
  185. package/build-module/border-control/border-control-style-picker/component.js +81 -0
  186. package/build-module/border-control/border-control-style-picker/component.js.map +1 -0
  187. package/build-module/border-control/border-control-style-picker/hook.js +30 -0
  188. package/build-module/border-control/border-control-style-picker/hook.js.map +1 -0
  189. package/build-module/border-control/border-control-style-picker/index.js +2 -0
  190. package/build-module/border-control/border-control-style-picker/index.js.map +1 -0
  191. package/build-module/border-control/index.js +3 -0
  192. package/build-module/border-control/index.js.map +1 -0
  193. package/build-module/border-control/styles.js +90 -0
  194. package/build-module/border-control/styles.js.map +1 -0
  195. package/build-module/border-control/types.js +2 -0
  196. package/build-module/border-control/types.js.map +1 -0
  197. package/build-module/box-control/all-input-control.js +4 -8
  198. package/build-module/box-control/all-input-control.js.map +1 -1
  199. package/build-module/box-control/axial-input-controls.js +18 -14
  200. package/build-module/box-control/axial-input-controls.js.map +1 -1
  201. package/build-module/box-control/input-controls.js +18 -14
  202. package/build-module/box-control/input-controls.js.map +1 -1
  203. package/build-module/box-control/utils.js +25 -11
  204. package/build-module/box-control/utils.js.map +1 -1
  205. package/build-module/card/styles.js +23 -18
  206. package/build-module/card/styles.js.map +1 -1
  207. package/build-module/checkbox-control/index.js +24 -3
  208. package/build-module/checkbox-control/index.js.map +1 -1
  209. package/build-module/color-palette/index.js +52 -4
  210. package/build-module/color-palette/index.js.map +1 -1
  211. package/build-module/custom-select-control/index.js +12 -4
  212. package/build-module/custom-select-control/index.js.map +1 -1
  213. package/build-module/divider/styles.js +29 -10
  214. package/build-module/divider/styles.js.map +1 -1
  215. package/build-module/focal-point-picker/controls.js +2 -3
  216. package/build-module/focal-point-picker/controls.js.map +1 -1
  217. package/build-module/form-file-upload/index.js +4 -1
  218. package/build-module/form-file-upload/index.js.map +1 -1
  219. package/build-module/index.js +3 -1
  220. package/build-module/index.js.map +1 -1
  221. package/build-module/input-control/input-field.js +21 -13
  222. package/build-module/input-control/input-field.js.map +1 -1
  223. package/build-module/input-control/reducer/actions.js +0 -1
  224. package/build-module/input-control/reducer/actions.js.map +1 -1
  225. package/build-module/input-control/reducer/reducer.js +2 -39
  226. package/build-module/input-control/reducer/reducer.js.map +1 -1
  227. package/build-module/item-group/styles.js +14 -14
  228. package/build-module/item-group/styles.js.map +1 -1
  229. package/build-module/mobile/picker/index.android.js +0 -3
  230. package/build-module/mobile/picker/index.android.js.map +1 -1
  231. package/build-module/number-control/index.js +15 -9
  232. package/build-module/number-control/index.js.map +1 -1
  233. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  234. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  235. package/build-module/surface/styles.js +8 -8
  236. package/build-module/surface/styles.js.map +1 -1
  237. package/build-module/toggle-group-control/index.js +1 -0
  238. package/build-module/toggle-group-control/index.js.map +1 -1
  239. package/build-module/toggle-group-control/toggle-group-control/component.js +8 -1
  240. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  241. package/build-module/toggle-group-control/toggle-group-control/styles.js +11 -3
  242. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  243. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +86 -0
  244. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  245. package/build-module/toggle-group-control/toggle-group-control-option/component.js +9 -76
  246. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  247. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +105 -0
  248. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  249. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js +2 -0
  250. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  251. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +55 -0
  252. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  253. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +50 -0
  254. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  255. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js +2 -0
  256. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  257. package/build-module/toolbar-dropdown-menu/index.js +1 -1
  258. package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
  259. package/build-module/unit-control/index.js +54 -27
  260. package/build-module/unit-control/index.js.map +1 -1
  261. package/build-module/unit-control/unit-select-control.js +2 -3
  262. package/build-module/unit-control/unit-select-control.js.map +1 -1
  263. package/build-module/utils/colors-values.js +5 -3
  264. package/build-module/utils/colors-values.js.map +1 -1
  265. package/build-module/utils/config-values.js +8 -4
  266. package/build-module/utils/config-values.js.map +1 -1
  267. package/build-style/style-rtl.css +33 -182
  268. package/build-style/style.css +33 -182
  269. package/build-types/base-control/index.d.ts +35 -71
  270. package/build-types/base-control/index.d.ts.map +1 -1
  271. package/build-types/base-control/stories/index.d.ts +25 -0
  272. package/build-types/base-control/stories/index.d.ts.map +1 -0
  273. package/build-types/base-control/styles/base-control-styles.d.ts +10 -5
  274. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  275. package/build-types/base-control/types.d.ts +41 -0
  276. package/build-types/base-control/types.d.ts.map +1 -0
  277. package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
  278. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -0
  279. package/build-types/border-box-control/border-box-control/hook.d.ts +282 -0
  280. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -0
  281. package/build-types/border-box-control/border-box-control/index.d.ts +3 -0
  282. package/build-types/border-box-control/border-box-control/index.d.ts.map +1 -0
  283. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -0
  284. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -0
  285. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +266 -0
  286. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -0
  287. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts +2 -0
  288. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts.map +1 -0
  289. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -0
  290. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -0
  291. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +274 -0
  292. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -0
  293. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts +2 -0
  294. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts.map +1 -0
  295. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +4 -0
  296. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -0
  297. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +266 -0
  298. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -0
  299. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts +2 -0
  300. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts.map +1 -0
  301. package/build-types/border-box-control/index.d.ts +4 -0
  302. package/build-types/border-box-control/index.d.ts.map +1 -0
  303. package/build-types/border-box-control/styles.d.ts +8 -0
  304. package/build-types/border-box-control/styles.d.ts.map +1 -0
  305. package/build-types/border-box-control/types.d.ts +91 -0
  306. package/build-types/border-box-control/types.d.ts.map +1 -0
  307. package/build-types/border-box-control/utils.d.ts +24 -0
  308. package/build-types/border-box-control/utils.d.ts.map +1 -0
  309. package/build-types/border-control/border-control/component.d.ts +4 -0
  310. package/build-types/border-control/border-control/component.d.ts.map +1 -0
  311. package/build-types/border-control/border-control/hook.d.ts +285 -0
  312. package/build-types/border-control/border-control/hook.d.ts.map +1 -0
  313. package/build-types/border-control/border-control/index.d.ts +3 -0
  314. package/build-types/border-control/border-control/index.d.ts.map +1 -0
  315. package/build-types/border-control/border-control-dropdown/component.d.ts +4 -0
  316. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -0
  317. package/build-types/border-control/border-control-dropdown/hook.d.ts +280 -0
  318. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -0
  319. package/build-types/border-control/border-control-dropdown/index.d.ts +2 -0
  320. package/build-types/border-control/border-control-dropdown/index.d.ts.map +1 -0
  321. package/build-types/border-control/border-control-style-picker/component.d.ts +4 -0
  322. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -0
  323. package/build-types/border-control/border-control-style-picker/hook.d.ts +269 -0
  324. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -0
  325. package/build-types/border-control/border-control-style-picker/index.d.ts +2 -0
  326. package/build-types/border-control/border-control-style-picker/index.d.ts.map +1 -0
  327. package/build-types/border-control/index.d.ts +3 -0
  328. package/build-types/border-control/index.d.ts.map +1 -0
  329. package/build-types/border-control/styles.d.ts +18 -0
  330. package/build-types/border-control/styles.d.ts.map +1 -0
  331. package/build-types/border-control/types.d.ts +163 -0
  332. package/build-types/border-control/types.d.ts.map +1 -0
  333. package/build-types/card/card-divider/hook.d.ts +1 -1
  334. package/build-types/card/styles.d.ts.map +1 -1
  335. package/build-types/color-indicator/index.d.ts +7 -0
  336. package/build-types/color-indicator/index.d.ts.map +1 -0
  337. package/build-types/color-palette/index.d.ts.map +1 -1
  338. package/build-types/color-picker/styles.d.ts +1 -1
  339. package/build-types/divider/stories/index.d.ts +1 -0
  340. package/build-types/divider/stories/index.d.ts.map +1 -1
  341. package/build-types/divider/styles.d.ts.map +1 -1
  342. package/build-types/divider/types.d.ts +8 -1
  343. package/build-types/divider/types.d.ts.map +1 -1
  344. package/build-types/input-control/input-field.d.ts.map +1 -1
  345. package/build-types/input-control/reducer/actions.d.ts +1 -3
  346. package/build-types/input-control/reducer/actions.d.ts.map +1 -1
  347. package/build-types/input-control/reducer/reducer.d.ts +3 -9
  348. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  349. package/build-types/input-control/types.d.ts +2 -2
  350. package/build-types/input-control/types.d.ts.map +1 -1
  351. package/build-types/item-group/styles.d.ts.map +1 -1
  352. package/build-types/number-control/index.d.ts +3 -3
  353. package/build-types/number-control/index.d.ts.map +1 -1
  354. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  355. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  356. package/build-types/toggle-group-control/index.d.ts +1 -0
  357. package/build-types/toggle-group-control/index.d.ts.map +1 -1
  358. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  359. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
  360. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  361. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +9 -0
  362. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -0
  363. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -2
  364. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  365. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +25 -0
  366. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -0
  367. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts +2 -0
  368. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts.map +1 -0
  369. package/build-types/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.d.ts +0 -0
  370. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -0
  371. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +37 -0
  372. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -0
  373. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts +2 -0
  374. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts.map +1 -0
  375. package/build-types/toggle-group-control/types.d.ts +24 -8
  376. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  377. package/build-types/ui/form-group/form-group.d.ts +2 -2
  378. package/build-types/unit-control/index.d.ts +12 -5
  379. package/build-types/unit-control/index.d.ts.map +1 -1
  380. package/build-types/unit-control/stories/index.d.ts +33 -0
  381. package/build-types/unit-control/stories/index.d.ts.map +1 -0
  382. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  383. package/build-types/unit-control/types.d.ts +28 -7
  384. package/build-types/unit-control/types.d.ts.map +1 -1
  385. package/build-types/unit-control/unit-select-control.d.ts.map +1 -1
  386. package/build-types/utils/colors-values.d.ts +78 -18
  387. package/build-types/utils/colors-values.d.ts.map +1 -1
  388. package/build-types/utils/config-values.d.ts +71 -71
  389. package/build-types/utils/config-values.d.ts.map +1 -1
  390. package/package.json +17 -17
  391. package/src/animate/README.md +1 -1
  392. package/src/base-control/README.md +20 -12
  393. package/src/base-control/index.tsx +124 -0
  394. package/src/base-control/stories/index.tsx +80 -0
  395. package/src/base-control/styles/{base-control-styles.js → base-control-styles.ts} +23 -1
  396. package/src/base-control/types.ts +42 -0
  397. package/src/border-box-control/border-box-control/README.md +178 -0
  398. package/src/border-box-control/border-box-control/component.tsx +123 -0
  399. package/src/border-box-control/border-box-control/hook.ts +119 -0
  400. package/src/border-box-control/border-box-control/index.ts +2 -0
  401. package/src/border-box-control/border-box-control-linked-button/component.tsx +50 -0
  402. package/src/border-box-control/border-box-control-linked-button/hook.ts +30 -0
  403. package/src/border-box-control/border-box-control-linked-button/index.ts +1 -0
  404. package/src/border-box-control/border-box-control-split-controls/component.tsx +90 -0
  405. package/src/border-box-control/border-box-control-split-controls/hook.ts +34 -0
  406. package/src/border-box-control/border-box-control-split-controls/index.ts +1 -0
  407. package/src/border-box-control/border-box-control-visualizer/component.tsx +28 -0
  408. package/src/border-box-control/border-box-control-visualizer/hook.ts +30 -0
  409. package/src/border-box-control/border-box-control-visualizer/index.ts +1 -0
  410. package/src/border-box-control/index.ts +3 -0
  411. package/src/border-box-control/stories/index.js +104 -0
  412. package/src/border-box-control/styles.ts +69 -0
  413. package/src/border-box-control/test/index.js +354 -0
  414. package/src/border-box-control/test/utils.js +305 -0
  415. package/src/border-box-control/types.ts +98 -0
  416. package/src/border-box-control/utils.ts +151 -0
  417. package/src/border-control/border-control/README.md +181 -0
  418. package/src/border-control/border-control/component.tsx +112 -0
  419. package/src/border-control/border-control/hook.ts +145 -0
  420. package/src/border-control/border-control/index.ts +2 -0
  421. package/src/border-control/border-control-dropdown/component.tsx +252 -0
  422. package/src/border-control/border-control-dropdown/hook.ts +98 -0
  423. package/src/border-control/border-control-dropdown/index.ts +1 -0
  424. package/src/border-control/border-control-style-picker/component.tsx +89 -0
  425. package/src/border-control/border-control-style-picker/hook.ts +34 -0
  426. package/src/border-control/border-control-style-picker/index.ts +1 -0
  427. package/src/border-control/index.ts +2 -0
  428. package/src/border-control/stories/index.js +118 -0
  429. package/src/border-control/styles.ts +190 -0
  430. package/src/border-control/test/index.js +436 -0
  431. package/src/border-control/types.ts +173 -0
  432. package/src/box-control/all-input-control.js +2 -10
  433. package/src/box-control/axial-input-controls.js +32 -21
  434. package/src/box-control/input-controls.js +30 -19
  435. package/src/box-control/utils.js +29 -12
  436. package/src/card/styles.js +11 -5
  437. package/src/card/test/__snapshots__/index.js.snap +83 -66
  438. package/src/card/test/index.js +7 -5
  439. package/src/checkbox-control/index.js +34 -3
  440. package/src/checkbox-control/stories/index.js +44 -0
  441. package/src/checkbox-control/style.scss +4 -2
  442. package/src/color-palette/README.md +6 -0
  443. package/src/color-palette/index.js +73 -8
  444. package/src/color-palette/stories/index.js +69 -26
  445. package/src/color-palette/style.scss +11 -3
  446. package/src/color-palette/test/__snapshots__/index.js.snap +662 -12
  447. package/src/color-palette/test/index.js +1 -1
  448. package/src/custom-select-control/index.js +15 -3
  449. package/src/custom-select-control/stories/index.js +77 -74
  450. package/src/custom-select-control/style.scss +23 -4
  451. package/src/disabled/README.md +7 -10
  452. package/src/divider/stories/index.tsx +26 -23
  453. package/src/divider/styles.ts +9 -0
  454. package/src/divider/types.ts +11 -1
  455. package/src/flyout/test/__snapshots__/index.js.snap +7 -7
  456. package/src/focal-point-picker/controls.js +2 -3
  457. package/src/form-file-upload/README.md +18 -0
  458. package/src/form-file-upload/index.js +3 -0
  459. package/src/form-file-upload/test/index.js +73 -11
  460. package/src/form-toggle/README.md +1 -1
  461. package/src/index.js +8 -0
  462. package/src/input-control/input-field.tsx +23 -12
  463. package/src/input-control/reducer/actions.ts +1 -7
  464. package/src/input-control/reducer/reducer.ts +0 -29
  465. package/src/input-control/types.ts +2 -1
  466. package/src/item-group/styles.ts +1 -0
  467. package/src/item-group/test/__snapshots__/index.js.snap +11 -10
  468. package/src/mobile/picker/index.android.js +0 -1
  469. package/src/number-control/README.md +14 -0
  470. package/src/number-control/index.js +13 -12
  471. package/src/number-control/stories/index.js +14 -7
  472. package/src/number-control/test/index.js +79 -1
  473. package/src/range-control/stories/index.js +91 -119
  474. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +1 -0
  475. package/src/surface/styles.js +1 -1
  476. package/src/surface/test/__snapshots__/index.js.snap +11 -11
  477. package/src/toggle-group-control/index.ts +1 -0
  478. package/src/toggle-group-control/stories/index.js +37 -7
  479. package/src/toggle-group-control/test/__snapshots__/index.js.snap +269 -5
  480. package/src/toggle-group-control/test/index.js +43 -10
  481. package/src/toggle-group-control/toggle-group-control/component.tsx +10 -0
  482. package/src/toggle-group-control/toggle-group-control/styles.ts +14 -0
  483. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +86 -0
  484. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
  485. package/src/toggle-group-control/toggle-group-control-option/component.tsx +18 -94
  486. package/src/toggle-group-control/toggle-group-control-option-base/README.md +27 -0
  487. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +129 -0
  488. package/src/toggle-group-control/toggle-group-control-option-base/index.ts +1 -0
  489. package/src/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.ts +4 -1
  490. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +56 -0
  491. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +56 -0
  492. package/src/toggle-group-control/toggle-group-control-option-icon/index.ts +1 -0
  493. package/src/toggle-group-control/types.ts +33 -8
  494. package/src/toolbar-dropdown-menu/index.js +1 -1
  495. package/src/toolbar-group/style.scss +0 -73
  496. package/src/tools-panel/test/__snapshots__/index.js.snap +8 -8
  497. package/src/unit-control/README.md +7 -3
  498. package/src/unit-control/index.tsx +65 -31
  499. package/src/unit-control/stories/index.tsx +170 -0
  500. package/src/unit-control/test/index.js +263 -100
  501. package/src/unit-control/types.ts +65 -42
  502. package/src/unit-control/unit-select-control.tsx +2 -3
  503. package/src/utils/colors-values.js +4 -3
  504. package/src/utils/config-values.js +9 -4
  505. package/tsconfig.json +3 -0
  506. package/tsconfig.tsbuildinfo +1 -1
  507. package/build/toggle-group-control/toggle-group-control-option/styles.js +0 -66
  508. package/build/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  509. package/build-module/toggle-group-control/toggle-group-control-option/styles.js +0 -55
  510. package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  511. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +0 -1
  512. package/src/base-control/index.js +0 -111
  513. package/src/base-control/stories/index.js +0 -81
  514. package/src/unit-control/stories/index.js +0 -127
@@ -92,7 +92,7 @@ describe( 'ColorPalette', () => {
92
92
  const isOpen = true;
93
93
  const onToggle = jest.fn();
94
94
 
95
- const renderedToggleButton = shallow(
95
+ const renderedToggleButton = mount(
96
96
  dropdown.props().renderToggle( { isOpen, onToggle } )
97
97
  );
98
98
 
@@ -56,6 +56,8 @@ const stateReducer = (
56
56
  }
57
57
  };
58
58
  export default function CustomSelectControl( {
59
+ /** Start opting into the larger default height that will become the default size in a future version. */
60
+ __next36pxDefaultSize = false,
59
61
  className,
60
62
  hideLabelFromVision,
61
63
  label,
@@ -141,15 +143,24 @@ export default function CustomSelectControl( {
141
143
  // This is needed because some speech recognition software don't support `aria-labelledby`.
142
144
  'aria-label': label,
143
145
  'aria-labelledby': undefined,
144
- className: 'components-custom-select-control__button',
145
- isSmall: true,
146
+ className: classnames(
147
+ 'components-custom-select-control__button',
148
+ { 'is-next-36px-default-size': __next36pxDefaultSize }
149
+ ),
150
+ isSmall: ! __next36pxDefaultSize,
146
151
  describedBy: getDescribedBy(),
147
152
  } ) }
148
153
  >
149
154
  { itemToString( selectedItem ) }
150
155
  <Icon
151
156
  icon={ chevronDown }
152
- className="components-custom-select-control__button-icon"
157
+ className={ classnames(
158
+ 'components-custom-select-control__button-icon',
159
+ {
160
+ 'is-next-36px-default-size': __next36pxDefaultSize,
161
+ }
162
+ ) }
163
+ size={ 18 }
153
164
  />
154
165
  </Button>
155
166
  { /* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */ }
@@ -169,6 +180,7 @@ export default function CustomSelectControl( {
169
180
  'is-highlighted':
170
181
  index === highlightedIndex,
171
182
  'has-hint': !! item.__experimentalHint,
183
+ 'is-next-36px-default-size': __next36pxDefaultSize,
172
184
  }
173
185
  ),
174
186
  style: item.style,
@@ -6,81 +6,84 @@ import CustomSelectControl from '../';
6
6
  export default {
7
7
  title: 'Components/CustomSelectControl',
8
8
  component: CustomSelectControl,
9
- };
10
-
11
- const defaultOptions = [
12
- {
13
- key: 'small',
14
- name: 'Small',
15
- style: { fontSize: '50%' },
16
- },
17
- {
18
- key: 'normal',
19
- name: 'Normal',
20
- style: { fontSize: '100%' },
21
- className: 'can-apply-custom-class-to-option',
22
- },
23
- {
24
- key: 'large',
25
- name: 'Large',
26
- style: { fontSize: '200%' },
27
- },
28
- {
29
- key: 'huge',
30
- name: 'Huge',
31
- style: { fontSize: '300%' },
32
- },
33
- ];
34
- export const _default = () => (
35
- <CustomSelectControl label="Font size" options={ defaultOptions } />
36
- );
37
-
38
- const longLabelOptions = [
39
- {
40
- key: 'reallylonglabel1',
41
- name: 'Really long labels are good for stress testing',
42
- },
43
- {
44
- key: 'reallylonglabel2',
45
- name: 'But they can take a long time to type.',
46
- },
47
- {
48
- key: 'reallylonglabel3',
49
- name:
50
- 'That really is ok though because you should stress test your UIs.',
9
+ argTypes: {
10
+ __next36pxDefaultSize: {
11
+ control: { type: 'boolean' },
12
+ },
51
13
  },
52
- ];
14
+ };
53
15
 
54
- export const longLabels = () => (
55
- <CustomSelectControl
56
- label="Testing long labels"
57
- options={ longLabelOptions }
58
- />
59
- );
16
+ export const Default = CustomSelectControl.bind( {} );
17
+ Default.args = {
18
+ label: 'Label',
19
+ options: [
20
+ {
21
+ key: 'small',
22
+ name: 'Small',
23
+ style: { fontSize: '50%' },
24
+ },
25
+ {
26
+ key: 'normal',
27
+ name: 'Normal',
28
+ style: { fontSize: '100%' },
29
+ className: 'can-apply-custom-class-to-option',
30
+ },
31
+ {
32
+ key: 'large',
33
+ name: 'Large',
34
+ style: { fontSize: '200%' },
35
+ },
36
+ {
37
+ key: 'huge',
38
+ name: 'Huge',
39
+ style: { fontSize: '300%' },
40
+ },
41
+ ],
42
+ };
60
43
 
61
- const withHintsOptions = [
62
- {
63
- key: 'thumbnail',
64
- name: 'Thumbnail',
65
- __experimentalHint: '150x150',
66
- },
67
- {
68
- key: 'medium',
69
- name: 'Medium',
70
- __experimentalHint: '250x250',
71
- },
72
- {
73
- key: 'large',
74
- name: 'Large',
75
- __experimentalHint: '1024x1024',
76
- },
77
- {
78
- key: 'full',
79
- name: 'Full Size',
80
- __experimentalHint: '1600x1600',
81
- },
82
- ];
44
+ export const WithLongLabels = CustomSelectControl.bind( {} );
45
+ WithLongLabels.args = {
46
+ ...Default.args,
47
+ options: [
48
+ {
49
+ key: 'reallylonglabel1',
50
+ name: 'Really long labels are good for stress testing',
51
+ },
52
+ {
53
+ key: 'reallylonglabel2',
54
+ name: 'But they can take a long time to type.',
55
+ },
56
+ {
57
+ key: 'reallylonglabel3',
58
+ name:
59
+ 'That really is ok though because you should stress test your UIs.',
60
+ },
61
+ ],
62
+ };
83
63
 
84
- export const hints = () => (
85
- <CustomSelectControl label="Testing hints" options={ withHintsOptions } />
86
- );
64
+ export const WithHints = CustomSelectControl.bind( {} );
65
+ WithHints.args = {
66
+ ...Default.args,
67
+ options: [
68
+ {
69
+ key: 'thumbnail',
70
+ name: 'Thumbnail',
71
+ __experimentalHint: '150x150',
72
+ },
73
+ {
74
+ key: 'medium',
75
+ name: 'Medium',
76
+ __experimentalHint: '250x250',
77
+ },
78
+ {
79
+ key: 'large',
80
+ name: 'Large',
81
+ __experimentalHint: '1024x1024',
82
+ },
83
+ {
84
+ key: 'full',
85
+ name: 'Full Size',
86
+ __experimentalHint: '1600x1600',
87
+ },
88
+ ],
89
+ };
@@ -10,15 +10,26 @@
10
10
  .components-custom-select-control__button {
11
11
  border: 1px solid $gray-700;
12
12
  border-radius: $radius-block-ui;
13
- min-height: 30px;
14
13
  min-width: 130px;
15
14
  position: relative;
16
15
  text-align: left;
17
16
 
17
+ &:not(.is-next-36px-default-size) {
18
+ min-height: 30px;
19
+ }
20
+
18
21
  // For all button sizes allow sufficient space for the
19
22
  // dropdown "arrow" icon to display.
20
23
  &.components-custom-select-control__button {
21
- padding-right: $icon-size;
24
+ // TODO: Some of these can be removed after some internal inconsistencies are addressed, such as the chevron
25
+ // (https://github.com/WordPress/gutenberg/issues/39400) and Button padding (https://github.com/WordPress/gutenberg/issues/39431)
26
+ padding-left: $grid-unit-20;
27
+ padding-right: $icon-size + $grid-unit-10;
28
+
29
+ &:not(.is-next-36px-default-size) {
30
+ padding-left: $grid-unit-10;
31
+ padding-right: $icon-size;
32
+ }
22
33
  }
23
34
 
24
35
  &:focus:not(:disabled) {
@@ -30,8 +41,12 @@
30
41
  height: 100%;
31
42
  padding: 0;
32
43
  position: absolute;
33
- right: 0;
44
+ right: $grid-unit-10;
34
45
  top: 0;
46
+
47
+ &:not(.is-next-36px-default-size) {
48
+ right: $grid-unit-05;
49
+ }
35
50
  }
36
51
  }
37
52
 
@@ -61,10 +76,14 @@
61
76
  display: grid;
62
77
  grid-template-columns: auto auto;
63
78
  list-style-type: none;
64
- padding: $grid-unit-10;
79
+ padding: $grid-unit-10 $grid-unit-20;
65
80
  cursor: default;
66
81
  line-height: $icon-size + $grid-unit-05;
67
82
 
83
+ &:not(.is-next-36px-default-size) {
84
+ padding: $grid-unit-10;
85
+ }
86
+
68
87
  &.has-hint {
69
88
  grid-template-columns: auto auto 30px;
70
89
  }
@@ -33,19 +33,16 @@ const MyDisabled = () => {
33
33
  };
34
34
  ```
35
35
 
36
- A component can detect if it has been wrapped in a `<Disabled>` by accessing its [context](https://reactjs.org/docs/context.html) using `Disabled.Consumer`.
36
+ A component can detect if it has been wrapped in a `<Disabled />` by accessing its [context](https://reactjs.org/docs/context.html) using `Disabled.Context`.
37
37
 
38
38
  ```jsx
39
- function CustomButton() {
39
+ function CustomButton( props ) {
40
+ const isDisabled = useContext( Disabled.Context );
40
41
  return (
41
- <Disabled.Consumer>
42
- { ( isDisabled ) => (
43
- <button
44
- { ...this.props }
45
- style={ { opacity: isDisabled ? 0.5 : 1 } }
46
- />
47
- ) }
48
- </Disabled.Consumer>
42
+ <button
43
+ { ...props }
44
+ style={ { opacity: isDisabled ? 0.5 : 1 } }
45
+ />
49
46
  );
50
47
  }
51
48
  ```
@@ -8,6 +8,7 @@ import type { ComponentMeta, ComponentStory } from '@storybook/react';
8
8
  */
9
9
  import { Text } from '../../text';
10
10
  import { Divider } from '..';
11
+ import { Flex } from '../../flex';
11
12
 
12
13
  const meta: ComponentMeta< typeof Divider > = {
13
14
  component: Divider,
@@ -30,7 +31,7 @@ const meta: ComponentMeta< typeof Divider > = {
30
31
  };
31
32
  export default meta;
32
33
 
33
- const HorizontalTemplate: ComponentStory< typeof Divider > = ( args ) => (
34
+ const Template: ComponentStory< typeof Divider > = ( args ) => (
34
35
  <div>
35
36
  <Text>Some text before the divider</Text>
36
37
  <Divider { ...args } />
@@ -38,33 +39,35 @@ const HorizontalTemplate: ComponentStory< typeof Divider > = ( args ) => (
38
39
  </div>
39
40
  );
40
41
 
41
- const VerticalTemplate: ComponentStory< typeof Divider > = ( args ) => {
42
- const styles = {
43
- display: 'flex',
44
- alignItems: 'stretch',
45
- justifyContent: 'start',
46
- };
47
-
48
- return (
49
- <div style={ styles }>
50
- <Text>Some text before the divider</Text>
51
- <Divider { ...args } />
52
- <Text>Some text after the divider</Text>
53
- </div>
54
- );
55
- };
56
-
57
- export const Horizontal: ComponentStory<
58
- typeof Divider
59
- > = HorizontalTemplate.bind( {} );
42
+ export const Horizontal: ComponentStory< typeof Divider > = Template.bind( {} );
60
43
  Horizontal.args = {
61
44
  margin: 2,
62
45
  };
63
46
 
64
- export const Vertical: ComponentStory< typeof Divider > = VerticalTemplate.bind(
65
- {}
66
- );
47
+ export const Vertical: ComponentStory< typeof Divider > = Template.bind( {} );
67
48
  Vertical.args = {
68
49
  ...Horizontal.args,
69
50
  orientation: 'vertical',
70
51
  };
52
+
53
+ // Inside a `flex` container, the divider will need to be `stretch` aligned in order to be visible.
54
+ export const InFlexContainer: ComponentStory< typeof Divider > = ( args ) => {
55
+ return (
56
+ <Flex align="stretch">
57
+ <Text>
58
+ Some text before the divider Some text before the divider Some
59
+ text before the divider Some text before the divider Some text
60
+ before the divider Some text before the divider Some text before
61
+ the divider
62
+ </Text>
63
+ <Divider { ...args } />
64
+ <Text>
65
+ Some text after the divider Some text after the divider Some
66
+ text after the divider
67
+ </Text>
68
+ </Flex>
69
+ );
70
+ };
71
+ InFlexContainer.args = {
72
+ ...Vertical.args,
73
+ };
@@ -45,6 +45,14 @@ const renderMargin = ( {
45
45
  } )()
46
46
  );
47
47
 
48
+ const renderDisplay = ( {
49
+ 'aria-orientation': orientation = 'horizontal',
50
+ }: Props ) => {
51
+ return orientation === 'vertical'
52
+ ? css( { display: 'inline' } )
53
+ : undefined;
54
+ };
55
+
48
56
  const renderBorder = ( {
49
57
  'aria-orientation': orientation = 'horizontal',
50
58
  }: Props ) => {
@@ -67,6 +75,7 @@ export const DividerView = styled.hr< Props >`
67
75
  border: 0;
68
76
  margin: 0;
69
77
 
78
+ ${ renderDisplay }
70
79
  ${ renderBorder }
71
80
  ${ renderSize }
72
81
  ${ renderMargin }
@@ -22,8 +22,18 @@ export interface OwnProps {
22
22
  * Adjusts the inline-end margin.
23
23
  */
24
24
  marginEnd?: SpaceInput;
25
+ /**
26
+ * Divider's orientation. When using inside a flex container, you may need to make sure the divider is `stretch` aligned
27
+ * in order for it to be visible.
28
+ *
29
+ * @default 'horizontal'
30
+ */
31
+ orientation?: SeparatorProps[ 'orientation' ];
25
32
  }
26
33
 
27
34
  export interface Props
28
- extends Omit< SeparatorProps, 'children' | 'unstable_system' >,
35
+ extends Omit<
36
+ SeparatorProps,
37
+ 'children' | 'unstable_system' | 'orientation'
38
+ >,
29
39
  OwnProps {}
@@ -3,11 +3,11 @@
3
3
  exports[`props should render correctly 1`] = `
4
4
  .emotion-1 {
5
5
  background-color: #fff;
6
- color: #000;
6
+ color: #1e1e1e;
7
7
  position: relative;
8
8
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
9
9
  outline: none;
10
- border-radius: 2px;
10
+ border-radius: calc(2px - 1px);
11
11
  }
12
12
 
13
13
  .emotion-1 .components-card-body {
@@ -26,13 +26,13 @@ exports[`props should render correctly 1`] = `
26
26
  }
27
27
 
28
28
  .emotion-5:first-of-type {
29
- border-top-left-radius: 2px;
30
- border-top-right-radius: 2px;
29
+ border-top-left-radius: calc(2px - 1px);
30
+ border-top-right-radius: calc(2px - 1px);
31
31
  }
32
32
 
33
33
  .emotion-5:last-of-type {
34
- border-bottom-left-radius: 2px;
35
- border-bottom-right-radius: 2px;
34
+ border-bottom-left-radius: calc(2px - 1px);
35
+ border-bottom-right-radius: calc(2px - 1px);
36
36
  }
37
37
 
38
38
  .emotion-7 {
@@ -172,7 +172,7 @@ Snapshot Diff:
172
172
  tabindex="-1"
173
173
  />
174
174
  + <div
175
- + class="components-card__body components-card-body css-1lr0m0h-View-Body-borderRadius-medium em57xhy0"
175
+ + class="components-card__body components-card-body css-1nwhnu3-View-Body-borderRadius-medium em57xhy0"
176
176
  + data-wp-c16t="true"
177
177
  + data-wp-component="CardBody"
178
178
  + >
@@ -42,13 +42,13 @@ export default function FocalPointPickerControls( {
42
42
  <ControlWrapper className="focal-point-picker__controls">
43
43
  <UnitControl
44
44
  label={ __( 'Left' ) }
45
- value={ valueX }
45
+ value={ [ valueX, '%' ].join( '' ) }
46
46
  onChange={ ( next ) => handleChange( next, 'x' ) }
47
47
  dragDirection="e"
48
48
  />
49
49
  <UnitControl
50
50
  label={ __( 'Top' ) }
51
- value={ valueY }
51
+ value={ [ valueY, '%' ].join( '' ) }
52
52
  onChange={ ( next ) => handleChange( next, 'y' ) }
53
53
  dragDirection="s"
54
54
  />
@@ -63,7 +63,6 @@ function UnitControl( props ) {
63
63
  labelPosition="top"
64
64
  max={ TEXTCONTROL_MAX }
65
65
  min={ TEXTCONTROL_MIN }
66
- unit="%"
67
66
  units={ [ { value: '%', label: '%' } ] }
68
67
  { ...props }
69
68
  />
@@ -57,6 +57,24 @@ Callback function passed directly to the `input` file element.
57
57
  - Type: `Function`
58
58
  - Required: Yes
59
59
 
60
+ ### onClick
61
+
62
+ Callback function passed directly to the `input` file element.
63
+
64
+ This can be useful when you want to force a `change` event to fire when the user chooses the same file again. To do this, set the target value to an empty string in the `onClick` function.
65
+
66
+ ```jsx
67
+ <FormFileUpload
68
+ onClick={ ( event ) => ( event.target.value = '' ) }
69
+ onChange={ onChange }
70
+ >
71
+ Upload
72
+ </FormFileUpload>
73
+ ```
74
+
75
+ - Type: `Function`
76
+ - Required: No
77
+
60
78
  ### render
61
79
 
62
80
  Optional callback function used to render the UI. If passed the component does not render any UI and calls this function to render it.
@@ -13,6 +13,7 @@ function FormFileUpload( {
13
13
  children,
14
14
  multiple = false,
15
15
  onChange,
16
+ onClick,
16
17
  render,
17
18
  ...props
18
19
  } ) {
@@ -38,6 +39,8 @@ function FormFileUpload( {
38
39
  style={ { display: 'none' } }
39
40
  accept={ accept }
40
41
  onChange={ onChange }
42
+ onClick={ onClick }
43
+ data-testid="form-file-upload-input"
41
44
  />
42
45
  </div>
43
46
  );
@@ -1,30 +1,92 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { shallow } from 'enzyme';
5
- import { noop } from 'lodash';
4
+ import { render as RTLrender, screen } from '@testing-library/react';
5
+ import userEvent from '@testing-library/user-event';
6
6
 
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
10
  import FormFileUpload from '../';
11
11
 
12
+ /**
13
+ * Browser dependencies
14
+ */
15
+ const { File } = window;
16
+
17
+ function render( jsx ) {
18
+ return {
19
+ user: userEvent.setup( {
20
+ // Avoids timeout errors (https://github.com/testing-library/user-event/issues/565#issuecomment-1064579531).
21
+ delay: null,
22
+ } ),
23
+ ...RTLrender( jsx ),
24
+ };
25
+ }
26
+
27
+ // @testing-library/user-event considers changing <input type="file"> to a string as a change, but it do not occur on real browsers, so the comparisons will be against this result
28
+ const fakePath = expect.objectContaining( {
29
+ target: expect.objectContaining( {
30
+ value: 'C:\\fakepath\\hello.png',
31
+ } ),
32
+ } );
33
+
12
34
  describe( 'FormFileUpload', () => {
13
35
  it( 'should show an Icon Button and a hidden input', () => {
14
- const wrapper = shallow(
36
+ render( <FormFileUpload>My Upload Button</FormFileUpload> );
37
+
38
+ const button = screen.getByText( 'My Upload Button' );
39
+ const input = screen.getByTestId( 'form-file-upload-input' );
40
+ expect( button ).toBeInTheDocument();
41
+ expect( input.style.display ).toBe( 'none' );
42
+ } );
43
+
44
+ it( 'should not fire a change event after selecting the same file', async () => {
45
+ const onChange = jest.fn();
46
+
47
+ const { user } = render(
48
+ <FormFileUpload onChange={ onChange }>
49
+ My Upload Button
50
+ </FormFileUpload>
51
+ );
52
+
53
+ const file = new File( [ 'hello' ], 'hello.png', {
54
+ type: 'image/png',
55
+ } );
56
+
57
+ const input = screen.getByTestId( 'form-file-upload-input' );
58
+
59
+ await user.upload( input, file );
60
+
61
+ await user.upload( input, file );
62
+
63
+ expect( onChange ).toHaveBeenCalledTimes( 1 );
64
+ expect( onChange ).toHaveBeenCalledWith( fakePath );
65
+ } );
66
+
67
+ it( 'should fire a change event after selecting the same file if the value was reset in between', async () => {
68
+ const onChange = jest.fn();
69
+
70
+ const { user } = render(
15
71
  <FormFileUpload
16
- instanceId={ 1 }
17
- blocks={ [] }
18
- recentlyUsedBlocks={ [] }
19
- debouncedSpeak={ noop }
72
+ onClick={ jest.fn( ( e ) => ( e.target.value = '' ) ) }
73
+ onChange={ onChange }
20
74
  >
21
75
  My Upload Button
22
76
  </FormFileUpload>
23
77
  );
24
78
 
25
- const button = wrapper.find( 'ForwardRef(Button)' );
26
- const input = wrapper.find( 'input' );
27
- expect( button.prop( 'children' ) ).toBe( 'My Upload Button' );
28
- expect( input.prop( 'style' ).display ).toBe( 'none' );
79
+ const file = new File( [ 'hello' ], 'hello.png', {
80
+ type: 'image/png',
81
+ } );
82
+
83
+ const input = screen.getByTestId( 'form-file-upload-input' );
84
+ await user.upload( input, file );
85
+
86
+ expect( onChange ).toHaveBeenNthCalledWith( 1, fakePath );
87
+
88
+ await user.upload( input, file );
89
+
90
+ expect( onChange ).toHaveBeenNthCalledWith( 2, fakePath );
29
91
  } );
30
92
  } );
@@ -61,7 +61,7 @@ const MyFormToggle = () => {
61
61
  const [ isChecked, setChecked ] = useState( true );
62
62
 
63
63
  <FormToggle
64
- checked={ checked }
64
+ checked={ isChecked }
65
65
  onChange={ () => setChecked( ( state ) => ! state ) }
66
66
  />
67
67
  };
package/src/index.js CHANGED
@@ -23,6 +23,13 @@ export {
23
23
  useAutocompleteProps as __unstableUseAutocompleteProps,
24
24
  } from './autocomplete';
25
25
  export { default as BaseControl } from './base-control';
26
+ export {
27
+ BorderBoxControl as __experimentalBorderBoxControl,
28
+ hasSplitBorders as __experimentalHasSplitBorders,
29
+ isDefinedBorder as __experimentalIsDefinedBorder,
30
+ isEmptyBorder as __experimentalIsEmptyBorder,
31
+ } from './border-box-control';
32
+ export { BorderControl as __experimentalBorderControl } from './border-control';
26
33
  export { default as __experimentalBoxControl } from './box-control';
27
34
  export { default as Button } from './button';
28
35
  export { default as ButtonGroup } from './button-group';
@@ -139,6 +146,7 @@ export { default as ToggleControl } from './toggle-control';
139
146
  export {
140
147
  ToggleGroupControl as __experimentalToggleGroupControl,
141
148
  ToggleGroupControlOption as __experimentalToggleGroupControlOption,
149
+ ToggleGroupControlOptionIcon as __experimentalToggleGroupControlOptionIcon,
142
150
  } from './toggle-group-control';
143
151
  export { default as Toolbar } from './toolbar';
144
152
  export { default as ToolbarButton } from './toolbar-button';