@wordpress/components 19.8.4 → 19.11.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 (630) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/CONTRIBUTING.md +80 -7
  3. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
  4. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  5. package/build/border-box-control/border-box-control/component.js +22 -7
  6. package/build/border-box-control/border-box-control/component.js.map +1 -1
  7. package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
  8. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  9. package/build/border-box-control/border-box-control-split-controls/component.js +21 -8
  10. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  11. package/build/border-box-control/border-box-control-visualizer/hook.js +3 -2
  12. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  13. package/build/border-box-control/styles.js +11 -15
  14. package/build/border-box-control/styles.js.map +1 -1
  15. package/build/border-control/border-control/component.js +5 -3
  16. package/build/border-control/border-control/component.js.map +1 -1
  17. package/build/border-control/border-control/hook.js +6 -3
  18. package/build/border-control/border-control/hook.js.map +1 -1
  19. package/build/border-control/border-control-dropdown/component.js +6 -2
  20. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  21. package/build/border-control/border-control-dropdown/hook.js +5 -5
  22. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  23. package/build/border-control/styles.js +58 -29
  24. package/build/border-control/styles.js.map +1 -1
  25. package/build/box-control/index.js +0 -21
  26. package/build/box-control/index.js.map +1 -1
  27. package/build/box-control/utils.js +1 -8
  28. package/build/box-control/utils.js.map +1 -1
  29. package/build/button/index.js +3 -5
  30. package/build/button/index.js.map +1 -1
  31. package/build/button/index.native.js +16 -2
  32. package/build/button/index.native.js.map +1 -1
  33. package/build/button-group/index.js +24 -7
  34. package/build/button-group/index.js.map +1 -1
  35. package/build/{flyout → button-group}/types.js +0 -0
  36. package/build/button-group/types.js.map +1 -0
  37. package/build/checkbox-control/index.js +34 -7
  38. package/build/checkbox-control/index.js.map +1 -1
  39. package/build/checkbox-control/types.js +6 -0
  40. package/build/checkbox-control/types.js.map +1 -0
  41. package/build/circular-option-picker/index.js +1 -2
  42. package/build/circular-option-picker/index.js.map +1 -1
  43. package/build/color-palette/index.js +5 -12
  44. package/build/color-palette/index.js.map +1 -1
  45. package/build/date-time/date.js +43 -19
  46. package/build/date-time/date.js.map +1 -1
  47. package/build/date-time/index.js +28 -3
  48. package/build/date-time/index.js.map +1 -1
  49. package/build/date-time/time.js +42 -40
  50. package/build/date-time/time.js.map +1 -1
  51. package/build/date-time/timezone.js +4 -3
  52. package/build/date-time/timezone.js.map +1 -1
  53. package/build/date-time/types.js +6 -0
  54. package/build/date-time/types.js.map +1 -0
  55. package/build/date-time/utils.js +6 -4
  56. package/build/date-time/utils.js.map +1 -1
  57. package/build/disabled/index.js +4 -76
  58. package/build/disabled/index.js.map +1 -1
  59. package/build/draggable/index.native.js +223 -0
  60. package/build/draggable/index.native.js.map +1 -0
  61. package/build/dropdown/index.js +7 -5
  62. package/build/dropdown/index.js.map +1 -1
  63. package/build/focal-point-picker/index.native.js +3 -3
  64. package/build/focal-point-picker/index.native.js.map +1 -1
  65. package/build/heading/hook.js +1 -1
  66. package/build/heading/hook.js.map +1 -1
  67. package/build/index.js +0 -8
  68. package/build/index.js.map +1 -1
  69. package/build/index.native.js +16 -0
  70. package/build/index.native.js.map +1 -1
  71. package/build/input-control/index.js +27 -4
  72. package/build/input-control/index.js.map +1 -1
  73. package/build/input-control/styles/input-control-styles.js +42 -30
  74. package/build/input-control/styles/input-control-styles.js.map +1 -1
  75. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  76. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  77. package/build/mobile/bottom-sheet/index.native.js +1 -1
  78. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  79. package/build/mobile/bottom-sheet-select-control/index.native.js +4 -2
  80. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  81. package/build/mobile/html-text-input/index.native.js +19 -8
  82. package/build/mobile/html-text-input/index.native.js.map +1 -1
  83. package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
  84. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  85. package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
  86. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  87. package/build/navigation/styles/navigation-styles.js +12 -12
  88. package/build/navigation/styles/navigation-styles.js.map +1 -1
  89. package/build/notice/index.native.js +44 -40
  90. package/build/notice/index.native.js.map +1 -1
  91. package/build/notice/list.native.js +27 -45
  92. package/build/notice/list.native.js.map +1 -1
  93. package/build/palette-edit/index.js +38 -7
  94. package/build/palette-edit/index.js.map +1 -1
  95. package/build/popover/index.js +223 -323
  96. package/build/popover/index.js.map +1 -1
  97. package/build/resizable-box/resize-tooltip/utils.js +5 -8
  98. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  99. package/build/sandbox/index.js +2 -2
  100. package/build/sandbox/index.js.map +1 -1
  101. package/build/sandbox/index.native.js +1 -1
  102. package/build/sandbox/index.native.js.map +1 -1
  103. package/build/select-control/index.js +31 -4
  104. package/build/select-control/index.js.map +1 -1
  105. package/build/select-control/styles/select-control-styles.js +17 -14
  106. package/build/select-control/styles/select-control-styles.js.map +1 -1
  107. package/build/surface/styles.js +8 -8
  108. package/build/surface/styles.js.map +1 -1
  109. package/build/text/hook.js +5 -5
  110. package/build/text/hook.js.map +1 -1
  111. package/build/text/styles/text-mixins.native.js +1 -1
  112. package/build/text/styles/text-mixins.native.js.map +1 -1
  113. package/build/text/styles.js +7 -7
  114. package/build/text/styles.js.map +1 -1
  115. package/build/text-control/index.js +35 -28
  116. package/build/text-control/index.js.map +1 -1
  117. package/build/text-control/types.js +6 -0
  118. package/build/text-control/types.js.map +1 -0
  119. package/build/toggle-group-control/toggle-group-control/component.js +1 -3
  120. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  121. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +6 -4
  122. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  123. package/build/tools-panel/tools-panel-header/component.js +52 -36
  124. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  125. package/build/tooltip/index.js +2 -2
  126. package/build/tooltip/index.js.map +1 -1
  127. package/build/ui/spinner/component.js +1 -1
  128. package/build/ui/spinner/component.js.map +1 -1
  129. package/build/unit-control/index.js +3 -3
  130. package/build/unit-control/index.js.map +1 -1
  131. package/build/unit-control/styles/unit-control-styles.js +11 -20
  132. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  133. package/build/unit-control/utils.js.map +1 -1
  134. package/build/utils/colors-values.js +9 -24
  135. package/build/utils/colors-values.js.map +1 -1
  136. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
  137. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  138. package/build-module/border-box-control/border-box-control/component.js +22 -7
  139. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  140. package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
  141. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  142. package/build-module/border-box-control/border-box-control-split-controls/component.js +21 -8
  143. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  144. package/build-module/border-box-control/border-box-control-visualizer/hook.js +3 -2
  145. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  146. package/build-module/border-box-control/styles.js +9 -15
  147. package/build-module/border-box-control/styles.js.map +1 -1
  148. package/build-module/border-control/border-control/component.js +5 -3
  149. package/build-module/border-control/border-control/component.js.map +1 -1
  150. package/build-module/border-control/border-control/hook.js +6 -3
  151. package/build-module/border-control/border-control/hook.js.map +1 -1
  152. package/build-module/border-control/border-control-dropdown/component.js +6 -2
  153. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  154. package/build-module/border-control/border-control-dropdown/hook.js +5 -5
  155. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  156. package/build-module/border-control/styles.js +56 -29
  157. package/build-module/border-control/styles.js.map +1 -1
  158. package/build-module/box-control/index.js +1 -20
  159. package/build-module/box-control/index.js.map +1 -1
  160. package/build-module/box-control/utils.js +0 -6
  161. package/build-module/box-control/utils.js.map +1 -1
  162. package/build-module/button/index.js +3 -4
  163. package/build-module/button/index.js.map +1 -1
  164. package/build-module/button/index.native.js +16 -3
  165. package/build-module/button/index.native.js.map +1 -1
  166. package/build-module/button-group/index.js +27 -7
  167. package/build-module/button-group/index.js.map +1 -1
  168. package/build-module/{flyout → button-group}/types.js +0 -0
  169. package/build-module/{flyout → button-group}/types.js.map +0 -0
  170. package/build-module/checkbox-control/index.js +31 -7
  171. package/build-module/checkbox-control/index.js.map +1 -1
  172. package/build-module/checkbox-control/types.js +2 -0
  173. package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
  174. package/build-module/circular-option-picker/index.js +1 -2
  175. package/build-module/circular-option-picker/index.js.map +1 -1
  176. package/build-module/color-palette/index.js +5 -11
  177. package/build-module/color-palette/index.js.map +1 -1
  178. package/build-module/date-time/date.js +44 -19
  179. package/build-module/date-time/date.js.map +1 -1
  180. package/build-module/date-time/index.js +28 -4
  181. package/build-module/date-time/index.js.map +1 -1
  182. package/build-module/date-time/time.js +43 -41
  183. package/build-module/date-time/time.js.map +1 -1
  184. package/build-module/date-time/timezone.js +4 -3
  185. package/build-module/date-time/timezone.js.map +1 -1
  186. package/build-module/date-time/types.js +2 -0
  187. package/build-module/date-time/types.js.map +1 -0
  188. package/build-module/date-time/utils.js +6 -4
  189. package/build-module/date-time/utils.js.map +1 -1
  190. package/build-module/disabled/index.js +5 -76
  191. package/build-module/disabled/index.js.map +1 -1
  192. package/build-module/draggable/index.native.js +206 -0
  193. package/build-module/draggable/index.native.js.map +1 -0
  194. package/build-module/dropdown/index.js +7 -5
  195. package/build-module/dropdown/index.js.map +1 -1
  196. package/build-module/focal-point-picker/index.native.js +3 -3
  197. package/build-module/focal-point-picker/index.native.js.map +1 -1
  198. package/build-module/heading/hook.js +1 -1
  199. package/build-module/heading/hook.js.map +1 -1
  200. package/build-module/index.js +0 -1
  201. package/build-module/index.js.map +1 -1
  202. package/build-module/index.native.js +2 -1
  203. package/build-module/index.native.js.map +1 -1
  204. package/build-module/input-control/index.js +24 -3
  205. package/build-module/input-control/index.js.map +1 -1
  206. package/build-module/input-control/styles/input-control-styles.js +42 -30
  207. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  208. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  209. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  210. package/build-module/mobile/bottom-sheet/index.native.js +1 -1
  211. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  212. package/build-module/mobile/bottom-sheet-select-control/index.native.js +4 -2
  213. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  214. package/build-module/mobile/html-text-input/index.native.js +20 -9
  215. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  216. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
  217. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  218. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
  219. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  220. package/build-module/navigation/styles/navigation-styles.js +13 -13
  221. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  222. package/build-module/notice/index.native.js +45 -41
  223. package/build-module/notice/index.native.js.map +1 -1
  224. package/build-module/notice/list.native.js +28 -46
  225. package/build-module/notice/list.native.js.map +1 -1
  226. package/build-module/palette-edit/index.js +37 -7
  227. package/build-module/palette-edit/index.js.map +1 -1
  228. package/build-module/popover/index.js +225 -325
  229. package/build-module/popover/index.js.map +1 -1
  230. package/build-module/resizable-box/resize-tooltip/utils.js +4 -5
  231. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  232. package/build-module/sandbox/index.js +2 -2
  233. package/build-module/sandbox/index.js.map +1 -1
  234. package/build-module/sandbox/index.native.js +1 -1
  235. package/build-module/sandbox/index.native.js.map +1 -1
  236. package/build-module/select-control/index.js +29 -3
  237. package/build-module/select-control/index.js.map +1 -1
  238. package/build-module/select-control/styles/select-control-styles.js +17 -14
  239. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  240. package/build-module/surface/styles.js +8 -8
  241. package/build-module/surface/styles.js.map +1 -1
  242. package/build-module/text/hook.js +5 -5
  243. package/build-module/text/hook.js.map +1 -1
  244. package/build-module/text/styles/text-mixins.native.js +2 -2
  245. package/build-module/text/styles/text-mixins.native.js.map +1 -1
  246. package/build-module/text/styles.js +7 -7
  247. package/build-module/text/styles.js.map +1 -1
  248. package/build-module/text-control/index.js +35 -27
  249. package/build-module/text-control/index.js.map +1 -1
  250. package/build-module/text-control/types.js +2 -0
  251. package/build-module/text-control/types.js.map +1 -0
  252. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
  253. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  254. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +1 -5
  255. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  256. package/build-module/tools-panel/tools-panel-header/component.js +51 -36
  257. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  258. package/build-module/tooltip/index.js +2 -2
  259. package/build-module/tooltip/index.js.map +1 -1
  260. package/build-module/ui/spinner/component.js +1 -1
  261. package/build-module/ui/spinner/component.js.map +1 -1
  262. package/build-module/unit-control/index.js +3 -3
  263. package/build-module/unit-control/index.js.map +1 -1
  264. package/build-module/unit-control/styles/unit-control-styles.js +11 -20
  265. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  266. package/build-module/unit-control/utils.js.map +1 -1
  267. package/build-module/utils/colors-values.js +19 -23
  268. package/build-module/utils/colors-values.js.map +1 -1
  269. package/build-style/style-rtl.css +55 -170
  270. package/build-style/style.css +51 -170
  271. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  272. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -1
  273. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  274. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  275. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  276. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -1
  277. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  278. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  279. package/build-types/border-box-control/styles.d.ts +2 -2
  280. package/build-types/border-box-control/styles.d.ts.map +1 -1
  281. package/build-types/border-box-control/types.d.ts +40 -13
  282. package/build-types/border-box-control/types.d.ts.map +1 -1
  283. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  284. package/build-types/border-control/border-control/hook.d.ts +2 -1
  285. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  286. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  287. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
  288. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  289. package/build-types/border-control/styles.d.ts +2 -1
  290. package/build-types/border-control/styles.d.ts.map +1 -1
  291. package/build-types/border-control/types.d.ts +18 -6
  292. package/build-types/border-control/types.d.ts.map +1 -1
  293. package/build-types/button/index.d.ts.map +1 -1
  294. package/build-types/button-group/index.d.ts +25 -0
  295. package/build-types/button-group/index.d.ts.map +1 -0
  296. package/build-types/button-group/stories/index.d.ts +12 -0
  297. package/build-types/button-group/stories/index.d.ts.map +1 -0
  298. package/build-types/button-group/types.d.ts +11 -0
  299. package/build-types/button-group/types.d.ts.map +1 -0
  300. package/build-types/checkbox-control/index.d.ts +26 -0
  301. package/build-types/checkbox-control/index.d.ts.map +1 -0
  302. package/build-types/checkbox-control/stories/index.d.ts +13 -0
  303. package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
  304. package/build-types/checkbox-control/types.d.ts +35 -0
  305. package/build-types/checkbox-control/types.d.ts.map +1 -0
  306. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  307. package/build-types/color-palette/index.d.ts.map +1 -1
  308. package/build-types/color-picker/styles.d.ts +3 -3
  309. package/build-types/date-time/date.d.ts +24 -0
  310. package/build-types/date-time/date.d.ts.map +1 -0
  311. package/build-types/date-time/index.d.ts +35 -0
  312. package/build-types/date-time/index.d.ts.map +1 -0
  313. package/build-types/date-time/stories/date.d.ts +14 -0
  314. package/build-types/date-time/stories/date.d.ts.map +1 -0
  315. package/build-types/date-time/stories/index.d.ts +14 -0
  316. package/build-types/date-time/stories/index.d.ts.map +1 -0
  317. package/build-types/date-time/stories/time.d.ts +12 -0
  318. package/build-types/date-time/stories/time.d.ts.map +1 -0
  319. package/build-types/date-time/stories/utils.d.ts +3 -0
  320. package/build-types/date-time/stories/utils.d.ts.map +1 -0
  321. package/build-types/date-time/test/date.d.ts +2 -0
  322. package/build-types/date-time/test/date.d.ts.map +1 -0
  323. package/build-types/date-time/test/time.d.ts +2 -0
  324. package/build-types/date-time/test/time.d.ts.map +1 -0
  325. package/build-types/date-time/test/utils.d.ts +2 -0
  326. package/build-types/date-time/test/utils.d.ts.map +1 -0
  327. package/build-types/date-time/time.d.ts +25 -0
  328. package/build-types/date-time/time.d.ts.map +1 -0
  329. package/build-types/date-time/timezone.d.ts +8 -0
  330. package/build-types/date-time/timezone.d.ts.map +1 -0
  331. package/build-types/date-time/types.d.ts +91 -0
  332. package/build-types/date-time/types.d.ts.map +1 -0
  333. package/build-types/date-time/utils.d.ts +15 -0
  334. package/build-types/date-time/utils.d.ts.map +1 -0
  335. package/build-types/disabled/index.d.ts.map +1 -1
  336. package/build-types/dropdown/index.d.ts.map +1 -1
  337. package/build-types/input-control/index.d.ts +23 -3
  338. package/build-types/input-control/index.d.ts.map +1 -1
  339. package/build-types/input-control/input-field.d.ts +1 -1
  340. package/build-types/input-control/input-field.d.ts.map +1 -1
  341. package/build-types/input-control/stories/index.d.ts +5 -5
  342. package/build-types/input-control/stories/index.d.ts.map +1 -1
  343. package/build-types/input-control/styles/input-control-styles.d.ts +1 -0
  344. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  345. package/build-types/input-control/types.d.ts +79 -3
  346. package/build-types/input-control/types.d.ts.map +1 -1
  347. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  348. package/build-types/popover/index.d.ts +5 -8
  349. package/build-types/popover/index.d.ts.map +1 -1
  350. package/build-types/resizable-box/index.d.ts +1 -1
  351. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  352. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  353. package/build-types/select-control/index.d.ts +30 -26
  354. package/build-types/select-control/index.d.ts.map +1 -1
  355. package/build-types/select-control/stories/index.d.ts +23 -0
  356. package/build-types/select-control/stories/index.d.ts.map +1 -0
  357. package/build-types/select-control/styles/select-control-styles.d.ts +3 -4
  358. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  359. package/build-types/select-control/test/select-control.d.ts +2 -0
  360. package/build-types/select-control/test/select-control.d.ts.map +1 -0
  361. package/build-types/select-control/types.d.ts +52 -1
  362. package/build-types/select-control/types.d.ts.map +1 -1
  363. package/build-types/text-control/index.d.ts +2 -2
  364. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  365. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  366. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  367. package/build-types/tools-panel/types.d.ts +0 -1
  368. package/build-types/tools-panel/types.d.ts.map +1 -1
  369. package/build-types/tooltip/index.d.ts.map +1 -1
  370. package/build-types/unit-control/index.d.ts +2 -2
  371. package/build-types/unit-control/index.d.ts.map +1 -1
  372. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  373. package/build-types/unit-control/test/index.d.ts +2 -0
  374. package/build-types/unit-control/test/index.d.ts.map +1 -0
  375. package/build-types/unit-control/test/utils.d.ts +2 -0
  376. package/build-types/unit-control/test/utils.d.ts.map +1 -0
  377. package/build-types/unit-control/types.d.ts +1 -1
  378. package/build-types/unit-control/types.d.ts.map +1 -1
  379. package/build-types/unit-control/utils.d.ts +3 -3
  380. package/build-types/unit-control/utils.d.ts.map +1 -1
  381. package/build-types/utils/colors-values.d.ts +6 -146
  382. package/build-types/utils/colors-values.d.ts.map +1 -1
  383. package/package.json +19 -19
  384. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +5 -3
  385. package/src/autocomplete/style.scss +1 -1
  386. package/src/border-box-control/border-box-control/README.md +10 -14
  387. package/src/border-box-control/border-box-control/component.tsx +21 -4
  388. package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
  389. package/src/border-box-control/border-box-control-split-controls/component.tsx +24 -7
  390. package/src/border-box-control/border-box-control-visualizer/hook.ts +11 -6
  391. package/src/border-box-control/stories/index.js +1 -0
  392. package/src/border-box-control/styles.ts +15 -8
  393. package/src/border-box-control/types.ts +40 -14
  394. package/src/border-control/border-control/README.md +0 -7
  395. package/src/border-control/border-control/component.tsx +4 -2
  396. package/src/border-control/border-control/hook.ts +5 -2
  397. package/src/border-control/border-control-dropdown/component.tsx +18 -11
  398. package/src/border-control/border-control-dropdown/hook.ts +7 -5
  399. package/src/border-control/stories/index.js +1 -0
  400. package/src/border-control/styles.ts +82 -22
  401. package/src/border-control/types.ts +18 -6
  402. package/src/box-control/README.md +0 -74
  403. package/src/box-control/index.js +0 -15
  404. package/src/box-control/stories/index.js +0 -29
  405. package/src/box-control/utils.js +0 -7
  406. package/src/button/index.js +2 -4
  407. package/src/button/index.native.js +33 -18
  408. package/src/button/test/index.js +16 -1
  409. package/src/button-group/index.tsx +47 -0
  410. package/src/button-group/stories/index.tsx +41 -0
  411. package/src/button-group/types.ts +11 -0
  412. package/src/checkbox-control/README.md +10 -8
  413. package/src/checkbox-control/{index.js → index.tsx} +49 -14
  414. package/src/checkbox-control/stories/{index.js → index.tsx} +49 -27
  415. package/src/checkbox-control/types.ts +36 -0
  416. package/src/circular-option-picker/index.js +1 -2
  417. package/src/circular-option-picker/style.scss +1 -0
  418. package/src/color-palette/README.md +0 -1
  419. package/src/color-palette/index.js +6 -13
  420. package/src/color-palette/style.scss +3 -18
  421. package/src/color-palette/test/__snapshots__/index.js.snap +2 -3
  422. package/src/confirm-dialog/stories/index.js +87 -99
  423. package/src/date-time/README.md +13 -10
  424. package/src/date-time/{date.js → date.tsx} +49 -20
  425. package/src/date-time/{index.js → index.tsx} +31 -5
  426. package/src/date-time/stories/date.tsx +73 -0
  427. package/src/date-time/stories/index.tsx +75 -0
  428. package/src/date-time/stories/time.tsx +51 -0
  429. package/src/date-time/stories/utils.ts +9 -0
  430. package/src/date-time/test/date.tsx +127 -0
  431. package/src/date-time/test/{time.js → time.tsx} +34 -19
  432. package/src/date-time/test/{utils.js → utils.ts} +1 -1
  433. package/src/date-time/{time.js → time.tsx} +57 -46
  434. package/src/date-time/{timezone.js → timezone.tsx} +4 -3
  435. package/src/date-time/types.ts +106 -0
  436. package/src/date-time/utils.ts +20 -0
  437. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  438. package/src/disabled/index.js +5 -90
  439. package/src/draggable/index.native.js +215 -0
  440. package/src/draggable/style.native.scss +3 -0
  441. package/src/dropdown/index.js +9 -4
  442. package/src/dropdown/style.scss +1 -1
  443. package/src/focal-point-picker/index.native.js +3 -3
  444. package/src/form-file-upload/test/index.js +20 -13
  445. package/src/heading/hook.ts +1 -1
  446. package/src/heading/test/__snapshots__/index.js.snap +3 -3
  447. package/src/index.js +0 -1
  448. package/src/index.native.js +1 -0
  449. package/src/input-control/README.md +3 -3
  450. package/src/input-control/index.tsx +23 -3
  451. package/src/input-control/stories/index.tsx +63 -0
  452. package/src/input-control/styles/input-control-styles.tsx +20 -7
  453. package/src/input-control/types.ts +79 -2
  454. package/src/item-group/stories/index.js +22 -18
  455. package/src/menu-item/style.scss +10 -0
  456. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  457. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +9 -2
  458. package/src/mobile/bottom-sheet/index.native.js +1 -1
  459. package/src/mobile/bottom-sheet-select-control/index.native.js +8 -2
  460. package/src/mobile/html-text-input/index.native.js +45 -29
  461. package/src/mobile/html-text-input/style.android.scss +2 -15
  462. package/src/mobile/html-text-input/style.ios.scss +2 -15
  463. package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
  464. package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
  465. package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
  466. package/src/mobile/link-settings/test/link-settings-navigation.native.js +9 -1
  467. package/src/navigation/styles/navigation-styles.js +5 -5
  468. package/src/navigator/stories/index.js +16 -10
  469. package/src/notice/index.native.js +44 -54
  470. package/src/notice/list.native.js +27 -51
  471. package/src/notice/style.native.scss +1 -0
  472. package/src/palette-edit/index.js +37 -9
  473. package/src/palette-edit/style.scss +0 -7
  474. package/src/palette-edit/test/index.js +63 -0
  475. package/src/panel/README.md +1 -1
  476. package/src/placeholder/test/index.js +7 -0
  477. package/src/popover/README.md +7 -9
  478. package/src/popover/index.js +242 -417
  479. package/src/popover/style.scss +20 -190
  480. package/src/popover/test/__snapshots__/index.js.snap +6 -18
  481. package/src/query-controls/README.md +2 -2
  482. package/src/resizable-box/resize-tooltip/utils.ts +4 -5
  483. package/src/sandbox/index.js +2 -2
  484. package/src/sandbox/index.native.js +1 -1
  485. package/src/select-control/README.md +2 -2
  486. package/src/select-control/index.tsx +30 -29
  487. package/src/select-control/stories/index.tsx +90 -0
  488. package/src/select-control/styles/select-control-styles.ts +16 -12
  489. package/src/select-control/test/{select-control.js → select-control.tsx} +2 -2
  490. package/src/select-control/types.ts +66 -1
  491. package/src/surface/styles.js +1 -1
  492. package/src/tab-panel/style.scss +1 -1
  493. package/src/text/hook.js +1 -1
  494. package/src/text/styles/text-mixins.native.js +2 -2
  495. package/src/text/styles.js +1 -1
  496. package/src/text/test/__snapshots__/{index.js.snap → index.tsx.snap} +16 -0
  497. package/src/text/test/{index.js → index.tsx} +12 -6
  498. package/src/text-control/index.tsx +84 -0
  499. package/src/text-control/stories/index.tsx +66 -0
  500. package/src/text-control/types.ts +29 -0
  501. package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
  502. package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
  503. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +1 -5
  504. package/src/toolbar-group/style.scss +20 -0
  505. package/src/tools-panel/test/__snapshots__/index.js.snap +2 -2
  506. package/src/tools-panel/test/index.js +71 -18
  507. package/src/tools-panel/tools-panel-header/component.tsx +75 -33
  508. package/src/tools-panel/types.ts +0 -1
  509. package/src/tooltip/index.js +8 -2
  510. package/src/tooltip/style.scss +2 -4
  511. package/src/tooltip/test/index.js +6 -0
  512. package/src/tooltip/test/index.native.js +1 -1
  513. package/src/ui/spinner/component.js +1 -1
  514. package/src/ui/spinner/test/__snapshots__/index.js.snap +3 -3
  515. package/src/unit-control/index.tsx +2 -5
  516. package/src/unit-control/styles/unit-control-styles.ts +3 -13
  517. package/src/unit-control/test/__snapshots__/index.tsx.snap +33 -0
  518. package/src/unit-control/test/{index.js → index.tsx} +295 -166
  519. package/src/unit-control/test/{utils.js → utils.ts} +38 -19
  520. package/src/unit-control/types.ts +4 -1
  521. package/src/unit-control/utils.ts +5 -3
  522. package/src/utils/colors-values.js +18 -22
  523. package/tsconfig.json +14 -3
  524. package/tsconfig.tsbuildinfo +1 -1
  525. package/build/box-control/visualizer.js +0 -165
  526. package/build/box-control/visualizer.js.map +0 -1
  527. package/build/flyout/context.js +0 -23
  528. package/build/flyout/context.js.map +0 -1
  529. package/build/flyout/flyout/component.js +0 -106
  530. package/build/flyout/flyout/component.js.map +0 -1
  531. package/build/flyout/flyout/hook.js +0 -53
  532. package/build/flyout/flyout/hook.js.map +0 -1
  533. package/build/flyout/flyout/index.js +0 -24
  534. package/build/flyout/flyout/index.js.map +0 -1
  535. package/build/flyout/flyout-content/component.js +0 -65
  536. package/build/flyout/flyout-content/component.js.map +0 -1
  537. package/build/flyout/flyout-content/index.js +0 -16
  538. package/build/flyout/flyout-content/index.js.map +0 -1
  539. package/build/flyout/index.js +0 -16
  540. package/build/flyout/index.js.map +0 -1
  541. package/build/flyout/styles.js +0 -46
  542. package/build/flyout/styles.js.map +0 -1
  543. package/build/flyout/utils.js +0 -36
  544. package/build/flyout/utils.js.map +0 -1
  545. package/build/mobile/html-text-input/container.android.js +0 -41
  546. package/build/mobile/html-text-input/container.android.js.map +0 -1
  547. package/build/mobile/html-text-input/container.ios.js +0 -60
  548. package/build/mobile/html-text-input/container.ios.js.map +0 -1
  549. package/build/popover/utils.js +0 -322
  550. package/build/popover/utils.js.map +0 -1
  551. package/build-module/box-control/visualizer.js +0 -154
  552. package/build-module/box-control/visualizer.js.map +0 -1
  553. package/build-module/flyout/context.js +0 -11
  554. package/build-module/flyout/context.js.map +0 -1
  555. package/build-module/flyout/flyout/component.js +0 -89
  556. package/build-module/flyout/flyout/component.js.map +0 -1
  557. package/build-module/flyout/flyout/hook.js +0 -44
  558. package/build-module/flyout/flyout/hook.js.map +0 -1
  559. package/build-module/flyout/flyout/index.js +0 -3
  560. package/build-module/flyout/flyout/index.js.map +0 -1
  561. package/build-module/flyout/flyout-content/component.js +0 -51
  562. package/build-module/flyout/flyout-content/component.js.map +0 -1
  563. package/build-module/flyout/flyout-content/index.js +0 -2
  564. package/build-module/flyout/flyout-content/index.js.map +0 -1
  565. package/build-module/flyout/index.js +0 -2
  566. package/build-module/flyout/index.js.map +0 -1
  567. package/build-module/flyout/styles.js +0 -27
  568. package/build-module/flyout/styles.js.map +0 -1
  569. package/build-module/flyout/utils.js +0 -25
  570. package/build-module/flyout/utils.js.map +0 -1
  571. package/build-module/mobile/html-text-input/container.android.js +0 -29
  572. package/build-module/mobile/html-text-input/container.android.js.map +0 -1
  573. package/build-module/mobile/html-text-input/container.ios.js +0 -48
  574. package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
  575. package/build-module/popover/utils.js +0 -308
  576. package/build-module/popover/utils.js.map +0 -1
  577. package/build-types/flyout/context.d.ts +0 -6
  578. package/build-types/flyout/context.d.ts.map +0 -1
  579. package/build-types/flyout/flyout/component.d.ts +0 -21
  580. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  581. package/build-types/flyout/flyout/hook.d.ts +0 -270
  582. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  583. package/build-types/flyout/flyout/index.d.ts +0 -3
  584. package/build-types/flyout/flyout/index.d.ts.map +0 -1
  585. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  586. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  587. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  588. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  589. package/build-types/flyout/index.d.ts +0 -2
  590. package/build-types/flyout/index.d.ts.map +0 -1
  591. package/build-types/flyout/styles.d.ts +0 -22
  592. package/build-types/flyout/styles.d.ts.map +0 -1
  593. package/build-types/flyout/types.d.ts +0 -80
  594. package/build-types/flyout/types.d.ts.map +0 -1
  595. package/build-types/flyout/utils.d.ts +0 -8
  596. package/build-types/flyout/utils.d.ts.map +0 -1
  597. package/build-types/popover/utils.d.ts +0 -70
  598. package/build-types/popover/utils.d.ts.map +0 -1
  599. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts +0 -19
  600. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +0 -1
  601. package/src/box-control/visualizer.js +0 -116
  602. package/src/button-group/index.js +0 -17
  603. package/src/button-group/stories/index.js +0 -21
  604. package/src/date-time/stories/date.js +0 -17
  605. package/src/date-time/stories/index.js +0 -72
  606. package/src/date-time/stories/time.js +0 -32
  607. package/src/date-time/test/date.js +0 -97
  608. package/src/date-time/utils.js +0 -18
  609. package/src/flyout/context.js +0 -10
  610. package/src/flyout/flyout/README.md +0 -98
  611. package/src/flyout/flyout/component.js +0 -111
  612. package/src/flyout/flyout/hook.js +0 -45
  613. package/src/flyout/flyout/index.js +0 -2
  614. package/src/flyout/flyout-content/component.js +0 -53
  615. package/src/flyout/flyout-content/index.js +0 -1
  616. package/src/flyout/index.js +0 -1
  617. package/src/flyout/stories/index.js +0 -24
  618. package/src/flyout/styles.ts +0 -41
  619. package/src/flyout/test/__snapshots__/index.js.snap +0 -186
  620. package/src/flyout/test/index.js +0 -103
  621. package/src/flyout/types.ts +0 -84
  622. package/src/flyout/utils.js +0 -23
  623. package/src/input-control/stories/index.js +0 -71
  624. package/src/mobile/html-text-input/container.android.js +0 -23
  625. package/src/mobile/html-text-input/container.ios.js +0 -50
  626. package/src/popover/test/utils.js +0 -304
  627. package/src/popover/utils.js +0 -396
  628. package/src/select-control/stories/index.js +0 -104
  629. package/src/text-control/index.js +0 -72
  630. package/src/text-control/stories/index.js +0 -46
