@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
@@ -1,99 +1,26 @@
1
- /**
2
- * External dependencies
3
- */
4
- import type { ForwardedRef } from 'react';
5
- // eslint-disable-next-line no-restricted-imports
6
- import { Radio } from 'reakit';
7
-
8
- /**
9
- * WordPress dependencies
10
- */
11
- import { useInstanceId } from '@wordpress/compose';
12
-
13
1
  /**
14
2
  * Internal dependencies
15
3
  */
16
- import {
17
- contextConnect,
18
- useContextSystem,
19
- WordPressComponentProps,
20
- } from '../../ui/context';
21
- import type { ToggleGroupControlOptionProps, WithToolTipProps } from '../types';
22
- import { useToggleGroupControlContext } from '../context';
23
- import * as styles from './styles';
24
- import { useCx } from '../../utils/hooks';
25
- import Tooltip from '../../tooltip';
26
-
27
- const { ButtonContentView, LabelPlaceholderView, LabelView } = styles;
28
-
29
- const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
30
- if ( showTooltip && text ) {
31
- return (
32
- <Tooltip text={ text } position="top center">
33
- { children }
34
- </Tooltip>
35
- );
36
- }
37
- return <>{ children }</>;
38
- };
39
-
40
- function ToggleGroupControlOption(
41
- props: WordPressComponentProps< ToggleGroupControlOptionProps, 'button' >,
42
- forwardedRef: ForwardedRef< any >
4
+ import type { WordPressComponentProps } from '../../ui/context';
5
+ import type { ToggleGroupControlOptionProps } from '../types';
6
+ import { ToggleGroupControlOptionBase } from '../toggle-group-control-option-base';
7
+
8
+ export default function ToggleGroupControlOption(
9
+ props: WordPressComponentProps<
10
+ ToggleGroupControlOptionProps,
11
+ 'button',
12
+ false
13
+ >
43
14
  ) {
44
- const toggleGroupControlContext = useToggleGroupControlContext();
45
- const id = useInstanceId(
46
- ToggleGroupControlOption,
47
- toggleGroupControlContext.baseId || 'toggle-group-control-option'
48
- ) as string;
49
- const buttonProps = useContextSystem(
50
- { ...props, id },
51
- 'ToggleGroupControlOption'
52
- );
53
-
54
- const {
55
- className,
56
- isBlock = false,
57
- label,
58
- value,
59
- showTooltip = false,
60
- ...radioProps
61
- } = {
62
- ...toggleGroupControlContext,
63
- ...buttonProps,
64
- };
65
-
66
- const isActive = radioProps.state === value;
67
- const cx = useCx();
68
- const labelViewClasses = cx( isBlock && styles.labelBlock );
69
- const classes = cx(
70
- styles.buttonView,
71
- className,
72
- isActive && styles.buttonActive
73
- );
74
- const optionLabel = !! radioProps[ 'aria-label' ]
75
- ? radioProps[ 'aria-label' ]
76
- : label;
77
-
15
+ const { label, ...restProps } = props;
16
+ const optionLabel = restProps[ 'aria-label' ] || label;
78
17
  return (
79
- <LabelView className={ labelViewClasses } data-active={ isActive }>
80
- <WithToolTip showTooltip={ showTooltip } text={ optionLabel }>
81
- <Radio
82
- { ...radioProps }
83
- as="button"
84
- aria-label={ optionLabel }
85
- className={ classes }
86
- data-value={ value }
87
- ref={ forwardedRef }
88
- value={ value }
89
- >
90
- <ButtonContentView>{ label }</ButtonContentView>
91
- <LabelPlaceholderView aria-hidden>
92
- { label }
93
- </LabelPlaceholderView>
94
- </Radio>
95
- </WithToolTip>
96
- </LabelView>
18
+ <ToggleGroupControlOptionBase
19
+ { ...restProps }
20
+ aria-label={ optionLabel }
21
+ >
22
+ { label }
23
+ </ToggleGroupControlOptionBase>
97
24
  );
98
25
  }
99
26
 
@@ -118,9 +45,3 @@ function ToggleGroupControlOption(
118
45
  * }
119
46
  * ```
120
47
  */
121
- const ConnectedToggleGroupControlOption = contextConnect(
122
- ToggleGroupControlOption,
123
- 'ToggleGroupControlOption'
124
- );
125
-
126
- export default ConnectedToggleGroupControlOption;
@@ -0,0 +1,27 @@
1
+ # `ToggleGroupControlOptionBase`
2
+
3
+ <div class="callout callout-alert">
4
+ This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
+ </div>
6
+
7
+ `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal, generic component for any children of [`ToggleGroupControl`](<(/packages/components/src/toggle-group-control/toggle-group-control/README.md)>).
8
+
9
+ ## Props
10
+
11
+ ### `children`: `ReactNode`
12
+
13
+ The children elements.
14
+
15
+ - Required: Yes
16
+
17
+ ### `value`: `string | number`
18
+
19
+ The value of the `ToggleGroupControlOptionBase`.
20
+
21
+ - Required: Yes
22
+
23
+ ### `showTooltip`: `boolean`
24
+
25
+ Whether to show a tooltip when hovering over the option. The tooltip will only show if a label for it is provided using the `aria-label` prop.
26
+
27
+ - Required: No
@@ -0,0 +1,129 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ForwardedRef } from 'react';
5
+ // eslint-disable-next-line no-restricted-imports
6
+ import { Radio } from 'reakit';
7
+
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+ import { useInstanceId } from '@wordpress/compose';
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+ import {
17
+ contextConnect,
18
+ useContextSystem,
19
+ WordPressComponentProps,
20
+ } from '../../ui/context';
21
+ import type {
22
+ ToggleGroupControlOptionBaseProps,
23
+ WithToolTipProps,
24
+ } from '../types';
25
+ import { useToggleGroupControlContext } from '../context';
26
+ import * as styles from './styles';
27
+ import { useCx } from '../../utils/hooks';
28
+ import Tooltip from '../../tooltip';
29
+
30
+ const { ButtonContentView, LabelView } = styles;
31
+
32
+ const WithToolTip = ( { showTooltip, text, children }: WithToolTipProps ) => {
33
+ if ( showTooltip && text ) {
34
+ return (
35
+ <Tooltip text={ text } position="top center">
36
+ { children }
37
+ </Tooltip>
38
+ );
39
+ }
40
+ return <>{ children }</>;
41
+ };
42
+
43
+ function ToggleGroupControlOptionBase(
44
+ props: WordPressComponentProps<
45
+ ToggleGroupControlOptionBaseProps,
46
+ 'button',
47
+ false
48
+ >,
49
+ forwardedRef: ForwardedRef< any >
50
+ ) {
51
+ const toggleGroupControlContext = useToggleGroupControlContext();
52
+ const id = useInstanceId(
53
+ ToggleGroupControlOptionBase,
54
+ toggleGroupControlContext.baseId || 'toggle-group-control-option-base'
55
+ ) as string;
56
+ const buttonProps = useContextSystem(
57
+ { ...props, id },
58
+ 'ToggleGroupControlOptionBase'
59
+ );
60
+ const {
61
+ className,
62
+ isBlock = false,
63
+ value,
64
+ children,
65
+ showTooltip = false,
66
+ ...radioProps
67
+ } = {
68
+ ...toggleGroupControlContext,
69
+ ...buttonProps,
70
+ };
71
+
72
+ const isActive = radioProps.state === value;
73
+ const cx = useCx();
74
+ const labelViewClasses = cx( isBlock && styles.labelBlock );
75
+ const classes = cx(
76
+ styles.buttonView,
77
+ className,
78
+ isActive && styles.buttonActive
79
+ );
80
+
81
+ return (
82
+ <LabelView className={ labelViewClasses } data-active={ isActive }>
83
+ <WithToolTip
84
+ showTooltip={ showTooltip }
85
+ text={ radioProps[ 'aria-label' ] }
86
+ >
87
+ <Radio
88
+ { ...radioProps }
89
+ as="button"
90
+ aria-label={ radioProps[ 'aria-label' ] }
91
+ className={ classes }
92
+ data-value={ value }
93
+ ref={ forwardedRef }
94
+ value={ value }
95
+ >
96
+ <ButtonContentView>{ children }</ButtonContentView>
97
+ </Radio>
98
+ </WithToolTip>
99
+ </LabelView>
100
+ );
101
+ }
102
+
103
+ /**
104
+ * `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal,
105
+ * generic component for any children of `ToggleGroupControl`.
106
+ *
107
+ * @example
108
+ * ```jsx
109
+ * import {
110
+ * __experimentalToggleGroupControl as ToggleGroupControl,
111
+ * __experimentalToggleGroupControlOptionBase as ToggleGroupControlOptionBase,
112
+ * } from '@wordpress/components';
113
+ *
114
+ * function Example() {
115
+ * return (
116
+ * <ToggleGroupControl label="my label" value="vertical" isBlock>
117
+ * <ToggleGroupControlOption value="horizontal" label="Horizontal" />
118
+ * <ToggleGroupControlOption value="vertical" label="Vertical" />
119
+ * </ToggleGroupControl>
120
+ * );
121
+ * }
122
+ * ```
123
+ */
124
+ const ConnectedToggleGroupControlOptionBase = contextConnect(
125
+ ToggleGroupControlOptionBase,
126
+ 'ToggleGroupControlOptionBase'
127
+ );
128
+
129
+ export default ConnectedToggleGroupControlOptionBase;
@@ -0,0 +1 @@
1
+ export { default as ToggleGroupControlOptionBase } from './component';
@@ -27,6 +27,7 @@ export const buttonView = css`
27
27
  border: none;
28
28
  border-radius: ${ CONFIG.controlBorderRadius };
29
29
  color: ${ COLORS.gray[ 700 ] };
30
+ fill: currentColor;
30
31
  cursor: pointer;
31
32
  display: flex;
32
33
  font-family: inherit;
@@ -55,30 +56,20 @@ export const buttonView = css`
55
56
 
