@wordpress/components 21.3.0 → 22.1.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 (811) hide show
  1. package/CHANGELOG.md +107 -1
  2. package/build/angle-picker-control/index.js +4 -2
  3. package/build/angle-picker-control/index.js.map +1 -1
  4. package/build/autocomplete/autocompleter-ui.js +28 -2
  5. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  6. package/build/autocomplete/index.js +7 -3
  7. package/build/autocomplete/index.js.map +1 -1
  8. package/build/border-box-control/border-box-control/component.js +63 -15
  9. package/build/border-box-control/border-box-control/component.js.map +1 -1
  10. package/build/border-box-control/border-box-control/hook.js +19 -3
  11. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  12. package/build/border-box-control/border-box-control-linked-button/hook.js +3 -3
  13. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  14. package/build/border-box-control/border-box-control-split-controls/component.js +3 -3
  15. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  16. package/build/border-box-control/border-box-control-split-controls/hook.js +18 -11
  17. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  18. package/build/border-box-control/border-box-control-visualizer/hook.js +3 -7
  19. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  20. package/build/border-box-control/styles.js +34 -34
  21. package/build/border-box-control/styles.js.map +1 -1
  22. package/build/border-control/border-control/component.js +6 -5
  23. package/build/border-control/border-control/component.js.map +1 -1
  24. package/build/border-control/border-control/hook.js +22 -5
  25. package/build/border-control/border-control/hook.js.map +1 -1
  26. package/build/border-control/border-control-dropdown/component.js +1 -1
  27. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  28. package/build/border-control/border-control-dropdown/hook.js +15 -7
  29. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  30. package/build/border-control/styles.js +19 -34
  31. package/build/border-control/styles.js.map +1 -1
  32. package/build/box-control/index.js +6 -2
  33. package/build/box-control/index.js.map +1 -1
  34. package/build/circular-option-picker/index.js +14 -14
  35. package/build/circular-option-picker/index.js.map +1 -1
  36. package/build/color-palette/index.js +84 -31
  37. package/build/color-palette/index.js.map +1 -1
  38. package/build/color-palette/styles.js +3 -3
  39. package/build/color-palette/styles.js.map +1 -1
  40. package/build/color-palette/types.js +6 -0
  41. package/build/color-palette/types.js.map +1 -0
  42. package/build/color-picker/input-with-slider.js +18 -4
  43. package/build/color-picker/input-with-slider.js.map +1 -1
  44. package/build/custom-gradient-picker/gradient-bar/index.js +1 -3
  45. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  46. package/build/custom-select-control/index.js +12 -5
  47. package/build/custom-select-control/index.js.map +1 -1
  48. package/build/dashicon/index.js +17 -2
  49. package/build/dashicon/index.js.map +1 -1
  50. package/build/date-time/date-time/index.js +2 -0
  51. package/build/date-time/date-time/index.js.map +1 -1
  52. package/build/date-time/time/index.js +4 -4
  53. package/build/date-time/time/index.js.map +1 -1
  54. package/build/disabled/index.js +8 -1
  55. package/build/disabled/index.js.map +1 -1
  56. package/build/draggable/index.js +58 -38
  57. package/build/draggable/index.js.map +1 -1
  58. package/build/draggable/types.js +6 -0
  59. package/build/draggable/types.js.map +1 -0
  60. package/build/external-link/index.js +13 -2
  61. package/build/external-link/index.js.map +1 -1
  62. package/build/flex/flex/hook.js +2 -3
  63. package/build/flex/flex/hook.js.map +1 -1
  64. package/build/focal-point-picker/focal-point.js +2 -12
  65. package/build/focal-point-picker/focal-point.js.map +1 -1
  66. package/build/focal-point-picker/styles/focal-point-style.js +11 -51
  67. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  68. package/build/focusable-iframe/index.js +0 -1
  69. package/build/focusable-iframe/index.js.map +1 -1
  70. package/build/font-size-picker/constants.js +41 -0
  71. package/build/font-size-picker/constants.js.map +1 -0
  72. package/build/font-size-picker/font-size-picker-select.js +97 -0
  73. package/build/font-size-picker/font-size-picker-select.js.map +1 -0
  74. package/build/font-size-picker/font-size-picker-toggle-group.js +50 -0
  75. package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
  76. package/build/font-size-picker/index.js +86 -110
  77. package/build/font-size-picker/index.js.map +1 -1
  78. package/build/font-size-picker/utils.js +16 -109
  79. package/build/font-size-picker/utils.js.map +1 -1
  80. package/build/form-file-upload/index.js.map +1 -1
  81. package/build/form-token-field/index.js +9 -6
  82. package/build/form-token-field/index.js.map +1 -1
  83. package/build/higher-order/navigate-regions/index.js +3 -0
  84. package/build/higher-order/navigate-regions/index.js.map +1 -1
  85. package/build/higher-order/with-filters/index.js +1 -7
  86. package/build/higher-order/with-filters/index.js.map +1 -1
  87. package/build/icon/index.js +3 -2
  88. package/build/icon/index.js.map +1 -1
  89. package/build/index.js +15 -1
  90. package/build/index.js.map +1 -1
  91. package/build/input-control/index.js +2 -0
  92. package/build/input-control/index.js.map +1 -1
  93. package/build/input-control/input-base.js +1 -1
  94. package/build/input-control/input-base.js.map +1 -1
  95. package/build/input-control/styles/input-control-styles.js +21 -21
  96. package/build/input-control/styles/input-control-styles.js.map +1 -1
  97. package/build/isolated-event-container/index.js +5 -9
  98. package/build/isolated-event-container/index.js.map +1 -1
  99. package/build/item-group/styles.js +10 -10
  100. package/build/item-group/styles.js.map +1 -1
  101. package/build/menu-group/index.js +17 -3
  102. package/build/menu-group/index.js.map +1 -1
  103. package/build/menu-group/types.js +6 -0
  104. package/build/menu-group/types.js.map +1 -0
  105. package/build/navigator/navigator-screen/component.js +27 -17
  106. package/build/navigator/navigator-screen/component.js.map +1 -1
  107. package/build/number-control/index.js +82 -22
  108. package/build/number-control/index.js.map +1 -1
  109. package/build/number-control/styles/number-control-styles.js +36 -6
  110. package/build/number-control/styles/number-control-styles.js.map +1 -1
  111. package/build/palette-edit/index.js +3 -1
  112. package/build/palette-edit/index.js.map +1 -1
  113. package/build/popover/index.js +23 -33
  114. package/build/popover/index.js.map +1 -1
  115. package/build/radio-group/index.js +7 -1
  116. package/build/radio-group/index.js.map +1 -1
  117. package/build/{radio → radio-group/radio}/index.js +7 -1
  118. package/build/radio-group/radio/index.js.map +1 -0
  119. package/build/{radio-context → radio-group/radio-context}/index.js +0 -0
  120. package/build/radio-group/radio-context/index.js.map +1 -0
  121. package/build/range-control/styles/range-control-styles.js +47 -57
  122. package/build/range-control/styles/range-control-styles.js.map +1 -1
  123. package/build/slot-fill/bubbles-virtually/fill.js +9 -5
  124. package/build/slot-fill/bubbles-virtually/fill.js.map +1 -1
  125. package/build/slot-fill/bubbles-virtually/slot.js +13 -8
  126. package/build/slot-fill/bubbles-virtually/slot.js.map +1 -1
  127. package/build/slot-fill/bubbles-virtually/use-slot.js +15 -9
  128. package/build/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
  129. package/build/slot-fill/fill.js +12 -4
  130. package/build/slot-fill/fill.js.map +1 -1
  131. package/build/slot-fill/use-slot.js +3 -1
  132. package/build/slot-fill/use-slot.js.map +1 -1
  133. package/build/snackbar/index.js +1 -1
  134. package/build/snackbar/index.js.map +1 -1
  135. package/build/spinner/styles.js +4 -4
  136. package/build/spinner/styles.js.map +1 -1
  137. package/build/tab-panel/index.js +4 -9
  138. package/build/tab-panel/index.js.map +1 -1
  139. package/build/text-control/index.js +0 -2
  140. package/build/text-control/index.js.map +1 -1
  141. package/build/toggle-control/index.js +15 -3
  142. package/build/toggle-control/index.js.map +1 -1
  143. package/build/toggle-group-control/toggle-group-control/as-button-group.js +90 -0
  144. package/build/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -0
  145. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +90 -0
  146. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -0
  147. package/build/toggle-group-control/toggle-group-control/component.js +22 -50
  148. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  149. package/build/toggle-group-control/toggle-group-control/styles.js +13 -8
  150. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  151. package/build/toggle-group-control/toggle-group-control-option-base/component.js +39 -17
  152. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  153. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +23 -23
  154. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  155. package/build/toolbar-dropdown-menu/index.js +1 -1
  156. package/build/toolbar-dropdown-menu/index.js.map +1 -1
  157. package/build/tools-panel/styles.js +14 -14
  158. package/build/tools-panel/styles.js.map +1 -1
  159. package/build/tools-panel/tools-panel-item/hook.js +9 -5
  160. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  161. package/build/ui/context/context-system-provider.js +9 -22
  162. package/build/ui/context/context-system-provider.js.map +1 -1
  163. package/build/unit-control/index.js +7 -9
  164. package/build/unit-control/index.js.map +1 -1
  165. package/build/unit-control/styles/unit-control-styles.js +15 -25
  166. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  167. package/build/utils/colors-values.js +3 -2
  168. package/build/utils/colors-values.js.map +1 -1
  169. package/build/utils/config-values.js +0 -1
  170. package/build/utils/config-values.js.map +1 -1
  171. package/build/utils/hooks/use-update-effect.js +5 -1
  172. package/build/utils/hooks/use-update-effect.js.map +1 -1
  173. package/build/utils/input/base.js +2 -2
  174. package/build/utils/input/base.js.map +1 -1
  175. package/build/view/index.js.map +1 -1
  176. package/build-module/angle-picker-control/index.js +3 -2
  177. package/build-module/angle-picker-control/index.js.map +1 -1
  178. package/build-module/autocomplete/autocompleter-ui.js +29 -3
  179. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  180. package/build-module/autocomplete/index.js +7 -3
  181. package/build-module/autocomplete/index.js.map +1 -1
  182. package/build-module/border-box-control/border-box-control/component.js +61 -13
  183. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  184. package/build-module/border-box-control/border-box-control/hook.js +19 -3
  185. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  186. package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -3
  187. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  188. package/build-module/border-box-control/border-box-control-split-controls/component.js +3 -3
  189. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  190. package/build-module/border-box-control/border-box-control-split-controls/hook.js +19 -10
  191. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  192. package/build-module/border-box-control/border-box-control-visualizer/hook.js +4 -6
  193. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  194. package/build-module/border-box-control/styles.js +26 -28
  195. package/build-module/border-box-control/styles.js.map +1 -1
  196. package/build-module/border-control/border-control/component.js +6 -5
  197. package/build-module/border-control/border-control/component.js.map +1 -1
  198. package/build-module/border-control/border-control/hook.js +22 -5
  199. package/build-module/border-control/border-control/hook.js.map +1 -1
  200. package/build-module/border-control/border-control-dropdown/component.js +1 -1
  201. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  202. package/build-module/border-control/border-control-dropdown/hook.js +15 -7
  203. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  204. package/build-module/border-control/styles.js +20 -36
  205. package/build-module/border-control/styles.js.map +1 -1
  206. package/build-module/box-control/index.js +6 -2
  207. package/build-module/box-control/index.js.map +1 -1
  208. package/build-module/circular-option-picker/index.js +14 -14
  209. package/build-module/circular-option-picker/index.js.map +1 -1
  210. package/build-module/color-palette/index.js +82 -29
  211. package/build-module/color-palette/index.js.map +1 -1
  212. package/build-module/color-palette/styles.js +3 -3
  213. package/build-module/color-palette/styles.js.map +1 -1
  214. package/build-module/color-palette/types.js +2 -0
  215. package/build-module/color-palette/types.js.map +1 -0
  216. package/build-module/color-picker/input-with-slider.js +18 -4
  217. package/build-module/color-picker/input-with-slider.js.map +1 -1
  218. package/build-module/custom-gradient-picker/gradient-bar/index.js +1 -2
  219. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  220. package/build-module/custom-select-control/index.js +12 -5
  221. package/build-module/custom-select-control/index.js.map +1 -1
  222. package/build-module/dashicon/index.js +17 -2
  223. package/build-module/dashicon/index.js.map +1 -1
  224. package/build-module/date-time/date-time/index.js +2 -0
  225. package/build-module/date-time/date-time/index.js.map +1 -1
  226. package/build-module/date-time/time/index.js +4 -4
  227. package/build-module/date-time/time/index.js.map +1 -1
  228. package/build-module/disabled/index.js +8 -1
  229. package/build-module/disabled/index.js.map +1 -1
  230. package/build-module/draggable/index.js +59 -38
  231. package/build-module/draggable/index.js.map +1 -1
  232. package/build-module/draggable/types.js +2 -0
  233. package/build-module/draggable/types.js.map +1 -0
  234. package/build-module/external-link/index.js +13 -2
  235. package/build-module/external-link/index.js.map +1 -1
  236. package/build-module/flex/flex/hook.js +2 -3
  237. package/build-module/flex/flex/hook.js.map +1 -1
  238. package/build-module/focal-point-picker/focal-point.js +3 -13
  239. package/build-module/focal-point-picker/focal-point.js.map +1 -1
  240. package/build-module/focal-point-picker/styles/focal-point-style.js +6 -52
  241. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  242. package/build-module/focusable-iframe/index.js +0 -1
  243. package/build-module/focusable-iframe/index.js.map +1 -1
  244. package/build-module/font-size-picker/constants.js +31 -0
  245. package/build-module/font-size-picker/constants.js.map +1 -0
  246. package/build-module/font-size-picker/font-size-picker-select.js +83 -0
  247. package/build-module/font-size-picker/font-size-picker-select.js.map +1 -0
  248. package/build-module/font-size-picker/font-size-picker-toggle-group.js +40 -0
  249. package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
  250. package/build-module/font-size-picker/index.js +88 -111
  251. package/build-module/font-size-picker/index.js.map +1 -1
  252. package/build-module/font-size-picker/utils.js +15 -105
  253. package/build-module/font-size-picker/utils.js.map +1 -1
  254. package/build-module/form-file-upload/index.js.map +1 -1
  255. package/build-module/form-token-field/index.js +9 -6
  256. package/build-module/form-token-field/index.js.map +1 -1
  257. package/build-module/higher-order/navigate-regions/index.js +3 -0
  258. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  259. package/build-module/higher-order/with-filters/index.js +1 -6
  260. package/build-module/higher-order/with-filters/index.js.map +1 -1
  261. package/build-module/icon/index.js +3 -2
  262. package/build-module/icon/index.js.map +1 -1
  263. package/build-module/index.js +3 -2
  264. package/build-module/index.js.map +1 -1
  265. package/build-module/input-control/index.js +2 -0
  266. package/build-module/input-control/index.js.map +1 -1
  267. package/build-module/input-control/input-base.js +1 -1
  268. package/build-module/input-control/input-base.js.map +1 -1
  269. package/build-module/input-control/styles/input-control-styles.js +21 -21
  270. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  271. package/build-module/isolated-event-container/index.js +7 -9
  272. package/build-module/isolated-event-container/index.js.map +1 -1
  273. package/build-module/item-group/styles.js +10 -10
  274. package/build-module/item-group/styles.js.map +1 -1
  275. package/build-module/menu-group/index.js +20 -2
  276. package/build-module/menu-group/index.js.map +1 -1
  277. package/build-module/menu-group/types.js +2 -0
  278. package/build-module/menu-group/types.js.map +1 -0
  279. package/build-module/navigator/navigator-screen/component.js +27 -7
  280. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  281. package/build-module/number-control/index.js +81 -26
  282. package/build-module/number-control/index.js.map +1 -1
  283. package/build-module/number-control/styles/number-control-styles.js +30 -4
  284. package/build-module/number-control/styles/number-control-styles.js.map +1 -1
  285. package/build-module/palette-edit/index.js +3 -1
  286. package/build-module/palette-edit/index.js.map +1 -1
  287. package/build-module/popover/index.js +23 -33
  288. package/build-module/popover/index.js.map +1 -1
  289. package/build-module/radio-group/index.js +6 -1
  290. package/build-module/radio-group/index.js.map +1 -1
  291. package/build-module/{radio → radio-group/radio}/index.js +6 -1
  292. package/build-module/radio-group/radio/index.js.map +1 -0
  293. package/build-module/{radio-context → radio-group/radio-context}/index.js +0 -0
  294. package/build-module/radio-group/radio-context/index.js.map +1 -0
  295. package/build-module/range-control/styles/range-control-styles.js +47 -57
  296. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  297. package/build-module/slot-fill/bubbles-virtually/fill.js +9 -5
  298. package/build-module/slot-fill/bubbles-virtually/fill.js.map +1 -1
  299. package/build-module/slot-fill/bubbles-virtually/slot.js +13 -8
  300. package/build-module/slot-fill/bubbles-virtually/slot.js.map +1 -1
  301. package/build-module/slot-fill/bubbles-virtually/use-slot.js +15 -9
  302. package/build-module/slot-fill/bubbles-virtually/use-slot.js.map +1 -1
  303. package/build-module/slot-fill/fill.js +12 -4
  304. package/build-module/slot-fill/fill.js.map +1 -1
  305. package/build-module/slot-fill/use-slot.js +3 -1
  306. package/build-module/slot-fill/use-slot.js.map +1 -1
  307. package/build-module/snackbar/index.js +1 -1
  308. package/build-module/snackbar/index.js.map +1 -1
  309. package/build-module/spinner/styles.js +4 -4
  310. package/build-module/spinner/styles.js.map +1 -1
  311. package/build-module/tab-panel/index.js +5 -10
  312. package/build-module/tab-panel/index.js.map +1 -1
  313. package/build-module/text-control/index.js +0 -2
  314. package/build-module/text-control/index.js.map +1 -1
  315. package/build-module/toggle-control/index.js +15 -3
  316. package/build-module/toggle-control/index.js.map +1 -1
  317. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js +76 -0
  318. package/build-module/toggle-group-control/toggle-group-control/as-button-group.js.map +1 -0
  319. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +75 -0
  320. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -0
  321. package/build-module/toggle-group-control/toggle-group-control/component.js +20 -49
  322. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  323. package/build-module/toggle-group-control/toggle-group-control/styles.js +13 -6
  324. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  325. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +39 -17
  326. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  327. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +21 -18
  328. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  329. package/build-module/toolbar-dropdown-menu/index.js +1 -1
  330. package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
  331. package/build-module/tools-panel/styles.js +14 -14
  332. package/build-module/tools-panel/styles.js.map +1 -1
  333. package/build-module/tools-panel/tools-panel-item/hook.js +9 -5
  334. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  335. package/build-module/ui/context/context-system-provider.js +6 -20
  336. package/build-module/ui/context/context-system-provider.js.map +1 -1
  337. package/build-module/unit-control/index.js +8 -10
  338. package/build-module/unit-control/index.js.map +1 -1
  339. package/build-module/unit-control/styles/unit-control-styles.js +8 -24
  340. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  341. package/build-module/utils/colors-values.js +3 -2
  342. package/build-module/utils/colors-values.js.map +1 -1
  343. package/build-module/utils/config-values.js +0 -1
  344. package/build-module/utils/config-values.js.map +1 -1
  345. package/build-module/utils/hooks/use-update-effect.js +5 -1
  346. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  347. package/build-module/utils/input/base.js +2 -2
  348. package/build-module/utils/input/base.js.map +1 -1
  349. package/build-module/view/index.js.map +1 -1
  350. package/build-style/style-rtl.css +93 -85
  351. package/build-style/style.css +91 -83
  352. package/build-types/base-field/hook.d.ts +11 -11
  353. package/build-types/border-box-control/border-box-control/component.d.ts +55 -6
  354. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  355. package/build-types/border-box-control/border-box-control/hook.d.ts +18 -17
  356. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  357. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -2
  358. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
  359. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +12 -12
  360. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  361. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +3 -3
  362. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  363. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +17 -17
  364. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  365. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +3 -2
  366. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
  367. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +12 -12
  368. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  369. package/build-types/border-box-control/stories/index.d.ts +17 -0
  370. package/build-types/border-box-control/stories/index.d.ts.map +1 -0
  371. package/build-types/border-box-control/styles.d.ts +7 -6
  372. package/build-types/border-box-control/styles.d.ts.map +1 -1
  373. package/build-types/border-box-control/types.d.ts +5 -42
  374. package/build-types/border-box-control/types.d.ts.map +1 -1
  375. package/build-types/border-control/border-control/component.d.ts +4 -2
  376. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  377. package/build-types/border-control/border-control/hook.d.ts +18 -18
  378. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  379. package/build-types/border-control/border-control-dropdown/component.d.ts +3 -3
  380. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  381. package/build-types/border-control/border-control-dropdown/hook.d.ts +16 -16
  382. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  383. package/build-types/border-control/border-control-style-picker/hook.d.ts +11 -11
  384. package/build-types/border-control/stories/index.d.ts +24 -12
  385. package/build-types/border-control/stories/index.d.ts.map +1 -1
  386. package/build-types/border-control/styles.d.ts +3 -3
  387. package/build-types/border-control/styles.d.ts.map +1 -1
  388. package/build-types/border-control/types.d.ts +10 -53
  389. package/build-types/border-control/types.d.ts.map +1 -1
  390. package/build-types/card/card/hook.d.ts +12 -12
  391. package/build-types/card/card-body/hook.d.ts +12 -12
  392. package/build-types/card/card-divider/hook.d.ts +13 -13
  393. package/build-types/card/card-footer/hook.d.ts +12 -12
  394. package/build-types/card/card-header/hook.d.ts +12 -12
  395. package/build-types/card/card-media/hook.d.ts +12 -12
  396. package/build-types/card/stories/index.d.ts.map +1 -1
  397. package/build-types/circular-option-picker/index.d.ts +4 -24
  398. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  399. package/build-types/color-palette/index.d.ts +43 -14
  400. package/build-types/color-palette/index.d.ts.map +1 -1
  401. package/build-types/color-palette/stories/index.d.ts +50 -0
  402. package/build-types/color-palette/stories/index.d.ts.map +1 -0
  403. package/build-types/color-palette/styles.d.ts +3 -2
  404. package/build-types/color-palette/styles.d.ts.map +1 -1
  405. package/build-types/color-palette/test/index.d.ts +2 -0
  406. package/build-types/color-palette/test/index.d.ts.map +1 -0
  407. package/build-types/color-palette/types.d.ts +90 -0
  408. package/build-types/color-palette/types.d.ts.map +1 -0
  409. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  410. package/build-types/color-picker/styles.d.ts +5 -4
  411. package/build-types/color-picker/styles.d.ts.map +1 -1
  412. package/build-types/confirm-dialog/component.d.ts +4 -4
  413. package/build-types/custom-select-control/index.d.ts +1 -12
  414. package/build-types/custom-select-control/index.d.ts.map +1 -1
  415. package/build-types/custom-select-control/styles.d.ts +3 -1
  416. package/build-types/custom-select-control/styles.d.ts.map +1 -1
  417. package/build-types/dashicon/index.d.ts +6 -1
  418. package/build-types/dashicon/index.d.ts.map +1 -1
  419. package/build-types/date-time/date/styles.d.ts +3 -3
  420. package/build-types/date-time/date-time/index.d.ts +2 -0
  421. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  422. package/build-types/date-time/date-time/styles.d.ts +3 -3
  423. package/build-types/date-time/stories/date-time.d.ts.map +1 -1
  424. package/build-types/date-time/time/styles.d.ts +8 -4
  425. package/build-types/date-time/time/styles.d.ts.map +1 -1
  426. package/build-types/date-time/types.d.ts +0 -16
  427. package/build-types/date-time/types.d.ts.map +1 -1
  428. package/build-types/disabled/index.d.ts +8 -1
  429. package/build-types/disabled/index.d.ts.map +1 -1
  430. package/build-types/draggable/index.d.ts +42 -66
  431. package/build-types/draggable/index.d.ts.map +1 -1
  432. package/build-types/draggable/stories/index.d.ts +12 -0
  433. package/build-types/draggable/stories/index.d.ts.map +1 -0
  434. package/build-types/draggable/types.d.ts +58 -0
  435. package/build-types/draggable/types.d.ts.map +1 -0
  436. package/build-types/elevation/hook.d.ts +12 -12
  437. package/build-types/external-link/index.d.ts.map +1 -1
  438. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  439. package/build-types/external-link/test/index.d.ts +2 -0
  440. package/build-types/external-link/test/index.d.ts.map +1 -0
  441. package/build-types/flex/flex/hook.d.ts +12 -12
  442. package/build-types/flex/flex/hook.d.ts.map +1 -1
  443. package/build-types/flex/flex-block/hook.d.ts +12 -12
  444. package/build-types/flex/flex-item/hook.d.ts +12 -12
  445. package/build-types/focal-point-picker/focal-point.d.ts.map +1 -1
  446. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -2
  447. package/build-types/focal-point-picker/styles/focal-point-style.d.ts +1 -12
  448. package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
  449. package/build-types/focusable-iframe/index.d.ts.map +1 -1
  450. package/build-types/font-size-picker/constants.d.ts +15 -0
  451. package/build-types/font-size-picker/constants.d.ts.map +1 -0
  452. package/build-types/font-size-picker/font-size-picker-select.d.ts +5 -0
  453. package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -0
  454. package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts +5 -0
  455. package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -0
  456. package/build-types/font-size-picker/index.d.ts.map +1 -1
  457. package/build-types/font-size-picker/types.d.ts +14 -14
  458. package/build-types/font-size-picker/types.d.ts.map +1 -1
  459. package/build-types/font-size-picker/utils.d.ts +6 -26
  460. package/build-types/font-size-picker/utils.d.ts.map +1 -1
  461. package/build-types/form-file-upload/index.d.ts.map +1 -1
  462. package/build-types/form-file-upload/types.d.ts +5 -4
  463. package/build-types/form-file-upload/types.d.ts.map +1 -1
  464. package/build-types/form-token-field/index.d.ts.map +1 -1
  465. package/build-types/grid/hook.d.ts +12 -12
  466. package/build-types/h-stack/component.d.ts +1 -1
  467. package/build-types/h-stack/hook.d.ts +12 -12
  468. package/build-types/heading/hook.d.ts +12 -12
  469. package/build-types/icon/index.d.ts +1 -1
  470. package/build-types/icon/index.d.ts.map +1 -1
  471. package/build-types/input-control/index.d.ts +1 -1
  472. package/build-types/input-control/index.d.ts.map +1 -1
  473. package/build-types/input-control/input-base.d.ts +5 -2
  474. package/build-types/input-control/input-base.d.ts.map +1 -1
  475. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  476. package/build-types/input-control/types.d.ts +3 -8
  477. package/build-types/input-control/types.d.ts.map +1 -1
  478. package/build-types/input-control/utils.d.ts +1 -1
  479. package/build-types/isolated-event-container/index.d.ts +3 -2
  480. package/build-types/isolated-event-container/index.d.ts.map +1 -1
  481. package/build-types/item-group/item/hook.d.ts +13 -13
  482. package/build-types/item-group/item-group/hook.d.ts +13 -13
  483. package/build-types/menu-group/index.d.ts +21 -1
  484. package/build-types/menu-group/index.d.ts.map +1 -1
  485. package/build-types/menu-group/test/index.d.ts +2 -0
  486. package/build-types/menu-group/test/index.d.ts.map +1 -0
  487. package/build-types/menu-group/types.d.ts +23 -0
  488. package/build-types/menu-group/types.d.ts.map +1 -0
  489. package/build-types/navigator/navigator-back-button/hook.d.ts +13 -13
  490. package/build-types/navigator/navigator-button/hook.d.ts +13 -13
  491. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  492. package/build-types/number-control/index.d.ts +2 -4
  493. package/build-types/number-control/index.d.ts.map +1 -1
  494. package/build-types/number-control/styles/number-control-styles.d.ts +5 -0
  495. package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
  496. package/build-types/number-control/types.d.ts +12 -0
  497. package/build-types/number-control/types.d.ts.map +1 -1
  498. package/build-types/popover/index.d.ts +1 -1
  499. package/build-types/popover/index.d.ts.map +1 -1
  500. package/build-types/popover/stories/e2e/index.d.ts +1 -1
  501. package/build-types/popover/stories/index.d.ts +2 -0
  502. package/build-types/popover/stories/index.d.ts.map +1 -1
  503. package/build-types/popover/types.d.ts +18 -14
  504. package/build-types/popover/types.d.ts.map +1 -1
  505. package/build-types/radio-group/index.d.ts +10 -0
  506. package/build-types/radio-group/index.d.ts.map +1 -0
  507. package/build-types/radio-group/radio/index.d.ts +7 -0
  508. package/build-types/radio-group/radio/index.d.ts.map +1 -0
  509. package/build-types/{radio-context → radio-group/radio-context}/index.d.ts +0 -0
  510. package/build-types/radio-group/radio-context/index.d.ts.map +1 -0
  511. package/build-types/range-control/index.d.ts +1 -1
  512. package/build-types/range-control/styles/range-control-styles.d.ts +2 -1
  513. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  514. package/build-types/resizable-box/index.d.ts +1 -1
  515. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  516. package/build-types/resizable-box/resize-tooltip/label.d.ts +1 -1
  517. package/build-types/scrollable/hook.d.ts +12 -12
  518. package/build-types/search-control/index.d.ts +2 -2
  519. package/build-types/search-control/stories/index.d.ts +4 -4
  520. package/build-types/select-control/stories/index.d.ts.map +1 -1
  521. package/build-types/slot-fill/bubbles-virtually/use-slot.d.ts.map +1 -1
  522. package/build-types/slot-fill/fill.d.ts.map +1 -1
  523. package/build-types/slot-fill/use-slot.d.ts.map +1 -1
  524. package/build-types/spacer/hook.d.ts +12 -12
  525. package/build-types/spinner/index.d.ts +1 -1
  526. package/build-types/surface/hook.d.ts +12 -12
  527. package/build-types/tab-panel/index.d.ts.map +1 -1
  528. package/build-types/text/hook.d.ts +12 -12
  529. package/build-types/text-control/index.d.ts +2 -4
  530. package/build-types/text-control/index.d.ts.map +1 -1
  531. package/build-types/text-control/stories/index.d.ts.map +1 -1
  532. package/build-types/toggle-control/index.d.ts.map +1 -1
  533. package/build-types/toggle-control/types.d.ts +2 -1
  534. package/build-types/toggle-control/types.d.ts.map +1 -1
  535. package/build-types/toggle-group-control/stories/index.d.ts +2 -2
  536. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
  537. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +6 -0
  538. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -0
  539. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +6 -0
  540. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -0
  541. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +2 -2
  542. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  543. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -2
  544. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  545. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  546. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +4 -7
  547. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  548. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  549. package/build-types/toggle-group-control/types.d.ts +21 -15
  550. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  551. package/build-types/tools-panel/tools-panel/hook.d.ts +12 -12
  552. package/build-types/tools-panel/tools-panel-header/hook.d.ts +12 -12
  553. package/build-types/tools-panel/tools-panel-item/hook.d.ts +12 -12
  554. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  555. package/build-types/truncate/hook.d.ts +12 -12
  556. package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
  557. package/build-types/ui/control-group/hook.d.ts +12 -12
  558. package/build-types/ui/control-label/component.d.ts +1 -1
  559. package/build-types/ui/control-label/hook.d.ts +12 -12
  560. package/build-types/ui/form-group/form-group.d.ts +4 -4
  561. package/build-types/ui/form-group/use-form-group.d.ts +28 -28
  562. package/build-types/unit-control/index.d.ts +2 -2
  563. package/build-types/unit-control/index.d.ts.map +1 -1
  564. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -5
  565. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  566. package/build-types/unit-control/types.d.ts +3 -3
  567. package/build-types/unit-control/types.d.ts.map +1 -1
  568. package/build-types/utils/colors-values.d.ts +1 -0
  569. package/build-types/utils/colors-values.d.ts.map +1 -1
  570. package/build-types/utils/config-values.d.ts +0 -1
  571. package/build-types/utils/hooks/use-update-effect.d.ts.map +1 -1
  572. package/build-types/utils/types.d.ts +0 -14
  573. package/build-types/utils/types.d.ts.map +1 -1
  574. package/build-types/v-stack/component.d.ts +2 -2
  575. package/build-types/v-stack/hook.d.ts +12 -12
  576. package/build-types/v-stack/stories/index.d.ts +2 -2
  577. package/build-types/view/index.d.ts +1 -1
  578. package/build-types/view/index.d.ts.map +1 -1
  579. package/package.json +17 -17
  580. package/src/angle-picker-control/index.js +3 -2
  581. package/src/angle-picker-control/stories/index.js +3 -0
  582. package/src/autocomplete/autocompleter-ui.js +29 -2
  583. package/src/autocomplete/index.js +12 -3
  584. package/src/autocomplete/style.scss +1 -1
  585. package/src/autocomplete/test/index.js +89 -0
  586. package/src/base-field/test/__snapshots__/index.js.snap +9 -7
  587. package/src/base-field/test/index.js +27 -15
  588. package/src/border-box-control/border-box-control/README.md +13 -17
  589. package/src/border-box-control/border-box-control/component.tsx +64 -13
  590. package/src/border-box-control/border-box-control/hook.ts +25 -6
  591. package/src/border-box-control/border-box-control-linked-button/hook.ts +3 -6
  592. package/src/border-box-control/border-box-control-split-controls/component.tsx +3 -6
  593. package/src/border-box-control/border-box-control-split-controls/hook.ts +21 -14
  594. package/src/border-box-control/border-box-control-visualizer/hook.ts +4 -7
  595. package/src/border-box-control/stories/index.tsx +90 -0
  596. package/src/border-box-control/styles.ts +28 -22
  597. package/src/border-box-control/test/index.js +287 -122
  598. package/src/border-box-control/types.ts +32 -62
  599. package/src/border-control/border-control/README.md +12 -17
  600. package/src/border-control/border-control/component.tsx +5 -4
  601. package/src/border-control/border-control/hook.ts +20 -6
  602. package/src/border-control/border-control-dropdown/component.tsx +7 -6
  603. package/src/border-control/border-control-dropdown/hook.ts +14 -8
  604. package/src/border-control/stories/index.tsx +12 -14
  605. package/src/border-control/styles.ts +20 -23
  606. package/src/border-control/test/index.js +139 -96
  607. package/src/border-control/types.ts +43 -82
  608. package/src/box-control/README.md +14 -0
  609. package/src/box-control/index.js +4 -0
  610. package/src/box-control/stories/index.js +8 -27
  611. package/src/button/README.md +2 -15
  612. package/src/button/stories/index.js +109 -178
  613. package/src/button/style.scss +17 -54
  614. package/src/card/stories/index.tsx +27 -31
  615. package/src/card/test/__snapshots__/index.tsx.snap +98 -401
  616. package/src/card/test/index.tsx +4 -8
  617. package/src/checkbox-control/style.scss +3 -3
  618. package/src/circular-option-picker/index.js +14 -20
  619. package/src/color-palette/README.md +47 -49
  620. package/src/color-palette/{index.js → index.tsx} +132 -51
  621. package/src/color-palette/stories/{index.js → index.tsx} +38 -27
  622. package/src/color-palette/style.scss +3 -3
  623. package/src/color-palette/{styles.js → styles.ts} +0 -0
  624. package/src/color-palette/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  625. package/src/color-palette/test/{index.js → index.tsx} +1 -1
  626. package/src/color-palette/types.ts +97 -0
  627. package/src/color-picker/input-with-slider.tsx +14 -3
  628. package/src/custom-gradient-picker/gradient-bar/index.js +1 -3
  629. package/src/custom-select-control/README.md +14 -0
  630. package/src/custom-select-control/index.js +29 -15
  631. package/src/custom-select-control/stories/index.js +1 -0
  632. package/src/custom-select-control/style.scss +6 -1
  633. package/src/custom-select-control/test/index.js +39 -0
  634. package/src/dashicon/index.js +21 -2
  635. package/src/date-time/date/test/index.tsx +2 -2
  636. package/src/date-time/date-time/index.tsx +2 -0
  637. package/src/date-time/stories/date-time.tsx +4 -0
  638. package/src/date-time/time/index.tsx +4 -4
  639. package/src/date-time/types.ts +0 -19
  640. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -0
  641. package/src/disabled/README.md +2 -0
  642. package/src/disabled/index.tsx +8 -1
  643. package/src/disabled/test/index.tsx +0 -5
  644. package/src/divider/test/index.tsx +4 -4
  645. package/src/draggable/README.md +13 -18
  646. package/src/draggable/{index.js → index.tsx} +71 -47
  647. package/src/draggable/stories/index.tsx +83 -0
  648. package/src/draggable/types.ts +58 -0
  649. package/src/drop-zone/style.scss +1 -1
  650. package/src/external-link/index.tsx +14 -6
  651. package/src/external-link/test/index.tsx +106 -0
  652. package/src/flex/flex/hook.ts +0 -3
  653. package/src/flex/test/index.tsx +29 -3
  654. package/src/focal-point-picker/focal-point.tsx +2 -24
  655. package/src/focal-point-picker/styles/focal-point-style.ts +8 -32
  656. package/src/focusable-iframe/index.js +0 -1
  657. package/src/font-size-picker/README.md +3 -3
  658. package/src/font-size-picker/constants.ts +37 -0
  659. package/src/font-size-picker/font-size-picker-select.tsx +98 -0
  660. package/src/font-size-picker/font-size-picker-toggle-group.tsx +41 -0
  661. package/src/font-size-picker/index.tsx +161 -214
  662. package/src/font-size-picker/test/index.tsx +653 -171
  663. package/src/font-size-picker/test/utils.ts +56 -140
  664. package/src/font-size-picker/types.ts +26 -17
  665. package/src/font-size-picker/utils.ts +16 -124
  666. package/src/form-file-upload/README.md +1 -3
  667. package/src/form-file-upload/index.tsx +1 -0
  668. package/src/form-file-upload/types.ts +5 -4
  669. package/src/form-toggle/style.scss +3 -3
  670. package/src/form-toggle/test/__snapshots__/index.tsx.snap +15 -13
  671. package/src/form-toggle/test/index.tsx +1 -1
  672. package/src/form-token-field/index.tsx +13 -5
  673. package/src/form-token-field/style.scss +2 -2
  674. package/src/form-token-field/test/index.tsx +6 -6
  675. package/src/h-stack/test/__snapshots__/index.tsx.snap +36 -30
  676. package/src/h-stack/test/index.tsx +3 -3
  677. package/src/higher-order/navigate-regions/index.js +4 -0
  678. package/src/higher-order/navigate-regions/style.scss +72 -20
  679. package/src/higher-order/with-filters/index.js +4 -9
  680. package/src/higher-order/with-notices/test/index.js +1 -1
  681. package/src/icon/index.tsx +3 -2
  682. package/src/icon/test/index.js +10 -0
  683. package/src/index.js +3 -1
  684. package/src/input-control/index.tsx +2 -0
  685. package/src/input-control/input-base.tsx +3 -3
  686. package/src/input-control/styles/input-control-styles.tsx +1 -0
  687. package/src/input-control/types.ts +4 -11
  688. package/src/isolated-event-container/index.tsx +32 -0
  689. package/src/item-group/stories/index.js +1 -1
  690. package/src/item-group/styles.ts +1 -1
  691. package/src/item-group/test/__snapshots__/index.js.snap +90 -85
  692. package/src/item-group/test/index.js +7 -17
  693. package/src/menu-group/{index.js → index.tsx} +22 -3
  694. package/src/menu-group/test/{index.js → index.tsx} +0 -0
  695. package/src/menu-group/types.ts +23 -0
  696. package/src/menu-item/style.scss +1 -1
  697. package/src/mobile/bottom-sheet/test/range-cell.native.js +4 -4
  698. package/src/mobile/html-text-input/test/index.native.js +2 -2
  699. package/src/mobile/link-settings/test/edit.native.js +29 -29
  700. package/src/mobile/link-settings/test/link-settings-navigation.native.js +5 -5
  701. package/src/navigator/navigator-screen/component.tsx +28 -6
  702. package/src/notice/README.md +2 -1
  703. package/src/notice/style.scss +1 -1
  704. package/src/number-control/README.md +9 -4
  705. package/src/number-control/index.tsx +100 -33
  706. package/src/number-control/styles/number-control-styles.js +26 -1
  707. package/src/number-control/test/index.js +50 -0
  708. package/src/number-control/types.ts +12 -0
  709. package/src/palette-edit/index.js +3 -0
  710. package/src/panel/style.scss +1 -1
  711. package/src/popover/README.md +12 -7
  712. package/src/popover/index.tsx +38 -37
  713. package/src/popover/stories/index.tsx +29 -1
  714. package/src/popover/style.scss +9 -0
  715. package/src/popover/types.ts +18 -15
  716. package/src/radio-group/README.md +4 -0
  717. package/src/radio-group/index.js +6 -1
  718. package/src/{radio → radio-group/radio}/index.js +6 -1
  719. package/src/{radio-context → radio-group/radio-context}/index.js +0 -0
  720. package/src/radio-group/stories/index.js +11 -2
  721. package/src/range-control/styles/range-control-styles.ts +2 -2
  722. package/src/resizable-box/style.scss +2 -2
  723. package/src/sandbox/test/index.js +2 -2
  724. package/src/scrollable/test/index.tsx +7 -3
  725. package/src/search-control/style.scss +1 -1
  726. package/src/select-control/stories/index.tsx +9 -4
  727. package/src/slot-fill/bubbles-virtually/fill.js +5 -5
  728. package/src/slot-fill/bubbles-virtually/slot.js +10 -8
  729. package/src/slot-fill/bubbles-virtually/use-slot.js +15 -9
  730. package/src/slot-fill/fill.js +12 -2
  731. package/src/slot-fill/use-slot.js +3 -0
  732. package/src/snackbar/index.js +1 -1
  733. package/src/snackbar/style.scss +2 -2
  734. package/src/spacer/test/index.tsx +33 -3
  735. package/src/spinner/styles.ts +1 -1
  736. package/src/surface/test/__snapshots__/index.tsx.snap +58 -46
  737. package/src/surface/test/index.tsx +12 -22
  738. package/src/tab-panel/index.tsx +10 -8
  739. package/src/tab-panel/style.scss +4 -5
  740. package/src/tab-panel/test/index.tsx +78 -1
  741. package/src/text/test/__snapshots__/index.tsx.snap +19 -15
  742. package/src/text/test/index.tsx +6 -6
  743. package/src/text-control/index.tsx +0 -2
  744. package/src/text-control/stories/index.tsx +5 -6
  745. package/src/toggle-control/README.md +6 -4
  746. package/src/toggle-control/index.tsx +13 -2
  747. package/src/toggle-control/types.ts +2 -4
  748. package/src/toggle-group-control/stories/index.tsx +6 -4
  749. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +221 -164
  750. package/src/toggle-group-control/test/index.tsx +156 -17
  751. package/src/toggle-group-control/toggle-group-control/README.md +8 -1
  752. package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +103 -0
  753. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +99 -0
  754. package/src/toggle-group-control/toggle-group-control/component.tsx +29 -74
  755. package/src/toggle-group-control/toggle-group-control/styles.ts +23 -15
  756. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +49 -25
  757. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +39 -19
  758. package/src/toggle-group-control/types.ts +76 -63
  759. package/src/toolbar-dropdown-menu/index.js +1 -1
  760. package/src/tools-panel/stories/index.js +0 -1
  761. package/src/tools-panel/stories/tools-panel-with-item-group-slot.js +0 -1
  762. package/src/tools-panel/styles.ts +1 -1
  763. package/src/tools-panel/tools-panel-item/hook.ts +6 -1
  764. package/src/tree-grid/test/__snapshots__/cell.js.snap +20 -18
  765. package/src/tree-grid/test/__snapshots__/roving-tab-index.js.snap +3 -1
  766. package/src/tree-grid/test/__snapshots__/row.js.snap +33 -29
  767. package/src/tree-grid/test/cell.js +1 -1
  768. package/src/tree-grid/test/index.js +12 -12
  769. package/src/tree-grid/test/roving-tab-index.js +1 -1
  770. package/src/tree-grid/test/row.js +2 -2
  771. package/src/truncate/test/index.tsx +9 -9
  772. package/src/ui/context/context-system-provider.js +5 -18
  773. package/src/ui/context/test/__snapshots__/context-system-provider.js.snap +23 -17
  774. package/src/ui/context/test/context-system-provider.js +3 -3
  775. package/src/ui/control-group/test/__snapshots__/index.js.snap +18 -16
  776. package/src/ui/control-group/test/index.js +1 -1
  777. package/src/ui/control-label/test/__snapshots__/index.js.snap +27 -21
  778. package/src/ui/control-label/test/index.js +3 -3
  779. package/src/ui/form-group/test/__snapshots__/index.js.snap +34 -30
  780. package/src/ui/form-group/test/index.js +18 -19
  781. package/src/ui/shortcut/test/__snapshots__/index.js.snap +1 -1
  782. package/src/ui/shortcut/test/index.js +1 -1
  783. package/src/ui/spinner/test/__snapshots__/index.js.snap +75 -73
  784. package/src/ui/spinner/test/index.js +3 -7
  785. package/src/unit-control/index.tsx +29 -30
  786. package/src/unit-control/styles/unit-control-styles.ts +6 -12
  787. package/src/unit-control/test/utils.ts +43 -0
  788. package/src/unit-control/types.ts +5 -6
  789. package/src/utils/colors-values.js +4 -2
  790. package/src/utils/config-values.js +0 -1
  791. package/src/utils/hooks/stories/use-cx.js +1 -1
  792. package/src/utils/hooks/use-update-effect.js +5 -1
  793. package/src/utils/input/base.js +2 -2
  794. package/src/utils/types.ts +0 -15
  795. package/src/v-stack/test/__snapshots__/index.tsx.snap +36 -30
  796. package/src/v-stack/test/index.tsx +3 -3
  797. package/src/view/{index.js → index.ts} +0 -0
  798. package/src/view/test/__snapshots__/index.js.snap +34 -24
  799. package/src/view/test/index.js +5 -5
  800. package/tsconfig.json +0 -2
  801. package/tsconfig.tsbuildinfo +1 -1
  802. package/build/radio/index.js.map +0 -1
  803. package/build/radio-context/index.js.map +0 -1
  804. package/build-module/radio/index.js.map +0 -1
  805. package/build-module/radio-context/index.js.map +0 -1
  806. package/build-types/radio-context/index.d.ts.map +0 -1
  807. package/src/border-box-control/stories/index.js +0 -106
  808. package/src/draggable/stories/index.js +0 -72
  809. package/src/form-file-upload/stories/index.js +0 -51
  810. package/src/isolated-event-container/index.js +0 -28
  811. package/src/radio/stories/index.js +0 -20
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render, fireEvent, screen } from '@testing-library/react';
4
+ import { render, screen, waitFor } from '@testing-library/react';
5
+ import userEvent from '@testing-library/user-event';
5
6
 