@@ -161,7 +161,7 @@ const renderPanel = () => {
161
161
  */
162
162
  const getMenuButton = () => {
163
163
  return screen.getByRole( 'button', {
164
- name: /view([\w\s]+)options/i,
164
+ name: /Panel([\w\s]+)header([\w\s]+)options/i,
165
165
  } );
166
166
  };
167
167
 
@@ -178,7 +178,6 @@ const openDropdownMenu = () => {
178
178
 
179
179
  // Opens dropdown then selects the menu item by label before simulating a click.
180
180
  const selectMenuItem = async ( label ) => {
181
- openDropdownMenu();
182
181
  const menuItem = await screen.findByText( label );
183
182
  fireEvent.click( menuItem );
184
183
  };
@@ -289,18 +288,30 @@ describe( 'ToolsPanel', () => {
289
288
 
290
289
  it( 'should render panel item when corresponding menu item is selected', async () => {
291
290
  renderPanel();
291
+ await openDropdownMenu();
292
292
  await selectMenuItem( altControlProps.label );
293
293
  const control = await screen.findByText( 'Alt control' );
294
294
 
295
295
  expect( control ).toBeInTheDocument();
296
+
297
+ // Test the aria live announcement.
298
+ const announcement = await screen.getByText( 'Alt is now visible' );
299
+ expect( announcement ).toHaveAttribute( 'aria-live', 'assertive' );
296
300
  } );
297
301
 
298
302
  it( 'should prevent optional panel item rendering when toggled off via menu item', async () => {
299
303
  renderPanel();
304
+ await openDropdownMenu();
300
305
  await selectMenuItem( controlProps.label );
301
306
  const control = screen.queryByText( 'Example control' );
302
307
 
303
308
  expect( control ).not.toBeInTheDocument();
309
+
310
+ // Test the aria live announcement.
311
+ const announcement = await screen.getByText(
312
+ 'Example hidden and reset to default'
313
+ );
314
+ expect( announcement ).toHaveAttribute( 'aria-live', 'assertive' );
304
315
  } );
305
316
 
306
317
  it( 'should continue to render shown by default item after it is toggled off via menu item', async () => {
@@ -319,10 +330,17 @@ describe( 'ToolsPanel', () => {
319
330
 
320
331
  expect( control ).toBeInTheDocument();
321
332
 
333
+ await openDropdownMenu();
322
334
  await selectMenuItem( controlProps.label );
323
335
  const resetControl = screen.getByText( 'Default control' );
324
336
 
325
337
  expect( resetControl ).toBeInTheDocument();
338
+
339
+ // Test the aria live announcement.
340
+ const announcement = await screen.getByText(
341
+ 'Example reset to default'
342
+ );
343
+ expect( announcement ).toHaveAttribute( 'aria-live', 'assertive' );
326
344
  } );
327
345
 
328
346
  it( 'should render appropriate menu groups', async () => {
@@ -657,6 +675,8 @@ describe( 'ToolsPanel', () => {
657
675
 
658
676
  it( 'should call onDeselect callback when menu item is toggled off', async () => {
659
677
  renderPanel();
678
+
679
+ await openDropdownMenu();
660
680
  await selectMenuItem( controlProps.label );
661
681
 
662
682
  expect( controlProps.onSelect ).not.toHaveBeenCalled();
@@ -665,6 +685,8 @@ describe( 'ToolsPanel', () => {
665
685
 
666
686
  it( 'should call onSelect callback when menu item is toggled on', async () => {
667
687
  renderPanel();
688
+
689
+ await openDropdownMenu();
668
690
  await selectMenuItem( altControlProps.label );
669
691
 
670
692
  expect( altControlProps.onSelect ).toHaveBeenCalledTimes( 1 );
@@ -673,6 +695,8 @@ describe( 'ToolsPanel', () => {
673
695
 
674
696
  it( 'should call resetAll callback when its menu item is selected', async () => {
675
697
  renderPanel();
698
+
699
+ await openDropdownMenu();
676
700
  await selectMenuItem( 'Reset all' );
677
701
 
678
702
  expect( resetAll ).toHaveBeenCalledTimes( 1 );
@@ -688,6 +712,7 @@ describe( 'ToolsPanel', () => {
688
712
  it( 'should call onDeselect after previous reset all', async () => {
689
713
  renderPanel();
690
714
 
715
+ await openDropdownMenu();
691
716
  await selectMenuItem( 'Reset all' ); // Initial control is displayed by default.
692
717
  await selectMenuItem( controlProps.label ); // Re-display control.
693
718
 
@@ -715,9 +740,8 @@ describe( 'ToolsPanel', () => {
715
740
  openDropdownMenu();
716
741
 
717
742
  const defaultItem = screen.getByText( 'Nested Control 1' );
718
- const defaultMenuItem = screen.getByRole( 'menuitemcheckbox', {
743
+ const defaultMenuItem = screen.getByRole( 'menuitem', {
719
744
  name: 'Reset Nested Control 1',
720
- checked: true,
721
745
  } );
722
746
 
723
747
  const altItem = screen.getByText( 'Nested Control 2' );
@@ -754,9 +778,8 @@ describe( 'ToolsPanel', () => {
754
778
  openDropdownMenu();
755
779
 
756
780
  const defaultItem = screen.getByText( 'Nested Control 1' );
757
- const defaultMenuItem = screen.getByRole( 'menuitemcheckbox', {
781
+ const defaultMenuItem = screen.getByRole( 'menuitem', {
758
782
  name: 'Reset Nested Control 1',
759
- checked: true,
760
783
  } );
761
784
 
762
785
  const altItem = screen.getByText( 'Nested Control 2' );
@@ -807,6 +830,7 @@ describe( 'ToolsPanel', () => {
807
830
  expect( secondItem ).toBeInTheDocument();
808
831
 
809
832
  // Toggle on the first item.
833
+ await openDropdownMenu();
810
834
  await selectMenuItem( altControlProps.label );
811
835
 
812
836
  // The order of items should be as per their original source order.
@@ -964,7 +988,7 @@ describe( 'ToolsPanel', () => {
964
988
  isShownByDefault: false,
965
989
  };
966
990
 
967
- it( 'should render appropriate icon for the dropdown menu where there are default controls', async () => {
991
+ it( 'should render appropriate labels and descriptions for the dropdown menu where there are default controls', async () => {
968
992
  render(
969
993
  <ToolsPanel { ...defaultProps }>
970
994
  <ToolsPanelItem { ...defaultControls }>
@@ -977,13 +1001,18 @@ describe( 'ToolsPanel', () => {
977
1001
  );
978
1002
 
979
1003
  const optionsDisplayedIcon = screen.getByRole( 'button', {
980
- name: 'View options',
1004
+ name: 'Panel header options',
981
1005
  } );
982
1006
 
983
1007
  expect( optionsDisplayedIcon ).toBeInTheDocument();
1008
+
1009
+ // The dropdown toggle doesn't have a description when an option is displayed.
1010
+ // In this case the default control is displayed.
1011
+ expect( optionsDisplayedIcon ).not.toHaveAccessibleDescription();
984
1012
  } );
985
1013
 
986
- it( 'should render appropriate icons for the dropdown menu where there are no default controls', async () => {
1014
+ it( 'should render appropriate labels and descriptions for the dropdown menu where there are no default controls', async () => {
1015
+ // All options are inactive.
987
1016
  render(
988
1017
  <ToolsPanel { ...defaultProps }>
989
1018
  <ToolsPanelItem { ...optionalControls }>
@@ -992,25 +1021,49 @@ describe( 'ToolsPanel', () => {
992
1021
  </ToolsPanel>
993
1022
  );
994
1023
 
995
- // There are unactivated, optional menu items in the Tools Panel dropdown.
996
1024
  const optionsHiddenIcon = screen.getByRole( 'button', {
997
- name: 'View and add options',
1025
+ name: 'Panel header options',
998
1026
  } );
999
1027
 
1028
+ // The dropdown toggle has a description indicating that all options are hidden.
1000
1029
  expect( optionsHiddenIcon ).toBeInTheDocument();
1030
+ expect( optionsHiddenIcon ).toHaveAccessibleDescription(
1031
+ 'All options are currently hidden'
1032
+ );
1001
1033
 
1034
+ // Activate one of the options.
1035
+ await openDropdownMenu();
1002
1036
  await selectMenuItem( optionalControls.label );
1003
1037
 
1004
- // There are now NO unactivated, optional menu items in the Tools Panel dropdown.
1005
- expect(
1006
- screen.queryByRole( 'button', { name: 'View and add options' } )
1007
- ).not.toBeInTheDocument();
1008
-
1009
1038
  const optionsDisplayedIcon = screen.getByRole( 'button', {
1010
- name: 'View options',
1039
+ name: 'Panel header options',
1011
1040
  } );
1012
1041
 
1013
- expect( optionsDisplayedIcon ).toBeInTheDocument();
1042
+ // The dropdown toggle no longer has a description.
1043
+ expect( optionsDisplayedIcon ).not.toHaveAccessibleDescription();
1044
+ } );
1045
+ } );
1046
+
1047
+ describe( 'reset all button', () => {
1048
+ it( "should disable the reset all button when there's nothing to reset", async () => {
1049
+ await renderPanel();
1050
+ await openDropdownMenu();
1051
+
1052
+ const resetAllItem = await screen.findByRole( 'menuitem', {
1053
+ disabled: false,
1054
+ } );
1055
+ expect( resetAllItem ).toBeInTheDocument();
1056
+
1057
+ await selectMenuItem( 'Reset all' );
1058
+
1059
+ // Test the aria live announcement.
1060
+ const announcement = await screen.getByText( 'All options reset' );
1061
+ expect( announcement ).toHaveAttribute( 'aria-live', 'assertive' );
1062
+
1063
+ const disabledResetAllItem = await screen.findByRole( 'menuitem', {
1064
+ disabled: true,
1065
+ } );
1066
+ expect( disabledResetAllItem ).toBeInTheDocument();
1014
1067
  } );
1015
1068
  } );
1016
1069
 
@@ -6,6 +6,7 @@ import type { ForwardedRef } from 'react';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
+ import { speak } from '@wordpress/a11y';
9
10
  import { check, reset, moreVertical, plus } from '@wordpress/icons';
10
11
  import { __, _x, sprintf } from '@wordpress/i18n';
11
12
 
@@ -24,11 +25,8 @@ import type {
24
25
  ToolsPanelHeaderProps,
25
26
  } from '../types';
26
27
 
27
- const noop = () => {};
28
-
29
28
  const DefaultControlsGroup = ( {
30
29
  items,
31
- onClose,
32
30
  toggleItem,
33
31
  }: ToolsPanelControlsGroupProps ) => {
34
32
  if ( ! items.length ) {
@@ -38,27 +36,41 @@ const DefaultControlsGroup = ( {
38
36
  return (
39
37
  <MenuGroup>
40
38
  { items.map( ( [ label, hasValue ] ) => {
41
- const icon = hasValue ? reset : check;
42
- const itemLabel = hasValue
43
- ? sprintf(
44
- // translators: %s: The name of the control being reset e.g. "Padding".
45
- __( 'Reset %s' ),
46
- label
47
- )
48
- : undefined;
39
+ if ( hasValue ) {
40
+ return (
41
+ <MenuItem
42
+ key={ label }
43
+ role="menuitem"
44
+ icon={ reset }
45
+ label={ sprintf(
46
+ // translators: %s: The name of the control being reset e.g. "Padding".
47
+ __( 'Reset %s' ),
48
+ label
49
+ ) }
50
+ onClick={ () => {
51
+ toggleItem( label );
52
+ speak(
53
+ sprintf(
54
+ // translators: %s: The name of the control being reset e.g. "Padding".
55
+ __( '%s reset to default' ),
56
+ label
57
+ ),
58
+ 'assertive'
59
+ );
60
+ } }
61
+ >
62
+ { label }
63
+ </MenuItem>
64
+ );
65
+ }
49
66
 
50
67
  return (
51
68
  <MenuItem
52
69
  key={ label }
53
- icon={ icon }
54
- isSelected={ true }
55
- disabled={ ! hasValue }
56
- label={ itemLabel }
57
- onClick={ () => {
58
- toggleItem( label );
59
- onClose();
60
- } }
61
70
  role="menuitemcheckbox"
71
+ icon={ check }
72
+ isSelected
73
+ aria-disabled
62
74
  >
63
75
  { label }
64
76
  </MenuItem>
@@ -70,7 +82,6 @@ const DefaultControlsGroup = ( {
70
82
 
71
83
  const OptionalControlsGroup = ( {
72
84
  items,
73
- onClose,
74
85
  toggleItem,
75
86
  }: ToolsPanelControlsGroupProps ) => {
76
87
  if ( ! items.length ) {
@@ -99,8 +110,26 @@ const OptionalControlsGroup = ( {
99
110
  isSelected={ isSelected }
100
111
  label={ itemLabel }
101
112
  onClick={ () => {
113
+ if ( isSelected ) {
114
+ speak(
115
+ sprintf(
116
+ // translators: %s: The name of the control being reset e.g. "Padding".
117
+ __( '%s hidden and reset to default' ),
118
+ label
119
+ ),
120
+ 'assertive'
121
+ );
122
+ } else {
123
+ speak(
124
+ sprintf(
125
+ // translators: %s: The name of the control being reset e.g. "Padding".
126
+ __( '%s is now visible' ),
127
+ label
128
+ ),
129
+ 'assertive'
130
+ );
131
+ }
102
132
  toggleItem( label );
103
- onClose();
104
133
  } }
105
134
  role="menuitemcheckbox"
106
135
  >
@@ -135,12 +164,18 @@ const ToolsPanelHeader = (
135
164
  const defaultItems = Object.entries( menuItems?.default || {} );
136
165
  const optionalItems = Object.entries( menuItems?.optional || {} );
137
166
  const dropDownMenuIcon = areAllOptionalControlsHidden ? plus : moreVertical;
138
- const dropDownMenuLabelText = areAllOptionalControlsHidden
139
- ? _x(
140
- 'View and add options',
141
- 'Button label to reveal tool panel options'
142
- )
143
- : _x( 'View options', 'Button label to reveal tool panel options' );
167
+ const dropDownMenuLabelText = sprintf(
168
+ // translators: %s: The name of the tool e.g. "Color" or "Typography".
169
+ _x( '%s options', 'Button label to reveal tool panel options' ),
170
+ labelText
171
+ );
172
+ const dropdownMenuDescriptionText = areAllOptionalControlsHidden
173
+ ? __( 'All options are currently hidden' )
174
+ : undefined;
175
+
176
+ const canResetAll = [ ...defaultItems, ...optionalItems ].some(
177
+ ( [ , isSelected ] ) => isSelected
178
+ );
144
179
 
145
180
  return (
146
181
  <HStack { ...headerProps } ref={ forwardedRef }>
@@ -152,26 +187,33 @@ const ToolsPanelHeader = (
152
187
  icon={ dropDownMenuIcon }
153
188
  label={ dropDownMenuLabelText }
154
189
  menuProps={ { className: dropdownMenuClassName } }
155
- toggleProps={ { isSmall: true } }
190
+ toggleProps={ {
191
+ isSmall: true,
192
+ describedBy: dropdownMenuDescriptionText,
193
+ } }
156
194
  >
157
- { ( { onClose = noop } ) => (
195
+ { () => (
158
196
  <>
159
197
  <DefaultControlsGroup
160
198
  items={ defaultItems }
161
- onClose={ onClose }
162
199
  toggleItem={ toggleItem }
163
200
  />
164
201
  <OptionalControlsGroup
165
202
  items={ optionalItems }
166
- onClose={ onClose }
167
203
  toggleItem={ toggleItem }
168
204
  />
169
205
  <MenuGroup>
170
206
  <MenuItem
207
+ aria-disabled={ ! canResetAll }
171
208
  variant={ 'tertiary' }
172
209
  onClick={ () => {
173
- resetAll();
174
- onClose();
210
+ if ( canResetAll ) {
211
+ resetAll();
212
+ speak(
213
+ __( 'All options reset' ),
214
+ 'assertive'
215
+ );
216
+ }
175
217
  } }
176
218
  >
177
219
  { __( 'Reset all' ) }
@@ -148,7 +148,6 @@ export type ToolsPanelContext = {
148
148
 
149
149
  export type ToolsPanelControlsGroupProps = {
150
150
  items: [ string, boolean ][];
151
- onClose: () => void;
152
151
  toggleItem: ( label: string ) => void;
153
152
  };
154
153
 
@@ -64,7 +64,7 @@ const addPopoverToGrandchildren = ( {
64
64
  className="components-tooltip"
65
65
  aria-hidden="true"
66
66
  animate={ false }
67
- noArrow={ true }
67
+ offset={ 12 }
68
68
  >
69
69
  { text }
70
70
  <Shortcut
@@ -93,7 +93,13 @@ const emitToChild = ( children, eventName, event ) => {
93
93
  };
94
94
 
95
95
  function Tooltip( props ) {
96
- const { children, position, text, shortcut, delay = TOOLTIP_DELAY } = props;
96
+ const {
97
+ children,
98
+ position = 'bottom middle',
99
+ text,
100
+ shortcut,
101
+ delay = TOOLTIP_DELAY,
102
+ } = props;
97
103
  /**
98
104
  * Whether a mouse is currently pressed, used in determining whether
99
105
  * to handle a focus event as displaying the tooltip immediately.
@@ -10,16 +10,14 @@
10
10
  background: $gray-900;
11
11
  border-radius: $radius-block-ui;
12
12
  border-width: 0;
13
+ outline: none;
13
14
  color: $white;
14
15
  white-space: nowrap;
15
16
  text-align: center;
16
17
  line-height: 1.4;
17
18
  font-size: 12px;
18
19
  box-shadow: none;
19
-
20
- > div {
21
- padding: $grid-unit-05 $grid-unit-10;
22
- }
20
+ padding: $grid-unit-05 $grid-unit-10;
23
21
  }
24
22
 
25
23
  .components-tooltip__shortcut {
@@ -149,6 +149,9 @@ describe( 'Tooltip', () => {
149
149
  setTimeout( () => {
150
150
  const popoverAfterTimeout = wrapper.find( 'Popover' );
151
151
  expect( popoverAfterTimeout ).toHaveLength( 1 );
152
+
153
+ jest.runOnlyPendingTimers();
154
+ jest.useRealTimers();
152
155
  }, TOOLTIP_DELAY );
153
156
  } );
154
157
 
@@ -183,6 +186,9 @@ describe( 'Tooltip', () => {
183
186
  setTimeout( () => {
184
187
  const popoverAfterTimeout = wrapper.find( 'Popover' );
185
188
  expect( popoverAfterTimeout ).toHaveLength( 1 );
189
+
190
+ jest.runOnlyPendingTimers();
191
+ jest.useRealTimers();
186
192
  }, 2000 );
187
193
  } );
188
194
 
@@ -55,7 +55,7 @@ it( 'displays the message', () => {
55
55
  } );
56
56
 
57
57
  // Skipped until `pointerEvents: 'box-none'` no longer erroneously prevents
58
- // triggering `onTouch*` on the element: https://git.io/JSHZt
58
+ // triggering `onTouch*` on the element: https://github.com/callstack/react-native-testing-library/issues/897
59
59
  it.skip( 'dismisses when the screen is tapped', () => {
60
60
  const screen = render(
61
61
  <TooltipSlot>
@@ -21,7 +21,7 @@ import { COLORS } from '../../utils/colors-values';
21
21
  */
22
22
  function Spinner( props, forwardedRef ) {
23
23
  const {
24
- color = COLORS.black,
24
+ color = COLORS.gray[ 900 ],
25
25
  size = BASE_SIZE,
26
26
  ...otherProps
27
27
  } = useContextSystem( props, 'Spinner' );
@@ -12,7 +12,7 @@ Snapshot Diff:
12
12
  <div
13
13
  class="css-tada40-BarsView e1s9yo7h0"
14
14
  - style="color: blue;"
15
- + style="color: rgb(0, 0, 0);"
15
+ + style="color: rgb(30, 30, 30);"
16
16
  >
17
17
  <div
18
18
  class="InnerBar1"
@@ -193,7 +193,7 @@ exports[`props should render correctly 1`] = `
193
193
  >
194
194
  <div
195
195
  class="emotion-4 emotion-5"
196
- style="color: rgb(0, 0, 0);"
196
+ style="color: rgb(30, 30, 30);"
197
197
  >
198
198
  <div
199
199
  class="InnerBar1"
@@ -258,6 +258,6 @@ Snapshot Diff:
258
258
  >
259
259
  <div
260
260
  class="css-tada40-BarsView e1s9yo7h0"
261
- style="color: rgb(0, 0, 0);"
261
+ style="color: rgb(30, 30, 30);"
262
262
  >
263
263
  `;
@@ -88,7 +88,7 @@ function UnforwardedUnitControl(
88
88
  );
89
89
 
90
90
  const [ unit, setUnit ] = useControlledState< string | undefined >(
91
- unitProp,
91
+ units.length === 1 ? units[ 0 ].value : unitProp,
92
92
  {
93
93
  initial: parsedUnit,
94
94
  fallback: '',
@@ -178,10 +178,7 @@ function UnforwardedUnitControl(
178
178
  : undefined;
179
179
  const changeProps = { event, data };
180
180
 
181
- onChangeProp?.(
182
- `${ validParsedQuantity ?? '' }${ validParsedUnit }`,
183
- changeProps
184
- );
181
+ // The `onChange` callback already gets called, no need to call it explicitely.
185
182
  onUnitChange?.( validParsedUnit, changeProps );
186
183
 
187
184
  setUnit( validParsedUnit );
@@ -26,21 +26,11 @@ export const Root = styled.div`
26
26
  position: relative;
27
27
  `;
28
28
 
29
- const paddingStyles = ( { disableUnits, size }: InputProps ) => {
30
- const paddings = {
31
- default: {
32
- paddingRight: 8,
33
- },
34
- small: {
35
- paddingRight: 8,
36
- },
37
- '__unstable-large': {
38
- paddingRight: disableUnits ? 16 : 8,
39
- },
40
- };
29
+ const paddingStyles = ( { disableUnits }: InputProps ) => {
30
+ if ( disableUnits ) return '';
41
31
 
42
32
  return css`
43
- ${ rtl( paddings[ size ] )() };
33
+ ${ rtl( { paddingRight: 8 } )() };
44
34
  `;
45
35
  };
46
36
 
@@ -0,0 +1,33 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`UnitControl Basic rendering should render custom className 1`] = `
4
+ Snapshot Diff:
5
+ - First value
6
+ + Second value
7
+
8
+ @@ -1,10 +1,10 @@
9
+ <div
10
+ class="components-unit-control-wrapper css-aa2xc3-Root e1bagdl33"
11
+ >
12
+ <div
13
+ - class="components-flex components-input-control components-number-control components-unit-control e1bagdl32 ep48uk90 em5sgkm7 css-18wzek1-View-Flex-sx-Base-sx-Items-ItemsColumn-Root-rootLabelPositionStyles-Input-ValueInput-arrowStyles-paddingStyles em57xhy0"
14
+ + class="components-flex components-input-control components-number-control components-unit-control hello e1bagdl32 ep48uk90 em5sgkm7 css-18wzek1-View-Flex-sx-Base-sx-Items-ItemsColumn-Root-rootLabelPositionStyles-Input-ValueInput-arrowStyles-paddingStyles em57xhy0"
15
+ data-wp-c16t="true"
16
+ data-wp-component="Flex"
17
+ >
18
+ <div
19
+ class="components-flex-item em5sgkm3 css-1fmchc6-View-Item-sx-Base-LabelWrapper em57xhy0"
20
+ @@ -15,11 +15,11 @@
21
+ class="components-input-control__container css-1sy20aj-Container-containerDisabledStyles-containerMarginStyles-containerWidthStyles em5sgkm6"
22
+ >
23
+ <input
24
+ autocomplete="off"
25
+ class="components-input-control__input css-gzm6eu-Input-dragStyles-fontSizeStyles-sizeStyles em5sgkm5"
26
+ - id="inspector-input-control-1"
27
+ + id="inspector-input-control-2"
28
+ inputmode="numeric"
29
+ max="Infinity"
30
+ min="-Infinity"
31
+ step="1"
32
+ type="number"
33
+ `;