56
57
  export const buttonActive = css`
57
58
  color: ${ COLORS.white };
58
- background-color: ${ COLORS.gray[ 900 ] };
59
+ &:active {
60
+ background: transparent;
61
+ }
59
62
  `;
60
63
 
61
64
  export const ButtonContentView = styled.div`
62
65
  font-size: ${ CONFIG.fontSize };
63
66
  line-height: 1;
64
- position: absolute;
65
- top: 50%;
66
- left: 50%;
67
- transform: translate( -50%, -50% );
68
67
  `;
69
68
 
70
69
  export const separatorActive = css`
71
70
  background: transparent;
72
71
  `;
73
72
 
74
- export const LabelPlaceholderView = styled.div`
75
- font-size: ${ CONFIG.fontSize };
76
- font-weight: bold;
77
- height: 0;
78
- overflow: hidden;
79
- visibility: hidden;
80
- `;
81
-
82
73
  export const medium = css`
83
74
  min-height: ${ CONFIG.controlHeight };
84
75
  `;
@@ -0,0 +1,56 @@
1
+ # `ToggleGroupControlOptionIcon`
2
+
3
+ <div class="callout callout-alert">
4
+ This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
+ </div>
6
+
7
+ `ToggleGroupControlOptionIcon` is a form component which is meant to be used as a child of [`ToggleGroupControl`] and displays an icon(<(/packages/components/src/toggle-group-control/toggle-group-control/README.md)>).
8
+
9
+ ## Usage
10
+
11
+ ```js
12
+ import {
13
+ __experimentalToggleGroupControl as ToggleGroupControl,
14
+ __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
15
+ } from '@wordpress/components';
16
+ import { formatLowercase, formatUppercase } from '@wordpress/icons';
17
+
18
+ function Example() {
19
+ return (
20
+ <ToggleGroupControl label="my label" value="lowercase" isBlock>
21
+ <ToggleGroupControlOptionIcon
22
+ value="uppercase"
23
+ icon={ formatUppercase }
24
+ showTooltip={ true }
25
+ aria-label="Uppercase"
26
+ />
27
+ <ToggleGroupControlOptionIcon
28
+ value="lowercase"
29
+ icon={ formatLowercase }
30
+ showTooltip={ true }
31
+ aria-label="Lowercase"
32
+ />
33
+ </ToggleGroupControl>
34
+ );
35
+ }
36
+ ```
37
+
38
+ ## Props
39
+
40
+ ### `value`: `string | number`
41
+
42
+ The value of the `ToggleGroupControlOption`.
43
+
44
+ - Required: Yes
45
+
46
+ ### `icon`: `WPComponent`
47
+
48
+ Icon displayed as the content of the option. Usually one of the icons from the `@wordpress/icons` package, or a custom React `<svg>` icon.
49
+
50
+ - Required: Yes
51
+
52
+ ### `showTooltip`: `boolean`
53
+
54
+ Whether to show a tooltip when hovering over the option. The tooltip will only show if a label for it is provided using the `aria-label` prop.
55
+
56
+ - Required: No
@@ -0,0 +1,56 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { Icon } from '@wordpress/icons';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import type { WordPressComponentProps } from '../../ui/context';
10
+ import type { ToggleGroupControlOptionIconProps } from '../types';
11
+ import { ToggleGroupControlOptionBase } from '../toggle-group-control-option-base';
12
+
13
+ export default function ToggleGroupControlOptionIcon(
14
+ props: WordPressComponentProps<
15
+ ToggleGroupControlOptionIconProps,
16
+ 'button',
17
+ false
18
+ >
19
+ ) {
20
+ const { icon, ...restProps } = props;
21
+ return (
22
+ <ToggleGroupControlOptionBase { ...restProps }>
23
+ <Icon icon={ icon } />
24
+ </ToggleGroupControlOptionBase>
25
+ );
26
+ }
27
+
28
+ /**
29
+ * `ToggleGroupControlOptionIcon` is a form component which is meant to be used as a
30
+ * child of `ToggleGroupControl` and displays an icon.
31
+ *
32
+ * @example
33
+ * ```jsx
34
+ *
35
+ * import {
36
+ * __experimentalToggleGroupControl as ToggleGroupControl,
37
+ * __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
38
+ * from '@wordpress/components';
39
+ * import { formatLowercase, formatUppercase } from '@wordpress/icons';
40
+ *
41
+ * function Example() {
42
+ * return (
43
+ * <ToggleGroupControl label="my label" value="vertical" isBlock>
44
+ * <ToggleGroupControlOptionIcon
45
+ * value="uppercase"
46
+ * icon={ formatUppercase }
47
+ * />
48
+ * <ToggleGroupControlOptionIcon
49
+ * value="lowercase"
50
+ * icon={ formatLowercase }
51
+ * />
52
+ * </ToggleGroupControl>
53
+ * );
54
+ * }
55
+ ** ```
56
+ */
@@ -0,0 +1 @@
1
+ export { default as ToggleGroupControlOptionIcon } from './component';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { ReactNode, ReactText } from 'react';
4
+ import type { MutableRefObject, ReactNode, ReactText } from 'react';
5
5
  // eslint-disable-next-line no-restricted-imports