6
7
  /**
7
8
  * WordPress dependencies
@@ -48,7 +49,7 @@ describe( 'ToggleGroupControl', () => {
48
49
  </ToggleGroupControl>
49
50
  );
50
51
 
51
- expect( container.firstChild ).toMatchSnapshot();
52
+ expect( container ).toMatchSnapshot();
52
53
  } );
53
54
  it( 'with icons', () => {
54
55
  const { container } = render(
@@ -69,10 +70,13 @@ describe( 'ToggleGroupControl', () => {
69
70
  </ToggleGroupControl>
70
71
  );
71
72
 
72
- expect( container.firstChild ).toMatchSnapshot();
73
+ expect( container ).toMatchSnapshot();
73
74
  } );
74
75
  } );
75
- it( 'should call onChange with proper value', () => {
76
+ it( 'should call onChange with proper value', async () => {
77
+ const user = userEvent.setup( {
78
+ advanceTimers: jest.advanceTimersByTime,
79
+ } );
76
80
  const mockOnChange = jest.fn();
77
81
 
78
82
  render(
@@ -85,13 +89,15 @@ describe( 'ToggleGroupControl', () => {
85
89
  </ToggleGroupControl>
86
90
  );
87
91
 
88
- const firstRadio = screen.getByRole( 'radio', { name: 'R' } );
89
-
90
- fireEvent.click( firstRadio );
92
+ await user.click( screen.getByRole( 'radio', { name: 'R' } ) );
91
93
 
92
94
  expect( mockOnChange ).toHaveBeenCalledWith( 'rigas' );
93
95
  } );
94
- it( 'should render tooltip where `showTooltip` === `true`', () => {
96
+
97
+ it( 'should render tooltip where `showTooltip` === `true`', async () => {
98
+ const user = userEvent.setup( {
99
+ advanceTimers: jest.advanceTimersByTime,
100
+ } );
95
101
  render(
96
102
  <ToggleGroupControl label="Test Toggle Group Control">
97
103
  { optionsWithTooltip }
@@ -102,14 +108,19 @@ describe( 'ToggleGroupControl', () => {
102
108
  'Click for Delicious Gnocchi'
103
109
  );
104
110
 
105
- fireEvent.focus( firstRadio );
111
+ await user.hover( firstRadio );
106
112
 
107
- expect(
108
- screen.getByText( 'Click for Delicious Gnocchi' )
109
- ).toBeInTheDocument();
113
+ await waitFor( () =>
114
+ expect(
115
+ screen.getByText( 'Click for Delicious Gnocchi' )
116
+ ).toBeVisible()
117
+ );
110
118
  } );
111
119
 
112
- it( 'should not render tooltip', () => {
120
+ it( 'should not render tooltip', async () => {
121
+ const user = userEvent.setup( {
122
+ advanceTimers: jest.advanceTimersByTime,
123
+ } );
113
124
  render(
114
125
  <ToggleGroupControl label="Test Toggle Group Control">
115
126
  { optionsWithTooltip }
@@ -120,10 +131,138 @@ describe( 'ToggleGroupControl', () => {
120
131
  'Click for Sumptuous Caponata'
121
132
  );
122
133
 
123
- fireEvent.focus( secondRadio );
134
+ await user.hover( secondRadio );
135
+
136
+ await waitFor( () =>
137
+ expect(
138
+ screen.queryByText( 'Click for Sumptuous Caponata' )
139
+ ).not.toBeInTheDocument()
140
+ );
141
+ } );
142
+
143
+ describe( 'isDeselectable', () => {
144
+ describe( 'isDeselectable = false', () => {
145
+ it( 'should not be deselectable', async () => {
146
+ const mockOnChange = jest.fn();
147
+ const user = userEvent.setup( {
148
+ advanceTimers: jest.advanceTimersByTime,
149
+ } );
150
+
151
+ render(
152
+ <ToggleGroupControl
153
+ value="rigas"
154
+ label="Test"
155
+ onChange={ mockOnChange }
156
+ >
157
+ { options }
158
+ </ToggleGroupControl>
159
+ );
160
+
161
+ const rigas = screen.getByRole( 'radio', {
162
+ name: 'R',
163
+ checked: true,
164
+ } );
165
+ await user.click( rigas );
166
+ expect( mockOnChange ).toHaveBeenCalledTimes( 0 );
167
+ } );
168
+
169
+ it( 'should not tab to next radio option', async () => {
170
+ const user = userEvent.setup( {
171
+ advanceTimers: jest.advanceTimersByTime,
172
+ } );
124
173
 
125
- expect(
126
- screen.queryByText( 'Click for Sumptuous Caponata' )
127
- ).not.toBeInTheDocument();
174
+ render(
175
+ <ToggleGroupControl value="rigas" label="Test">
176
+ { options }
177
+ </ToggleGroupControl>
178
+ );
179
+
180
+ const rigas = screen.getByRole( 'radio', {
181
+ name: 'R',
182
+ } );
183
+
184
+ await user.tab();
185
+ expect( rigas ).toHaveFocus();
186
+
187
+ await user.tab();
188
+ expect( rigas.ownerDocument.body ).toHaveFocus();
189
+ } );
190
+ } );
191
+
192
+ describe( 'isDeselectable = true', () => {
193
+ it( 'should be deselectable', async () => {
194
+ const mockOnChange = jest.fn();
195
+ const user = userEvent.setup( {
196
+ advanceTimers: jest.advanceTimersByTime,
197
+ } );
198
+
199
+ render(
200
+ <ToggleGroupControl
201
+ value="rigas"
202
+ label="Test"
203
+ onChange={ mockOnChange }
204
+ isDeselectable
205
+ >
206
+ { options }
207
+ </ToggleGroupControl>
208
+ );
209
+
210
+ await user.click(
211
+ screen.getByRole( 'button', {
212
+ name: 'R',
213
+ pressed: true,
214
+ } )
215
+ );
216
+ expect( mockOnChange ).toHaveBeenCalledTimes( 1 );
217
+ expect( mockOnChange ).toHaveBeenCalledWith( undefined );
218
+ expect(
219
+ screen.getByRole( 'button', {
220
+ name: 'R',
221
+ pressed: false,
222
+ } )
223
+ ).toBeVisible();
224
+ } );
225
+
226
+ it( 'should tab to the next option button', async () => {
227
+ const user = userEvent.setup( {
228
+ advanceTimers: jest.advanceTimersByTime,
229
+ } );
230
+
231
+ render(
232
+ <ToggleGroupControl
233
+ isDeselectable
234
+ value="rigas"
235
+ label="Test"
236
+ >
237
+ { options }
238
+ </ToggleGroupControl>
239
+ );
240
+
241
+ await user.tab();
242
+ expect(
243
+ screen.getByRole( 'button', {
244
+ name: 'R',
245
+ pressed: true,
246
+ } )
247
+ ).toHaveFocus();
248
+
249
+ await user.tab();
250
+ expect(
251
+ screen.getByRole( 'button', {
252
+ name: 'J',
253
+ pressed: false,
254
+ } )
255
+ ).toHaveFocus();
256
+
257
+ // Focus should not move with arrow keys
258
+ await user.keyboard( '{ArrowLeft}' );
259
+ expect(
260
+ screen.getByRole( 'button', {
261
+ name: 'J',
262
+ pressed: false,
263
+ } )
264
+ ).toHaveFocus();
265
+ } );
266
+ } );
128
267
  } );
129
268
  } );
@@ -50,9 +50,16 @@ Determines if segments should be rendered with equal widths.
50
50
  - Required: No
51
51
  - Default: `false`
52
52
 
53
+ ### `isDeselectable`: `boolean`
54
+
55
+ Whether an option can be deselected by clicking it again.
56
+
57
+ - Required: No
58
+ - Default: `false`
59
+
53
60
  ### `isBlock`: `boolean`
54
61
 
55
- Renders `ToggleGroupControl` as a (CSS) block element.
62
+ Renders `ToggleGroupControl` as a (CSS) block element, spanning the entire width of the available space. This is the recommended style when the options are text-based and not icons.
56
63
 
57
64
  - Required: No
58
65
  - Default: `false`
@@ -0,0 +1,103 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ForwardedRef } from 'react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import {
10
+ useMergeRefs,
11
+ useInstanceId,
12
+ usePrevious,
13
+ useResizeObserver,
14
+ } from '@wordpress/compose';
15
+ import { forwardRef, useRef, useState } from '@wordpress/element';
16
+
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+ import { View } from '../../view';
21
+ import ToggleGroupControlBackdrop from './toggle-group-control-backdrop';
22
+ import ToggleGroupControlContext from '../context';
23
+ import { useUpdateEffect } from '../../utils/hooks';
24
+ import type { WordPressComponentProps } from '../../ui/context';
25
+ import type { ToggleGroupControlMainControlProps } from '../types';
26
+
27
+ function UnforwardedToggleGroupControlAsButtonGroup(
28
+ {
29
+ children,
30
+ isAdaptiveWidth,
31
+ label,
32
+ onChange,
33
+ size,
34
+ value,
35
+ ...otherProps
36
+ }: WordPressComponentProps<
37
+ ToggleGroupControlMainControlProps,
38
+ 'div',
39
+ false
40
+ >,
41
+ forwardedRef: ForwardedRef< HTMLDivElement >
42
+ ) {
43
+ const containerRef = useRef();
44
+ const [ resizeListener, sizes ] = useResizeObserver();
45
+ const baseId = useInstanceId(
46
+ ToggleGroupControlAsButtonGroup,
47
+ 'toggle-group-control-as-button-group'
48
+ ).toString();
49
+ const [ selectedValue, setSelectedValue ] = useState( value );
50
+ const groupContext = {
51
+ baseId,
52
+ state: selectedValue,
53
+ setState: setSelectedValue,
54
+ };
55
+ const previousValue = usePrevious( value );
56
+
57
+ // Propagate groupContext.state change.
58
+ useUpdateEffect( () => {
59
+ // Avoid calling onChange if groupContext state changed
60
+ // from incoming value.
61
+ if ( previousValue !== groupContext.state ) {
62
+ onChange( groupContext.state );
63
+ }
64
+ }, [ groupContext.state ] );
65
+
66
+ // Sync incoming value with groupContext.state.
67
+ useUpdateEffect( () => {
68
+ if ( value !== groupContext.state ) {
69
+ groupContext.setState( value );
70
+ }
71
+ }, [ value ] );
72
+
73
+ return (
74
+ <ToggleGroupControlContext.Provider
75
+ value={ {
76
+ ...groupContext,
77
+ isBlock: ! isAdaptiveWidth,
78
+ isDeselectable: true,
79
+ size,
80
+ } }
81
+ >
82
+ <View
83
+ aria-label={ label }
84
+ { ...otherProps }
85
+ ref={ useMergeRefs( [ containerRef, forwardedRef ] ) }
86
+ role="group"
87
+ >
88
+ { resizeListener }
89
+ <ToggleGroupControlBackdrop
90
+ state={ groupContext.state }
91
+ containerRef={ containerRef }
92
+ containerWidth={ sizes.width }
93
+ isAdaptiveWidth={ isAdaptiveWidth }
94
+ />
95
+ { children }
96
+ </View>
97
+ </ToggleGroupControlContext.Provider>
98
+ );
99
+ }
100
+
101
+ export const ToggleGroupControlAsButtonGroup = forwardRef(
102
+ UnforwardedToggleGroupControlAsButtonGroup
103
+ );
@@ -0,0 +1,99 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ForwardedRef } from 'react';
5
+ // eslint-disable-next-line no-restricted-imports
6
+ import { RadioGroup, useRadioState } from 'reakit';
7
+
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+ import {
12
+ useMergeRefs,
13
+ useInstanceId,
14
+ usePrevious,
15
+ useResizeObserver,
16
+ } from '@wordpress/compose';
17
+ import { forwardRef, useRef } from '@wordpress/element';
18
+
19
+ /**
20
+ * Internal dependencies
21
+ */
22
+ import { View } from '../../view';
23
+ import ToggleGroupControlBackdrop from './toggle-group-control-backdrop';
24
+ import ToggleGroupControlContext from '../context';
25
+ import { useUpdateEffect } from '../../utils/hooks';
26
+ import type { WordPressComponentProps } from '../../ui/context';
27
+ import type { ToggleGroupControlMainControlProps } from '../types';
28
+
29
+ function UnforwardedToggleGroupControlAsRadioGroup(
30
+ {
31
+ children,
32
+ isAdaptiveWidth,
33
+ label,
34
+ onChange,
35
+ size,
36
+ value,
37
+ ...otherProps
38
+ }: WordPressComponentProps<
39
+ ToggleGroupControlMainControlProps,
40
+ 'div',
41
+ false
42
+ >,
43
+ forwardedRef: ForwardedRef< HTMLDivElement >
44
+ ) {
45
+ const containerRef = useRef();
46
+ const [ resizeListener, sizes ] = useResizeObserver();
47
+ const baseId = useInstanceId(
48
+ ToggleGroupControlAsRadioGroup,
49
+ 'toggle-group-control-as-radio-group'
50
+ ).toString();
51
+ const radio = useRadioState( {
52
+ baseId,
53
+ state: value,
54
+ } );
55
+ const previousValue = usePrevious( value );
56
+
57
+ // Propagate radio.state change.
58
+ useUpdateEffect( () => {
59
+ // Avoid calling onChange if radio state changed
60
+ // from incoming value.
61
+ if ( previousValue !== radio.state ) {
62
+ onChange( radio.state );
63
+ }
64
+ }, [ radio.state ] );
65
+
66
+ // Sync incoming value with radio.state.
67
+ useUpdateEffect( () => {
68
+ if ( value !== radio.state ) {
69
+ radio.setState( value );
70
+ }
71
+ }, [ value ] );
72
+
73
+ return (
74
+ <ToggleGroupControlContext.Provider
75
+ value={ { ...radio, isBlock: ! isAdaptiveWidth, size } }
76
+ >
77
+ <RadioGroup
78
+ { ...radio }
79
+ aria-label={ label }
80
+ as={ View }
81
+ { ...otherProps }
82
+ ref={ useMergeRefs( [ containerRef, forwardedRef ] ) }
83
+ >
84
+ { resizeListener }
85
+ <ToggleGroupControlBackdrop
86
+ state={ radio.state }
87
+ containerRef={ containerRef }
88
+ containerWidth={ sizes.width }
89
+ isAdaptiveWidth={ isAdaptiveWidth }
90
+ />
91
+ { children }
92
+ </RadioGroup>
93
+ </ToggleGroupControlContext.Provider>
94
+ );
95
+ }
96
+
97
+ export const ToggleGroupControlAsRadioGroup = forwardRef(
98
+ UnforwardedToggleGroupControlAsRadioGroup
99
+ );
@@ -2,20 +2,11 @@
2
2
  * External dependencies
