@wordpress/components 19.7.0-next.e230fbab09.0 → 19.8.1

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 (539) hide show
  1. package/CHANGELOG.md +57 -1
  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/guide/index.js +14 -8
  88. package/build/guide/index.js.map +1 -1
  89. package/build/index.js +40 -0
  90. package/build/index.js.map +1 -1
  91. package/build/input-control/input-field.js +21 -14
  92. package/build/input-control/input-field.js.map +1 -1
  93. package/build/input-control/reducer/actions.js +1 -3
  94. package/build/input-control/reducer/actions.js.map +1 -1
  95. package/build/input-control/reducer/reducer.js +1 -43
  96. package/build/input-control/reducer/reducer.js.map +1 -1
  97. package/build/item-group/styles.js +14 -14
  98. package/build/item-group/styles.js.map +1 -1
  99. package/build/mobile/picker/index.android.js +0 -3
  100. package/build/mobile/picker/index.android.js.map +1 -1
  101. package/build/number-control/index.js +15 -10
  102. package/build/number-control/index.js.map +1 -1
  103. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  104. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  105. package/build/surface/styles.js +8 -8
  106. package/build/surface/styles.js.map +1 -1
  107. package/build/toggle-group-control/index.js +8 -0
  108. package/build/toggle-group-control/index.js.map +1 -1
  109. package/build/toggle-group-control/toggle-group-control/component.js +10 -1
  110. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  111. package/build/toggle-group-control/toggle-group-control/styles.js +14 -3
  112. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  113. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +90 -0
  114. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  115. package/build/toggle-group-control/toggle-group-control-option/component.js +9 -90
  116. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  117. package/build/toggle-group-control/toggle-group-control-option-base/component.js +127 -0
  118. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  119. package/build/toggle-group-control/toggle-group-control-option-base/index.js +16 -0
  120. package/build/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  121. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +66 -0
  122. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  123. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +55 -0
  124. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  125. package/build/toggle-group-control/toggle-group-control-option-icon/index.js +16 -0
  126. package/build/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  127. package/build/toolbar-dropdown-menu/index.js +1 -1
  128. package/build/toolbar-dropdown-menu/index.js.map +1 -1
  129. package/build/tree-grid/index.js +4 -1
  130. package/build/tree-grid/index.js.map +1 -1
  131. package/build/unit-control/index.js +56 -29
  132. package/build/unit-control/index.js.map +1 -1
  133. package/build/unit-control/unit-select-control.js +2 -4
  134. package/build/unit-control/unit-select-control.js.map +1 -1
  135. package/build/utils/colors-values.js +5 -3
  136. package/build/utils/colors-values.js.map +1 -1
  137. package/build/utils/config-values.js +9 -4
  138. package/build/utils/config-values.js.map +1 -1
  139. package/build-module/base-control/index.js +39 -35
  140. package/build-module/base-control/index.js.map +1 -1
  141. package/build-module/base-control/styles/base-control-styles.js +44 -16
  142. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  143. package/build-module/base-control/types.js +2 -0
  144. package/build-module/base-control/types.js.map +1 -0
  145. package/build-module/border-box-control/border-box-control/component.js +104 -0
  146. package/build-module/border-box-control/border-box-control/component.js.map +1 -0
  147. package/build-module/border-box-control/border-box-control/hook.js +97 -0
  148. package/build-module/border-box-control/border-box-control/hook.js.map +1 -0
  149. package/build-module/border-box-control/border-box-control/index.js +3 -0
  150. package/build-module/border-box-control/border-box-control/index.js.map +1 -0
  151. package/build-module/border-box-control/border-box-control-linked-button/component.js +42 -0
  152. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  153. package/build-module/border-box-control/border-box-control-linked-button/hook.js +26 -0
  154. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  155. package/build-module/border-box-control/border-box-control-linked-button/index.js +2 -0
  156. package/build-module/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  157. package/build-module/border-box-control/border-box-control-split-controls/component.js +77 -0
  158. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  159. package/build-module/border-box-control/border-box-control-split-controls/hook.js +30 -0
  160. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  161. package/build-module/border-box-control/border-box-control-split-controls/index.js +2 -0
  162. package/build-module/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  163. package/build-module/border-box-control/border-box-control-visualizer/component.js +27 -0
  164. package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  165. package/build-module/border-box-control/border-box-control-visualizer/hook.js +28 -0
  166. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  167. package/build-module/border-box-control/border-box-control-visualizer/index.js +2 -0
  168. package/build-module/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  169. package/build-module/border-box-control/index.js +4 -0
  170. package/build-module/border-box-control/index.js.map +1 -0
  171. package/build-module/border-box-control/styles.js +66 -0
  172. package/build-module/border-box-control/styles.js.map +1 -0
  173. package/build-module/border-box-control/types.js +2 -0
  174. package/build-module/border-box-control/types.js.map +1 -0
  175. package/build-module/border-box-control/utils.js +127 -0
  176. package/build-module/border-box-control/utils.js.map +1 -0
  177. package/build-module/border-control/border-control/component.js +100 -0
  178. package/build-module/border-control/border-control/component.js.map +1 -0
  179. package/build-module/border-control/border-control/hook.js +115 -0
  180. package/build-module/border-control/border-control/hook.js.map +1 -0
  181. package/build-module/border-control/border-control/index.js +3 -0
  182. package/build-module/border-control/border-control/index.js.map +1 -0
  183. package/build-module/border-control/border-control-dropdown/component.js +174 -0
  184. package/build-module/border-control/border-control-dropdown/component.js.map +1 -0
  185. package/build-module/border-control/border-control-dropdown/hook.js +89 -0
  186. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -0
  187. package/build-module/border-control/border-control-dropdown/index.js +2 -0
  188. package/build-module/border-control/border-control-dropdown/index.js.map +1 -0
  189. package/build-module/border-control/border-control-style-picker/component.js +81 -0
  190. package/build-module/border-control/border-control-style-picker/component.js.map +1 -0
  191. package/build-module/border-control/border-control-style-picker/hook.js +30 -0
  192. package/build-module/border-control/border-control-style-picker/hook.js.map +1 -0
  193. package/build-module/border-control/border-control-style-picker/index.js +2 -0
  194. package/build-module/border-control/border-control-style-picker/index.js.map +1 -0
  195. package/build-module/border-control/index.js +3 -0
  196. package/build-module/border-control/index.js.map +1 -0
  197. package/build-module/border-control/styles.js +90 -0
  198. package/build-module/border-control/styles.js.map +1 -0
  199. package/build-module/border-control/types.js +2 -0
  200. package/build-module/border-control/types.js.map +1 -0
  201. package/build-module/box-control/all-input-control.js +4 -8
  202. package/build-module/box-control/all-input-control.js.map +1 -1
  203. package/build-module/box-control/axial-input-controls.js +18 -14
  204. package/build-module/box-control/axial-input-controls.js.map +1 -1
  205. package/build-module/box-control/input-controls.js +18 -14
  206. package/build-module/box-control/input-controls.js.map +1 -1
  207. package/build-module/box-control/utils.js +25 -11
  208. package/build-module/box-control/utils.js.map +1 -1
  209. package/build-module/card/styles.js +23 -18
  210. package/build-module/card/styles.js.map +1 -1
  211. package/build-module/checkbox-control/index.js +24 -3
  212. package/build-module/checkbox-control/index.js.map +1 -1
  213. package/build-module/color-palette/index.js +52 -4
  214. package/build-module/color-palette/index.js.map +1 -1
  215. package/build-module/custom-select-control/index.js +12 -4
  216. package/build-module/custom-select-control/index.js.map +1 -1
  217. package/build-module/divider/styles.js +29 -10
  218. package/build-module/divider/styles.js.map +1 -1
  219. package/build-module/focal-point-picker/controls.js +2 -3
  220. package/build-module/focal-point-picker/controls.js.map +1 -1
  221. package/build-module/form-file-upload/index.js +4 -1
  222. package/build-module/form-file-upload/index.js.map +1 -1
  223. package/build-module/guide/index.js +14 -8
  224. package/build-module/guide/index.js.map +1 -1
  225. package/build-module/index.js +3 -1
  226. package/build-module/index.js.map +1 -1
  227. package/build-module/input-control/input-field.js +21 -13
  228. package/build-module/input-control/input-field.js.map +1 -1
  229. package/build-module/input-control/reducer/actions.js +0 -1
  230. package/build-module/input-control/reducer/actions.js.map +1 -1
  231. package/build-module/input-control/reducer/reducer.js +2 -39
  232. package/build-module/input-control/reducer/reducer.js.map +1 -1
  233. package/build-module/item-group/styles.js +14 -14
  234. package/build-module/item-group/styles.js.map +1 -1
  235. package/build-module/mobile/picker/index.android.js +0 -3
  236. package/build-module/mobile/picker/index.android.js.map +1 -1
  237. package/build-module/number-control/index.js +15 -9
  238. package/build-module/number-control/index.js.map +1 -1
  239. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  240. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  241. package/build-module/surface/styles.js +8 -8
  242. package/build-module/surface/styles.js.map +1 -1
  243. package/build-module/toggle-group-control/index.js +1 -0
  244. package/build-module/toggle-group-control/index.js.map +1 -1
  245. package/build-module/toggle-group-control/toggle-group-control/component.js +8 -1
  246. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  247. package/build-module/toggle-group-control/toggle-group-control/styles.js +11 -3
  248. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  249. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +86 -0
  250. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  251. package/build-module/toggle-group-control/toggle-group-control-option/component.js +9 -79
  252. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  253. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +105 -0
  254. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  255. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js +2 -0
  256. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  257. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +55 -0
  258. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  259. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +50 -0
  260. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  261. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js +2 -0
  262. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  263. package/build-module/toolbar-dropdown-menu/index.js +1 -1
  264. package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
  265. package/build-module/tree-grid/index.js +4 -1
  266. package/build-module/tree-grid/index.js.map +1 -1
  267. package/build-module/unit-control/index.js +54 -27
  268. package/build-module/unit-control/index.js.map +1 -1
  269. package/build-module/unit-control/unit-select-control.js +2 -3
  270. package/build-module/unit-control/unit-select-control.js.map +1 -1
  271. package/build-module/utils/colors-values.js +5 -3
  272. package/build-module/utils/colors-values.js.map +1 -1
  273. package/build-module/utils/config-values.js +8 -4
  274. package/build-module/utils/config-values.js.map +1 -1
  275. package/build-style/style-rtl.css +33 -185
  276. package/build-style/style.css +33 -185
  277. package/build-types/base-control/index.d.ts +35 -71
  278. package/build-types/base-control/index.d.ts.map +1 -1
  279. package/build-types/base-control/stories/index.d.ts +25 -0
  280. package/build-types/base-control/stories/index.d.ts.map +1 -0
  281. package/build-types/base-control/styles/base-control-styles.d.ts +10 -5
  282. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  283. package/build-types/base-control/types.d.ts +41 -0
  284. package/build-types/base-control/types.d.ts.map +1 -0
  285. package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
  286. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -0
  287. package/build-types/border-box-control/border-box-control/hook.d.ts +282 -0
  288. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -0
  289. package/build-types/border-box-control/border-box-control/index.d.ts +3 -0
  290. package/build-types/border-box-control/border-box-control/index.d.ts.map +1 -0
  291. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -0
  292. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -0
  293. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +266 -0
  294. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -0
  295. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts +2 -0
  296. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts.map +1 -0
  297. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -0
  298. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -0
  299. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +274 -0
  300. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -0
  301. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts +2 -0
  302. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts.map +1 -0
  303. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +4 -0
  304. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -0
  305. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +266 -0
  306. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -0
  307. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts +2 -0
  308. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts.map +1 -0
  309. package/build-types/border-box-control/index.d.ts +4 -0
  310. package/build-types/border-box-control/index.d.ts.map +1 -0
  311. package/build-types/border-box-control/styles.d.ts +8 -0
  312. package/build-types/border-box-control/styles.d.ts.map +1 -0
  313. package/build-types/border-box-control/types.d.ts +91 -0
  314. package/build-types/border-box-control/types.d.ts.map +1 -0
  315. package/build-types/border-box-control/utils.d.ts +24 -0
  316. package/build-types/border-box-control/utils.d.ts.map +1 -0
  317. package/build-types/border-control/border-control/component.d.ts +4 -0
  318. package/build-types/border-control/border-control/component.d.ts.map +1 -0
  319. package/build-types/border-control/border-control/hook.d.ts +285 -0
  320. package/build-types/border-control/border-control/hook.d.ts.map +1 -0
  321. package/build-types/border-control/border-control/index.d.ts +3 -0
  322. package/build-types/border-control/border-control/index.d.ts.map +1 -0
  323. package/build-types/border-control/border-control-dropdown/component.d.ts +4 -0
  324. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -0
  325. package/build-types/border-control/border-control-dropdown/hook.d.ts +280 -0
  326. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -0
  327. package/build-types/border-control/border-control-dropdown/index.d.ts +2 -0
  328. package/build-types/border-control/border-control-dropdown/index.d.ts.map +1 -0
  329. package/build-types/border-control/border-control-style-picker/component.d.ts +4 -0
  330. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -0
  331. package/build-types/border-control/border-control-style-picker/hook.d.ts +269 -0
  332. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -0
  333. package/build-types/border-control/border-control-style-picker/index.d.ts +2 -0
  334. package/build-types/border-control/border-control-style-picker/index.d.ts.map +1 -0
  335. package/build-types/border-control/index.d.ts +3 -0
  336. package/build-types/border-control/index.d.ts.map +1 -0
  337. package/build-types/border-control/styles.d.ts +18 -0
  338. package/build-types/border-control/styles.d.ts.map +1 -0
  339. package/build-types/border-control/types.d.ts +163 -0
  340. package/build-types/border-control/types.d.ts.map +1 -0
  341. package/build-types/card/card-divider/hook.d.ts +1 -1
  342. package/build-types/card/styles.d.ts.map +1 -1
  343. package/build-types/color-indicator/index.d.ts +7 -0
  344. package/build-types/color-indicator/index.d.ts.map +1 -0
  345. package/build-types/color-palette/index.d.ts.map +1 -1
  346. package/build-types/color-picker/styles.d.ts +1 -1
  347. package/build-types/divider/stories/index.d.ts +1 -0
  348. package/build-types/divider/stories/index.d.ts.map +1 -1
  349. package/build-types/divider/styles.d.ts.map +1 -1
  350. package/build-types/divider/types.d.ts +8 -1
  351. package/build-types/divider/types.d.ts.map +1 -1
  352. package/build-types/input-control/input-field.d.ts.map +1 -1
  353. package/build-types/input-control/reducer/actions.d.ts +1 -3
  354. package/build-types/input-control/reducer/actions.d.ts.map +1 -1
  355. package/build-types/input-control/reducer/reducer.d.ts +3 -9
  356. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  357. package/build-types/input-control/stories/index.d.ts +17 -0
  358. package/build-types/input-control/stories/index.d.ts.map +1 -0
  359. package/build-types/input-control/types.d.ts +2 -2
  360. package/build-types/input-control/types.d.ts.map +1 -1
  361. package/build-types/item-group/styles.d.ts.map +1 -1
  362. package/build-types/number-control/index.d.ts +3 -3
  363. package/build-types/number-control/index.d.ts.map +1 -1
  364. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  365. package/build-types/resizable-box/resize-tooltip/styles/resize-tooltip.styles.d.ts.map +1 -1
  366. package/build-types/spinner/styles/spinner-styles.d.ts +5 -0
  367. package/build-types/spinner/styles/spinner-styles.d.ts.map +1 -0
  368. package/build-types/toggle-group-control/index.d.ts +1 -0
  369. package/build-types/toggle-group-control/index.d.ts.map +1 -1
  370. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  371. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
  372. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  373. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +9 -0
  374. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -0
  375. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -2
  376. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  377. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts +0 -4
  378. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +1 -1
  379. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +25 -0
  380. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -0
  381. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts +2 -0
  382. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts.map +1 -0
  383. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +15 -0
  384. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -0
  385. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +37 -0
  386. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -0
  387. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts +2 -0
  388. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts.map +1 -0
  389. package/build-types/toggle-group-control/types.d.ts +24 -8
  390. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  391. package/build-types/ui/form-group/form-group.d.ts +2 -2
  392. package/build-types/unit-control/index.d.ts +12 -5
  393. package/build-types/unit-control/index.d.ts.map +1 -1
  394. package/build-types/unit-control/stories/index.d.ts +33 -0
  395. package/build-types/unit-control/stories/index.d.ts.map +1 -0
  396. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  397. package/build-types/unit-control/types.d.ts +28 -7
  398. package/build-types/unit-control/types.d.ts.map +1 -1
  399. package/build-types/unit-control/unit-select-control.d.ts.map +1 -1
  400. package/build-types/utils/colors-values.d.ts +78 -18
  401. package/build-types/utils/colors-values.d.ts.map +1 -1
  402. package/build-types/utils/config-values.d.ts +71 -71
  403. package/build-types/utils/config-values.d.ts.map +1 -1
  404. package/package.json +17 -17
  405. package/src/animate/README.md +1 -1
  406. package/src/base-control/README.md +20 -12
  407. package/src/base-control/index.tsx +124 -0
  408. package/src/base-control/stories/index.tsx +80 -0
  409. package/src/base-control/styles/{base-control-styles.js → base-control-styles.ts} +23 -1
  410. package/src/base-control/types.ts +42 -0
  411. package/src/border-box-control/border-box-control/README.md +178 -0
  412. package/src/border-box-control/border-box-control/component.tsx +123 -0
  413. package/src/border-box-control/border-box-control/hook.ts +119 -0
  414. package/src/border-box-control/border-box-control/index.ts +2 -0
  415. package/src/border-box-control/border-box-control-linked-button/component.tsx +50 -0
  416. package/src/border-box-control/border-box-control-linked-button/hook.ts +30 -0
  417. package/src/border-box-control/border-box-control-linked-button/index.ts +1 -0
  418. package/src/border-box-control/border-box-control-split-controls/component.tsx +90 -0
  419. package/src/border-box-control/border-box-control-split-controls/hook.ts +34 -0
  420. package/src/border-box-control/border-box-control-split-controls/index.ts +1 -0
  421. package/src/border-box-control/border-box-control-visualizer/component.tsx +28 -0
  422. package/src/border-box-control/border-box-control-visualizer/hook.ts +30 -0
  423. package/src/border-box-control/border-box-control-visualizer/index.ts +1 -0
  424. package/src/border-box-control/index.ts +3 -0
  425. package/src/border-box-control/stories/index.js +104 -0
  426. package/src/border-box-control/styles.ts +69 -0
  427. package/src/border-box-control/test/index.js +354 -0
  428. package/src/border-box-control/test/utils.js +305 -0
  429. package/src/border-box-control/types.ts +98 -0
  430. package/src/border-box-control/utils.ts +151 -0
  431. package/src/border-control/border-control/README.md +181 -0
  432. package/src/border-control/border-control/component.tsx +112 -0
  433. package/src/border-control/border-control/hook.ts +145 -0
  434. package/src/border-control/border-control/index.ts +2 -0
  435. package/src/border-control/border-control-dropdown/component.tsx +252 -0
  436. package/src/border-control/border-control-dropdown/hook.ts +98 -0
  437. package/src/border-control/border-control-dropdown/index.ts +1 -0
  438. package/src/border-control/border-control-style-picker/component.tsx +89 -0
  439. package/src/border-control/border-control-style-picker/hook.ts +34 -0
  440. package/src/border-control/border-control-style-picker/index.ts +1 -0
  441. package/src/border-control/index.ts +2 -0
  442. package/src/border-control/stories/index.js +118 -0
  443. package/src/border-control/styles.ts +190 -0
  444. package/src/border-control/test/index.js +436 -0
  445. package/src/border-control/types.ts +173 -0
  446. package/src/box-control/all-input-control.js +2 -10
  447. package/src/box-control/axial-input-controls.js +32 -21
  448. package/src/box-control/input-controls.js +30 -19
  449. package/src/box-control/utils.js +29 -12
  450. package/src/card/styles.js +11 -5
  451. package/src/card/test/__snapshots__/index.js.snap +83 -66
  452. package/src/card/test/index.js +7 -5
  453. package/src/checkbox-control/index.js +34 -3
  454. package/src/checkbox-control/stories/index.js +44 -0
  455. package/src/checkbox-control/style.scss +4 -2
  456. package/src/color-palette/README.md +6 -0
  457. package/src/color-palette/index.js +73 -8
  458. package/src/color-palette/stories/index.js +69 -26
  459. package/src/color-palette/style.scss +11 -3
  460. package/src/color-palette/test/__snapshots__/index.js.snap +662 -12
  461. package/src/color-palette/test/index.js +1 -1
  462. package/src/custom-select-control/index.js +15 -3
  463. package/src/custom-select-control/stories/index.js +77 -74
  464. package/src/custom-select-control/style.scss +23 -4
  465. package/src/disabled/README.md +7 -10
  466. package/src/divider/stories/index.tsx +26 -23
  467. package/src/divider/styles.ts +9 -0
  468. package/src/divider/types.ts +11 -1
  469. package/src/flyout/test/__snapshots__/index.js.snap +7 -7
  470. package/src/focal-point-picker/controls.js +2 -3
  471. package/src/font-size-picker/test/index.js +0 -2
  472. package/src/form-file-upload/README.md +18 -0
  473. package/src/form-file-upload/index.js +3 -0
  474. package/src/form-file-upload/test/index.js +73 -11
  475. package/src/form-toggle/README.md +1 -1
  476. package/src/guide/index.js +12 -13
  477. package/src/guide/style.scss +0 -4
  478. package/src/index.js +8 -0
  479. package/src/input-control/input-field.tsx +23 -12
  480. package/src/input-control/reducer/actions.ts +1 -7
  481. package/src/input-control/reducer/reducer.ts +0 -29
  482. package/src/input-control/types.ts +2 -1
  483. package/src/item-group/styles.ts +1 -0
  484. package/src/item-group/test/__snapshots__/index.js.snap +11 -10
  485. package/src/mobile/picker/index.android.js +0 -1
  486. package/src/number-control/README.md +14 -0
  487. package/src/number-control/index.js +13 -12
  488. package/src/number-control/stories/index.js +14 -7
  489. package/src/number-control/test/index.js +79 -1
  490. package/src/range-control/stories/index.js +91 -119
  491. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +1 -0
  492. package/src/surface/styles.js +1 -1
  493. package/src/surface/test/__snapshots__/index.js.snap +11 -11
  494. package/src/toggle-group-control/index.ts +1 -0
  495. package/src/toggle-group-control/stories/index.js +37 -7
  496. package/src/toggle-group-control/test/__snapshots__/index.js.snap +269 -32
  497. package/src/toggle-group-control/test/index.js +43 -10
  498. package/src/toggle-group-control/toggle-group-control/component.tsx +10 -0
  499. package/src/toggle-group-control/toggle-group-control/styles.ts +14 -0
  500. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +86 -0
  501. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
  502. package/src/toggle-group-control/toggle-group-control-option/component.tsx +18 -97
  503. package/src/toggle-group-control/toggle-group-control-option-base/README.md +27 -0
  504. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +129 -0
  505. package/src/toggle-group-control/toggle-group-control-option-base/index.ts +1 -0
  506. package/src/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.ts +4 -13
  507. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +56 -0
  508. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +56 -0
  509. package/src/toggle-group-control/toggle-group-control-option-icon/index.ts +1 -0
  510. package/src/toggle-group-control/types.ts +33 -8
  511. package/src/toolbar-dropdown-menu/index.js +1 -1
  512. package/src/toolbar-group/style.scss +0 -73
  513. package/src/tools-panel/test/__snapshots__/index.js.snap +8 -8
  514. package/src/tree-grid/README.md +1 -1
  515. package/src/tree-grid/index.js +4 -0
  516. package/src/tree-grid/test/index.js +61 -17
  517. package/src/unit-control/README.md +7 -3
  518. package/src/unit-control/index.tsx +65 -31
  519. package/src/unit-control/stories/index.tsx +170 -0
  520. package/src/unit-control/test/index.js +263 -100
  521. package/src/unit-control/types.ts +65 -42
  522. package/src/unit-control/unit-select-control.tsx +2 -3
  523. package/src/utils/colors-values.js +4 -3
  524. package/src/utils/config-values.js +9 -4
  525. package/tsconfig.json +3 -0
  526. package/tsconfig.tsbuildinfo +1 -1
  527. package/build/guide/finish-button.js +0 -44
  528. package/build/guide/finish-button.js.map +0 -1
  529. package/build/toggle-group-control/toggle-group-control-option/styles.js +0 -73
  530. package/build/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  531. package/build-module/guide/finish-button.js +0 -34
  532. package/build-module/guide/finish-button.js.map +0 -1
  533. package/build-module/toggle-group-control/toggle-group-control-option/styles.js +0 -61
  534. package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  535. package/src/base-control/index.js +0 -111
  536. package/src/base-control/stories/index.js +0 -81
  537. package/src/guide/finish-button.js +0 -26
  538. package/src/guide/test/finish-button.js +0 -49
  539. 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
  />
@@ -203,7 +203,6 @@ describe( 'FontSizePicker', () => {
203
203
  );
204
204
  const element = screen.getByLabelText( 'Large' );
205
205
  expect( element ).toBeInTheDocument();
206
- expect( element.children ).toHaveLength( 2 );
207
206
  expect( element.children[ 0 ].textContent ).toBe( '1.7' );
208
207
  } );
209
208
  it( 'should use incremental sequence of numbers as labels if we have complex css', () => {
@@ -223,7 +222,6 @@ describe( 'FontSizePicker', () => {
223
222
  );
224
223
  const element = screen.getByLabelText( 'Large' );
225
224
  expect( element ).toBeInTheDocument();
226
- expect( element.children ).toHaveLength( 2 );
227
225
  expect( element.children[ 0 ].textContent ).toBe( '3' );
228
226
  } );
229
227
  } );
@@ -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
  };