@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
@@ -7,6 +7,7 @@ import { noop } from 'lodash';
7
7
  * Internal dependencies
8
8
  */
9
9
  import UnitControl from './unit-control';
10
+ import { parseQuantityAndUnitFromRawValue } from '../unit-control/utils';
10
11
  import { ALL_SIDES, LABELS } from './utils';
11
12
  import { LayoutContainer, Layout } from './styles/box-control-styles';
12
13
 
@@ -91,25 +92,35 @@ export default function BoxInputControls( {
91
92
  align="top"
92
93
  className="component-box-control__input-controls"
93
94
  >
94
- { filteredSides.map( ( side ) => (
95
- <UnitControl
96
- { ...props }
97
- isFirst={ first === side }
98
- isLast={ last === side }
99
- isOnly={ only === side }
100
- value={ values[ side ] }
101
- unit={
102
- values[ side ] ? undefined : selectedUnits[ side ]
103
- }
104
- onChange={ createHandleOnChange( side ) }
105
- onUnitChange={ createHandleOnUnitChange( side ) }
106
- onFocus={ createHandleOnFocus( side ) }
107
- onHoverOn={ createHandleOnHoverOn( side ) }
108
- onHoverOff={ createHandleOnHoverOff( side ) }
109
- label={ LABELS[ side ] }
110
- key={ `box-control-${ side }` }
111
- />
112
- ) ) }
95
+ { filteredSides.map( ( side ) => {
96
+ const [
97
+ parsedQuantity,
98
+ parsedUnit,
99
+ ] = parseQuantityAndUnitFromRawValue( values[ side ] );
100
+
101
+ const computedUnit = values[ side ]
102
+ ? parsedUnit
103
+ : selectedUnits[ side ];
104
+
105
+ return (
106
+ <UnitControl
107
+ { ...props }
108
+ isFirst={ first === side }
109
+ isLast={ last === side }
110
+ isOnly={ only === side }
111
+ value={ [ parsedQuantity, computedUnit ].join(
112
+ ''
113
+ ) }
114
+ onChange={ createHandleOnChange( side ) }
115
+ onUnitChange={ createHandleOnUnitChange( side ) }
116
+ onFocus={ createHandleOnFocus( side ) }
117
+ onHoverOn={ createHandleOnHoverOn( side ) }
118
+ onHoverOff={ createHandleOnHoverOff( side ) }
119
+ label={ LABELS[ side ] }
120
+ key={ `box-control-${ side }` }
121
+ />
122
+ );
123
+ } ) }
113
124
  </Layout>
114
125
  </LayoutContainer>
115
126
  );
@@ -61,24 +61,32 @@ function mode( arr ) {
61
61
  * Gets the 'all' input value and unit from values data.
62
62
  *
63
63
  * @param {Object} values Box values.
64
+ * @param {Object} selectedUnits Box units.
64
65
  * @param {Array} availableSides Available box sides to evaluate.
65
66
  *
66
67
  * @return {string} A value + unit for the 'all' input.
67
68
  */
68
- export function getAllValue( values = {}, availableSides = ALL_SIDES ) {
69
+ export function getAllValue(
70
+ values = {},
71
+ selectedUnits,
72
+ availableSides = ALL_SIDES
73
+ ) {
69
74
  const sides = normalizeSides( availableSides );
70
75
  const parsedQuantitiesAndUnits = sides.map( ( side ) =>
71
76
  parseQuantityAndUnitFromRawValue( values[ side ] )
72
77
  );
73
- const allValues = parsedQuantitiesAndUnits.map(
78
+ const allParsedQuantities = parsedQuantitiesAndUnits.map(
74
79
  ( value ) => value[ 0 ] ?? ''
75
80
  );
76
- const allUnits = parsedQuantitiesAndUnits.map( ( value ) => value[ 1 ] );
81
+ const allParsedUnits = parsedQuantitiesAndUnits.map(
82
+ ( value ) => value[ 1 ]
83
+ );
77
84
 
78
- const value = allValues.every( ( v ) => v === allValues[ 0 ] )
79
- ? allValues[ 0 ]
85
+ const commonQuantity = allParsedQuantities.every(
86
+ ( v ) => v === allParsedQuantities[ 0 ]
87
+ )
88
+ ? allParsedQuantities[ 0 ]
80
89
  : '';
81
- const unit = mode( allUnits );
82
90
 
83
91
  /**
84
92
  * The isNumber check is important. On reset actions, the incoming value
@@ -89,9 +97,17 @@ export function getAllValue( values = {}, availableSides = ALL_SIDES ) {
89
97
  * isNumber() is more specific for these cases, rather than relying on a
90
98
  * simple truthy check.
91
99
  */
92
- const allValue = isNumber( value ) ? `${ value }${ unit }` : undefined;
100
+ let commonUnit;
101
+ if ( isNumber( commonQuantity ) ) {
102
+ commonUnit = mode( allParsedUnits );
103
+ } else {
104
+ // Set meaningful unit selection if no commonQuantity and user has previously
105
+ // selected units without assigning values while controls were unlinked.
106
+ commonUnit =
107
+ getAllUnitFallback( selectedUnits ) ?? mode( allParsedUnits );
108
+ }
93
109
 
94
- return allValue;
110
+ return [ commonQuantity, commonUnit ].join( '' );
95
111
  }
96
112
 
97
113
  /**
@@ -113,13 +129,14 @@ export function getAllUnitFallback( selectedUnits ) {
113
129
  /**
114
130
  * Checks to determine if values are mixed.
115
131
  *
116
- * @param {Object} values Box values.
117
- * @param {Array} sides Available box sides to evaluate.
132
+ * @param {Object} values Box values.
133
+ * @param {Object} selectedUnits Box units.
134
+ * @param {Array} sides Available box sides to evaluate.
118
135
  *
119
136
  * @return {boolean} Whether values are mixed.
120
137
  */
121
- export function isValuesMixed( values = {}, sides = ALL_SIDES ) {
122
- const allValue = getAllValue( values, sides );
138
+ export function isValuesMixed( values = {}, selectedUnits, sides = ALL_SIDES ) {
139
+ const allValue = getAllValue( values, selectedUnits, sides );
123
140
  const isMixed = isNaN( parseFloat( allValue ) );
124
141
 
125
142
  return isMixed;
@@ -8,6 +8,12 @@ import { css } from '@emotion/react';
8
8
  */
9
9
  import { COLORS, CONFIG } from '../utils';
10
10
 
11
+ // Since the border for `Card` is rendered via the `box-shadow` property
12
+ // (as opposed to the `border` property), the value of the border radius needs
13
+ // to be adjusted by removing 1px (this is because the `box-shadow` renders
14
+ // as an "outer radius").
15
+ const adjustedBorderRadius = `calc(${ CONFIG.cardBorderRadius } - 1px)`;
16
+
11
17
  export const Card = css`
12
18
  box-shadow: 0 0 0 1px ${ CONFIG.surfaceBorderColor };
13
19
  outline: none;
@@ -62,13 +68,13 @@ export const Divider = css`
62
68
 
63
69
  export const borderRadius = css`
64
70
  &:first-of-type {
65
- border-top-left-radius: ${ CONFIG.cardBorderRadius };
66
- border-top-right-radius: ${ CONFIG.cardBorderRadius };
71
+ border-top-left-radius: ${ adjustedBorderRadius };
72
+ border-top-right-radius: ${ adjustedBorderRadius };
67
73
  }
68
74
 
69
75
  &:last-of-type {
70
- border-bottom-left-radius: ${ CONFIG.cardBorderRadius };
71
- border-bottom-right-radius: ${ CONFIG.cardBorderRadius };
76
+ border-bottom-left-radius: ${ adjustedBorderRadius };
77
+ border-bottom-right-radius: ${ adjustedBorderRadius };
72
78
  }
73
79
  `;
74
80
 
@@ -85,7 +91,7 @@ export const borderless = css`
85
91
  `;
86
92
 
87
93
  export const rounded = css`
88
- border-radius: ${ CONFIG.cardBorderRadius };
94
+ border-radius: ${ adjustedBorderRadius };
89
95
  `;
90
96
 
91
97
  const xSmallCardPadding = css`
@@ -8,8 +8,8 @@ Snapshot Diff:
8
8
  @@ -1,8 +1,8 @@
9
9
  <div>
10
10
  <div
11
- - class="components-card__body components-card-body css-1lr0m0h-View-Body-borderRadius-medium em57xhy0"
12
- + class="components-scrollable components-card__body components-card-body css-qqu4qj-View-Scrollable-scrollableScrollbar-scrollY-Body-borderRadius-medium em57xhy0"
11
+ - class="components-card__body components-card-body css-1nwhnu3-View-Body-borderRadius-medium em57xhy0"
12
+ + class="components-scrollable components-card__body components-card-body css-1w878rm-View-Scrollable-scrollableScrollbar-scrollY-Body-borderRadius-medium em57xhy0"
13
13
  data-wp-c16t="true"
14
14
  data-wp-component="CardBody"
15
15
  >
@@ -25,8 +25,8 @@ Snapshot Diff:
25
25
  @@ -1,8 +1,8 @@
26
26
  <div>
27
27
  <div
28
- - class="components-card__body components-card-body css-1lr0m0h-View-Body-borderRadius-medium em57xhy0"
29
- + class="components-card__body components-card-body css-19nlika-View-Body-borderRadius-medium-shady em57xhy0"
28
+ - class="components-card__body components-card-body css-1nwhnu3-View-Body-borderRadius-medium em57xhy0"
29
+ + class="components-card__body components-card-body css-kqnlb3-View-Body-borderRadius-medium-shady em57xhy0"
30
30
  data-wp-c16t="true"
31
31
  data-wp-component="CardBody"
32
32
  >
@@ -42,8 +42,8 @@ Snapshot Diff:
42
42
  @@ -1,8 +1,8 @@
43
43
  <div>
44
44
  <div
45
- - class="components-flex components-card__footer components-card-footer css-otmewz-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium em57xhy0"
46
- + class="components-flex components-card__footer components-card-footer css-f5ly6j-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium-shady em57xhy0"
45
+ - class="components-flex components-card__footer components-card-footer css-p1v47q-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium em57xhy0"
46
+ + class="components-flex components-card__footer components-card-footer css-1xx98hc-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium-shady em57xhy0"
47
47
  data-wp-c16t="true"
48
48
  data-wp-component="CardFooter"
49
49
  >
@@ -59,8 +59,8 @@ Snapshot Diff:
59
59
  @@ -1,8 +1,8 @@
60
60
  <div>
61
61
  <div
62
- - class="components-flex components-card__footer components-card-footer css-otmewz-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium em57xhy0"
63
- + class="components-flex components-card__footer components-card-footer css-sonr8h-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium em57xhy0"
62
+ - class="components-flex components-card__footer components-card-footer css-p1v47q-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium em57xhy0"
63
+ + class="components-flex components-card__footer components-card-footer css-gg08fg-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-medium em57xhy0"
64
64
  data-wp-c16t="true"
65
65
  data-wp-component="CardFooter"
66
66
  >
@@ -76,8 +76,8 @@ Snapshot Diff:
76
76
  @@ -1,8 +1,8 @@
77
77
  <div>
78
78
  <div
79
- - class="components-flex components-card__header components-card-header css-cw4qrt-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-medium em57xhy0"
80
- + class="components-flex components-card__header components-card-header css-d00z5k-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-medium-shady em57xhy0"
79
+ - class="components-flex components-card__header components-card-header css-1g5oj2q-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-medium em57xhy0"
80
+ + class="components-flex components-card__header components-card-header css-121pfkj-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-medium-shady em57xhy0"
81
81
  data-wp-c16t="true"
82
82
  data-wp-component="CardHeader"
83
83
  >
@@ -96,16 +96,16 @@ Snapshot Diff:
96
96
  class="css-mgwsf4-View-Content em57xhy0"
97
97
  >
98
98
  <div
99
- - class="components-flex components-card__header components-card-header css-cw4qrt-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-medium em57xhy0"
100
- + class="components-flex components-card__header components-card-header css-1dtpden-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-large em57xhy0"
99
+ - class="components-flex components-card__header components-card-header css-1g5oj2q-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-medium em57xhy0"
100
+ + class="components-flex components-card__header components-card-header css-1e8ifbz-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-large em57xhy0"
101
101
  data-wp-c16t="true"
102
102
  data-wp-component="CardHeader"
103
103
  >
104
104
  Header
105
105
  </div>
106
106
  <div
107
- - class="components-card__body components-card-body css-1lr0m0h-View-Body-borderRadius-medium em57xhy0"
108
- + class="components-card__body components-card-body css-bwr6fa-View-Body-borderRadius-large em57xhy0"
107
+ - class="components-card__body components-card-body css-1nwhnu3-View-Body-borderRadius-medium em57xhy0"
108
+ + class="components-card__body components-card-body css-1nonx1n-View-Body-borderRadius-large em57xhy0"
109
109
  data-wp-c16t="true"
110
110
  data-wp-component="CardBody"
111
111
  >
@@ -113,6 +113,23 @@ Snapshot Diff:
113
113
  </div>
114
114
  `;
115
115
 
116
+ exports[`Card Card component should add rounded border when the isRounded prop is true 1`] = `
117
+ Snapshot Diff:
118
+ - Received styles
119
+ + Base styles
120
+
121
+ @@ -1,9 +1,8 @@
122
+ Array [
123
+ Object {
124
+ "background-color": "#fff",
125
+ - "border-radius": "calc(2px - 1px)",
126
+ "box-shadow": "0 0 0 1px rgba(0, 0, 0, 0.1)",
127
+ "color": "#1e1e1e",
128
+ "outline": "none",
129
+ "position": "relative",
130
+ },
131
+ `;
132
+
116
133
  exports[`Card Card component should get the isBorderless and isSize props (passed from its context) overriddenwhen the same props is specified directly on the component 1`] = `
117
134
  Snapshot Diff:
118
135
  - First value
@@ -124,24 +141,24 @@ Snapshot Diff:
124
141
  class="css-mgwsf4-View-Content em57xhy0"
125
142
  >
126
143
  <div
127
- - class="components-flex components-card__header components-card-header css-t8b09c-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-large-borderless em57xhy0"
128
- + class="components-flex components-card__header components-card-header css-1e0mt81-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-small em57xhy0"
144
+ - class="components-flex components-card__header components-card-header css-1uuauve-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-large-borderless em57xhy0"
145
+ + class="components-flex components-card__header components-card-header css-yf9nll-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-small em57xhy0"
129
146
  data-wp-c16t="true"
130
147
  data-wp-component="CardHeader"
131
148
  >
132
149
  Header
133
150
  </div>
134
151
  <div
135
- - class="components-card__body components-card-body css-bwr6fa-View-Body-borderRadius-large em57xhy0"
136
- + class="components-card__body components-card-body css-1lr0m0h-View-Body-borderRadius-medium em57xhy0"
152
+ - class="components-card__body components-card-body css-1nonx1n-View-Body-borderRadius-large em57xhy0"
153
+ + class="components-card__body components-card-body css-1nwhnu3-View-Body-borderRadius-medium em57xhy0"
137
154
  data-wp-c16t="true"
138
155
  data-wp-component="CardBody"
139
156
  >
140
157
  Body
141
158
  </div>
142
159
  <div
143
- - class="components-flex components-card__footer components-card-footer css-c7cteg-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-large-borderless em57xhy0"
144
- + class="components-flex components-card__footer components-card-footer css-1t7s584-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-xSmallCardPadding em57xhy0"
160
+ - class="components-flex components-card__footer components-card-footer css-s0icc3-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-large-borderless em57xhy0"
161
+ + class="components-flex components-card__footer components-card-footer css-cwhos2-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-xSmallCardPadding em57xhy0"
145
162
  data-wp-c16t="true"
146
163
  data-wp-component="CardFooter"
147
164
  >
@@ -157,8 +174,8 @@ Snapshot Diff:
157
174
  @@ -1,30 +1,30 @@
158
175
  <div>
159
176
  <div
160
- - class="components-surface components-card css-ssx2ib-View-Surface-getBorders-primary-Card-boxShadowless-rounded em57xhy0"
161
- + class="components-surface components-card css-1vyvcpq-View-Surface-getBorders-primary-Card-rounded em57xhy0"
177
+ - class="components-surface components-card css-hkvggq-View-Surface-getBorders-primary-Card-boxShadowless-rounded em57xhy0"
178
+ + class="components-surface components-card css-nsno0f-View-Surface-getBorders-primary-Card-rounded em57xhy0"
162
179
  data-wp-c16t="true"
163
180
  data-wp-component="Card"
164
181
  >
@@ -166,24 +183,24 @@ Snapshot Diff:
166
183
  class="css-mgwsf4-View-Content em57xhy0"
167
184
  >
168
185
  <div
169
- - class="components-flex components-card__header components-card-header css-t8b09c-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-large-borderless em57xhy0"
170
- + class="components-flex components-card__header components-card-header css-1e0mt81-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-small em57xhy0"
186
+ - class="components-flex components-card__header components-card-header css-1uuauve-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-large-borderless em57xhy0"
187
+ + class="components-flex components-card__header components-card-header css-yf9nll-View-Flex-sx-Base-sx-Items-ItemsRow-Header-borderRadius-borderColor-small em57xhy0"
171
188
  data-wp-c16t="true"
172
189
  data-wp-component="CardHeader"
173
190
  >
174
191
  Header
175
192
  </div>
176
193
  <div
177
- - class="components-card__body components-card-body css-bwr6fa-View-Body-borderRadius-large em57xhy0"
178
- + class="components-card__body components-card-body css-1cnf18v-View-Body-borderRadius-small em57xhy0"
194
+ - class="components-card__body components-card-body css-1nonx1n-View-Body-borderRadius-large em57xhy0"
195
+ + class="components-card__body components-card-body css-5spj1a-View-Body-borderRadius-small em57xhy0"
179
196
  data-wp-c16t="true"
180
197
  data-wp-component="CardBody"
181
198
  >
182
199
  Body
183
200
  </div>
184
201
  <div
185
- - class="components-flex components-card__footer components-card-footer css-c7cteg-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-large-borderless em57xhy0"
186
- + class="components-flex components-card__footer components-card-footer css-1trggei-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-small em57xhy0"
202
+ - class="components-flex components-card__footer components-card-footer css-s0icc3-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-large-borderless em57xhy0"
203
+ + class="components-flex components-card__footer components-card-footer css-oc4v7j-View-Flex-sx-Base-sx-Items-ItemsRow-Footer-borderRadius-borderColor-small em57xhy0"
187
204
  data-wp-c16t="true"
188
205
  data-wp-component="CardFooter"
189
206
  >
@@ -196,11 +213,11 @@ Object {
196
213
  "asFragment": [Function],
197
214
  "baseElement": .emotion-0 {
198
215
  background-color: #fff;
199
- color: #000;
216
+ color: #1e1e1e;
200
217
  position: relative;
201
218
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
202
219
  outline: none;
203
- border-radius: 2px;
220
+ border-radius: calc(2px - 1px);
204
221
  }
205
222
 
206
223
  .emotion-2 {
@@ -242,13 +259,13 @@ Object {
242
259
  }
243
260
 
244
261
  .emotion-4:first-of-type {
245
- border-top-left-radius: 2px;
246
- border-top-right-radius: 2px;
262
+ border-top-left-radius: calc(2px - 1px);
263
+ border-top-right-radius: calc(2px - 1px);
247
264
  }
248
265
 
249
266
  .emotion-4:last-of-type {
250
- border-bottom-left-radius: 2px;
251
- border-bottom-right-radius: 2px;
267
+ border-bottom-left-radius: calc(2px - 1px);
268
+ border-bottom-right-radius: calc(2px - 1px);
252
269
  }
253
270
 
254
271
  .emotion-6 {
@@ -259,13 +276,13 @@ Object {
259
276
  }
260
277
 
261
278
  .emotion-6:first-of-type {
262
- border-top-left-radius: 2px;
263
- border-top-right-radius: 2px;
279
+ border-top-left-radius: calc(2px - 1px);
280
+ border-top-right-radius: calc(2px - 1px);
264
281
  }
265
282
 
266
283
  .emotion-6:last-of-type {
267
- border-bottom-left-radius: 2px;
268
- border-bottom-right-radius: 2px;
284
+ border-bottom-left-radius: calc(2px - 1px);
285
+ border-bottom-right-radius: calc(2px - 1px);
269
286
  }
270
287
 
271
288
  .emotion-10 {
@@ -294,13 +311,13 @@ Object {
294
311
  }
295
312
 
296
313
  .emotion-14:first-of-type {
297
- border-top-left-radius: 2px;
298
- border-top-right-radius: 2px;
314
+ border-top-left-radius: calc(2px - 1px);
315
+ border-top-right-radius: calc(2px - 1px);
299
316
  }
300
317
 
301
318
  .emotion-14:last-of-type {
302
- border-bottom-left-radius: 2px;
303
- border-bottom-right-radius: 2px;
319
+ border-bottom-left-radius: calc(2px - 1px);
320
+ border-bottom-right-radius: calc(2px - 1px);
304
321
  }
305
322
 
306
323
  .emotion-16 {
@@ -338,13 +355,13 @@ Object {
338
355
  }
339
356
 
340
357
  .emotion-16:first-of-type {
341
- border-top-left-radius: 2px;
342
- border-top-right-radius: 2px;
358
+ border-top-left-radius: calc(2px - 1px);
359
+ border-top-right-radius: calc(2px - 1px);
343
360
  }
344
361
 
345
362
  .emotion-16:last-of-type {
346
- border-bottom-left-radius: 2px;
347
- border-bottom-right-radius: 2px;
363
+ border-bottom-left-radius: calc(2px - 1px);
364
+ border-bottom-right-radius: calc(2px - 1px);
348
365
  }
349
366
 
350
367
  .emotion-18 {
@@ -452,11 +469,11 @@ Object {
452
469
  </body>,
453
470
  "container": .emotion-0 {
454
471
  background-color: #fff;
455
- color: #000;
472
+ color: #1e1e1e;
456
473
  position: relative;
457
474
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
458
475
  outline: none;
459
- border-radius: 2px;
476
+ border-radius: calc(2px - 1px);
460
477
  }
461
478
 
462
479
  .emotion-2 {
@@ -498,13 +515,13 @@ Object {
498
515
  }
499
516
 
500
517
  .emotion-4:first-of-type {
501
- border-top-left-radius: 2px;
502
- border-top-right-radius: 2px;
518
+ border-top-left-radius: calc(2px - 1px);
519
+ border-top-right-radius: calc(2px - 1px);
503
520
  }
504
521
 
505
522
  .emotion-4:last-of-type {
506
- border-bottom-left-radius: 2px;
507
- border-bottom-right-radius: 2px;
523
+ border-bottom-left-radius: calc(2px - 1px);
524
+ border-bottom-right-radius: calc(2px - 1px);
508
525
  }
509
526
 
510
527
  .emotion-6 {
@@ -515,13 +532,13 @@ Object {
515
532
  }
516
533
 
517
534
  .emotion-6:first-of-type {
518
- border-top-left-radius: 2px;
519
- border-top-right-radius: 2px;
535
+ border-top-left-radius: calc(2px - 1px);
536
+ border-top-right-radius: calc(2px - 1px);
520
537
  }
521
538
 
522
539
  .emotion-6:last-of-type {
523
- border-bottom-left-radius: 2px;
524
- border-bottom-right-radius: 2px;
540
+ border-bottom-left-radius: calc(2px - 1px);
541
+ border-bottom-right-radius: calc(2px - 1px);
525
542
  }
526
543
 
527
544
  .emotion-10 {
@@ -550,13 +567,13 @@ Object {
550
567
  }
551
568
 
552
569
  .emotion-14:first-of-type {
553
- border-top-left-radius: 2px;
554
- border-top-right-radius: 2px;
570
+ border-top-left-radius: calc(2px - 1px);
571
+ border-top-right-radius: calc(2px - 1px);
555
572
  }
556
573
 
557
574
  .emotion-14:last-of-type {
558
- border-bottom-left-radius: 2px;
559
- border-bottom-right-radius: 2px;
575
+ border-bottom-left-radius: calc(2px - 1px);
576
+ border-bottom-right-radius: calc(2px - 1px);
560
577
  }
561
578
 
562
579
  .emotion-16 {
@@ -594,13 +611,13 @@ Object {
594
611
  }
595
612
 
596
613
  .emotion-16:first-of-type {
597
- border-top-left-radius: 2px;
598
- border-top-right-radius: 2px;
614
+ border-top-left-radius: calc(2px - 1px);
615
+ border-top-right-radius: calc(2px - 1px);
599
616
  }
600
617
 
601
618
  .emotion-16:last-of-type {
602
- border-bottom-left-radius: 2px;
603
- border-bottom-right-radius: 2px;
619
+ border-bottom-left-radius: calc(2px - 1px);
620
+ border-bottom-right-radius: calc(2px - 1px);
604
621
  }
605
622
 
606
623
  .emotion-18 {
@@ -792,11 +809,11 @@ Compared values have no visual difference.
792
809
  exports[`Card Card component should warn when the isElevated prop is passed 1`] = `
793
810
  .emotion-0 {
794
811
  background-color: #fff;
795
- color: #000;
812
+ color: #1e1e1e;
796
813
  position: relative;
797
814
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
798
815
  outline: none;
799
- border-radius: 2px;
816
+ border-radius: calc(2px - 1px);
800
817
  }
801
818
 
802
819
  .emotion-2 {
@@ -14,7 +14,6 @@ import {
14
14
  CardHeader,
15
15
  CardMedia,
16
16
  } from '../';
17
- import { CONFIG } from '../../utils';
18
17
 
19
18
  describe( 'Card', () => {
20
19
  describe( 'Card component', () => {
@@ -51,12 +50,15 @@ describe( 'Card', () => {
51
50
  } );
52
51
 
53
52
  it( 'should add rounded border when the isRounded prop is true', () => {
54
- const { container } = render(
53
+ const { container: containerRounded } = render(
55
54
  <Card isRounded={ true }>Code is Poetry</Card>
56
55
  );
57
- expect( container.firstChild ).toHaveStyle( {
58
- borderRadius: CONFIG.cardBorderRadius,
59
- } );
56
+ const { container: containerSquared } = render(
57
+ <Card isRounded={ false }>Code is Poetry</Card>
58
+ );
59
+ expect( containerRounded.firstChild ).toMatchStyleDiffSnapshot(
60
+ containerSquared.firstChild
61
+ );
60
62
  } );
61
63
 
62
64
  it( 'should show a box shadow when the elevation prop is greater than 0', () => {
@@ -6,9 +6,10 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useInstanceId } from '@wordpress/compose';
9
+ import { useState } from '@wordpress/element';
10
+ import { useInstanceId, useRefEffect } from '@wordpress/compose';
10
11
  import deprecated from '@wordpress/deprecated';
11
- import { Icon, check } from '@wordpress/icons';
12
+ import { Icon, check, reset } from '@wordpress/icons';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -20,6 +21,7 @@ export default function CheckboxControl( {
20
21
  className,
21
22
  heading,
22
23
  checked,
24
+ indeterminate,
23
25
  help,
24
26
  onChange,
25
27
  ...props
@@ -31,6 +33,27 @@ export default function CheckboxControl( {
31
33
  } );
32
34
  }
33
35
 
36
+ const [ showCheckedIcon, setShowCheckedIcon ] = useState( false );
37
+ const [ showIndeterminateIcon, setShowIndeterminateIcon ] = useState(
38
+ false
39
+ );
40
+
41
+ // Run the following callback everytime the `ref` (and the additional
42
+ // dependencies) change.
43
+ const ref = useRefEffect(
44
+ ( node ) => {
45
+ if ( ! node ) {
46
+ return;
47
+ }
48
+
49
+ // It cannot be set using an HTML attribute.
50
+ node.indeterminate = !! indeterminate;
51
+
52
+ setShowCheckedIcon( node.matches( ':checked' ) );
53
+ setShowIndeterminateIcon( node.matches( ':indeterminate' ) );
54
+ },
55
+ [ checked, indeterminate ]
56
+ );
34
57
  const instanceId = useInstanceId( CheckboxControl );
35
58
  const id = `inspector-checkbox-control-${ instanceId }`;
36
59
  const onChangeValue = ( event ) => onChange( event.target.checked );
@@ -44,6 +67,7 @@ export default function CheckboxControl( {
44
67
  >
45
68
  <span className="components-checkbox-control__input-container">
46
69
  <input
70
+ ref={ ref }
47
71
  id={ id }
48
72
  className="components-checkbox-control__input"
49
73
  type="checkbox"
@@ -53,7 +77,14 @@ export default function CheckboxControl( {
53
77
  aria-describedby={ !! help ? id + '__help' : undefined }
54
78
  { ...props }
55
79
  />
56
- { checked ? (
80
+ { showIndeterminateIcon ? (
81
+ <Icon
82
+ icon={ reset }
83
+ className="components-checkbox-control__indeterminate"
84
+ role="presentation"
85
+ />
86
+ ) : null }
87
+ { showCheckedIcon ? (
57
88
  <Icon
58
89
  icon={ check }
59
90
  className="components-checkbox-control__checked"