@wordpress/components 28.2.0 → 28.3.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 (424) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/build/animation/index.js.map +1 -1
  3. package/build/autocomplete/autocompleter-ui.js +1 -0
  4. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  5. package/build/autocomplete/index.js.map +1 -1
  6. package/build/base-control/index.js +14 -7
  7. package/build/base-control/index.js.map +1 -1
  8. package/build/border-box-control/border-box-control-visualizer/component.js +0 -4
  9. package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -1
  10. package/build/button/index.js +5 -3
  11. package/build/button/index.js.map +1 -1
  12. package/build/button/types.js.map +1 -1
  13. package/build/combobox-control/index.js +4 -1
  14. package/build/combobox-control/index.js.map +1 -1
  15. package/build/composite/current/index.js.map +1 -1
  16. package/build/custom-select-control-v2/custom-select.js +57 -33
  17. package/build/custom-select-control-v2/custom-select.js.map +1 -1
  18. package/build/custom-select-control-v2/default-component/index.js +0 -1
  19. package/build/custom-select-control-v2/default-component/index.js.map +1 -1
  20. package/build/custom-select-control-v2/item.js +2 -0
  21. package/build/custom-select-control-v2/item.js.map +1 -1
  22. package/build/custom-select-control-v2/legacy-component/index.js +18 -6
  23. package/build/custom-select-control-v2/legacy-component/index.js.map +1 -1
  24. package/build/custom-select-control-v2/styles.js +90 -78
  25. package/build/custom-select-control-v2/styles.js.map +1 -1
  26. package/build/custom-select-control-v2/types.js.map +1 -1
  27. package/build/date-time/date-time/index.js +3 -1
  28. package/build/date-time/date-time/index.js.map +1 -1
  29. package/build/date-time/index.js +7 -0
  30. package/build/date-time/index.js.map +1 -1
  31. package/build/date-time/time/index.js +62 -145
  32. package/build/date-time/time/index.js.map +1 -1
  33. package/build/date-time/time-input/index.js +159 -0
  34. package/build/date-time/time-input/index.js.map +1 -0
  35. package/build/date-time/types.js.map +1 -1
  36. package/build/date-time/utils.js +64 -0
  37. package/build/date-time/utils.js.map +1 -1
  38. package/build/disclosure/index.js +0 -1
  39. package/build/disclosure/index.js.map +1 -1
  40. package/build/divider/component.js +0 -1
  41. package/build/divider/component.js.map +1 -1
  42. package/build/divider/types.js.map +1 -1
  43. package/build/dropdown-menu/index.js +1 -0
  44. package/build/dropdown-menu/index.js.map +1 -1
  45. package/build/dropdown-menu-v2/index.js +0 -1
  46. package/build/dropdown-menu-v2/index.js.map +1 -1
  47. package/build/dropdown-menu-v2/styles.js +15 -16
  48. package/build/dropdown-menu-v2/styles.js.map +1 -1
  49. package/build/dropdown-menu-v2/types.js.map +1 -1
  50. package/build/font-size-picker/font-size-picker-select.js +2 -2
  51. package/build/font-size-picker/font-size-picker-select.js.map +1 -1
  52. package/build/font-size-picker/index.js +1 -1
  53. package/build/font-size-picker/index.js.map +1 -1
  54. package/build/font-size-picker/utils.js +0 -4
  55. package/build/font-size-picker/utils.js.map +1 -1
  56. package/build/form-token-field/token.js +4 -1
  57. package/build/form-token-field/token.js.map +1 -1
  58. package/build/higher-order/with-spoken-messages/index.js +1 -2
  59. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  60. package/build/menu-items-choice/types.js.map +1 -1
  61. package/build/popover/index.js +0 -4
  62. package/build/popover/index.js.map +1 -1
  63. package/build/popover/utils.js +0 -1
  64. package/build/popover/utils.js.map +1 -1
  65. package/build/private-apis.js +2 -4
  66. package/build/private-apis.js.map +1 -1
  67. package/build/progress-bar/styles.js +19 -13
  68. package/build/progress-bar/styles.js.map +1 -1
  69. package/build/radio-group/context.js +0 -1
  70. package/build/radio-group/context.js.map +1 -1
  71. package/build/radio-group/index.js +0 -1
  72. package/build/radio-group/index.js.map +1 -1
  73. package/build/radio-group/radio.js +0 -1
  74. package/build/radio-group/radio.js.map +1 -1
  75. package/build/range-control/index.js +4 -1
  76. package/build/range-control/index.js.map +1 -1
  77. package/build/range-control/styles/range-control-styles.js +34 -28
  78. package/build/range-control/styles/range-control-styles.js.map +1 -1
  79. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  80. package/build/select-control/index.js +1 -2
  81. package/build/select-control/index.js.map +1 -1
  82. package/build/select-control/styles/select-control-styles.js +13 -8
  83. package/build/select-control/styles/select-control-styles.js.map +1 -1
  84. package/build/tab-panel/index.js +0 -1
  85. package/build/tab-panel/index.js.map +1 -1
  86. package/build/tabs/index.js +0 -1
  87. package/build/tabs/index.js.map +1 -1
  88. package/build/tabs/styles.js +3 -5
  89. package/build/tabs/styles.js.map +1 -1
  90. package/build/tabs/tablist.js +148 -37
  91. package/build/tabs/tablist.js.map +1 -1
  92. package/build/tabs/types.js.map +1 -1
  93. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +0 -2
  94. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  95. package/build/toggle-group-control/toggle-group-control/component.js +0 -2
  96. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  97. package/build/toggle-group-control/toggle-group-control-option-base/component.js +0 -4
  98. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  99. package/build/toolbar/toolbar/toolbar-container.js +0 -1
  100. package/build/toolbar/toolbar/toolbar-container.js.map +1 -1
  101. package/build/toolbar/toolbar/types.js.map +1 -1
  102. package/build/toolbar/toolbar-button/index.js +27 -19
  103. package/build/toolbar/toolbar-button/index.js.map +1 -1
  104. package/build/toolbar/toolbar-button/types.js.map +1 -1
  105. package/build/toolbar/toolbar-context/index.js +0 -1
  106. package/build/toolbar/toolbar-context/index.js.map +1 -1
  107. package/build/toolbar/toolbar-item/index.js +1 -1
  108. package/build/toolbar/toolbar-item/index.js.map +1 -1
  109. package/build/tooltip/index.js +3 -2
  110. package/build/tooltip/index.js.map +1 -1
  111. package/build/tooltip/types.js.map +1 -1
  112. package/build/unit-control/index.js +3 -3
  113. package/build/unit-control/index.js.map +1 -1
  114. package/build/unit-control/styles/unit-control-styles.js +7 -7
  115. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  116. package/build/utils/hooks/use-update-effect.js +4 -1
  117. package/build/utils/hooks/use-update-effect.js.map +1 -1
  118. package/build-module/animation/index.js +0 -1
  119. package/build-module/animation/index.js.map +1 -1
  120. package/build-module/autocomplete/autocompleter-ui.js +1 -0
  121. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  122. package/build-module/autocomplete/index.js.map +1 -1
  123. package/build-module/base-control/index.js +13 -6
  124. package/build-module/base-control/index.js.map +1 -1
  125. package/build-module/border-box-control/border-box-control-visualizer/component.js +0 -4
  126. package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -1
  127. package/build-module/button/index.js +5 -3
  128. package/build-module/button/index.js.map +1 -1
  129. package/build-module/button/types.js.map +1 -1
  130. package/build-module/combobox-control/index.js +4 -1
  131. package/build-module/combobox-control/index.js.map +1 -1
  132. package/build-module/composite/current/index.js +0 -3
  133. package/build-module/composite/current/index.js.map +1 -1
  134. package/build-module/custom-select-control-v2/custom-select.js +58 -35
  135. package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
  136. package/build-module/custom-select-control-v2/default-component/index.js +0 -1
  137. package/build-module/custom-select-control-v2/default-component/index.js.map +1 -1
  138. package/build-module/custom-select-control-v2/item.js +2 -0
  139. package/build-module/custom-select-control-v2/item.js.map +1 -1
  140. package/build-module/custom-select-control-v2/legacy-component/index.js +18 -6
  141. package/build-module/custom-select-control-v2/legacy-component/index.js.map +1 -1
  142. package/build-module/custom-select-control-v2/styles.js +88 -76
  143. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  144. package/build-module/custom-select-control-v2/types.js.map +1 -1
  145. package/build-module/date-time/date-time/index.js +4 -1
  146. package/build-module/date-time/date-time/index.js.map +1 -1
  147. package/build-module/date-time/index.js +2 -1
  148. package/build-module/date-time/index.js.map +1 -1
  149. package/build-module/date-time/time/index.js +65 -149
  150. package/build-module/date-time/time/index.js.map +1 -1
  151. package/build-module/date-time/time-input/index.js +151 -0
  152. package/build-module/date-time/time-input/index.js.map +1 -0
  153. package/build-module/date-time/types.js.map +1 -1
  154. package/build-module/date-time/utils.js +61 -0
  155. package/build-module/date-time/utils.js.map +1 -1
  156. package/build-module/disclosure/index.js +0 -1
  157. package/build-module/disclosure/index.js.map +1 -1
  158. package/build-module/divider/component.js +0 -1
  159. package/build-module/divider/component.js.map +1 -1
  160. package/build-module/divider/types.js.map +1 -1
  161. package/build-module/dropdown-menu/index.js +1 -0
  162. package/build-module/dropdown-menu/index.js.map +1 -1
  163. package/build-module/dropdown-menu-v2/index.js +0 -1
  164. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  165. package/build-module/dropdown-menu-v2/styles.js +14 -15
  166. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  167. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  168. package/build-module/font-size-picker/font-size-picker-select.js +1 -1
  169. package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
  170. package/build-module/font-size-picker/index.js +1 -1
  171. package/build-module/font-size-picker/index.js.map +1 -1
  172. package/build-module/font-size-picker/utils.js +0 -4
  173. package/build-module/font-size-picker/utils.js.map +1 -1
  174. package/build-module/form-token-field/token.js +4 -1
  175. package/build-module/form-token-field/token.js.map +1 -1
  176. package/build-module/higher-order/with-spoken-messages/index.js +1 -2
  177. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  178. package/build-module/menu-items-choice/types.js.map +1 -1
  179. package/build-module/popover/index.js +0 -3
  180. package/build-module/popover/index.js.map +1 -1
  181. package/build-module/popover/utils.js +0 -1
  182. package/build-module/popover/utils.js.map +1 -1
  183. package/build-module/private-apis.js +2 -4
  184. package/build-module/private-apis.js.map +1 -1
  185. package/build-module/progress-bar/styles.js +21 -13
  186. package/build-module/progress-bar/styles.js.map +1 -1
  187. package/build-module/radio-group/context.js +0 -1
  188. package/build-module/radio-group/context.js.map +1 -1
  189. package/build-module/radio-group/index.js +0 -1
  190. package/build-module/radio-group/index.js.map +1 -1
  191. package/build-module/radio-group/radio.js +0 -1
  192. package/build-module/radio-group/radio.js.map +1 -1
  193. package/build-module/range-control/index.js +4 -1
  194. package/build-module/range-control/index.js.map +1 -1
  195. package/build-module/range-control/styles/range-control-styles.js +34 -28
  196. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  197. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  198. package/build-module/select-control/index.js +2 -3
  199. package/build-module/select-control/index.js.map +1 -1
  200. package/build-module/select-control/styles/select-control-styles.js +12 -7
  201. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  202. package/build-module/tab-panel/index.js +0 -1
  203. package/build-module/tab-panel/index.js.map +1 -1
  204. package/build-module/tabs/index.js +0 -1
  205. package/build-module/tabs/index.js.map +1 -1
  206. package/build-module/tabs/styles.js +3 -4
  207. package/build-module/tabs/styles.js.map +1 -1
  208. package/build-module/tabs/tablist.js +149 -38
  209. package/build-module/tabs/tablist.js.map +1 -1
  210. package/build-module/tabs/types.js.map +1 -1
  211. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +0 -1
  212. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  213. package/build-module/toggle-group-control/toggle-group-control/component.js +0 -1
  214. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  215. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +0 -2
  216. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  217. package/build-module/toolbar/toolbar/toolbar-container.js +0 -1
  218. package/build-module/toolbar/toolbar/toolbar-container.js.map +1 -1
  219. package/build-module/toolbar/toolbar/types.js.map +1 -1
  220. package/build-module/toolbar/toolbar-button/index.js +27 -19
  221. package/build-module/toolbar/toolbar-button/index.js.map +1 -1
  222. package/build-module/toolbar/toolbar-button/types.js.map +1 -1
  223. package/build-module/toolbar/toolbar-context/index.js +0 -1
  224. package/build-module/toolbar/toolbar-context/index.js.map +1 -1
  225. package/build-module/toolbar/toolbar-item/index.js +1 -1
  226. package/build-module/toolbar/toolbar-item/index.js.map +1 -1
  227. package/build-module/tooltip/index.js +3 -2
  228. package/build-module/tooltip/index.js.map +1 -1
  229. package/build-module/tooltip/types.js.map +1 -1
  230. package/build-module/unit-control/index.js +3 -3
  231. package/build-module/unit-control/index.js.map +1 -1
  232. package/build-module/unit-control/styles/unit-control-styles.js +7 -7
  233. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  234. package/build-module/utils/hooks/use-update-effect.js +4 -1
  235. package/build-module/utils/hooks/use-update-effect.js.map +1 -1
  236. package/build-style/style-rtl.css +18 -0
  237. package/build-style/style.css +18 -0
  238. package/build-types/animation/index.d.ts.map +1 -1
  239. package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
  240. package/build-types/autocomplete/index.d.ts.map +1 -1
  241. package/build-types/base-control/index.d.ts +6 -20
  242. package/build-types/base-control/index.d.ts.map +1 -1
  243. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  244. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
  245. package/build-types/button/deprecated.d.ts +4 -4
  246. package/build-types/button/index.d.ts.map +1 -1
  247. package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
  248. package/build-types/button/types.d.ts +27 -10
  249. package/build-types/button/types.d.ts.map +1 -1
  250. package/build-types/combobox-control/index.d.ts.map +1 -1
  251. package/build-types/composite/current/index.d.ts.map +1 -1
  252. package/build-types/custom-select-control-v2/custom-select.d.ts +2 -2
  253. package/build-types/custom-select-control-v2/custom-select.d.ts.map +1 -1
  254. package/build-types/custom-select-control-v2/default-component/index.d.ts.map +1 -1
  255. package/build-types/custom-select-control-v2/item.d.ts.map +1 -1
  256. package/build-types/custom-select-control-v2/legacy-component/index.d.ts.map +1 -1
  257. package/build-types/custom-select-control-v2/stories/default.story.d.ts +6 -3
  258. package/build-types/custom-select-control-v2/stories/default.story.d.ts.map +1 -1
  259. package/build-types/custom-select-control-v2/styles.d.ts +18 -26
  260. package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
  261. package/build-types/custom-select-control-v2/types.d.ts +12 -2
  262. package/build-types/custom-select-control-v2/types.d.ts.map +1 -1
  263. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  264. package/build-types/date-time/index.d.ts +2 -1
  265. package/build-types/date-time/index.d.ts.map +1 -1
  266. package/build-types/date-time/stories/time-input.story.d.ts +12 -0
  267. package/build-types/date-time/stories/time-input.story.d.ts.map +1 -0
  268. package/build-types/date-time/time/index.d.ts +1 -1
  269. package/build-types/date-time/time/index.d.ts.map +1 -1
  270. package/build-types/date-time/time-input/index.d.ts +5 -0
  271. package/build-types/date-time/time-input/index.d.ts.map +1 -0
  272. package/build-types/date-time/time-input/test/index.d.ts +2 -0
  273. package/build-types/date-time/time-input/test/index.d.ts.map +1 -0
  274. package/build-types/date-time/types.d.ts +54 -0
  275. package/build-types/date-time/types.d.ts.map +1 -1
  276. package/build-types/date-time/utils.d.ts +40 -0
  277. package/build-types/date-time/utils.d.ts.map +1 -1
  278. package/build-types/disclosure/index.d.ts.map +1 -1
  279. package/build-types/divider/component.d.ts.map +1 -1
  280. package/build-types/divider/types.d.ts.map +1 -1
  281. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  282. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  283. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  284. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  285. package/build-types/font-size-picker/styles.d.ts +1 -1
  286. package/build-types/font-size-picker/utils.d.ts.map +1 -1
  287. package/build-types/form-token-field/token.d.ts.map +1 -1
  288. package/build-types/higher-order/with-spoken-messages/index.d.ts +1 -2
  289. package/build-types/higher-order/with-spoken-messages/index.d.ts.map +1 -1
  290. package/build-types/menu-items-choice/types.d.ts +1 -1
  291. package/build-types/menu-items-choice/types.d.ts.map +1 -1
  292. package/build-types/navigator/navigator-back-button/component.d.ts +1 -1
  293. package/build-types/navigator/navigator-back-button/hook.d.ts +1 -1
  294. package/build-types/navigator/navigator-button/component.d.ts +1 -1
  295. package/build-types/navigator/navigator-button/hook.d.ts +1 -1
  296. package/build-types/navigator/navigator-to-parent-button/component.d.ts +1 -1
  297. package/build-types/popover/index.d.ts.map +1 -1
  298. package/build-types/popover/utils.d.ts.map +1 -1
  299. package/build-types/private-apis.d.ts.map +1 -1
  300. package/build-types/progress-bar/styles.d.ts.map +1 -1
  301. package/build-types/radio-group/context.d.ts.map +1 -1
  302. package/build-types/radio-group/index.d.ts.map +1 -1
  303. package/build-types/radio-group/radio.d.ts.map +1 -1
  304. package/build-types/range-control/index.d.ts.map +1 -1
  305. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  306. package/build-types/resizable-box/resize-tooltip/utils.d.ts +2 -2
  307. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  308. package/build-types/select-control/index.d.ts.map +1 -1
  309. package/build-types/select-control/styles/select-control-styles.d.ts +5 -0
  310. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  311. package/build-types/tab-panel/index.d.ts.map +1 -1
  312. package/build-types/tabs/index.d.ts.map +1 -1
  313. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  314. package/build-types/tabs/styles.d.ts.map +1 -1
  315. package/build-types/tabs/tablist.d.ts.map +1 -1
  316. package/build-types/tabs/types.d.ts.map +1 -1
  317. package/build-types/theme/stories/index.story.d.ts.map +1 -1
  318. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  319. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  320. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  321. package/build-types/toolbar/toolbar/toolbar-container.d.ts.map +1 -1
  322. package/build-types/toolbar/toolbar/types.d.ts +6 -0
  323. package/build-types/toolbar/toolbar/types.d.ts.map +1 -1
  324. package/build-types/toolbar/toolbar-button/index.d.ts +3 -96
  325. package/build-types/toolbar/toolbar-button/index.d.ts.map +1 -1
  326. package/build-types/toolbar/toolbar-button/types.d.ts +18 -0
  327. package/build-types/toolbar/toolbar-button/types.d.ts.map +1 -1
  328. package/build-types/toolbar/toolbar-context/index.d.ts.map +1 -1
  329. package/build-types/toolbar/toolbar-item/index.d.ts +1 -3
  330. package/build-types/toolbar/toolbar-item/index.d.ts.map +1 -1
  331. package/build-types/tooltip/index.d.ts.map +1 -1
  332. package/build-types/tooltip/types.d.ts +4 -0
  333. package/build-types/tooltip/types.d.ts.map +1 -1
  334. package/build-types/unit-control/index.d.ts.map +1 -1
  335. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  336. package/build-types/utils/hooks/use-update-effect.d.ts +1 -1
  337. package/build-types/utils/hooks/use-update-effect.d.ts.map +1 -1
  338. package/package.json +19 -19
  339. package/src/animation/index.tsx +0 -1
  340. package/src/autocomplete/autocompleter-ui.tsx +1 -0
  341. package/src/autocomplete/index.tsx +0 -1
  342. package/src/base-control/index.tsx +16 -6
  343. package/src/base-control/stories/index.story.tsx +0 -1
  344. package/src/border-box-control/border-box-control-visualizer/component.tsx +0 -5
  345. package/src/button/README.md +13 -0
  346. package/src/button/index.tsx +6 -4
  347. package/src/button/stories/e2e/index.story.tsx +2 -1
  348. package/src/button/test/index.tsx +17 -2
  349. package/src/button/types.ts +27 -10
  350. package/src/combobox-control/index.tsx +2 -0
  351. package/src/composite/current/index.ts +0 -2
  352. package/src/custom-select-control/test/index.js +42 -6
  353. package/src/custom-select-control-v2/custom-select.tsx +57 -22
  354. package/src/custom-select-control-v2/default-component/index.tsx +0 -1
  355. package/src/custom-select-control-v2/item.tsx +5 -1
  356. package/src/custom-select-control-v2/legacy-component/index.tsx +28 -7
  357. package/src/custom-select-control-v2/legacy-component/test/index.tsx +44 -8
  358. package/src/custom-select-control-v2/styles.ts +153 -83
  359. package/src/custom-select-control-v2/test/index.tsx +35 -5
  360. package/src/custom-select-control-v2/types.ts +18 -6
  361. package/src/date-time/README.md +8 -0
  362. package/src/date-time/date-time/index.tsx +2 -1
  363. package/src/date-time/index.ts +2 -1
  364. package/src/date-time/stories/time-input.story.tsx +36 -0
  365. package/src/date-time/time/index.tsx +77 -194
  366. package/src/date-time/time/test/index.tsx +61 -0
  367. package/src/date-time/time-input/index.tsx +196 -0
  368. package/src/date-time/time-input/test/index.tsx +171 -0
  369. package/src/date-time/types.ts +63 -0
  370. package/src/date-time/utils.ts +69 -0
  371. package/src/dimension-control/test/__snapshots__/index.test.js.snap +116 -96
  372. package/src/disclosure/index.tsx +0 -1
  373. package/src/divider/component.tsx +0 -1
  374. package/src/divider/types.ts +0 -1
  375. package/src/dropdown-menu/index.tsx +1 -0
  376. package/src/dropdown-menu-v2/index.tsx +0 -1
  377. package/src/dropdown-menu-v2/styles.ts +0 -1
  378. package/src/dropdown-menu-v2/types.ts +0 -1
  379. package/src/font-size-picker/font-size-picker-select.tsx +1 -1
  380. package/src/font-size-picker/index.tsx +1 -1
  381. package/src/font-size-picker/test/index.tsx +6 -6
  382. package/src/font-size-picker/utils.ts +0 -5
  383. package/src/form-token-field/token.tsx +2 -0
  384. package/src/higher-order/navigate-regions/style.scss +25 -13
  385. package/src/higher-order/with-spoken-messages/index.tsx +1 -2
  386. package/src/menu-items-choice/types.ts +2 -1
  387. package/src/palette-edit/test/index.tsx +1 -0
  388. package/src/popover/index.tsx +0 -2
  389. package/src/popover/utils.ts +0 -1
  390. package/src/private-apis.ts +2 -5
  391. package/src/progress-bar/styles.ts +18 -9
  392. package/src/radio-group/context.tsx +0 -1
  393. package/src/radio-group/index.tsx +0 -1
  394. package/src/radio-group/radio.tsx +0 -1
  395. package/src/range-control/index.tsx +2 -0
  396. package/src/range-control/styles/range-control-styles.ts +6 -2
  397. package/src/resizable-box/resize-tooltip/utils.ts +1 -1
  398. package/src/select-control/index.tsx +3 -4
  399. package/src/select-control/styles/select-control-styles.ts +17 -6
  400. package/src/tab-panel/index.tsx +0 -1
  401. package/src/tabs/index.tsx +0 -1
  402. package/src/tabs/stories/index.story.tsx +25 -18
  403. package/src/tabs/styles.ts +18 -14
  404. package/src/tabs/tablist.tsx +187 -43
  405. package/src/tabs/types.ts +0 -1
  406. package/src/theme/stories/index.story.tsx +2 -0
  407. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +0 -1
  408. package/src/toggle-group-control/toggle-group-control/component.tsx +0 -2
  409. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +0 -2
  410. package/src/toolbar/toolbar/README.md +9 -0
  411. package/src/toolbar/toolbar/style.scss +7 -0
  412. package/src/toolbar/toolbar/toolbar-container.tsx +0 -1
  413. package/src/toolbar/toolbar/types.ts +6 -0
  414. package/src/toolbar/toolbar-button/index.tsx +30 -17
  415. package/src/toolbar/toolbar-button/types.ts +19 -0
  416. package/src/toolbar/toolbar-context/index.ts +0 -1
  417. package/src/toolbar/toolbar-item/index.tsx +1 -1
  418. package/src/tooltip/index.tsx +3 -2
  419. package/src/tooltip/test/index.tsx +18 -0
  420. package/src/tooltip/types.ts +4 -0
  421. package/src/unit-control/index.tsx +3 -2
  422. package/src/unit-control/styles/unit-control-styles.ts +10 -4
  423. package/src/utils/hooks/use-update-effect.js +8 -1
  424. package/tsconfig.tsbuildinfo +1 -1