6
6
  import type { RadioStateReturn } from 'reakit';
7
7
 
@@ -10,13 +10,9 @@ import type { RadioStateReturn } from 'reakit';
10
10
  */
11
11
  import type { FormElementProps } from '../utils/types';
12
12
 
13
- export type ToggleGroupControlOptionProps = {
13
+ export type ToggleGroupControlOptionBaseProps = {
14
+ children: ReactNode;
14
15
  value: ReactText;
15
- /**
16
- * Label for the option. If needed, the `aria-label` prop can be used in addition
17
- * to specify a different label for assistive technologies.
18
- */
19
- label: string;
20
16
  /**
21
17
  * Whether to display a Tooltip for the control option. If set to `true`, the tooltip will
22
18
  * show the aria-label or the label prop text.
@@ -26,6 +22,28 @@ export type ToggleGroupControlOptionProps = {
26
22
  showTooltip?: boolean;
27
23
  };
28
24
 
25
+ export type ToggleGroupControlOptionIconProps = Omit<
26
+ ToggleGroupControlOptionBaseProps,
27
+ 'children'
28
+ > & {
29
+ /**
30
+ * Icon displayed as the content of the option. Usually one of the icons from
31
+ * the `@wordpress/icons` package, or a custom React `<svg>` icon.
32
+ */
33
+ icon: JSX.Element;
34
+ };
35
+
36
+ export type ToggleGroupControlOptionProps = Omit<
37
+ ToggleGroupControlOptionBaseProps,
38
+ 'children'
39
+ > & {
40
+ /**
41
+ * Label for the option. If needed, the `aria-label` prop can be used in addition
42
+ * to specify a different label for assistive technologies.
43
+ */
44
+ label: string;
45
+ };
46
+
29
47
  export type WithToolTipProps = {
30
48
  /**
31
49
  * React children
@@ -34,7 +52,7 @@ export type WithToolTipProps = {
34
52
  /**
35
53
  * Label for the Tooltip component.
36
54
  */
37
- text: string;
55
+ text?: string;
38
56
  /**
39
57
  * Whether to wrap the control option in a Tooltip component.
40
58
  *
@@ -96,3 +114,10 @@ export type ToggleGroupControlContextProps = RadioStateReturn & {
96
114
  */
97
115
  isBlock?: boolean;
98
116
  };
117
+
118
+ export type ToggleGroupControlBackdropProps = {
119
+ containerRef: MutableRefObject< HTMLElement | undefined >;
120
+ containerWidth?: number | null;
121
+ isAdaptiveWidth?: boolean;
122
+ state?: any;
123
+ };
@@ -19,7 +19,7 @@ function ToolbarDropdownMenu( props, ref ) {
19
19
 
20
20
  // ToobarItem will pass all props to the render prop child, which will pass
21
21
  // all props to the toggle of DropdownMenu. This means that ToolbarDropdownMenu
22
- // has the same API as DrpodownMenu.
22
+ // has the same API as DropdownMenu.
23
23
  return (
24
24
  <ToolbarItem ref={ ref } { ...props.toggleProps }>
25
25
  { ( toolbarItemProps ) => (
@@ -64,76 +64,3 @@ div.components-toolbar {
64
64
  }
65
65
  }
66
66
  }
67
-
68
- // Size multiple sequential buttons to be optically balanced.
69
- // Icons are 36px, as set by a 24px icon and 12px padding.
70
- .block-editor-block-toolbar > .components-toolbar > .block-editor-block-toolbar__slot, // When a plugin adds to a slot, the segment has a `components-toolbar` class.
71
- .block-editor-block-toolbar > .components-toolbar-group > .block-editor-block-toolbar__slot, // When no plugin adds to slots, the segment has a `components-toolbar-group` class.
72
- .block-editor-block-toolbar > .block-editor-block-toolbar__slot > .components-toolbar, // The nesting order is sometimes reversed.
73
- .block-editor-block-toolbar > .block-editor-block-toolbar__slot > .components-dropdown, // Targets unique markup for the "Replace" button.
74
- .block-editor-block-toolbar .block-editor-block-toolbar__slot .components-toolbar-group { // Inline formatting tools use this class.
75
-
76
- // Segments with just a single button.
77
- > .components-button:first-child:last-child,
78
- > .components-dropdown:first-child:last-child .components-button,
79
- &.components-dropdown > .components-button.components-button, // Single segments where the dropdown is also the toolbar group (such as text align).
80
- &.components-dropdown > * .components-button {
81
- min-width: $block-toolbar-height;
82
- padding-left: $grid-unit-15;
83
- padding-right: $grid-unit-15;
84
-
85
- &::before {
86
- left: $grid-unit-10;
87
- right: $grid-unit-10;
88
- }
89
- }
90
-
91
- // First.
92
- // @todo, this unnamed div only shows up when plugins add to slots. We should remove the fragment.
93
- > .components-button:first-child,
94
- > div:first-child > .components-button,
95
- > .components-dropdown:first-child .components-button {
96
- min-width: $block-toolbar-height - $grid-unit-15 * 0.5;
97
- padding-left: $grid-unit-15 - $border-width;
98
- padding-right: $grid-unit-15 * 0.5;
99
-
100
- &::before {
101
- left: $grid-unit-10;
102
- right: 2px;
103
- }
104
- }
105
-
106
- // Middle.
107
- // @todo, this unnamed div only shows up when plugins add to slots. We should remove the fragment.
108
- > .components-button,
109
- > div > .components-button,
110
- > .components-dropdown .components-button {
111
- min-width: $block-toolbar-height - $grid-unit-15;
112
- padding-left: $grid-unit-15 * 0.5; // 6px.
113
- padding-right: $grid-unit-15 * 0.5;
114
-
115
- svg {
116
- min-width: $button-size-small; // This is the optimal icon size, and we size the whole button after this.
117
- }
118
-
119
- &::before {
120
- left: 2px;
121
- right: 2px;
122
- }
123
- }
124
-
125
- // Last.
126
- // @todo, this unnamed div only shows up when plugins add to slots. We should remove the fragment.
127
- > .components-button:last-child,
128
- > div:last-child > .components-button,
129
- > .components-dropdown:last-child .components-button {
130
- min-width: $block-toolbar-height - $grid-unit-15 * 0.5;
131
- padding-left: $grid-unit-15 * 0.5;
132
- padding-right: $grid-unit-15 - $border-width;
133
-
134
- &::before {
135
- left: 2px;
136
- right: $grid-unit-10;
137
- }
138
- }
139
- }
@@ -89,15 +89,15 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
89
89
  max-width: 100%;
90
90
  }
91
91
 
92
- .emotion-6.emotion-6 .e1puf3u4 {
92
+ .emotion-6.emotion-6 .ej5x27r4 {
93
93
  margin-bottom: 0;
94
94
  }
95
95
 
96
- .emotion-6.emotion-6 .e1puf3u4 .e1puf3u3:last-child {
96
+ .emotion-6.emotion-6 .ej5x27r4 .ej5x27r3:last-child {
97
97
  margin-bottom: 0;
98
98
  }
99
99
 
100
- .emotion-6 .e1puf3u1 {
100
+ .emotion-6 .ej5x27r1 {
101
101
  margin-bottom: 0;
102
102
  }
103
103
 
@@ -106,7 +106,7 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
106
106
  }
107
107
 
108
108
  .emotion-6 .components-custom-select-control__label,
109
- .emotion-6 .e1puf3u2 {
109
+ .emotion-6 .ej5x27r2 {
110
110
  line-height: 1.4em;
111
111
  }
112
112
 
@@ -121,15 +121,15 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
121
121
  max-width: 100%;
122
122
  }
123
123
 
124
- .emotion-8.emotion-8 .e1puf3u4 {
124
+ .emotion-8.emotion-8 .ej5x27r4 {
125
125
  margin-bottom: 0;
126
126
  }
127
127
 
128
- .emotion-8.emotion-8 .e1puf3u4 .e1puf3u3:last-child {
128
+ .emotion-8.emotion-8 .ej5x27r4 .ej5x27r3:last-child {
129
129
  margin-bottom: 0;
130
130
  }
131
131
 
132
- .emotion-8 .e1puf3u1 {
132
+ .emotion-8 .ej5x27r1 {
133
133
  margin-bottom: 0;
134
134
  }
135
135
 
@@ -138,7 +138,7 @@ exports[`ToolsPanel first and last panel items should apply first/last classes t
138
138
  }
139
139
 
140
140
  .emotion-8 .components-custom-select-control__label,
141
- .emotion-8 .e1puf3u2 {
141
+ .emotion-8 .ej5x27r2 {
142
142
  line-height: 1.4em;
143
143
  }
144
144
 
@@ -114,7 +114,7 @@ Aside from the documented callback functions, any props specified will be passed
114
114
 
115
115
  ###### onFocusRow( event: Event, startRow: HTMLElement, destinationRow: HTMLElement )
116
116
 
117
- Callback that fires when focus is shifted from one row to another via the UP and DOWN keys.
117
+ Callback that fires when focus is shifted from one row to another via the Up and Down keys. Callback is also fired on Home and End keys which move focus from the beginning row to the end row.
118
118
  The callback is passed the event, the start row element that the focus was on originally, and
119
119
  the destination row element after the focus has moved.
120
120
 
@@ -275,6 +275,10 @@ function TreeGrid(
275
275
  );
276
276
  focusablesInNextRow[ nextIndex ].focus();
277
277
 
278
+ // Let consumers know the row that was originally focused,
279
+ // and the row that is now in focus.
280
+ onFocusRow( event, activeRow, rows[ nextRowIndex ] );
281
+
278
282
  // Prevent key use for anything else. This ensures Voiceover
279
283
  // doesn't try to handle key navigation.
280
284
  event.preventDefault();