@wordpress/components 22.1.0 → 23.0.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 (530) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/build/alignment-matrix-control/cell.js.map +1 -1
  3. package/build/alignment-matrix-control/icon.js +4 -2
  4. package/build/alignment-matrix-control/icon.js.map +1 -1
  5. package/build/alignment-matrix-control/index.js +25 -1
  6. package/build/alignment-matrix-control/index.js.map +1 -1
  7. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
  8. package/build/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
  9. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
  10. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  11. package/build/alignment-matrix-control/types.js +6 -0
  12. package/build/alignment-matrix-control/types.js.map +1 -0
  13. package/build/alignment-matrix-control/utils.js +9 -8
  14. package/build/alignment-matrix-control/utils.js.map +1 -1
  15. package/build/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
  16. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  17. package/build/autocomplete/index.js +38 -9
  18. package/build/autocomplete/index.js.map +1 -1
  19. package/build/base-control/hooks.js +52 -0
  20. package/build/base-control/hooks.js.map +1 -0
  21. package/build/base-control/index.js +24 -7
  22. package/build/base-control/index.js.map +1 -1
  23. package/build/base-field/hook.js +0 -14
  24. package/build/base-field/hook.js.map +1 -1
  25. package/build/base-field/index.js.map +1 -1
  26. package/build/base-field/styles.js +5 -5
  27. package/build/base-field/styles.js.map +1 -1
  28. package/build/base-field/types.js +6 -0
  29. package/build/base-field/types.js.map +1 -0
  30. package/build/border-control/border-control/component.js +1 -0
  31. package/build/border-control/border-control/component.js.map +1 -1
  32. package/build/border-control/styles.js +16 -16
  33. package/build/border-control/styles.js.map +1 -1
  34. package/build/box-control/linked-button.js +3 -4
  35. package/build/box-control/linked-button.js.map +1 -1
  36. package/build/color-palette/index.js +2 -7
  37. package/build/color-palette/index.js.map +1 -1
  38. package/build/color-picker/input-with-slider.js +1 -0
  39. package/build/color-picker/input-with-slider.js.map +1 -1
  40. package/build/color-picker/styles.js +8 -8
  41. package/build/color-picker/styles.js.map +1 -1
  42. package/build/custom-select-control/index.js +14 -2
  43. package/build/custom-select-control/index.js.map +1 -1
  44. package/build/dashicon/index.js +1 -4
  45. package/build/dashicon/index.js.map +1 -1
  46. package/build/date-time/date-time/index.js +4 -4
  47. package/build/date-time/date-time/index.js.map +1 -1
  48. package/build/duotone-picker/duotone-picker.js +2 -2
  49. package/build/duotone-picker/duotone-picker.js.map +1 -1
  50. package/build/gradient-picker/index.js +3 -9
  51. package/build/gradient-picker/index.js.map +1 -1
  52. package/build/higher-order/with-fallback-styles/index.js +2 -2
  53. package/build/higher-order/with-fallback-styles/index.js.map +1 -1
  54. package/build/index.js +13 -1
  55. package/build/index.js.map +1 -1
  56. package/build/input-control/index.js +17 -5
  57. package/build/input-control/index.js.map +1 -1
  58. package/build/input-control/input-base.js +2 -0
  59. package/build/input-control/input-base.js.map +1 -1
  60. package/build/mobile/bottom-sheet/cell.native.js +1 -1
  61. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  62. package/build/mobile/bottom-sheet/switch-cell.native.js +1 -3
  63. package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  64. package/build/mobile/global-styles-context/index.native.js +8 -8
  65. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  66. package/build/mobile/keyboard-aware-flat-list/index.ios.js +4 -2
  67. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  68. package/build/modal/index.js +8 -0
  69. package/build/modal/index.js.map +1 -1
  70. package/build/navigator/navigator-provider/component.js +12 -8
  71. package/build/navigator/navigator-provider/component.js.map +1 -1
  72. package/build/number-control/styles/number-control-styles.js +8 -8
  73. package/build/number-control/styles/number-control-styles.js.map +1 -1
  74. package/build/palette-edit/index.js +72 -33
  75. package/build/palette-edit/index.js.map +1 -1
  76. package/build/popover/index.js +10 -2
  77. package/build/popover/index.js.map +1 -1
  78. package/build/query-controls/index.js +1 -0
  79. package/build/query-controls/index.js.map +1 -1
  80. package/build/snackbar/index.js +35 -24
  81. package/build/snackbar/index.js.map +1 -1
  82. package/build/snackbar/list.js +14 -19
  83. package/build/snackbar/list.js.map +1 -1
  84. package/build/snackbar/types.js +6 -0
  85. package/build/snackbar/types.js.map +1 -0
  86. package/build/tab-panel/index.js +10 -5
  87. package/build/tab-panel/index.js.map +1 -1
  88. package/build/theme/color-algorithms.js +118 -0
  89. package/build/theme/color-algorithms.js.map +1 -0
  90. package/build/theme/index.js +21 -18
  91. package/build/theme/index.js.map +1 -1
  92. package/build/theme/styles.js +10 -7
  93. package/build/theme/styles.js.map +1 -1
  94. package/build/toggle-control/index.js +5 -2
  95. package/build/toggle-control/index.js.map +1 -1
  96. package/build/ui/context/context-system-provider.js +3 -1
  97. package/build/ui/context/context-system-provider.js.map +1 -1
  98. package/build/unit-control/index.js +5 -2
  99. package/build/unit-control/index.js.map +1 -1
  100. package/build/utils/colors-values.js +1 -1
  101. package/build/utils/colors-values.js.map +1 -1
  102. package/build/utils/config-values.js +0 -2
  103. package/build/utils/config-values.js.map +1 -1
  104. package/build/utils/hooks/use-controlled-value.js.map +1 -1
  105. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  106. package/build-module/alignment-matrix-control/icon.js +4 -2
  107. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  108. package/build-module/alignment-matrix-control/index.js +23 -1
  109. package/build-module/alignment-matrix-control/index.js.map +1 -1
  110. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js +13 -13
  111. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js.map +1 -1
  112. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +16 -16
  113. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  114. package/build-module/alignment-matrix-control/types.js +2 -0
  115. package/build-module/alignment-matrix-control/types.js.map +1 -0
  116. package/build-module/alignment-matrix-control/utils.js +13 -8
  117. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  118. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +9 -9
  119. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  120. package/build-module/autocomplete/index.js +38 -9
  121. package/build-module/autocomplete/index.js.map +1 -1
  122. package/build-module/base-control/hooks.js +41 -0
  123. package/build-module/base-control/hooks.js.map +1 -0
  124. package/build-module/base-control/index.js +18 -8
  125. package/build-module/base-control/index.js.map +1 -1
  126. package/build-module/base-field/hook.js +0 -14
  127. package/build-module/base-field/hook.js.map +1 -1
  128. package/build-module/base-field/index.js.map +1 -1
  129. package/build-module/base-field/styles.js +5 -5
  130. package/build-module/base-field/styles.js.map +1 -1
  131. package/build-module/base-field/types.js +2 -0
  132. package/build-module/base-field/types.js.map +1 -0
  133. package/build-module/border-control/border-control/component.js +1 -0
  134. package/build-module/border-control/border-control/component.js.map +1 -1
  135. package/build-module/border-control/styles.js +17 -17
  136. package/build-module/border-control/styles.js.map +1 -1
  137. package/build-module/box-control/linked-button.js +3 -4
  138. package/build-module/box-control/linked-button.js.map +1 -1
  139. package/build-module/color-palette/index.js +2 -7
  140. package/build-module/color-palette/index.js.map +1 -1
  141. package/build-module/color-picker/input-with-slider.js +1 -0
  142. package/build-module/color-picker/input-with-slider.js.map +1 -1
  143. package/build-module/color-picker/styles.js +8 -8
  144. package/build-module/color-picker/styles.js.map +1 -1
  145. package/build-module/custom-select-control/index.js +14 -2
  146. package/build-module/custom-select-control/index.js.map +1 -1
  147. package/build-module/dashicon/index.js +1 -4
  148. package/build-module/dashicon/index.js.map +1 -1
  149. package/build-module/date-time/date-time/index.js +4 -4
  150. package/build-module/date-time/date-time/index.js.map +1 -1
  151. package/build-module/duotone-picker/duotone-picker.js +2 -2
  152. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  153. package/build-module/gradient-picker/index.js +3 -8
  154. package/build-module/gradient-picker/index.js.map +1 -1
  155. package/build-module/higher-order/with-fallback-styles/index.js +2 -2
  156. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  157. package/build-module/index.js +2 -2
  158. package/build-module/index.js.map +1 -1
  159. package/build-module/input-control/index.js +16 -5
  160. package/build-module/input-control/index.js.map +1 -1
  161. package/build-module/input-control/input-base.js +2 -0
  162. package/build-module/input-control/input-base.js.map +1 -1
  163. package/build-module/mobile/bottom-sheet/cell.native.js +1 -1
  164. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  165. package/build-module/mobile/bottom-sheet/switch-cell.native.js +1 -2
  166. package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  167. package/build-module/mobile/global-styles-context/index.native.js +8 -7
  168. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  169. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  170. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  171. package/build-module/modal/index.js +8 -0
  172. package/build-module/modal/index.js.map +1 -1
  173. package/build-module/navigator/navigator-provider/component.js +12 -8
  174. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  175. package/build-module/number-control/styles/number-control-styles.js +8 -10
  176. package/build-module/number-control/styles/number-control-styles.js.map +1 -1
  177. package/build-module/palette-edit/index.js +73 -34
  178. package/build-module/palette-edit/index.js.map +1 -1
  179. package/build-module/popover/index.js +10 -2
  180. package/build-module/popover/index.js.map +1 -1
  181. package/build-module/query-controls/index.js +1 -0
  182. package/build-module/query-controls/index.js.map +1 -1
  183. package/build-module/snackbar/index.js +33 -23
  184. package/build-module/snackbar/index.js.map +1 -1
  185. package/build-module/snackbar/list.js +14 -22
  186. package/build-module/snackbar/list.js.map +1 -1
  187. package/build-module/snackbar/types.js +2 -0
  188. package/build-module/snackbar/types.js.map +1 -0
  189. package/build-module/tab-panel/index.js +10 -5
  190. package/build-module/tab-panel/index.js.map +1 -1
  191. package/build-module/theme/color-algorithms.js +105 -0
  192. package/build-module/theme/color-algorithms.js.map +1 -0
  193. package/build-module/theme/index.js +21 -17
  194. package/build-module/theme/index.js.map +1 -1
  195. package/build-module/theme/styles.js +8 -6
  196. package/build-module/theme/styles.js.map +1 -1
  197. package/build-module/toggle-control/index.js +4 -2
  198. package/build-module/toggle-control/index.js.map +1 -1
  199. package/build-module/ui/context/context-system-provider.js +3 -2
  200. package/build-module/ui/context/context-system-provider.js.map +1 -1
  201. package/build-module/unit-control/index.js +5 -2
  202. package/build-module/unit-control/index.js.map +1 -1
  203. package/build-module/utils/colors-values.js +1 -1
  204. package/build-module/utils/colors-values.js.map +1 -1
  205. package/build-module/utils/config-values.js +0 -2
  206. package/build-module/utils/config-values.js.map +1 -1
  207. package/build-module/utils/hooks/use-controlled-value.js.map +1 -1
  208. package/build-style/style-rtl.css +92 -75
  209. package/build-style/style.css +92 -75
  210. package/build-types/alignment-matrix-control/cell.d.ts +5 -0
  211. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -0
  212. package/build-types/alignment-matrix-control/icon.d.ts +6 -0
  213. package/build-types/alignment-matrix-control/icon.d.ts.map +1 -0
  214. package/build-types/alignment-matrix-control/index.d.ts +30 -0
  215. package/build-types/alignment-matrix-control/index.d.ts.map +1 -0
  216. package/build-types/alignment-matrix-control/stories/index.d.ts +14 -0
  217. package/build-types/alignment-matrix-control/stories/index.d.ts.map +1 -0
  218. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts +19 -0
  219. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.d.ts.map +1 -0
  220. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts +23 -0
  221. package/build-types/alignment-matrix-control/styles/alignment-matrix-control-styles.d.ts.map +1 -0
  222. package/build-types/alignment-matrix-control/test/index.d.ts +2 -0
  223. package/build-types/alignment-matrix-control/test/index.d.ts.map +1 -0
  224. package/build-types/alignment-matrix-control/types.d.ts +39 -0
  225. package/build-types/alignment-matrix-control/types.d.ts.map +1 -0
  226. package/build-types/alignment-matrix-control/utils.d.ts +33 -0
  227. package/build-types/alignment-matrix-control/utils.d.ts.map +1 -0
  228. package/build-types/base-control/hooks.d.ts +23 -0
  229. package/build-types/base-control/hooks.d.ts.map +1 -0
  230. package/build-types/base-control/index.d.ts +17 -7
  231. package/build-types/base-control/index.d.ts.map +1 -1
  232. package/build-types/base-control/stories/index.d.ts.map +1 -1
  233. package/build-types/base-control/test/index.d.ts +2 -0
  234. package/build-types/base-control/test/index.d.ts.map +1 -0
  235. package/build-types/base-control/types.d.ts +8 -2
  236. package/build-types/base-control/types.d.ts.map +1 -1
  237. package/build-types/base-field/hook.d.ts +7 -31
  238. package/build-types/base-field/hook.d.ts.map +1 -1
  239. package/build-types/base-field/index.d.ts +1 -1
  240. package/build-types/base-field/index.d.ts.map +1 -1
  241. package/build-types/base-field/styles.d.ts +5 -5
  242. package/build-types/base-field/styles.d.ts.map +1 -1
  243. package/build-types/base-field/test/index.d.ts +2 -0
  244. package/build-types/base-field/test/index.d.ts.map +1 -0
  245. package/build-types/base-field/types.d.ts +29 -0
  246. package/build-types/base-field/types.d.ts.map +1 -0
  247. package/build-types/border-box-control/border-box-control/hook.d.ts +2 -2
  248. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +2 -2
  249. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +2 -2
  250. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +2 -2
  251. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  252. package/build-types/border-control/border-control/hook.d.ts +2 -2
  253. package/build-types/border-control/border-control-dropdown/hook.d.ts +2 -2
  254. package/build-types/border-control/border-control-style-picker/hook.d.ts +2 -2
  255. package/build-types/border-control/styles.d.ts.map +1 -1
  256. package/build-types/card/card/hook.d.ts +2 -2
  257. package/build-types/card/card-body/hook.d.ts +2 -2
  258. package/build-types/card/card-divider/hook.d.ts +2 -2
  259. package/build-types/card/card-footer/hook.d.ts +2 -2
  260. package/build-types/card/card-header/hook.d.ts +2 -2
  261. package/build-types/card/card-media/hook.d.ts +2 -2
  262. package/build-types/color-palette/index.d.ts +2 -2
  263. package/build-types/color-palette/index.d.ts.map +1 -1
  264. package/build-types/color-palette/stories/index.d.ts +6 -7
  265. package/build-types/color-palette/stories/index.d.ts.map +1 -1
  266. package/build-types/color-palette/styles.d.ts +1 -1
  267. package/build-types/color-palette/types.d.ts +1 -1
  268. package/build-types/color-palette/types.d.ts.map +1 -1
  269. package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
  270. package/build-types/color-picker/styles.d.ts +5 -5
  271. package/build-types/color-picker/styles.d.ts.map +1 -1
  272. package/build-types/custom-select-control/index.d.ts.map +1 -1
  273. package/build-types/dashicon/index.d.ts +6 -20
  274. package/build-types/dashicon/index.d.ts.map +1 -1
  275. package/build-types/dashicon/types.d.ts +14 -0
  276. package/build-types/dashicon/types.d.ts.map +1 -1
  277. package/build-types/date-time/date/styles.d.ts +3 -3
  278. package/build-types/date-time/date-time/styles.d.ts +3 -3
  279. package/build-types/date-time/time/styles.d.ts +8 -8
  280. package/build-types/elevation/hook.d.ts +2 -2
  281. package/build-types/external-link/styles/external-link-styles.d.ts +1 -1
  282. package/build-types/flex/flex/hook.d.ts +2 -2
  283. package/build-types/flex/flex-block/hook.d.ts +2 -2
  284. package/build-types/flex/flex-item/hook.d.ts +2 -2
  285. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -5
  286. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  287. package/build-types/grid/hook.d.ts +2 -2
  288. package/build-types/h-stack/component.d.ts +1 -1
  289. package/build-types/h-stack/hook.d.ts +2 -2
  290. package/build-types/heading/hook.d.ts +2 -2
  291. package/build-types/input-control/index.d.ts +1 -1
  292. package/build-types/input-control/index.d.ts.map +1 -1
  293. package/build-types/input-control/input-base.d.ts.map +1 -1
  294. package/build-types/input-control/stories/index.d.ts +1 -0
  295. package/build-types/input-control/stories/index.d.ts.map +1 -1
  296. package/build-types/input-control/types.d.ts +2 -1
  297. package/build-types/input-control/types.d.ts.map +1 -1
  298. package/build-types/item-group/item/hook.d.ts +2 -2
  299. package/build-types/item-group/item-group/hook.d.ts +2 -2
  300. package/build-types/modal/index.d.ts.map +1 -1
  301. package/build-types/modal/stories/index.d.ts.map +1 -1
  302. package/build-types/navigator/navigator-back-button/hook.d.ts +3 -3
  303. package/build-types/navigator/navigator-button/hook.d.ts +3 -3
  304. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  305. package/build-types/number-control/index.d.ts +2 -2
  306. package/build-types/number-control/index.d.ts.map +1 -1
  307. package/build-types/number-control/stories/index.d.ts +25 -0
  308. package/build-types/number-control/stories/index.d.ts.map +1 -0
  309. package/build-types/number-control/styles/number-control-styles.d.ts +6 -6
  310. package/build-types/number-control/styles/number-control-styles.d.ts.map +1 -1
  311. package/build-types/number-control/test/index.d.ts +2 -0
  312. package/build-types/number-control/test/index.d.ts.map +1 -0
  313. package/build-types/popover/index.d.ts +1 -1
  314. package/build-types/popover/index.d.ts.map +1 -1
  315. package/build-types/popover/stories/e2e/index.d.ts +1 -1
  316. package/build-types/range-control/index.d.ts +1 -1
  317. package/build-types/range-control/styles/range-control-styles.d.ts +2 -2
  318. package/build-types/resizable-box/resize-tooltip/index.d.ts +15 -19
  319. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  320. package/build-types/resizable-box/resize-tooltip/label.d.ts +4 -3
  321. package/build-types/resizable-box/resize-tooltip/label.d.ts.map +1 -1
  322. package/build-types/scrollable/hook.d.ts +2 -2
  323. package/build-types/search-control/index.d.ts +1 -1
  324. package/build-types/search-control/stories/index.d.ts +2 -2
  325. package/build-types/snackbar/index.d.ts +19 -0
  326. package/build-types/snackbar/index.d.ts.map +1 -0
  327. package/build-types/snackbar/list.d.ts +18 -0
  328. package/build-types/snackbar/list.d.ts.map +1 -0
  329. package/build-types/snackbar/stories/index.d.ts +16 -0
  330. package/build-types/snackbar/stories/index.d.ts.map +1 -0
  331. package/build-types/snackbar/stories/list.d.ts +12 -0
  332. package/build-types/snackbar/stories/list.d.ts.map +1 -0
  333. package/build-types/snackbar/types.d.ts +111 -0
  334. package/build-types/snackbar/types.d.ts.map +1 -0
  335. package/build-types/spacer/hook.d.ts +2 -2
  336. package/build-types/spinner/index.d.ts +1 -1
  337. package/build-types/surface/hook.d.ts +2 -2
  338. package/build-types/tab-panel/index.d.ts +1 -1
  339. package/build-types/tab-panel/index.d.ts.map +1 -1
  340. package/build-types/tab-panel/types.d.ts +19 -1
  341. package/build-types/tab-panel/types.d.ts.map +1 -1
  342. package/build-types/text/hook.d.ts +2 -2
  343. package/build-types/text-control/index.d.ts +2 -2
  344. package/build-types/text-control/stories/index.d.ts.map +1 -1
  345. package/build-types/text-control/types.d.ts +1 -5
  346. package/build-types/text-control/types.d.ts.map +1 -1
  347. package/build-types/theme/color-algorithms.d.ts +20 -0
  348. package/build-types/theme/color-algorithms.d.ts.map +1 -0
  349. package/build-types/theme/index.d.ts +1 -1
  350. package/build-types/theme/index.d.ts.map +1 -1
  351. package/build-types/theme/stories/index.d.ts +4 -0
  352. package/build-types/theme/stories/index.d.ts.map +1 -1
  353. package/build-types/theme/styles.d.ts +3 -2
  354. package/build-types/theme/styles.d.ts.map +1 -1
  355. package/build-types/theme/test/color-algorithms.d.ts +2 -0
  356. package/build-types/theme/test/color-algorithms.d.ts.map +1 -0
  357. package/build-types/theme/types.d.ts +41 -3
  358. package/build-types/theme/types.d.ts.map +1 -1
  359. package/build-types/toggle-control/index.d.ts.map +1 -1
  360. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +2 -2
  361. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +2 -2
  362. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  363. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  364. package/build-types/tools-panel/tools-panel/hook.d.ts +2 -2
  365. package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -2
  366. package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -2
  367. package/build-types/truncate/hook.d.ts +2 -2
  368. package/build-types/ui/context/context-system-provider.d.ts.map +1 -1
  369. package/build-types/ui/control-group/hook.d.ts +2 -2
  370. package/build-types/ui/control-label/hook.d.ts +2 -2
  371. package/build-types/ui/form-group/form-group.d.ts +2 -2
  372. package/build-types/ui/form-group/use-form-group.d.ts +5 -5
  373. package/build-types/unit-control/index.d.ts +2 -1
  374. package/build-types/unit-control/index.d.ts.map +1 -1
  375. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -2
  376. package/build-types/unit-control/types.d.ts +4 -0
  377. package/build-types/unit-control/types.d.ts.map +1 -1
  378. package/build-types/utils/config-values.d.ts +0 -2
  379. package/build-types/utils/hooks/use-controlled-value.d.ts +2 -1
  380. package/build-types/utils/hooks/use-controlled-value.d.ts.map +1 -1
  381. package/build-types/v-stack/component.d.ts +2 -2
  382. package/build-types/v-stack/hook.d.ts +2 -2
  383. package/build-types/v-stack/stories/index.d.ts +2 -2
  384. package/package.json +21 -20
  385. package/src/alignment-matrix-control/README.md +7 -7
  386. package/src/alignment-matrix-control/{cell.js → cell.tsx} +7 -1
  387. package/src/alignment-matrix-control/{icon.js → icon.tsx} +6 -3
  388. package/src/alignment-matrix-control/{index.js → index.tsx} +31 -4
  389. package/src/alignment-matrix-control/stories/{index.js → index.tsx} +17 -9
  390. package/src/alignment-matrix-control/styles/{alignment-matrix-control-icon-styles.js → alignment-matrix-control-icon-styles.ts} +11 -3
  391. package/src/alignment-matrix-control/styles/{alignment-matrix-control-styles.js → alignment-matrix-control-styles.ts} +13 -3
  392. package/src/alignment-matrix-control/test/{index.js → index.tsx} +5 -5
  393. package/src/alignment-matrix-control/types.ts +54 -0
  394. package/src/alignment-matrix-control/{utils.js → utils.tsx} +24 -14
  395. package/src/angle-picker-control/styles/angle-picker-control-styles.js +4 -0
  396. package/src/autocomplete/index.js +43 -12
  397. package/src/base-control/README.md +21 -12
  398. package/src/base-control/hooks.ts +45 -0
  399. package/src/base-control/index.tsx +18 -7
  400. package/src/base-control/stories/index.tsx +8 -10
  401. package/src/base-control/test/index.tsx +52 -0
  402. package/src/base-control/types.ts +8 -2
  403. package/src/base-field/README.md +21 -22
  404. package/src/base-field/{hook.js → hook.ts} +5 -15
  405. package/src/base-field/{index.js → index.ts} +0 -0
  406. package/src/base-field/{styles.js → styles.ts} +2 -2
  407. package/src/base-field/test/__snapshots__/{index.js.snap → index.tsx.snap} +4 -4
  408. package/src/base-field/test/{index.js → index.tsx} +10 -5
  409. package/src/base-field/types.ts +29 -0
  410. package/src/border-box-control/border-box-control/README.md +1 -0
  411. package/src/border-box-control/test/index.js +3 -1
  412. package/src/border-control/border-control/component.tsx +1 -0
  413. package/src/border-control/styles.ts +1 -10
  414. package/src/box-control/linked-button.js +8 -11
  415. package/src/box-control/test/index.js +206 -135
  416. package/src/button/stories/index.js +30 -0
  417. package/src/button/style.scss +17 -14
  418. package/src/button/test/index.js +32 -15
  419. package/src/card/test/index.tsx +32 -20
  420. package/src/circular-option-picker/style.scss +1 -0
  421. package/src/color-palette/index.tsx +4 -6
  422. package/src/color-palette/stories/index.tsx +1 -5
  423. package/src/color-palette/test/__snapshots__/index.tsx.snap +4 -4
  424. package/src/color-palette/test/index.tsx +84 -36
  425. package/src/color-palette/types.ts +1 -1
  426. package/src/color-picker/README.md +1 -0
  427. package/src/color-picker/input-with-slider.tsx +1 -0
  428. package/src/color-picker/styles.ts +0 -4
  429. package/src/confirm-dialog/README.md +3 -2
  430. package/src/custom-select-control/README.md +14 -0
  431. package/src/custom-select-control/index.js +14 -2
  432. package/src/dashicon/{index.js → index.tsx} +10 -4
  433. package/src/dashicon/types.ts +17 -0
  434. package/src/date-time/date-time/index.tsx +2 -2
  435. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -8
  436. package/src/disabled/test/index.tsx +21 -11
  437. package/src/dropdown/test/index.js +39 -49
  438. package/src/dropdown-menu/test/index.js +18 -12
  439. package/src/duotone-picker/duotone-picker.js +2 -2
  440. package/src/focal-point-picker/test/media.js +26 -21
  441. package/src/form-token-field/style.scss +1 -1
  442. package/src/gradient-picker/index.js +5 -8
  443. package/src/grid/test/grid.tsx +31 -31
  444. package/src/higher-order/navigate-regions/style.scss +2 -22
  445. package/src/higher-order/with-fallback-styles/index.js +4 -2
  446. package/src/higher-order/with-filters/test/index.js +94 -101
  447. package/src/higher-order/with-focus-return/test/index.js +1 -4
  448. package/src/index.js +2 -2
  449. package/src/input-control/index.tsx +42 -28
  450. package/src/input-control/input-base.tsx +8 -1
  451. package/src/input-control/stories/index.tsx +6 -0
  452. package/src/input-control/test/index.js +18 -0
  453. package/src/input-control/types.ts +2 -0
  454. package/src/mobile/bottom-sheet/cell.native.js +1 -1
  455. package/src/mobile/bottom-sheet/switch-cell.native.js +2 -2
  456. package/src/mobile/global-styles-context/index.native.js +9 -11
  457. package/src/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  458. package/src/mobile/link-settings/test/edit.native.js +68 -124
  459. package/src/modal/index.tsx +11 -0
  460. package/src/modal/stories/index.tsx +3 -0
  461. package/src/modal/test/index.tsx +15 -0
  462. package/src/navigation/stories/index.js +6 -6
  463. package/src/navigation/stories/{controlled-state.js → utils/controlled-state.js} +3 -3
  464. package/src/navigation/stories/{default.js → utils/default.js} +3 -3
  465. package/src/navigation/stories/{group.js → utils/group.js} +4 -4
  466. package/src/navigation/stories/{hide-if-empty.js → utils/hide-if-empty.js} +3 -3
  467. package/src/navigation/stories/{more-examples.js → utils/more-examples.js} +4 -4
  468. package/src/navigation/stories/{search.js → utils/search.js} +5 -5
  469. package/src/navigator/navigator-provider/component.tsx +13 -10
  470. package/src/notice/test/list.js +8 -5
  471. package/src/number-control/stories/{index.js → index.tsx} +24 -7
  472. package/src/number-control/styles/{number-control-styles.js → number-control-styles.ts} +5 -3
  473. package/src/number-control/test/index.tsx +600 -0
  474. package/src/palette-edit/index.js +88 -39
  475. package/src/palette-edit/test/index.js +25 -1
  476. package/src/popover/index.tsx +10 -2
  477. package/src/popover/style.scss +12 -11
  478. package/src/popover/test/index.tsx +25 -15
  479. package/src/query-controls/index.js +1 -0
  480. package/src/range-control/test/index.tsx +57 -60
  481. package/src/resizable-box/style.scss +1 -0
  482. package/src/sandbox/test/index.js +13 -11
  483. package/src/search-control/style.scss +4 -0
  484. package/src/snackbar/README.md +63 -8
  485. package/src/snackbar/{index.js → index.tsx} +46 -28
  486. package/src/snackbar/{list.js → list.tsx} +20 -21
  487. package/src/snackbar/stories/index.tsx +96 -0
  488. package/src/snackbar/stories/list.tsx +98 -0
  489. package/src/snackbar/types.ts +116 -0
  490. package/src/tab-panel/README.md +9 -0
  491. package/src/tab-panel/index.tsx +14 -3
  492. package/src/tab-panel/style.scss +46 -34
  493. package/src/tab-panel/test/index.tsx +111 -0
  494. package/src/tab-panel/types.ts +20 -1
  495. package/src/text/test/__snapshots__/index.tsx.snap +1 -0
  496. package/src/text/test/index.tsx +98 -46
  497. package/src/text-control/stories/index.tsx +0 -1
  498. package/src/text-control/types.ts +1 -6
  499. package/src/theme/README.md +32 -2
  500. package/src/theme/color-algorithms.ts +138 -0
  501. package/src/theme/index.tsx +23 -16
  502. package/src/theme/stories/index.tsx +67 -0
  503. package/src/theme/styles.ts +22 -17
  504. package/src/theme/test/color-algorithms.ts +100 -0
  505. package/src/theme/test/index.tsx +68 -35
  506. package/src/theme/types.ts +43 -3
  507. package/src/toggle-control/index.tsx +4 -2
  508. package/src/toggle-group-control/test/index.tsx +13 -2
  509. package/src/toolbar-group/test/index.js +8 -6
  510. package/src/tools-panel/stories/index.js +1 -1
  511. package/src/tools-panel/stories/{tools-panel-with-item-group-slot.js → utils/tools-panel-with-item-group-slot.js} +14 -11
  512. package/src/tools-panel/test/index.js +20 -14
  513. package/src/tooltip/README.md +7 -0
  514. package/src/tooltip/style.scss +2 -2
  515. package/src/tooltip/test/index.js +109 -18
  516. package/src/ui/context/context-system-provider.js +3 -2
  517. package/src/ui/context/test/context-system-provider.js +5 -4
  518. package/src/ui/control-label/test/index.js +3 -5
  519. package/src/unit-control/README.md +9 -1
  520. package/src/unit-control/index.tsx +3 -0
  521. package/src/unit-control/test/index.tsx +1 -0
  522. package/src/unit-control/types.ts +4 -0
  523. package/src/utils/colors-values.js +1 -1
  524. package/src/utils/config-values.js +0 -2
  525. package/src/utils/hooks/use-controlled-value.ts +2 -2
  526. package/src/utils/theme-variables.scss +20 -0
  527. package/tsconfig.json +2 -4
  528. package/tsconfig.tsbuildinfo +1 -1
  529. package/src/number-control/test/index.js +0 -478
  530. package/src/snackbar/stories/index.js +0 -89
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render, screen, act } from '@testing-library/react';
4
+ import { render, screen, act, waitFor } from '@testing-library/react';
5
5
  import userEvent from '@testing-library/user-event';