@@ -115,6 +115,17 @@ The presence of a `href` prop determines whether an `anchor` element is rendered
115
115
 
116
116
  Props not included in this set will be applied to the `a` or `button` element.
117
117
 
118
+ #### `accessibleWhenDisabled`: `boolean`
119
+
120
+ Whether to keep the button focusable when disabled.
121
+
122
+ In most cases, it is recommended to set this to `true`. Disabling a control without maintaining focusability can cause accessibility issues, by hiding their presence from screen reader users, or by preventing focus from returning to a trigger element.
123
+
124
+ Learn more about the [focusability of disabled controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols) in the WAI-ARIA Authoring Practices Guide.
125
+
126
+ - Required: No
127
+ - Default: `false`
128
+
118
129
  #### `children`: `ReactNode`
119
130
 
120
131
  The button's children.
@@ -137,6 +148,8 @@ An accessible description for the button.
137
148
 
138
149
  Whether the button is disabled. If `true`, this will force a `button` element to be rendered, even when an `href` is given.
139
150
 
151
+ In most cases, it is recommended to also set the `accessibleWhenDisabled` prop to `true`.
152
+
140
153
  - Required: No
141
154
 
142
155
  #### `href`: `string`
@@ -29,6 +29,7 @@ import { positionToPlacement } from '../popover/utils';
29
29
  const disabledEventsOnDisabledButton = [ 'onMouseDown', 'onClick' ] as const;