3
3
  */
4
4
  import type { ForwardedRef } from 'react';
5
- // eslint-disable-next-line no-restricted-imports
6
- import { RadioGroup, useRadioState } from 'reakit';
7
-
8
5
  /**
9
6
  * WordPress dependencies
10
7
  */
11
8
  import { __ } from '@wordpress/i18n';
12
- import { useRef, useMemo } from '@wordpress/element';
13
- import {
14
- useMergeRefs,
15
- useInstanceId,
16
- usePrevious,
17
- useResizeObserver,
18
- } from '@wordpress/compose';
9
+ import { useMemo } from '@wordpress/element';
19
10
 
20
11
  /**
21
12
  * Internal dependencies
@@ -25,19 +16,18 @@ import {
25
16
  useContextSystem,
26
17
  WordPressComponentProps,
27
18
  } from '../../ui/context';
28
- import { useUpdateEffect, useCx } from '../../utils/hooks';
29
- import { View } from '../../view';
19
+ import { useCx } from '../../utils/hooks';
30
20
  import BaseControl from '../../base-control';
31
21
  import type { ToggleGroupControlProps } from '../types';
32
- import ToggleGroupControlBackdrop from './toggle-group-control-backdrop';
33
- import ToggleGroupControlContext from '../context';
34
22
  import { VisualLabelWrapper } from './styles';
35
23
  import * as styles from './styles';
24
+ import { ToggleGroupControlAsRadioGroup } from './as-radio-group';
25
+ import { ToggleGroupControlAsButtonGroup } from './as-button-group';
36
26
 
37
27
  const noop = () => {};
38
28
 
39
29
  function UnconnectedToggleGroupControl(
40
- props: WordPressComponentProps< ToggleGroupControlProps, 'input', false >,
30
+ props: WordPressComponentProps< ToggleGroupControlProps, 'div', false >,
41
31
  forwardedRef: ForwardedRef< any >
42
32
  ) {
43
33
  const {
@@ -45,7 +35,7 @@ function UnconnectedToggleGroupControl(
45
35
  className,
46
36
  isAdaptiveWidth = false,
47
37
  isBlock = false,
48
- __experimentalIsBorderless = false,
38
+ isDeselectable = false,
49
39
  label,
50
40
  hideLabelFromVision = false,
51
41
  help,
@@ -56,77 +46,42 @@ function UnconnectedToggleGroupControl(
56
46
  ...otherProps
57
47
  } = useContextSystem( props, 'ToggleGroupControl' );
58
48
  const cx = useCx();
59
- const containerRef = useRef();
60
- const [ resizeListener, sizes ] = useResizeObserver();
61
- const baseId = useInstanceId(
62
- ToggleGroupControl,
63
- 'toggle-group-control'
64
- ).toString();
65
- const radio = useRadioState( {
66
- baseId,
67
- state: value,
68
- } );
69
- const previousValue = usePrevious( value );
70
-
71
- // Propagate radio.state change.
72
- useUpdateEffect( () => {
73
- // Avoid calling onChange if radio state changed
74
- // from incoming value.
75
- if ( previousValue !== radio.state ) {
76
- onChange( radio.state );
77
- }
78
- }, [ radio.state ] );
79
-
80
- // Sync incoming value with radio.state.
81
- useUpdateEffect( () => {
82
- if ( value !== radio.state ) {
83
- radio.setState( value );
84
- }
85
- }, [ value ] );
86
49
 
87
50
  const classes = useMemo(
88
51
  () =>
89
52
  cx(
90
- styles.ToggleGroupControl( { size } ),
91
- ! __experimentalIsBorderless && styles.border,
53
+ styles.ToggleGroupControl( { isBlock, isDeselectable, size } ),
92
54
  isBlock && styles.block,
93
55
  className
94
56
  ),
95
- [ className, cx, isBlock, __experimentalIsBorderless, size ]
57
+ [ className, cx, isBlock, isDeselectable, size ]
96
58
  );
59
+
60
+ const MainControl = isDeselectable
61
+ ? ToggleGroupControlAsButtonGroup
62
+ : ToggleGroupControlAsRadioGroup;
63
+
97
64
  return (
98
65
  <BaseControl
99
66
  help={ help }
100
67
  __nextHasNoMarginBottom={ __nextHasNoMarginBottom }
101
68
  >
102
- <ToggleGroupControlContext.Provider
103
- value={ { ...radio, isBlock: ! isAdaptiveWidth, size } }
104
- >
105
- { ! hideLabelFromVision && (
106
- <VisualLabelWrapper>
107
- <BaseControl.VisualLabel>
108
- { label }
109
- </BaseControl.VisualLabel>
110
- </VisualLabelWrapper>
111
- ) }
112
- <RadioGroup
113
- { ...radio }
114
- aria-label={ label }
115
- as={ View }
116
- className={ classes }
117
- { ...otherProps }
118
- ref={ useMergeRefs( [ containerRef, forwardedRef ] ) }
119
- >
120
- { resizeListener }
121
- <ToggleGroupControlBackdrop
122
- { ...radio }
123
- containerRef={ containerRef }
124
- containerWidth={ sizes.width }
125
- isAdaptiveWidth={ isAdaptiveWidth }
126
- />
127
- { children }
128
- </RadioGroup>
129
- </ToggleGroupControlContext.Provider>
69
+ { ! hideLabelFromVision && (
70
+ <VisualLabelWrapper>
71
+ <BaseControl.VisualLabel>{ label }</BaseControl.VisualLabel>
72
+ </VisualLabelWrapper>
73
+ ) }
74
+ <MainControl
75
+ { ...otherProps }
76
+ children={ children }
77
+ className={ classes }
78
+ isAdaptiveWidth={ isAdaptiveWidth }
79
+ label={ label }
80
+ onChange={ onChange }
81
+ ref={ forwardedRef }
82
+ size={ size }
83
+ value={ value }
84
+ />
130
85
  </BaseControl>
131
86
  );
132
87
  }
@@ -11,8 +11,10 @@ import { CONFIG, COLORS, reduceMotion } from '../../utils';
11
11
  import type { ToggleGroupControlProps } from '../types';
12
12
 
13
13
  export const ToggleGroupControl = ( {
14
+ isBlock,
15
+ isDeselectable,
14
16
  size,
15
- }: {
17
+ }: Pick< ToggleGroupControlProps, 'isBlock' | 'isDeselectable' > & {
16
18
  size: NonNullable< ToggleGroupControlProps[ 'size' ] >;
17
19
  } ) => css`
18
20
  background: ${ COLORS.ui.background };
@@ -26,22 +28,29 @@ export const ToggleGroupControl = ( {
26
28
  ${ reduceMotion( 'transition' ) }
27
29
 
28
30
  ${ toggleGroupControlSize( size ) }
29
-
30
- &:focus-within {
31
- border-color: ${ COLORS.ui.borderFocus };
32
- box-shadow: ${ CONFIG.controlBoxShadowFocus };
33
- outline: none;
34
- z-index: 1;
35
- }
31
+ ${ ! isDeselectable && enclosingBorders( isBlock ) }
36
32
  `;
37
33
 
38
- export const border = css`
39
- border-color: ${ COLORS.ui.border };
34
+ const enclosingBorders = ( isBlock: ToggleGroupControlProps[ 'isBlock' ] ) => {
35
+ const enclosingBorder = css`
36
+ border-color: ${ COLORS.ui.border };
37
+ `;
40
38
 
41
- &:hover {
42
- border-color: ${ COLORS.ui.borderHover };
43
- }
44
- `;
39
+ return css`
40
+ ${ isBlock && enclosingBorder }
41
+
42
+ &:hover {
43
+ border-color: ${ COLORS.ui.borderHover };
44
+ }
45
+
46
+ &:focus-within {
47
+ border-color: ${ COLORS.ui.borderFocus };
48
+ box-shadow: ${ CONFIG.controlBoxShadowFocus };
49
+ outline: none;
50
+ z-index: 1;
51
+ }
52
+ `;
53
+ };
45
54
 
46
55
  export const toggleGroupControlSize = (
47
56
  size: NonNullable< ToggleGroupControlProps[ 'size' ] >
@@ -64,7 +73,6 @@ export const block = css`
64
73
  export const BackdropView = styled.div`
65
74
  background: ${ COLORS.gray[ 900 ] };
66
75
  border-radius: ${ CONFIG.controlBorderRadius };
67
- box-shadow: ${ CONFIG.toggleGroupControlBackdropBoxShadow };
68
76
  left: 0;
69
77
  position: absolute;
70
78
  top: 2px;