6
6
 
7
7
  /**
@@ -13,6 +13,10 @@ import Tooltip from '../';
13
13
  */
14
14
  import { TOOLTIP_DELAY } from '../index.js';
15
15
 
16
+ function getWrappingPopoverElement( element ) {
17
+ return element.closest( '.components-popover' );
18
+ }
19
+
16
20
  describe( 'Tooltip', () => {
17
21
  describe( '#render()', () => {
18
22
  it( 'should not render the tooltip if multiple children are passed', () => {
@@ -24,7 +28,7 @@ describe( 'Tooltip', () => {
24
28
  );
25
29
 
26
30
  const button = screen.getByText( 'Button 1' );
27
- button.focus();
31
+ act( () => button.focus() );
28
32
  expect( screen.queryByText( 'Help text' ) ).not.toBeInTheDocument();
29
33
  } );
30
34
 
@@ -37,11 +41,11 @@ describe( 'Tooltip', () => {
37
41
 
38
42
  expect(
39
43
  screen.getByRole( 'button', { name: 'Hover Me!' } )
40
- ).toBeInTheDocument();
44
+ ).toBeVisible();
41
45
  expect( screen.queryByText( 'Help text' ) ).not.toBeInTheDocument();
42
46
  } );
43
47
 
44
- it( 'should render children with additional tooltip when focused', () => {
48
+ it( 'should render children with additional tooltip when focused', async () => {
45
49
  const mockOnFocus = jest.fn();
46
50
 
47
51
  render(
@@ -51,20 +55,28 @@ describe( 'Tooltip', () => {
51
55
  );
52
56
 
53
57
  const button = screen.getByRole( 'button', { name: 'Hover Me!' } );
54
- expect( button ).toBeInTheDocument();
58
+ expect( button ).toBeVisible();
55
59
 
56
60
  // Before focus, the tooltip is not shown.
57
61
  expect( screen.queryByText( 'Help text' ) ).not.toBeInTheDocument();
58
62
 
59
- button.focus();
63
+ act( () => button.focus() );
60
64
 
61
65
  // Tooltip is shown after focusing the anchor.
62
- expect( screen.getByText( 'Help text' ) ).toBeInTheDocument();
66
+ const tooltip = screen.getByText( 'Help text' );
67
+ expect( tooltip ).toBeVisible();
63
68
  expect( mockOnFocus ).toHaveBeenCalledWith(
64
69
  expect.objectContaining( {
65
70
  type: 'focus',
66
71
  } )
67
72
  );
73
+
74
+ // Wait for the tooltip element to be positioned (aligned with the button)
75
+ await waitFor( () =>
76
+ expect(
77
+ getWrappingPopoverElement( tooltip )
78
+ ).toBePositionedPopover()
79
+ );
68
80
  } );
69
81
 
70
82
  it( 'should render children with additional tooltip when hovered', async () => {
@@ -79,7 +91,7 @@ describe( 'Tooltip', () => {
79
91
  );
80
92
 
81
93
  const button = screen.getByRole( 'button', { name: 'Hover Me!' } );
82
- expect( button ).toBeInTheDocument();
94
+ expect( button ).toBeVisible();
83
95
 
84
96
  await user.hover( button );
85
97
 
@@ -89,7 +101,15 @@ describe( 'Tooltip', () => {
89
101
  act( () => jest.advanceTimersByTime( TOOLTIP_DELAY ) );
90
102
 
91
103
  // Tooltip shows after the delay
92
- expect( screen.getByText( 'Help text' ) ).toBeInTheDocument();
104
+ const tooltip = screen.getByText( 'Help text' );
105
+ expect( tooltip ).toBeVisible();
106
+
107
+ // Wait for the tooltip element to be positioned (aligned with the button)
108
+ await waitFor( () =>
109
+ expect(
110
+ getWrappingPopoverElement( tooltip )
111
+ ).toBePositionedPopover()
112
+ );
93
113
  } );
94
114
 
95
115
  it( 'should not show tooltip on focus as result of mouse click', async () => {
@@ -105,7 +125,7 @@ describe( 'Tooltip', () => {
105
125
  );
106
126
 
107
127
  const button = screen.getByRole( 'button', { text: 'Hover Me!' } );
108
- expect( button ).toBeInTheDocument();
128
+ expect( button ).toBeVisible();
109
129
 
110
130
  await user.click( button );
111
131
 
@@ -144,7 +164,7 @@ describe( 'Tooltip', () => {
144
164
  );
145
165
 
146
166
  const button = screen.getByRole( 'button', { name: 'Hover Me!' } );
147
- expect( button ).toBeInTheDocument();
167
+ expect( button ).toBeVisible();
148
168
 
149
169
  await user.hover( button );
150
170
 
@@ -161,9 +181,17 @@ describe( 'Tooltip', () => {
161
181
  act( () => jest.advanceTimersByTime( TEST_DELAY - TOOLTIP_DELAY ) );
162
182
 
163
183
  // Tooltip shows after TEST_DELAY time
164
- expect( screen.getByText( 'Help text' ) ).toBeInTheDocument();
184
+ const tooltip = screen.getByText( 'Help text' );
185
+ expect( tooltip ).toBeVisible();
165
186
 
166
187
  expect( mockOnFocus ).not.toHaveBeenCalled();
188
+
189
+ // Wait for the tooltip element to be positioned (aligned with the button)
190
+ await waitFor( () =>
191
+ expect(
192
+ getWrappingPopoverElement( tooltip )
193
+ ).toBePositionedPopover()
194
+ );
167
195
  } );
168
196
 
169
197
  it( 'should show tooltip when an element is disabled', async () => {
@@ -178,12 +206,13 @@ describe( 'Tooltip', () => {
178
206
  );
179
207
 
180
208
  const button = screen.getByRole( 'button', { name: 'Click me' } );
181
- expect( button ).toBeInTheDocument();
209
+ expect( button ).toBeVisible();
182
210
  expect( button ).toBeDisabled();
183
211
 
184
212
  // Note: this is testing for implementation details,
185
213
  // but couldn't find a better way.
186
214
  const buttonRect = button.getBoundingClientRect();
215
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
187
216
  const eventCatcher = container.querySelector( '.event-catcher' );
188
217
  const eventCatcherRect = eventCatcher.getBoundingClientRect();
189
218
  expect( buttonRect ).toEqual( eventCatcherRect );
@@ -198,9 +227,15 @@ describe( 'Tooltip', () => {
198
227
  act( () => jest.advanceTimersByTime( TOOLTIP_DELAY ) );
199
228
 
200
229
  // Tooltip shows after the delay
201
- expect(
202
- screen.getByText( 'Show helpful text here' )
203
- ).toBeInTheDocument();
230
+ const tooltip = screen.getByText( 'Show helpful text here' );
231
+ expect( tooltip ).toBeVisible();
232
+
233
+ // Wait for the tooltip element to be positioned (aligned with the button)
234
+ await waitFor( () =>
235
+ expect(
236
+ getWrappingPopoverElement( tooltip )
237
+ ).toBePositionedPopover()
238
+ );
204
239
  } );
205
240
 
206
241
  it( 'should not emit events back to children when they are disabled', async () => {
@@ -217,8 +252,8 @@ describe( 'Tooltip', () => {
217
252
  </Tooltip>
218
253
  );
219
254
 
220
- const eventCatcher =
221
- container.getElementsByClassName( 'event-catcher' )[ 0 ];
255
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
256
+ const eventCatcher = container.querySelector( '.event-catcher' );
222
257
  await user.click( eventCatcher );
223
258
  expect( onClickMock ).not.toHaveBeenCalled();
224
259
  } );
@@ -276,5 +311,61 @@ describe( 'Tooltip', () => {
276
311
  // Tooltip won't show, since the mouse has left the anchor
277
312
  expect( screen.queryByText( 'Help text' ) ).not.toBeInTheDocument();
278
313
  } );
314
+
315
+ it( 'should render the shortcut display text when a string is passed as the shortcut', async () => {
316
+ const user = userEvent.setup( {
317
+ advanceTimers: jest.advanceTimersByTime,
318
+ } );
319
+
320
+ render(
321
+ <Tooltip text="Help text" shortcut="shortcut text">
322
+ <button>Hover Me!</button>
323
+ </Tooltip>
324
+ );
325
+
326
+ const button = screen.getByRole( 'button', { name: 'Hover Me!' } );
327
+ await user.hover( button );
328
+
329
+ const tooltip = await screen.findByText( 'shortcut text' );
330
+ expect( tooltip ).toBeVisible();
331
+
332
+ // Wait for the tooltip element to be positioned (aligned with the button)
333
+ await waitFor( () =>
334
+ expect(
335
+ getWrappingPopoverElement( tooltip )
336
+ ).toBePositionedPopover()
337
+ );
338
+ } );
339
+
340
+ it( 'should render the shortcut display text and aria-label when an object is passed as the shortcut with the correct properties', async () => {
341
+ const user = userEvent.setup( {
342
+ advanceTimers: jest.advanceTimersByTime,
343
+ } );
344
+
345
+ render(
346
+ <Tooltip
347
+ text="Help text"
348
+ shortcut={ {
349
+ display: 'shortcut text',
350
+ ariaLabel: 'shortcut label',
351
+ } }
352
+ >
353
+ <button>Hover Me!</button>
354
+ </Tooltip>
355
+ );
356
+
357
+ const button = screen.getByRole( 'button', { name: 'Hover Me!' } );
358
+ await user.hover( button );
359
+
360
+ const tooltip = await screen.findByLabelText( 'shortcut label' );
361
+ expect( tooltip ).toHaveTextContent( 'shortcut text' );
362
+
363
+ // Wait for the tooltip element to be positioned (aligned with the button)
364
+ await waitFor( () =>
365
+ expect(
366
+ getWrappingPopoverElement( tooltip )
367
+ ).toBePositionedPopover()
368
+ );
369
+ } );
279
370
  } );
280
371
  } );
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { isEqual, merge } from 'lodash';
4
+ import fastDeepEqual from 'fast-deep-equal/es6';
5
+ import { merge } from 'lodash';
5
6
 
6
7
  /**
7
8
  * WordPress dependencies
@@ -42,7 +43,7 @@ function useContextSystemBridge( { value } ) {
42
43
  useUpdateEffect( () => {
43
44
  if (
44
45
  // Objects are equivalent.
45
- isEqual( valueRef.current, value ) &&
46
+ fastDeepEqual( valueRef.current, value ) &&
46
47
  // But not the same reference.
47
48
  valueRef.current !== value
48
49
  ) {
@@ -61,7 +61,7 @@ describe( 'props', () => {
61
61
  );
62
62
 
63
63
  expect( container ).toMatchSnapshot();
64
- expect( container.firstChild.innerHTML ).toContain( 'Code is Poetry' );
64
+ expect( screen.getByText( 'Code is Poetry' ) ).toBeVisible();
65
65
  } );
66
66
 
67
67
  test( 'should render _override props', () => {
@@ -100,10 +100,11 @@ describe( 'props', () => {
100
100
 
101
101
  expect( container ).toMatchSnapshot();
102
102
 
103
- const el = container.querySelector( '.test-component' );
103
+ const element = screen.getByText( 'Code is Poetry' );
104
+ expect( element ).toBeVisible();
105
+ expect( element ).toHaveClass( 'test-component' );
104
106
 
105
- expect( el.innerHTML ).toContain( 'Code is Poetry' );
106
- expect( el.innerHTML ).not.toContain( 'WordPress.org' );
107
+ expect( screen.queryByText( 'WordPress.org' ) ).not.toBeInTheDocument();
107
108
  } );
108
109
  } );
109
110
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render } from '@testing-library/react';
4
+ import { render, screen } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * Internal dependencies
@@ -16,11 +16,9 @@ describe( 'props', () => {
16
16
  } );
17
17
 
18
18
  test( 'should render htmlFor', () => {
19
- const { container } = render(
20
- <ControlLabel htmlFor="Field">Label</ControlLabel>
21
- );
19
+ render( <ControlLabel htmlFor="Field">Label</ControlLabel> );
22
20
 
23
- expect( container.firstChild ).toHaveAttribute( 'for', 'Field' );
21
+ expect( screen.getByText( 'Label' ) ).toHaveAttribute( 'for', 'Field' );
24
22
  } );
25
23
 
26
24
  test( 'should render size', () => {
@@ -67,6 +67,12 @@ Callback invoked when either the quantity or unit inputs fire the `blur` event.
67
67
 
68
68
  - Required: No
69
69
 
70
+ ### `onFocus`: `FocusEventHandler< HTMLInputElement | HTMLSelectElement >`
71
+
72
+ Callback invoked when either the quantity or unit inputs fire the `focus` event.
73
+
74
+ - Required: No
75
+
70
76
  ### `onChange`: `UnitControlOnChangeCallback`
71
77
 
72
78
  Callback when the `value` changes.
@@ -121,7 +127,9 @@ const Example = () => {
121
127
  { value: 'em', label: 'em', default: 0 },
122
128
  ];
123
129
 
124
- return <UnitControl onChange={ setValue } value={ value } units={units} />;
130
+ return (
131
+ <UnitControl onChange={ setValue } value={ value } units={ units } />
132
+ );
125
133
  };
126
134
  ```
127
135
 
@@ -60,6 +60,7 @@ function UnforwardedUnitControl(
60
60
  units: unitsProp = CSS_UNITS,
61
61
  value: valueProp,
62
62
  onBlur: onBlurProp,
63
+ onFocus: onFocusProp,
63
64
  ...props
64
65
  } = unitControlProps;
65
66
 
@@ -244,6 +245,7 @@ function UnforwardedUnitControl(
244
245
  unit={ unit }
245
246
  units={ units }
246
247
  onBlur={ onBlurProp }
248
+ onFocus={ onFocusProp }
247
249
  />
248
250
  ) : null;
249
251
 
@@ -277,6 +279,7 @@ function UnforwardedUnitControl(
277
279
  value={ parsedQuantity ?? '' }
278
280
  step={ step }
279
281
  __unstableStateReducer={ stateReducer }
282
+ onFocus={ onFocusProp }
280
283
  />
281
284
  );
282
285
  }
@@ -115,6 +115,7 @@ describe( 'UnitControl', () => {
115
115
  withoutClassName.querySelector( '.components-unit-control' )
116
116
  ).not.toHaveClass( 'hello' );
117
117
  expect(
118
+ // eslint-disable-next-line testing-library/no-container, testing-library/no-node-access
118
119
  withClassName.querySelector( '.components-unit-control' )
119
120
  ).toHaveClass( 'hello' );
120
121
  } );
@@ -99,4 +99,8 @@ export type UnitControlProps = Omit< UnitSelectControlProps, 'unit' > &
99
99
  * Callback when either the quantity or the unit inputs lose focus.
100
100
  */
101
101
  onBlur?: FocusEventHandler< HTMLInputElement | HTMLSelectElement >;
102
+ /**
103
+ * Callback when either the quantity or the unit inputs gains focus.
104
+ */
105
+ onFocus?: FocusEventHandler< HTMLInputElement | HTMLSelectElement >;
102
106
  };
@@ -41,7 +41,7 @@ const UI = {
41
41
  themeDark10: ADMIN.themeDark10,
42
42
  background: white,
43
43
  backgroundDisabled: GRAY[ 100 ],
44
- border: GRAY[ 700 ],
44
+ border: GRAY[ 600 ],
45
45
  borderHover: GRAY[ 700 ],
46
46
  borderFocus: ADMIN.themeDark10,
47
47
  borderDisabled: GRAY[ 400 ],
@@ -15,9 +15,7 @@ const CONTROL_PROPS = {
15
15
  controlPaddingXSmall: `calc(${ CONTROL_PADDING_X } / 1.3334)`,
16
16
  controlBackgroundColor: COLORS.white,
17
17
  controlBorderRadius: '2px',
18
- controlBorderColor: COLORS.gray[ 700 ],
19
18
  controlBoxShadow: 'transparent',
20
- controlBorderColorHover: COLORS.gray[ 700 ],
21
19
  controlBoxShadowFocus: `0 0 0 0.5px ${ COLORS.ui.theme }`,
22
20
  controlDestructiveBorderColor: COLORS.alert.red,
23
21
  controlHeight: CONTROL_HEIGHT,
@@ -22,7 +22,7 @@ export function useControlledValue< T >( {
22
22
  defaultValue,
23
23
  onChange,
24
24
  value: valueProp,
25
- }: Props< T > ): [ T | undefined, ( value: T ) => void ] {
25
+ }: Props< T > ) {
26
26
  const hasValue = typeof valueProp !== 'undefined';
27
27
  const initialValue = hasValue ? valueProp : defaultValue;
28
28
  const [ state, setState ] = useState( initialValue );
@@ -40,5 +40,5 @@ export function useControlledValue< T >( {
40
40
  setValue = setState;
41
41
  }
42
42
 
43
- return [ value, setValue ];
43
+ return [ value, setValue as typeof setState ] as const;
44
44
  }
@@ -6,3 +6,23 @@
6
6
  $components-color-accent: var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
7
7
  $components-color-accent-darker-10: var(--wp-components-color-accent-darker-10, var(--wp-admin-theme-color-darker-10, #006ba1));
8
8
  $components-color-accent-darker-20: var(--wp-components-color-accent-darker-20, var(--wp-admin-theme-color-darker-20, #005a87));
9
+
10
+ // Used when placing text on the accent color.
11
+ $components-color-accent-inverted: var(--wp-components-color-accent-inverted, $white);
12
+
13
+ $components-color-background: var(--wp-components-color-background, $white);
14
+ $components-color-foreground: var(--wp-components-color-foreground, $gray-900);
15
+
16
+ // Used when placing text on the foreground color.
17
+ $components-color-foreground-inverted: var(--wp-components-color-foreground-inverted, $white);
18
+
19
+ $components-color-gray-100: var(--wp-components-color-gray-100, $gray-100);
20
+ $components-color-gray-200: var(--wp-components-color-gray-200, $gray-200);
21
+ $components-color-gray-300: var(--wp-components-color-gray-300, $gray-300);
22
+ $components-color-gray-400: var(--wp-components-color-gray-400, $gray-400);
23
+ $components-color-gray-600: var(--wp-components-color-gray-600, $gray-600);
24
+ $components-color-gray-700: var(--wp-components-color-gray-700, $gray-700);
25
+ $components-color-gray-800: var(--wp-components-color-gray-800, $gray-800);
26
+
27
+ // Semantic aliases (prefer these over raw gray values when applicable).
28
+ $components-color-border: #{ $components-color-gray-600 };
package/tsconfig.json CHANGED
@@ -37,10 +37,9 @@
37
37
  "src/**/*.ios.js",
38
38
  "src/**/*.native.js",
39
39
  "src/**/react-native-*",
40
- "src/**/stories/**.js", // only exclude js files, tsx files should be checked
41
- "src/**/test/**.js", // only exclude js files, ts{x} files should be checked
40
+ "src/**/stories/**/*.js", // only exclude js files, tsx files should be checked
41
+ "src/**/test/**/*.js", // only exclude js files, ts{x} files should be checked
42
42
  "src/index.js",
43
- "src/alignment-matrix-control",
44
43
  "src/angle-picker-control",
45
44
  "src/autocomplete",
46
45
  "src/box-control",
@@ -65,7 +64,6 @@
65
64
  "src/query-controls",
66
65
  "src/responsive-wrapper",
67
66
  "src/sandbox",
68
- "src/snackbar",
69
67
  "src/toolbar",
70
68
  "src/toolbar-button",
71
69
  "src/toolbar-context",