30
30
 
31
31
  function useDeprecatedProps( {
32
+ __experimentalIsFocusable,
32
33
  isDefault,
33
34
  isPrimary,
34
35
  isSecondary,
@@ -43,7 +44,8 @@ function useDeprecatedProps( {
43
44
  let computedSize = size;
44
45
  let computedVariant = variant;
45
46
 
46
- const newProps: { 'aria-pressed'?: boolean } = {
47
+ const newProps = {
48
+ accessibleWhenDisabled: __experimentalIsFocusable,
47
49
  // @todo Mark `isPressed` as deprecated
48
50
  'aria-pressed': isPressed,
49
51
  };
@@ -91,6 +93,7 @@ export function UnforwardedButton(
91
93
  ) {
92
94
  const {
93
95
  __next40pxDefaultSize,
96
+ accessibleWhenDisabled,
94
97
  isBusy,
95
98
  isDestructive,
96
99
  className,
@@ -106,7 +109,6 @@ export function UnforwardedButton(
106
109
  size = 'default',
107
110
  text,
108
111
  variant,
109
- __experimentalIsFocusable: isFocusable,
110
112
  describedBy,
111
113
  ...buttonOrAnchorProps
112
114
  } = useDeprecatedProps( props );
@@ -159,7 +161,7 @@ export function UnforwardedButton(
159
161
  'has-icon': !! icon,
160
162
  } );
161
163
 
162
- const trulyDisabled = disabled && ! isFocusable;
164
+ const trulyDisabled = disabled && ! accessibleWhenDisabled;
163
165
  const Tag = href !== undefined && ! trulyDisabled ? 'a' : 'button';
164
166
  const buttonProps: ComponentPropsWithoutRef< 'button' > =
165
167
  Tag === 'button'
@@ -177,7 +179,7 @@ export function UnforwardedButton(
177
179
  const disableEventProps: {
178
180
  [ key: string ]: ( event: MouseEvent ) => void;
179
181
  } = {};
180
- if ( disabled && isFocusable ) {
182
+ if ( disabled && accessibleWhenDisabled ) {
181
183
  // In this case, the button will be disabled, but still focusable and
182
184
  // perceivable by screen reader users.
183
185
  buttonProps[ 'aria-disabled' ] = true;
@@ -39,12 +39,13 @@ export const VariantStates: StoryFn< typeof Button > = (
39
39
  key={ variant ?? 'undefined' }
40
40
  >
41
41
  <Button { ...props } variant={ variant } />
42
+ { /* eslint-disable-next-line no-restricted-syntax */ }
42
43
  <Button { ...props } variant={ variant } disabled />
43
44
  <Button
44
45
  { ...props }
45
46
  variant={ variant }
46
47
  disabled
47
- __experimentalIsFocusable
48
+ accessibleWhenDisabled
48
49
  />
49
50
  <Button { ...props } variant={ variant } isBusy />
50
51
  <Button { ...props } variant={ variant } isDestructive />
@@ -235,13 +235,14 @@ describe( 'Button', () => {
235
235
  } );
236
236
 
237
237
  it( 'should add a disabled prop to the button', () => {
238
+ // eslint-disable-next-line no-restricted-syntax
238
239
  render( <Button disabled /> );
239
240
 
240
241
  expect( screen.getByRole( 'button' ) ).toBeDisabled();
241
242
  } );
242
243
 
243
244
  it( 'should add only aria-disabled attribute when disabled and isFocusable are true', () => {
244
- render( <Button disabled __experimentalIsFocusable /> );
245
+ render( <Button disabled accessibleWhenDisabled /> );
245
246
  const button = screen.getByRole( 'button' );
246
247
 
247
248
  expect( button ).toBeEnabled();
@@ -536,6 +537,7 @@ describe( 'Button', () => {
536
537
 
537
538
  it( 'should become a button again when disabled is supplied', () => {
538
539
  // @ts-expect-error - a button should not have `href`
540
+ // eslint-disable-next-line no-restricted-syntax
539
541
  render( <Button href="https://wordpress.org/" disabled /> );
540
542
 
541
543
  expect( screen.getByRole( 'button' ) ).toBeVisible();
@@ -617,6 +619,15 @@ describe( 'Button', () => {
617
619
  'mixed'
618
620
  );
619
621
  } );
622
+
623
+ it( 'should not break when the legacy __experimentalIsFocusable prop is passed', () => {
624
+ // eslint-disable-next-line no-restricted-syntax
625
+ render( <Button disabled __experimentalIsFocusable /> );
626
+ const button = screen.getByRole( 'button' );
627
+
628
+ expect( button ).toBeEnabled();
629
+ expect( button ).toHaveAttribute( 'aria-disabled' );
630
+ } );
620
631
  } );
621
632
 
622
633
  describe( 'static typing', () => {
@@ -624,15 +635,19 @@ describe( 'Button', () => {
624
635
  <Button href="foo" />
625
636
  { /* @ts-expect-error - `target` requires `href` */ }
626
637
  <Button target="foo" />
638
+
639
+ { /* eslint-disable no-restricted-syntax */ }
627
640
  { /* @ts-expect-error - `disabled` is only for buttons */ }
628
641
  <Button href="foo" disabled />
642
+ { /* eslint-enable no-restricted-syntax */ }
643
+
629
644
  <Button href="foo" type="image/png" />
630
645
  { /* @ts-expect-error - if button, type must be submit/reset/button */ }
631
646
  <Button type="image/png" />
632
647
  { /* @ts-expect-error */ }
633
648
  <Button type="invalidtype" />
634
649
  { /* @ts-expect-error - although the runtime behavior will allow this to be an anchor, this is probably a mistake. */ }
635
- <Button disabled __experimentalIsFocusable href="foo" />
650
+ <Button disabled accessibleWhenDisabled href="foo" />
636
651
  </>;
637
652
  } );
638
653
  } );
@@ -25,6 +25,19 @@ type BaseButtonProps = {
25
25
  * @default false
26
26
  */
27
27
  __next40pxDefaultSize?: boolean;
28
+ /**
29
+ * Whether to keep the button focusable when disabled.
30
+ *
31
+ * In most cases, it is recommended to set this to `true`. Disabling a control without maintaining focusability
32
+ * can cause accessibility issues, by hiding their presence from screen reader users,
33
+ * or by preventing focus from returning to a trigger element.
34
+ *
35
+ * Learn more about the [focusability of disabled controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols)
36
+ * in the WAI-ARIA Authoring Practices Guide.
37
+ *
38
+ * @default false
39
+ */
40
+ accessibleWhenDisabled?: boolean;
28
41
  /**
29
42
  * The button's children.
30
43
  */
@@ -105,28 +118,24 @@ type BaseButtonProps = {
105
118
  * 'link' (the link button styles)
106
119
  */
107
120
  variant?: 'primary' | 'secondary' | 'tertiary' | 'link';
108
- /**
109
- * Whether to keep the button focusable when disabled.
110
- *
111
- * @default false
112
- */
113
- __experimentalIsFocusable?: boolean;
114
121
  };
115
122
 
116
123
  type _ButtonProps = {
117
124
  /**
118
- * Whether the button is disabled.
125
+ * Whether the button is disabled. If `true`, this will force a `button` element
126
+ * to be rendered, even when an `href` is given.
119
127
  *
120
- * If `true`, this will force a `button` element to be rendered, even when an `href` is given.
128
+ * In most cases, it is recommended to also set the `accessibleWhenDisabled` prop to `true`.
121
129
  */
122
130
  disabled?: boolean;
123
131
  };
124
132
 
125
133
  type AnchorProps = {
126
134
  /**
127
- * Whether the button is disabled.
135
+ * Whether the button is disabled. If `true`, this will force a `button` element
136
+ * to be rendered, even when an `href` is given.
128
137
  *
129
- * If `true`, this will force a `button` element to be rendered, even when an `href` is given.
138
+ * In most cases, it is recommended to also set the `accessibleWhenDisabled` prop to `true`.
130
139
  */
131
140
  disabled?: false;
132
141
  /**
@@ -140,6 +149,14 @@ type AnchorProps = {
140
149
  };
141
150
 
142
151
  export type DeprecatedButtonProps = {
152
+ /**
153
+ * Whether to keep the button focusable when disabled.
154
+ *
155
+ * @default false
156
+ * @deprecated Use the `accessibleWhenDisabled` prop instead.
157
+ * @ignore
158
+ */
159
+ __experimentalIsFocusable?: boolean;
143
160
  /**
144
161
  * Gives the button a default style.
145
162
  *
@@ -346,6 +346,8 @@ function ComboboxControl( props: ComboboxControlProps ) {
346
346
  <Button
347
347
  className="components-combobox-control__reset"
348
348
  icon={ closeSmall }
349
+ // Disable reason: Focus returns to input field when reset is clicked.
350
+ // eslint-disable-next-line no-restricted-syntax
349
351
  disabled={ ! value }
350
352
  onClick={ handleOnReset }
351
353
  label={ __( 'Reset' ) }
@@ -8,7 +8,6 @@
8
8
  * @see https://ariakit.org/components/composite
9
9
  */
10
10
 
11
- /* eslint-disable-next-line no-restricted-imports */
12
11
  export {
13
12
  Composite,
14
13
  CompositeGroup,
@@ -18,5 +17,4 @@ export {
18
17
  useCompositeStore,
19
18
  } from '@ariakit/react';
20
19
 
21
- /* eslint-disable-next-line no-restricted-imports */
22
20
  export type { CompositeStore, CompositeStoreProps } from '@ariakit/react';
@@ -190,14 +190,14 @@ describe.each( [
190
190
  await user.keyboard( '{enter}' );
191
191
  expect(
192
192
  screen.getByRole( 'listbox', {
193
- name: 'label!',
193
+ name: props.label,
194
194
  } )
195
195
  ).toBeVisible();
196
196
 
197
197
  await user.keyboard( '{escape}' );
198
198
  expect(
199
199
  screen.queryByRole( 'listbox', {
200
- name: 'label!',
200
+ name: props.label,
201
201
  } )
202
202
  ).not.toBeInTheDocument();
203
203
 
@@ -440,6 +440,16 @@ describe.each( [
440
440
  );
441
441
  } );
442
442
 
443
+ it( 'Should label the component correctly even when the label is not visible', () => {
444
+ render( <Component { ...props } hideLabelFromVision /> );
445
+
446
+ expect(
447
+ screen.getByRole( 'button', {
448
+ name: props.label,
449
+ } )
450
+ ).toBeVisible();
451
+ } );
452
+
443
453
  describe( 'Keyboard behavior and accessibility', () => {
444
454
  it( 'Captures the keypress event and does not let it propagate', async () => {
445
455
  const user = userEvent.setup();
@@ -460,7 +470,7 @@ describe.each( [
460
470
  await user.click( currentSelectedItem );
461
471
 
462
472
  const customSelect = screen.getByRole( 'listbox', {
463
- name: 'label!',
473
+ name: props.label,
464
474
  } );
465
475
  await user.type( customSelect, '{enter}' );
466
476
 
@@ -482,7 +492,7 @@ describe.each( [
482
492
  await user.keyboard( '{enter}' );
483
493
  expect(
484
494
  screen.getByRole( 'listbox', {
485
- name: 'label!',
495
+ name: props.label,
486
496
  } )
487
497
  ).toHaveFocus();
488
498
 
@@ -507,7 +517,7 @@ describe.each( [
507
517
  await user.keyboard( '{enter}' );
508
518
  expect(
509
519
  screen.getByRole( 'listbox', {
510
- name: 'label!',
520
+ name: props.label,
511
521
  } )
512
522
  ).toHaveFocus();
513
523
 
@@ -533,7 +543,7 @@ describe.each( [
533
543
 
534
544
  expect(
535
545
  screen.queryByRole( 'listbox', {
536
- name: 'label!',
546
+ name: props.label,
537
547
  hidden: true,
538
548
  } )
539
549
  ).not.toBeInTheDocument();
@@ -542,6 +552,32 @@ describe.each( [
542
552
  expect( currentSelectedItem ).toHaveTextContent( 'aquamarine' );
543
553
  } );
544
554
 
555
+ it( 'Can change selection with a focused input and closed dropdown while pressing arrow keys', async () => {
556
+ const user = userEvent.setup();
557
+
558
+ render( <Component { ...props } /> );
559
+
560
+ const currentSelectedItem = screen.getByRole( 'button', {
561
+ expanded: false,
562
+ } );
563
+
564
+ await user.tab();
565
+ expect( currentSelectedItem ).toHaveFocus();
566
+ expect( currentSelectedItem ).toHaveTextContent(
567
+ props.options[ 0 ].name
568
+ );
569
+
570
+ await user.keyboard( '{arrowdown}' );
571
+ await user.keyboard( '{arrowdown}' );
572
+ expect(
573
+ screen.queryByRole( 'listbox', { name: props.label } )
574
+ ).not.toBeInTheDocument();
575
+
576
+ expect( currentSelectedItem ).toHaveTextContent(
577
+ props.options[ 2 ].name
578
+ );
579
+ } );
580
+
545
581
  it( 'Should have correct aria-selected value for selections', async () => {
546
582
  const user = userEvent.setup();
547
583
 
@@ -1,7 +1,12 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import * as Ariakit from '@ariakit/react';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
4
- import { createContext, useMemo } from '@wordpress/element';
9
+ import { createContext, useCallback, useMemo } from '@wordpress/element';
5
10
  import { __, sprintf } from '@wordpress/i18n';
6
11
 
7
12
  /**
@@ -14,11 +19,12 @@ import type {
14
19
  CustomSelectStore,
15
20
  CustomSelectButtonProps,
16
21
  CustomSelectButtonSize,
22
+ _CustomSelectInternalProps,
17
23
  _CustomSelectProps,
18
24
  } from './types';
19
- import type { WordPressComponentProps } from '../context';
20
25
  import InputBase from '../input-control/input-base';
21
26
  import SelectControlChevronDown from '../select-control/chevron-down';
27
+ import BaseControl from '../base-control';
22
28
 
23
29
  export const CustomSelectContext =
24
30
  createContext< CustomSelectContextType >( undefined );
@@ -50,11 +56,10 @@ const CustomSelectButton = ( {
50
56
  store,
51
57
  ...restProps
52
58
  }: Omit<
53
- WordPressComponentProps<
54
- CustomSelectButtonProps & CustomSelectButtonSize & CustomSelectStore,
55
- 'button',
56
- false
57
- >,
59
+ React.ComponentProps< typeof Ariakit.Select > &
60
+ CustomSelectButtonProps &
61
+ CustomSelectButtonSize &
62
+ CustomSelectStore,
58
63
  'onChange'
59
64
  > ) => {
60
65
  const { value: currentValue } = store.useState();
@@ -70,9 +75,6 @@ const CustomSelectButton = ( {
70
75
  size={ size }
71
76
  hasCustomRenderProp={ !! renderSelectedValue }
72
77
  store={ store }
73
- // to match legacy behavior where using arrow keys
74
- // move selection rather than open the popover
75
- showOnKeyDown={ false }
76
78
  >
77
79
  { computedRenderSelectedValue( currentValue ) }
78
80
  </Styled.Select>
@@ -80,7 +82,10 @@ const CustomSelectButton = ( {
80
82
  };
81
83
 
82
84
  function _CustomSelect(
83
- props: _CustomSelectProps & CustomSelectStore & CustomSelectButtonSize
85
+ props: _CustomSelectInternalProps &
86
+ _CustomSelectProps &
87
+ CustomSelectStore &
88
+ CustomSelectButtonSize
84
89
  ) {
85
90
  const {
86
91
  children,
@@ -88,18 +93,40 @@ function _CustomSelect(
88
93
  label,
89
94
  size,
90
95
  store,
96
+ className,
97
+ isLegacy = false,
91
98
  ...restProps
92
99
  } = props;
93
100
 
101
+ const onSelectPopoverKeyDown: React.KeyboardEventHandler< HTMLDivElement > =
102
+ useCallback(
103
+ ( e ) => {
104
+ if ( isLegacy ) {
105
+ e.stopPropagation();
106
+ }
107
+ },
108
+ [ isLegacy ]
109
+ );
110
+
111
+ const contextValue = useMemo( () => ( { store, size } ), [ store, size ] );
112
+
94
113
  return (
95
- <>
96
- { hideLabelFromVision ? ( // TODO: Replace with BaseControl
97
- <VisuallyHidden as="label">{ label }</VisuallyHidden>
98
- ) : (
99
- <Styled.SelectLabel store={ store }>
100
- { label }
101
- </Styled.SelectLabel>
102
- ) }
114
+ // Where should `restProps` be forwarded to?
115
+ <div className={ className }>
116
+ <Ariakit.SelectLabel
117
+ store={ store }
118
+ render={
119
+ hideLabelFromVision ? (
120
+ // @ts-expect-error `children` are passed via the render prop
121
+ <VisuallyHidden />
122
+ ) : (
123
+ // @ts-expect-error `children` are passed via the render prop
124
+ <BaseControl.VisualLabel as="div" />
125
+ )
126
+ }
127
+ >
128
+ { label }
129
+ </Ariakit.SelectLabel>
103
130
  <InputBase
104
131
  __next40pxDefaultSize
105
132
  size={ size }
@@ -109,14 +136,22 @@ function _CustomSelect(
109
136
  { ...restProps }
110
137
  size={ size }
111
138
  store={ store }
139
+ // Match legacy behavior (move selection rather than open the popover)
140
+ showOnKeyDown={ ! isLegacy }
112
141
  />
113
- <Styled.SelectPopover gutter={ 12 } store={ store } sameWidth>
114
- <CustomSelectContext.Provider value={ { store } }>
142
+ <Styled.SelectPopover
143
+ gutter={ 12 }
144
+ store={ store }
145
+ sameWidth
146
+ slide={ false }
147
+ onKeyDown={ onSelectPopoverKeyDown }
148
+ >
149
+ <CustomSelectContext.Provider value={ contextValue }>
115
150
  { children }
116
151
  </CustomSelectContext.Provider>
117
152
  </Styled.SelectPopover>
118
153
  </InputBase>
119
- </>
154
+ </div>
120
155
  );
121
156
  }
122
157
 
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- // eslint-disable-next-line no-restricted-imports
5
4
  import * as Ariakit from '@ariakit/react';
6
5
  /**
7
6
  * Internal dependencies
@@ -17,7 +17,11 @@ export function CustomSelectItem( {
17
17
  }: WordPressComponentProps< CustomSelectItemProps, 'div', false > ) {
18
18
  const customSelectContext = useContext( CustomSelectContext );
19
19
  return (
20
- <Styled.SelectItem store={ customSelectContext?.store } { ...props }>
20
+ <Styled.SelectItem
21
+ store={ customSelectContext?.store }
22
+ size={ customSelectContext?.size ?? 'default' }
23
+ { ...props }
24
+ >
21
25
  { children ?? props.value }
22
26
  <Styled.SelectedItemCheck>
23
27
  <Icon icon={ check } />
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- // eslint-disable-next-line no-restricted-imports
5
4
  import * as Ariakit from '@ariakit/react';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * Internal dependencies
@@ -21,6 +21,7 @@ function CustomSelectControl( props: LegacyCustomSelectProps ) {
21
21
  onChange,
22
22
  size = 'default',
23
23
  value,
24
+ className: classNameProp,
24
25
  ...restProps
25
26
  } = props;
26
27
 
@@ -62,12 +63,15 @@ function CustomSelectControl( props: LegacyCustomSelectProps ) {
62
63
  const children = options.map(
63
64
  ( { name, key, __experimentalHint, style, className } ) => {
64
65
  const withHint = (
65
- <Styled.WithHintWrapper>
66
+ <Styled.WithHintItemWrapper>
66
67
  <span>{ name }</span>
67
- <Styled.ExperimentalHintItem className="components-custom-select-control__item-hint">
68
+ <Styled.WithHintItemHint
69
+ // TODO: Legacy classname. Add V1 styles are removed from the codebase
70
+ // className="components-custom-select-control__item-hint"
71
+ >
68
72
  { __experimentalHint }
69
- </Styled.ExperimentalHintItem>
70
- </Styled.WithHintWrapper>
73
+ </Styled.WithHintItemHint>
74
+ </Styled.WithHintItemWrapper>
71
75
  );
72
76
 
73
77
  return (
@@ -76,7 +80,15 @@ function CustomSelectControl( props: LegacyCustomSelectProps ) {
76
80
  value={ name }
77
81
  children={ __experimentalHint ? withHint : name }
78
82
  style={ style }
79
- className={ className }
83
+ className={ clsx(
84
+ // TODO: Legacy classname. Add V1 styles are removed from the codebase
85
+ // 'components-custom-select-control__item',
86
+ className
87
+ // TODO: Legacy classname. Add V1 styles are removed from the codebase
88
+ // {
89
+ // 'has-hint': __experimentalHint,
90
+ // }
91
+ ) }
80
92
  />
81
93
  );
82
94
  }
@@ -92,7 +104,10 @@ function CustomSelectControl( props: LegacyCustomSelectProps ) {
92
104
  return (
93
105
  <Styled.SelectedExperimentalHintWrapper>
94
106
  { currentValue }
95
- <Styled.SelectedExperimentalHintItem className="components-custom-select-control__hint">
107
+ <Styled.SelectedExperimentalHintItem
108
+ // TODO: Legacy classname. Add V1 styles are removed from the codebase
109
+ // className="components-custom-select-control__hint"
110
+ >
96
111
  { currentHint?.__experimentalHint }
97
112
  </Styled.SelectedExperimentalHintItem>
98
113
  </Styled.SelectedExperimentalHintWrapper>
@@ -122,6 +137,12 @@ function CustomSelectControl( props: LegacyCustomSelectProps ) {
122
137
  }
123
138
  size={ translatedSize }
124
139
  store={ store }
140
+ className={ clsx(
141
+ // TODO: Legacy classname. Add V1 styles are removed from the codebase
142
+ // 'components-custom-select-control',
143
+ classNameProp
144
+ ) }
145
+ isLegacy
125
146
  { ...restProps }
126
147
  >
127
148
  { children }