@wordpress/components 19.17.0 → 20.0.1-next.d6164808d3.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 (599) hide show
  1. package/CHANGELOG.md +68 -1
  2. package/build/alignment-matrix-control/index.js +1 -1
  3. package/build/alignment-matrix-control/index.js.map +1 -1
  4. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  5. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  6. package/build/angle-picker-control/index.js +3 -0
  7. package/build/angle-picker-control/index.js.map +1 -1
  8. package/build/angle-picker-control/styles/angle-picker-control-styles.js +14 -4
  9. package/build/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  10. package/build/autocomplete/index.js +9 -11
  11. package/build/autocomplete/index.js.map +1 -1
  12. package/build/base-control/styles/base-control-styles.js +8 -8
  13. package/build/base-control/styles/base-control-styles.js.map +1 -1
  14. package/build/base-field/styles.js +5 -5
  15. package/build/base-field/styles.js.map +1 -1
  16. package/build/box-control/styles/box-control-visualizer-styles.js +8 -8
  17. package/build/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  18. package/build/color-list-picker/index.js +16 -5
  19. package/build/color-list-picker/index.js.map +1 -1
  20. package/build/color-palette/index.js +22 -12
  21. package/build/color-palette/index.js.map +1 -1
  22. package/build/color-palette/index.native.js +3 -3
  23. package/build/color-palette/index.native.js.map +1 -1
  24. package/build/combobox-control/index.js +7 -4
  25. package/build/combobox-control/index.js.map +1 -1
  26. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  27. package/build/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  28. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  29. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  30. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  31. package/build/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  32. package/build/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  33. package/build/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  34. package/build/custom-gradient-picker/index.js +19 -4
  35. package/build/custom-gradient-picker/index.js.map +1 -1
  36. package/build/custom-select-control/index.js +21 -11
  37. package/build/custom-select-control/index.js.map +1 -1
  38. package/build/custom-select-control/styles.js +34 -0
  39. package/build/custom-select-control/styles.js.map +1 -0
  40. package/build/date-time/constants.js +9 -0
  41. package/build/date-time/constants.js.map +1 -0
  42. package/build/date-time/date/index.js +175 -186
  43. package/build/date-time/date/index.js.map +1 -1
  44. package/build/date-time/date/styles.js +59 -40
  45. package/build/date-time/date/styles.js.map +1 -1
  46. package/build/date-time/date-time/index.js +5 -2
  47. package/build/date-time/date-time/index.js.map +1 -1
  48. package/build/date-time/time/index.js +22 -17
  49. package/build/date-time/time/index.js.map +1 -1
  50. package/build/date-time/utils.js +27 -0
  51. package/build/date-time/utils.js.map +1 -0
  52. package/build/dimension-control/index.js +2 -6
  53. package/build/dimension-control/index.js.map +1 -1
  54. package/build/disabled/index.js +28 -11
  55. package/build/disabled/index.js.map +1 -1
  56. package/build/disabled/styles/disabled-styles.js +3 -3
  57. package/build/disabled/styles/disabled-styles.js.map +1 -1
  58. package/build/{swatch → disabled}/types.js +0 -0
  59. package/build/{swatch → disabled}/types.js.map +0 -0
  60. package/build/dropdown/index.js +5 -6
  61. package/build/dropdown/index.js.map +1 -1
  62. package/build/duotone-picker/custom-duotone-bar.js +2 -2
  63. package/build/duotone-picker/custom-duotone-bar.js.map +1 -1
  64. package/build/duotone-picker/duotone-picker.js +9 -1
  65. package/build/duotone-picker/duotone-picker.js.map +1 -1
  66. package/build/duotone-picker/duotone-swatch.js +13 -3
  67. package/build/duotone-picker/duotone-swatch.js.map +1 -1
  68. package/build/focal-point-picker/index.js +4 -6
  69. package/build/focal-point-picker/index.js.map +1 -1
  70. package/build/focal-point-picker/styles/focal-point-style.js +4 -4
  71. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  72. package/build/font-size-picker/index.js +43 -14
  73. package/build/font-size-picker/index.js.map +1 -1
  74. package/build/font-size-picker/utils.js +32 -22
  75. package/build/font-size-picker/utils.js.map +1 -1
  76. package/build/form-token-field/index.js +11 -5
  77. package/build/form-token-field/index.js.map +1 -1
  78. package/build/gradient-picker/index.js +15 -3
  79. package/build/gradient-picker/index.js.map +1 -1
  80. package/build/guide/index.js +5 -3
  81. package/build/guide/index.js.map +1 -1
  82. package/build/guide/page-control.js +3 -7
  83. package/build/guide/page-control.js.map +1 -1
  84. package/build/item-group/styles.js +10 -10
  85. package/build/item-group/styles.js.map +1 -1
  86. package/build/mobile/bottom-sheet/index.native.js +3 -6
  87. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  88. package/build/mobile/global-styles-context/utils.native.js +3 -1
  89. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  90. package/build/mobile/image/index.native.js +6 -26
  91. package/build/mobile/image/index.native.js.map +1 -1
  92. package/build/mobile/picker/index.android.js +3 -3
  93. package/build/mobile/picker/index.android.js.map +1 -1
  94. package/build/modal/index.js +1 -3
  95. package/build/modal/index.js.map +1 -1
  96. package/build/navigable-container/container.js +9 -8
  97. package/build/navigable-container/container.js.map +1 -1
  98. package/build/navigator/navigator-back-button/hook.js +0 -4
  99. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  100. package/build/navigator/navigator-button/hook.js +0 -4
  101. package/build/navigator/navigator-button/hook.js.map +1 -1
  102. package/build/notice/list.js +10 -6
  103. package/build/notice/list.js.map +1 -1
  104. package/build/palette-edit/index.js +1 -0
  105. package/build/palette-edit/index.js.map +1 -1
  106. package/build/palette-edit/styles.js +10 -10
  107. package/build/palette-edit/styles.js.map +1 -1
  108. package/build/popover/index.js +100 -97
  109. package/build/popover/index.js.map +1 -1
  110. package/build/popover/utils.js +178 -0
  111. package/build/popover/utils.js.map +1 -0
  112. package/build/range-control/index.js +3 -0
  113. package/build/range-control/index.js.map +1 -1
  114. package/build/range-control/styles/range-control-styles.js +43 -37
  115. package/build/range-control/styles/range-control-styles.js.map +1 -1
  116. package/build/select-control/chevron-down.js +30 -0
  117. package/build/select-control/chevron-down.js.map +1 -0
  118. package/build/select-control/index.js +7 -7
  119. package/build/select-control/index.js.map +1 -1
  120. package/build/select-control/styles/select-control-styles.js +30 -15
  121. package/build/select-control/styles/select-control-styles.js.map +1 -1
  122. package/build/snackbar/list.js +5 -3
  123. package/build/snackbar/list.js.map +1 -1
  124. package/build/spinner/index.js +2 -0
  125. package/build/spinner/index.js.map +1 -1
  126. package/build/text/styles.js +7 -7
  127. package/build/text/styles.js.map +1 -1
  128. package/build/toggle-group-control/toggle-group-control/component.js +16 -8
  129. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  130. package/build/toggle-group-control/toggle-group-control/styles.js +7 -5
  131. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  132. package/build/toggle-group-control/toggle-group-control-option/component.js +15 -5
  133. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  134. package/build/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  135. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  136. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +20 -7
  137. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  138. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +26 -7
  139. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  140. package/build/tools-panel/styles.js +11 -11
  141. package/build/tools-panel/styles.js.map +1 -1
  142. package/build/ui/context/context-connect.js +1 -3
  143. package/build/ui/context/context-connect.js.map +1 -1
  144. package/build/unit-control/index.js +2 -3
  145. package/build/unit-control/index.js.map +1 -1
  146. package/build/utils/colors-values.js +52 -142
  147. package/build/utils/colors-values.js.map +1 -1
  148. package/build/utils/config-values.js +1 -1
  149. package/build/utils/config-values.js.map +1 -1
  150. package/build/utils/input/input-control.js +1 -1
  151. package/build/utils/input/input-control.js.map +1 -1
  152. package/build/utils/rtl.js +6 -5
  153. package/build/utils/rtl.js.map +1 -1
  154. package/build/utils/strings.js +50 -0
  155. package/build/utils/strings.js.map +1 -0
  156. package/build-module/alignment-matrix-control/index.js +1 -1
  157. package/build-module/alignment-matrix-control/index.js.map +1 -1
  158. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +9 -9
  159. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  160. package/build-module/angle-picker-control/index.js +3 -0
  161. package/build-module/angle-picker-control/index.js.map +1 -1
  162. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js +13 -4
  163. package/build-module/angle-picker-control/styles/angle-picker-control-styles.js.map +1 -1
  164. package/build-module/autocomplete/index.js +9 -10
  165. package/build-module/autocomplete/index.js.map +1 -1
  166. package/build-module/base-control/styles/base-control-styles.js +8 -8
  167. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  168. package/build-module/base-field/styles.js +5 -5
  169. package/build-module/base-field/styles.js.map +1 -1
  170. package/build-module/box-control/styles/box-control-visualizer-styles.js +8 -8
  171. package/build-module/box-control/styles/box-control-visualizer-styles.js.map +1 -1
  172. package/build-module/color-list-picker/index.js +13 -5
  173. package/build-module/color-list-picker/index.js.map +1 -1
  174. package/build-module/color-palette/index.js +22 -11
  175. package/build-module/color-palette/index.js.map +1 -1
  176. package/build-module/color-palette/index.native.js +4 -4
  177. package/build-module/color-palette/index.native.js.map +1 -1
  178. package/build-module/combobox-control/index.js +6 -3
  179. package/build-module/combobox-control/index.js.map +1 -1
  180. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  181. package/build-module/custom-gradient-picker/gradient-bar/constants.js.map +1 -0
  182. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +34 -41
  183. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -0
  184. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -1
  185. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -0
  186. package/build-module/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  187. package/build-module/custom-gradient-picker/gradient-bar/utils.js.map +1 -0
  188. package/build-module/custom-gradient-picker/index.js +16 -3
  189. package/build-module/custom-gradient-picker/index.js.map +1 -1
  190. package/build-module/custom-select-control/index.js +20 -12
  191. package/build-module/custom-select-control/index.js.map +1 -1
  192. package/build-module/custom-select-control/styles.js +22 -0
  193. package/build-module/custom-select-control/styles.js.map +1 -0
  194. package/build-module/date-time/constants.js +2 -0
  195. package/build-module/date-time/constants.js.map +1 -0
  196. package/build-module/date-time/date/index.js +178 -184
  197. package/build-module/date-time/date/index.js.map +1 -1
  198. package/build-module/date-time/date/styles.js +47 -38
  199. package/build-module/date-time/date/styles.js.map +1 -1
  200. package/build-module/date-time/date-time/index.js +4 -2
  201. package/build-module/date-time/date-time/index.js.map +1 -1
  202. package/build-module/date-time/time/index.js +20 -16
  203. package/build-module/date-time/time/index.js.map +1 -1
  204. package/build-module/date-time/utils.js +19 -0
  205. package/build-module/date-time/utils.js.map +1 -0
  206. package/build-module/dimension-control/index.js +1 -5
  207. package/build-module/dimension-control/index.js.map +1 -1
  208. package/build-module/disabled/index.js +28 -11
  209. package/build-module/disabled/index.js.map +1 -1
  210. package/build-module/disabled/styles/disabled-styles.js +3 -3
  211. package/build-module/disabled/styles/disabled-styles.js.map +1 -1
  212. package/build-module/{swatch → disabled}/types.js +0 -0
  213. package/build-module/{swatch → disabled}/types.js.map +0 -0
  214. package/build-module/dropdown/index.js +5 -6
  215. package/build-module/dropdown/index.js.map +1 -1
  216. package/build-module/duotone-picker/custom-duotone-bar.js +1 -1
  217. package/build-module/duotone-picker/custom-duotone-bar.js.map +1 -1
  218. package/build-module/duotone-picker/duotone-picker.js +7 -1
  219. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  220. package/build-module/duotone-picker/duotone-swatch.js +11 -3
  221. package/build-module/duotone-picker/duotone-swatch.js.map +1 -1
  222. package/build-module/focal-point-picker/index.js +4 -5
  223. package/build-module/focal-point-picker/index.js.map +1 -1
  224. package/build-module/focal-point-picker/styles/focal-point-style.js +4 -4
  225. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  226. package/build-module/font-size-picker/index.js +39 -14
  227. package/build-module/font-size-picker/index.js.map +1 -1
  228. package/build-module/font-size-picker/utils.js +31 -23
  229. package/build-module/font-size-picker/utils.js.map +1 -1
  230. package/build-module/form-token-field/index.js +12 -6
  231. package/build-module/form-token-field/index.js.map +1 -1
  232. package/build-module/gradient-picker/index.js +14 -3
  233. package/build-module/gradient-picker/index.js.map +1 -1
  234. package/build-module/guide/index.js +5 -3
  235. package/build-module/guide/index.js.map +1 -1
  236. package/build-module/guide/page-control.js +3 -6
  237. package/build-module/guide/page-control.js.map +1 -1
  238. package/build-module/item-group/styles.js +10 -10
  239. package/build-module/item-group/styles.js.map +1 -1
  240. package/build-module/mobile/bottom-sheet/index.native.js +3 -5
  241. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  242. package/build-module/mobile/global-styles-context/utils.native.js +2 -1
  243. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  244. package/build-module/mobile/image/index.native.js +8 -28
  245. package/build-module/mobile/image/index.native.js.map +1 -1
  246. package/build-module/mobile/picker/index.android.js +3 -3
  247. package/build-module/mobile/picker/index.android.js.map +1 -1
  248. package/build-module/modal/index.js +1 -2
  249. package/build-module/modal/index.js.map +1 -1
  250. package/build-module/navigable-container/container.js +9 -7
  251. package/build-module/navigable-container/container.js.map +1 -1
  252. package/build-module/navigator/navigator-back-button/hook.js +0 -4
  253. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  254. package/build-module/navigator/navigator-button/hook.js +0 -4
  255. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  256. package/build-module/notice/list.js +10 -5
  257. package/build-module/notice/list.js.map +1 -1
  258. package/build-module/palette-edit/index.js +1 -0
  259. package/build-module/palette-edit/index.js.map +1 -1
  260. package/build-module/palette-edit/styles.js +10 -10
  261. package/build-module/palette-edit/styles.js.map +1 -1
  262. package/build-module/popover/index.js +100 -98
  263. package/build-module/popover/index.js.map +1 -1
  264. package/build-module/popover/utils.js +164 -0
  265. package/build-module/popover/utils.js.map +1 -0
  266. package/build-module/range-control/index.js +3 -0
  267. package/build-module/range-control/index.js.map +1 -1
  268. package/build-module/range-control/styles/range-control-styles.js +43 -37
  269. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  270. package/build-module/select-control/chevron-down.js +21 -0
  271. package/build-module/select-control/chevron-down.js.map +1 -0
  272. package/build-module/select-control/index.js +7 -7
  273. package/build-module/select-control/index.js.map +1 -1
  274. package/build-module/select-control/styles/select-control-styles.js +24 -13
  275. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  276. package/build-module/snackbar/list.js +5 -2
  277. package/build-module/snackbar/list.js.map +1 -1
  278. package/build-module/spinner/index.js +2 -0
  279. package/build-module/spinner/index.js.map +1 -1
  280. package/build-module/text/styles.js +7 -7
  281. package/build-module/text/styles.js.map +1 -1
  282. package/build-module/toggle-group-control/toggle-group-control/component.js +14 -7
  283. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  284. package/build-module/toggle-group-control/toggle-group-control/styles.js +5 -4
  285. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  286. package/build-module/toggle-group-control/toggle-group-control-option/component.js +17 -3
  287. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  288. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +5 -1
  289. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  290. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +16 -6
  291. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  292. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +27 -5
  293. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  294. package/build-module/tools-panel/styles.js +11 -11
  295. package/build-module/tools-panel/styles.js.map +1 -1
  296. package/build-module/ui/context/context-connect.js +1 -2
  297. package/build-module/ui/context/context-connect.js.map +1 -1
  298. package/build-module/unit-control/index.js +2 -2
  299. package/build-module/unit-control/index.js.map +1 -1
  300. package/build-module/utils/colors-values.js +52 -141
  301. package/build-module/utils/colors-values.js.map +1 -1
  302. package/build-module/utils/config-values.js +1 -1
  303. package/build-module/utils/config-values.js.map +1 -1
  304. package/build-module/utils/input/input-control.js +1 -1
  305. package/build-module/utils/input/input-control.js.map +1 -1
  306. package/build-module/utils/rtl.js +6 -4
  307. package/build-module/utils/rtl.js.map +1 -1
  308. package/build-module/utils/strings.js +37 -0
  309. package/build-module/utils/strings.js.map +1 -0
  310. package/build-style/style-rtl.css +176 -1227
  311. package/build-style/style.css +171 -1225
  312. package/build-types/color-palette/index.d.ts +2 -1
  313. package/build-types/color-palette/index.d.ts.map +1 -1
  314. package/build-types/color-picker/styles.d.ts +2 -2
  315. package/build-types/date-time/constants.d.ts +2 -0
  316. package/build-types/date-time/constants.d.ts.map +1 -0
  317. package/build-types/date-time/date/index.d.ts +3 -1
  318. package/build-types/date-time/date/index.d.ts.map +1 -1
  319. package/build-types/date-time/date/styles.d.ts +22 -8
  320. package/build-types/date-time/date/styles.d.ts.map +1 -1
  321. package/build-types/date-time/date/test/index.d.ts +1 -1
  322. package/build-types/date-time/date/test/index.d.ts.map +1 -1
  323. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  324. package/build-types/date-time/time/index.d.ts.map +1 -1
  325. package/build-types/date-time/utils.d.ts +8 -0
  326. package/build-types/date-time/utils.d.ts.map +1 -0
  327. package/build-types/disabled/index.d.ts +35 -28
  328. package/build-types/disabled/index.d.ts.map +1 -1
  329. package/build-types/disabled/stories/index.d.ts +13 -0
  330. package/build-types/disabled/stories/index.d.ts.map +1 -0
  331. package/build-types/disabled/styles/disabled-styles.d.ts +2 -1
  332. package/build-types/disabled/styles/disabled-styles.d.ts.map +1 -1
  333. package/build-types/disabled/test/index.d.ts +2 -0
  334. package/build-types/{flyout/flyout → disabled/test}/index.d.ts.map +1 -1
  335. package/build-types/disabled/types.d.ts +14 -0
  336. package/build-types/disabled/types.d.ts.map +1 -0
  337. package/build-types/dropdown/index.d.ts.map +1 -1
  338. package/build-types/form-token-field/index.d.ts.map +1 -1
  339. package/build-types/form-token-field/stories/index.d.ts +1 -0
  340. package/build-types/form-token-field/stories/index.d.ts.map +1 -1
  341. package/build-types/form-token-field/types.d.ts +7 -0
  342. package/build-types/form-token-field/types.d.ts.map +1 -1
  343. package/build-types/navigator/navigator-back-button/hook.d.ts +0 -3
  344. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  345. package/build-types/navigator/navigator-button/hook.d.ts +0 -3
  346. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  347. package/build-types/placeholder/test/index.d.ts +2 -0
  348. package/build-types/{flyout → placeholder/test}/index.d.ts.map +1 -1
  349. package/build-types/popover/index.d.ts +1 -1
  350. package/build-types/popover/index.d.ts.map +1 -1
  351. package/build-types/popover/utils.d.ts +26 -69
  352. package/build-types/popover/utils.d.ts.map +1 -1
  353. package/build-types/range-control/index.d.ts +2 -2
  354. package/build-types/range-control/index.d.ts.map +1 -1
  355. package/build-types/range-control/styles/range-control-styles.d.ts +5 -2
  356. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  357. package/build-types/range-control/types.d.ts +2 -2
  358. package/build-types/range-control/types.d.ts.map +1 -1
  359. package/build-types/select-control/chevron-down.d.ts +4 -0
  360. package/build-types/select-control/chevron-down.d.ts.map +1 -0
  361. package/build-types/select-control/index.d.ts.map +1 -1
  362. package/build-types/select-control/styles/select-control-styles.d.ts +8 -0
  363. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  364. package/build-types/spinner/index.d.ts.map +1 -1
  365. package/build-types/toggle-group-control/stories/index.d.ts +25 -0
  366. package/build-types/toggle-group-control/stories/index.d.ts.map +1 -0
  367. package/build-types/toggle-group-control/test/index.d.ts +2 -0
  368. package/build-types/toggle-group-control/test/index.d.ts.map +1 -0
  369. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +6 -3
  370. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  371. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -0
  372. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  373. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -7
  374. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  375. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  376. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +4 -0
  377. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  378. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +11 -9
  379. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  380. package/build-types/toggle-group-control/types.d.ts +23 -10
  381. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  382. package/build-types/ui/context/context-connect.d.ts +3 -0
  383. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  384. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  385. package/build-types/unit-control/index.d.ts +2 -1
  386. package/build-types/unit-control/index.d.ts.map +1 -1
  387. package/build-types/unit-control/types.d.ts +5 -1
  388. package/build-types/unit-control/types.d.ts.map +1 -1
  389. package/build-types/utils/colors-values.d.ts +18 -97
  390. package/build-types/utils/colors-values.d.ts.map +1 -1
  391. package/build-types/utils/rtl.d.ts.map +1 -1
  392. package/build-types/utils/strings.d.ts +2 -0
  393. package/build-types/utils/strings.d.ts.map +1 -0
  394. package/package.json +22 -21
  395. package/src/alignment-matrix-control/index.js +1 -1
  396. package/src/alignment-matrix-control/stories/index.js +49 -24
  397. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +1 -3
  398. package/src/angle-picker-control/index.js +7 -1
  399. package/src/angle-picker-control/stories/index.js +8 -5
  400. package/src/angle-picker-control/styles/angle-picker-control-styles.js +12 -3
  401. package/src/autocomplete/index.js +9 -18
  402. package/src/base-control/styles/base-control-styles.ts +1 -1
  403. package/src/base-field/styles.js +1 -1
  404. package/src/base-field/test/__snapshots__/index.js.snap +2 -2
  405. package/src/box-control/styles/box-control-visualizer-styles.js +0 -1
  406. package/src/box-control/test/index.js +8 -8
  407. package/src/button/test/index.js +188 -146
  408. package/src/color-list-picker/index.js +15 -3
  409. package/src/color-list-picker/style.scss +11 -0
  410. package/src/color-palette/index.js +32 -16
  411. package/src/color-palette/index.native.js +10 -6
  412. package/src/color-palette/stories/index.js +1 -1
  413. package/src/color-palette/test/__snapshots__/index.js.snap +17 -3
  414. package/src/combobox-control/index.js +6 -5
  415. package/src/combobox-control/stories/index.js +9 -3
  416. package/src/combobox-control/style.scss +0 -1
  417. package/src/confirm-dialog/test/index.js +85 -62
  418. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/constants.js +0 -0
  419. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/control-points.js +54 -50
  420. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/index.js +0 -3
  421. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/test/utils.js +0 -0
  422. package/src/{custom-gradient-bar → custom-gradient-picker/gradient-bar}/utils.js +0 -0
  423. package/src/custom-gradient-picker/index.js +18 -3
  424. package/src/custom-gradient-picker/stories/index.js +4 -3
  425. package/src/custom-gradient-picker/style.scss +30 -27
  426. package/src/custom-select-control/README.md +10 -0
  427. package/src/custom-select-control/index.js +22 -16
  428. package/src/custom-select-control/stories/index.js +1 -1
  429. package/src/custom-select-control/style.scss +0 -12
  430. package/src/custom-select-control/styles.ts +28 -0
  431. package/src/custom-select-control/test/index.js +4 -1
  432. package/src/date-time/constants.ts +1 -0
  433. package/src/date-time/date/index.tsx +289 -184
  434. package/src/date-time/date/styles.ts +86 -27
  435. package/src/date-time/date/test/index.tsx +18 -28
  436. package/src/date-time/date-time/index.tsx +3 -2
  437. package/src/date-time/time/index.tsx +23 -19
  438. package/src/date-time/utils.ts +17 -0
  439. package/src/dimension-control/index.js +1 -5
  440. package/src/disabled/index.tsx +80 -0
  441. package/src/disabled/stories/index.tsx +87 -0
  442. package/src/disabled/styles/{disabled-styles.js → disabled-styles.tsx} +0 -0
  443. package/src/disabled/test/index.tsx +174 -0
  444. package/src/disabled/types.ts +13 -0
  445. package/src/dropdown/index.js +3 -5
  446. package/src/dropdown-menu/stories/index.js +13 -2
  447. package/src/duotone-picker/custom-duotone-bar.js +1 -1
  448. package/src/duotone-picker/duotone-picker.js +34 -26
  449. package/src/duotone-picker/duotone-swatch.js +12 -5
  450. package/src/duotone-picker/stories/duotone-picker.js +66 -0
  451. package/src/duotone-picker/stories/duotone-swatch.js +32 -0
  452. package/src/focal-point-picker/index.js +10 -5
  453. package/src/focal-point-picker/styles/focal-point-style.js +0 -1
  454. package/src/focal-point-picker/test/index.js +78 -45
  455. package/src/font-size-picker/index.js +161 -144
  456. package/src/font-size-picker/stories/index.js +1 -0
  457. package/src/font-size-picker/style.scss +8 -5
  458. package/src/font-size-picker/test/index.js +13 -6
  459. package/src/font-size-picker/test/{util.js → utils.js} +77 -1
  460. package/src/font-size-picker/utils.js +38 -23
  461. package/src/form-token-field/README.md +1 -0
  462. package/src/form-token-field/index.tsx +24 -10
  463. package/src/form-token-field/stories/index.tsx +8 -0
  464. package/src/form-token-field/test/index.js +31 -0
  465. package/src/form-token-field/types.ts +7 -0
  466. package/src/gradient-picker/index.js +22 -7
  467. package/src/gradient-picker/stories/index.js +56 -81
  468. package/src/guide/index.js +3 -1
  469. package/src/guide/page-control.js +1 -6
  470. package/src/guide/stories/index.js +12 -11
  471. package/src/guide/test/index.js +54 -37
  472. package/src/guide/test/page-control.js +14 -17
  473. package/src/higher-order/with-notices/test/index.js +4 -2
  474. package/src/higher-order/with-spoken-messages/test/index.js +1 -1
  475. package/src/item-group/styles.ts +3 -3
  476. package/src/menu-group/test/index.js +18 -7
  477. package/src/mobile/bottom-sheet/index.native.js +2 -4
  478. package/src/mobile/global-styles-context/utils.native.js +2 -1
  479. package/src/mobile/image/index.native.js +9 -30
  480. package/src/mobile/picker/index.android.js +10 -4
  481. package/src/mobile/picker/styles.native.scss +4 -4
  482. package/src/modal/index.js +1 -2
  483. package/src/modal/test/index.js +11 -9
  484. package/src/navigable-container/container.js +12 -18
  485. package/src/navigable-container/test/menu.js +14 -11
  486. package/src/navigator/navigator-back-button/hook.ts +0 -3
  487. package/src/navigator/navigator-button/hook.ts +0 -3
  488. package/src/notice/list.js +12 -10
  489. package/src/palette-edit/index.js +1 -0
  490. package/src/palette-edit/styles.js +6 -5
  491. package/src/placeholder/README.md +1 -1
  492. package/src/placeholder/style.scss +65 -20
  493. package/src/placeholder/test/index.tsx +174 -0
  494. package/src/popover/index.js +133 -112
  495. package/src/popover/stories/index.js +17 -3
  496. package/src/popover/test/__snapshots__/index.js.snap +6 -6
  497. package/src/popover/test/index.js +129 -36
  498. package/src/popover/utils.js +107 -0
  499. package/src/range-control/index.tsx +3 -0
  500. package/src/range-control/styles/range-control-styles.ts +9 -4
  501. package/src/range-control/types.ts +5 -2
  502. package/src/select-control/chevron-down.tsx +25 -0
  503. package/src/select-control/index.tsx +6 -9
  504. package/src/select-control/styles/select-control-styles.ts +23 -14
  505. package/src/slot-fill/test/slot.js +5 -5
  506. package/src/snackbar/list.js +3 -2
  507. package/src/spinner/index.tsx +2 -0
  508. package/src/style.scss +0 -2
  509. package/src/text/styles.js +1 -1
  510. package/src/text/test/index.tsx +1 -1
  511. package/src/toggle-group-control/stories/index.tsx +127 -0
  512. package/src/toggle-group-control/test/__snapshots__/{index.js.snap → index.tsx.snap} +28 -22
  513. package/src/toggle-group-control/test/{index.js → index.tsx} +2 -4
  514. package/src/toggle-group-control/toggle-group-control/README.md +2 -0
  515. package/src/toggle-group-control/toggle-group-control/component.tsx +18 -9
  516. package/src/toggle-group-control/toggle-group-control/styles.ts +9 -6
  517. package/src/toggle-group-control/toggle-group-control-option/component.tsx +19 -3
  518. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +3 -0
  519. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +18 -0
  520. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +6 -8
  521. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +30 -7
  522. package/src/toggle-group-control/types.ts +74 -59
  523. package/src/toolbar/test/index.js +4 -4
  524. package/src/toolbar-group/test/index.js +9 -15
  525. package/src/tools-panel/styles.ts +2 -2
  526. package/src/tools-panel/test/index.js +3 -2
  527. package/src/tooltip/test/index.js +188 -172
  528. package/src/ui/context/context-connect.ts +3 -2
  529. package/src/unit-control/index.tsx +2 -2
  530. package/src/unit-control/types.ts +10 -1
  531. package/src/utils/colors-values.js +42 -137
  532. package/src/utils/config-values.js +1 -1
  533. package/src/utils/input/input-control.js +6 -6
  534. package/src/utils/rtl.js +6 -2
  535. package/src/utils/strings.ts +72 -0
  536. package/src/utils/test/strings.js +15 -0
  537. package/tsconfig.json +0 -1
  538. package/tsconfig.tsbuildinfo +1 -1
  539. package/build/custom-gradient-bar/constants.js.map +0 -1
  540. package/build/custom-gradient-bar/control-points.js.map +0 -1
  541. package/build/custom-gradient-bar/index.js.map +0 -1
  542. package/build/custom-gradient-bar/utils.js.map +0 -1
  543. package/build/date-time/date/utils.js +0 -34
  544. package/build/date-time/date/utils.js.map +0 -1
  545. package/build/swatch/index.js +0 -41
  546. package/build/swatch/index.js.map +0 -1
  547. package/build-module/custom-gradient-bar/constants.js.map +0 -1
  548. package/build-module/custom-gradient-bar/control-points.js.map +0 -1
  549. package/build-module/custom-gradient-bar/index.js.map +0 -1
  550. package/build-module/custom-gradient-bar/utils.js.map +0 -1
  551. package/build-module/date-time/date/utils.js +0 -22
  552. package/build-module/date-time/date/utils.js.map +0 -1
  553. package/build-module/swatch/index.js +0 -30
  554. package/build-module/swatch/index.js.map +0 -1
  555. package/build-types/color-picker/color-display.d.ts +0 -13
  556. package/build-types/color-picker/color-display.d.ts.map +0 -1
  557. package/build-types/date-time/date/test/utils.d.ts +0 -2
  558. package/build-types/date-time/date/test/utils.d.ts.map +0 -1
  559. package/build-types/date-time/date/utils.d.ts +0 -15
  560. package/build-types/date-time/date/utils.d.ts.map +0 -1
  561. package/build-types/flyout/context.d.ts +0 -6
  562. package/build-types/flyout/context.d.ts.map +0 -1
  563. package/build-types/flyout/flyout/component.d.ts +0 -21
  564. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  565. package/build-types/flyout/flyout/hook.d.ts +0 -270
  566. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  567. package/build-types/flyout/flyout/index.d.ts +0 -3
  568. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  569. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  570. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  571. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  572. package/build-types/flyout/index.d.ts +0 -2
  573. package/build-types/flyout/styles.d.ts +0 -22
  574. package/build-types/flyout/styles.d.ts.map +0 -1
  575. package/build-types/flyout/types.d.ts +0 -80
  576. package/build-types/flyout/types.d.ts.map +0 -1
  577. package/build-types/flyout/utils.d.ts +0 -8
  578. package/build-types/flyout/utils.d.ts.map +0 -1
  579. package/build-types/swatch/index.d.ts +0 -5
  580. package/build-types/swatch/index.d.ts.map +0 -1
  581. package/build-types/swatch/types.d.ts +0 -11
  582. package/build-types/swatch/types.d.ts.map +0 -1
  583. package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
  584. package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
  585. package/src/date-time/date/datepicker.scss +0 -863
  586. package/src/date-time/date/style.scss +0 -85
  587. package/src/date-time/date/test/utils.ts +0 -32
  588. package/src/date-time/date/utils.ts +0 -20
  589. package/src/date-time/style.scss +0 -1
  590. package/src/disabled/index.js +0 -55
  591. package/src/disabled/stories/index.js +0 -61
  592. package/src/disabled/test/index.js +0 -240
  593. package/src/menu-group/test/__snapshots__/index.js.snap +0 -23
  594. package/src/placeholder/test/index.js +0 -163
  595. package/src/swatch/index.tsx +0 -22
  596. package/src/swatch/style.scss +0 -21
  597. package/src/swatch/types.ts +0 -11
  598. package/src/toggle-group-control/stories/index.js +0 -203
  599. package/src/tools-panel/test/__snapshots__/index.js.snap +0 -210
@@ -1,3 +1,8 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classNames from 'classnames';
5
+
1
6
  /**
2
7
  * WordPress dependencies
3
8
  */
@@ -26,9 +31,21 @@ import {
26
31
  isSimpleCssValue,
27
32
  CUSTOM_FONT_SIZE,
28
33
  } from './utils';
34
+ import { VStack } from '../v-stack';
35
+ import { HStack } from '../h-stack';
36
+
37
+ // This conditional is needed to maintain the spacing before the slider in the `withSlider` case.
38
+ const MaybeVStack = ( { __nextHasNoMarginBottom, children } ) =>
39
+ ! __nextHasNoMarginBottom ? (
40
+ children
41
+ ) : (
42
+ <VStack spacing={ 6 } children={ children } />
43
+ );
29
44
 
30
45
  function FontSizePicker(
31
46
  {
47
+ /** Start opting into the new margin-free styles that will become the default in a future version. */
48
+ __nextHasNoMarginBottom = false,
32
49
  fallbackFontSize,
33
50
  fontSizes = [],
34
51
  disableCustomFontSizes = false,
@@ -63,15 +80,9 @@ function FontSizePicker(
63
80
  getFontSizeOptions(
64
81
  shouldUseSelectControl,
65
82
  fontSizes,
66
- disableCustomFontSizes,
67
- fontSizesContainComplexValues
83
+ disableCustomFontSizes
68
84
  ),
69
- [
70
- shouldUseSelectControl,
71
- fontSizes,
72
- disableCustomFontSizes,
73
- fontSizesContainComplexValues,
74
- ]
85
+ [ shouldUseSelectControl, fontSizes, disableCustomFontSizes ]
75
86
  );
76
87
  const selectedOption = getSelectedOption( fontSizes, value );
77
88
  const isCustomValue = selectedOption.slug === CUSTOM_FONT_SIZE;
@@ -94,6 +105,7 @@ function FontSizePicker(
94
105
  `(${ selectedOption?.size })`
95
106
  );
96
107
  }
108
+
97
109
  // Calculate the `hint` for toggle group control.
98
110
  let hint = selectedOption.name;
99
111
  if (
@@ -129,155 +141,160 @@ function FontSizePicker(
129
141
  return (
130
142
  <fieldset className={ baseClassName } { ...( ref ? {} : { ref } ) }>
131
143
  <VisuallyHidden as="legend">{ __( 'Font size' ) }</VisuallyHidden>
132
- <Flex
133
- justify="space-between"
134
- className={ `${ baseClassName }__header` }
135
- >
136
- <FlexItem>
137
- <BaseControl.VisualLabel>
138
- { __( 'Size' ) }
139
- { headerHint && (
140
- <span
141
- className={ `${ baseClassName }__header__hint` }
142
- >
143
- { headerHint }
144
- </span>
145
- ) }
146
- </BaseControl.VisualLabel>
147
- </FlexItem>
144
+ <HStack className={ `${ baseClassName }__header` }>
145
+ <BaseControl.VisualLabel>
146
+ { __( 'Size' ) }
147
+ { headerHint && (
148
+ <span className={ `${ baseClassName }__header__hint` }>
149
+ { headerHint }
150
+ </span>
151
+ ) }
152
+ </BaseControl.VisualLabel>
148
153
  { ! disableCustomFontSizes && (
149
- <FlexItem>
150
- <Button
151
- label={
152
- showCustomValueControl
153
- ? __( 'Use size preset' )
154
- : __( 'Set custom size' )
155
- }
156
- icon={ settings }
157
- onClick={ () => {
158
- setShowCustomValueControl(
159
- ! showCustomValueControl
160
- );
161
- } }
162
- isPressed={ showCustomValueControl }
163
- isSmall
164
- />
165
- </FlexItem>
154
+ <Button
155
+ label={
156
+ showCustomValueControl
157
+ ? __( 'Use size preset' )
158
+ : __( 'Set custom size' )
159
+ }
160
+ icon={ settings }
161
+ onClick={ () => {
162
+ setShowCustomValueControl(
163
+ ! showCustomValueControl
164
+ );
165
+ } }
166
+ isPressed={ showCustomValueControl }
167
+ isSmall
168
+ />
166
169
  ) }
167
- </Flex>
168
- <div className={ `${ baseClassName }__controls` }>
169
- { !! fontSizes.length &&
170
- shouldUseSelectControl &&
171
- ! showCustomValueControl && (
172
- <CustomSelectControl
173
- __nextUnconstrainedWidth
174
- className={ `${ baseClassName }__select` }
170
+ </HStack>
171
+ <MaybeVStack __nextHasNoMarginBottom={ __nextHasNoMarginBottom }>
172
+ <div
173
+ className={ classNames( `${ baseClassName }__controls`, {
174
+ 'is-next-has-no-margin-bottom': __nextHasNoMarginBottom,
175
+ } ) }
176
+ >
177
+ { !! fontSizes.length &&
178
+ shouldUseSelectControl &&
179
+ ! showCustomValueControl && (
180
+ <CustomSelectControl
181
+ __nextUnconstrainedWidth
182
+ className={ `${ baseClassName }__select` }
183
+ label={ __( 'Font size' ) }
184
+ hideLabelFromVision
185
+ describedBy={ currentFontSizeSR }
186
+ options={ options }
187
+ value={ options.find(
188
+ ( option ) =>
189
+ option.key === selectedOption.slug
190
+ ) }
191
+ onChange={ ( { selectedItem } ) => {
192
+ onChange(
193
+ hasUnits
194
+ ? selectedItem.size
195
+ : Number( selectedItem.size )
196
+ );
197
+ if (
198
+ selectedItem.key === CUSTOM_FONT_SIZE
199
+ ) {
200
+ setShowCustomValueControl( true );
201
+ }
202
+ } }
203
+ size={ size }
204
+ />
205
+ ) }
206
+ { ! shouldUseSelectControl && ! showCustomValueControl && (
207
+ <ToggleGroupControl
208
+ __nextHasNoMarginBottom={ __nextHasNoMarginBottom }
175
209
  label={ __( 'Font size' ) }
176
210
  hideLabelFromVision
177
- describedBy={ currentFontSizeSR }
178
- options={ options }
179
- value={ options.find(
180
- ( option ) => option.key === selectedOption.slug
181
- ) }
182
- onChange={ ( { selectedItem } ) => {
211
+ value={ value }
212
+ onChange={ ( newValue ) => {
183
213
  onChange(
184
- hasUnits
185
- ? selectedItem.size
186
- : Number( selectedItem.size )
214
+ hasUnits ? newValue : Number( newValue )
187
215
  );
188
- if ( selectedItem.key === CUSTOM_FONT_SIZE ) {
189
- setShowCustomValueControl( true );
190
- }
191
216
  } }
217
+ isBlock
192
218
  size={ size }
193
- />
194
- ) }
195
- { ! shouldUseSelectControl && ! showCustomValueControl && (
196
- <ToggleGroupControl
197
- label={ __( 'Font size' ) }
198
- hideLabelFromVision
199
- value={ value }
200
- onChange={ ( newValue ) => {
201
- onChange(
202
- hasUnits ? newValue : Number( newValue )
203
- );
204
- } }
205
- isBlock
206
- size={ size }
207
- >
208
- { options.map( ( option ) => (
209
- <ToggleGroupControlOption
210
- key={ option.key }
211
- value={ option.value }
212
- label={ option.label }
213
- aria-label={ option.name }
214
- showTooltip={ true }
215
- />
216
- ) ) }
217
- </ToggleGroupControl>
218
- ) }
219
- { ! withSlider &&
220
- ! disableCustomFontSizes &&
221
- showCustomValueControl && (
222
- <Flex
223
- justify="space-between"
224
- className={ `${ baseClassName }__custom-size-control` }
225
219
  >
226
- <FlexItem isBlock>
227
- <UnitControl
228
- label={ __( 'Custom' ) }
229
- labelPosition="top"
230
- hideLabelFromVision
231
- value={ value }
232
- onChange={ ( nextSize ) => {
233
- if (
234
- 0 === parseFloat( nextSize ) ||
235
- ! nextSize
236
- ) {
237
- onChange( undefined );
238
- } else {
239
- onChange(
240
- hasUnits
241
- ? nextSize
242
- : parseInt( nextSize, 10 )
243
- );
244
- }
245
- } }
246
- size={ size }
247
- units={ hasUnits ? units : [] }
220
+ { options.map( ( option ) => (
221
+ <ToggleGroupControlOption
222
+ key={ option.key }
223
+ value={ option.value }
224
+ label={ option.label }
225
+ aria-label={ option.name }
226
+ showTooltip={ true }
248
227
  />
249
- </FlexItem>
250
- { withReset && (
228
+ ) ) }
229
+ </ToggleGroupControl>
230
+ ) }
231
+ { ! withSlider &&
232
+ ! disableCustomFontSizes &&
233
+ showCustomValueControl && (
234
+ <Flex
235
+ justify="space-between"
236
+ className={ `${ baseClassName }__custom-size-control` }
237
+ >
251
238
  <FlexItem isBlock>
252
- <Button
253
- className="components-color-palette__clear"
254
- disabled={ value === undefined }
255
- onClick={ () => {
256
- onChange( undefined );
239
+ <UnitControl
240
+ label={ __( 'Custom' ) }
241
+ labelPosition="top"
242
+ hideLabelFromVision
243
+ value={ value }
244
+ onChange={ ( nextSize ) => {
245
+ if (
246
+ 0 === parseFloat( nextSize ) ||
247
+ ! nextSize
248
+ ) {
249
+ onChange( undefined );
250
+ } else {
251
+ onChange(
252
+ hasUnits
253
+ ? nextSize
254
+ : parseInt(
255
+ nextSize,
256
+ 10
257
+ )
258
+ );
259
+ }
257
260
  } }
258
- isSmall
259
- variant="secondary"
260
- >
261
- { __( 'Reset' ) }
262
- </Button>
261
+ size={ size }
262
+ units={ hasUnits ? units : [] }
263
+ />
263
264
  </FlexItem>
264
- ) }
265
- </Flex>
266
- ) }
267
- </div>
268
- { withSlider && (
269
- <RangeControl
270
- className={ `${ baseClassName }__custom-input` }
271
- label={ __( 'Custom Size' ) }
272
- value={ ( isPixelValue && noUnitsValue ) || '' }
273
- initialPosition={ fallbackFontSize }
274
- onChange={ ( newValue ) => {
275
- onChange( hasUnits ? newValue + 'px' : newValue );
276
- } }
277
- min={ 12 }
278
- max={ 100 }
279
- />
280
- ) }
265
+ { withReset && (
266
+ <FlexItem isBlock>
267
+ <Button
268
+ className="components-color-palette__clear"
269
+ disabled={ value === undefined }
270
+ onClick={ () => {
271
+ onChange( undefined );
272
+ } }
273
+ isSmall
274
+ variant="secondary"
275
+ >
276
+ { __( 'Reset' ) }
277
+ </Button>
278
+ </FlexItem>
279
+ ) }
280
+ </Flex>
281
+ ) }
282
+ </div>
283
+ { withSlider && (
284
+ <RangeControl
285
+ __nextHasNoMarginBottom={ __nextHasNoMarginBottom }
286
+ className={ `${ baseClassName }__custom-input` }
287
+ label={ __( 'Custom Size' ) }
288
+ value={ ( isPixelValue && noUnitsValue ) || '' }
289
+ initialPosition={ fallbackFontSize }
290
+ onChange={ ( newValue ) => {
291
+ onChange( hasUnits ? newValue + 'px' : newValue );
292
+ } }
293
+ min={ 12 }
294
+ max={ 100 }
295
+ />
296
+ ) }
297
+ </MaybeVStack>
281
298
  </fieldset>
282
299
  );
283
300
  }
@@ -12,6 +12,7 @@ export default {
12
12
  title: 'Components/FontSizePicker',
13
13
  component: FontSizePicker,
14
14
  argTypes: {
15
+ __nextHasNoMarginBottom: { control: { type: 'boolean' } },
15
16
  initialValue: { table: { disable: true } }, // hide prop because it's not actually part of FontSizePicker
16
17
  fallbackFontSize: {
17
18
  description:
@@ -4,6 +4,10 @@
4
4
  color: $gray-700;
5
5
  }
6
6
 
7
+ .components-base-control__label {
8
+ margin-bottom: 0;
9
+ }
10
+
7
11
  // This button is inheriting padding and min-width.
8
12
  // @todo: we should refactor it to not need to unset this.
9
13
  .components-button.is-small.has-icon:not(.has-text) {
@@ -16,7 +20,10 @@
16
20
  max-width: $sidebar-width - ( 2 * $grid-unit-20 );
17
21
  align-items: center;
18
22
  margin-top: $grid-unit-10;
19
- margin-bottom: $grid-unit-30;
23
+
24
+ &:not(.is-next-has-no-margin-bottom) {
25
+ margin-bottom: $grid-unit-30;
26
+ }
20
27
 
21
28
  .components-unit-control-wrapper {
22
29
  .components-input-control__label {
@@ -26,10 +33,6 @@
26
33
  }
27
34
  }
28
35
 
29
- .components-custom-select-control__button {
30
- width: 100%;
31
- }
32
-
33
36
  // Apply the same height as the isSmall Reset button.
34
37
  .components-font-size-picker__number {
35
38
  @include input-control;
@@ -193,7 +193,7 @@ describe( 'FontSizePicker', () => {
193
193
  expect( element ).toHaveLength( fontSizes.length + 2 );
194
194
  } );
195
195
  describe( 'segmented control', () => {
196
- it( 'should use numeric labels for simple css values', () => {
196
+ it( 'should use t-shirt labels for simple css values', () => {
197
197
  const fontSizes = [ ...options ];
198
198
  render(
199
199
  <FontSizePicker
@@ -203,9 +203,9 @@ describe( 'FontSizePicker', () => {
203
203
  );
204
204
  const element = screen.getByLabelText( 'Large' );
205
205
  expect( element ).toBeInTheDocument();
206
- expect( element.children[ 0 ].textContent ).toBe( '1.7' );
206
+ expect( element.children[ 0 ].textContent ).toBe( 'L' );
207
207
  } );
208
- it( 'should use incremental sequence of numbers as labels if we have complex css', () => {
208
+ it( 'should use incremental sequence of t-shirt sizes as labels if we have complex css', () => {
209
209
  const fontSizes = [
210
210
  ...options,
211
211
  {
@@ -220,9 +220,16 @@ describe( 'FontSizePicker', () => {
220
220
  value={ fontSizes[ 0 ].size }
221
221
  />
222
222
  );
223
- const element = screen.getByLabelText( 'Large' );
224
- expect( element ).toBeInTheDocument();
225
- expect( element.children[ 0 ].textContent ).toBe( '3' );
223
+ const largeElement = screen.getByLabelText( 'Large' );
224
+ expect( largeElement ).toBeInTheDocument();
225
+ expect( largeElement ).toHaveTextContent( 'L' );
226
+
227
+ const extraLargeElement =
228
+ screen.getByLabelText( 'Extra Large' );
229
+ expect( extraLargeElement ).toBeInTheDocument();
230
+ expect( extraLargeElement.children[ 0 ].textContent ).toBe(
231
+ 'XL'
232
+ );
226
233
  } );
227
234
  } );
228
235
  } );
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- import { isSimpleCssValue, splitValueAndUnitFromSize } from '../utils';
4
+ import {
5
+ isSimpleCssValue,
6
+ splitValueAndUnitFromSize,
7
+ getToggleGroupOptions,
8
+ } from '../utils';
5
9
 
6
10
  const simpleCSSCases = [
7
11
  // Test integers and non-integers.
@@ -72,3 +76,75 @@ describe( 'splitValueAndUnitFromSize', () => {
72
76
  }
73
77
  );
74
78
  } );
79
+
80
+ describe( 'getToggleGroupOptions', () => {
81
+ test( 'should assign t-shirt sizes by default up until the aliases length', () => {
82
+ const optionsArray = [
83
+ {
84
+ slug: '1',
85
+ size: '1',
86
+ name: '1',
87
+ },
88
+ {
89
+ slug: '2',
90
+ size: '2',
91
+ name: '2',
92
+ },
93
+ {
94
+ slug: '3',
95
+ size: '3',
96
+ name: '3',
97
+ },
98
+ {
99
+ slug: '4',
100
+ size: '4',
101
+ name: '4',
102
+ },
103
+ {
104
+ slug: '5',
105
+ size: '5',
106
+ name: '5',
107
+ },
108
+ ];
109
+ expect(
110
+ getToggleGroupOptions( optionsArray, [
111
+ 'S',
112
+ 'M',
113
+ 'L',
114
+ 'XL',
115
+ 'XXL',
116
+ ] )
117
+ ).toEqual( [
118
+ {
119
+ key: '1',
120
+ value: '1',
121
+ label: 'S',
122
+ name: '1',
123
+ },
124
+ {
125
+ key: '2',
126
+ value: '2',
127
+ label: 'M',
128
+ name: '2',
129
+ },
130
+ {
131
+ key: '3',
132
+ value: '3',
133
+ label: 'L',
134
+ name: '3',
135
+ },
136
+ {
137
+ key: '4',
138
+ value: '4',
139
+ label: 'XL',
140
+ name: '4',
141
+ },
142
+ {
143
+ key: '5',
144
+ value: '5',
145
+ label: 'XXL',
146
+ name: '5',
147
+ },
148
+ ] );
149
+ } );
150
+ } );
@@ -15,13 +15,22 @@ const CUSTOM_FONT_SIZE_OPTION = {
15
15
  };
16
16
 
17
17
  /**
18
- * In case we have at most five font sizes, where at least one the them
19
- * contain a complex css value(clamp, var, etc..) show a incremental sequence
20
- * of numbers as a label of the font size. We do this because complex css values
21
- * cannot be caluclated properly and the incremental sequence of numbers as labels
22
- * can help the user better mentally map the different available font sizes.
18
+ * In case we have at most five font sizes, show a `T-shirt size`
19
+ * alias as a label of the font size. The label assumes that the font sizes
20
+ * are ordered accordingly - from smallest to largest.
23
21
  */
24
- const FONT_SIZES_ALIASES = [ '1', '2', '3', '4', '5' ];
22
+ const FONT_SIZES_ALIASES = [
23
+ /* translators: S stands for 'small' and is a size label. */
24
+ __( 'S' ),
25
+ /* translators: M stands for 'medium' and is a size label. */
26
+ __( 'M' ),
27
+ /* translators: L stands for 'large' and is a size label. */
28
+ __( 'L' ),
29
+ /* translators: XL stands for 'extra large' and is a size label. */
30
+ __( 'XL' ),
31
+ /* translators: XXL stands for 'extra extra large' and is a size label. */
32
+ __( 'XXL' ),
33
+ ];
25
34
 
26
35
  /**
27
36
  * Helper util to split a font size to its numeric value
@@ -56,24 +65,22 @@ export function isSimpleCssValue( value ) {
56
65
  * Return font size options in the proper format depending
57
66
  * on the currently used control (select, toggle group).
58
67
  *
59
- * @param {boolean} useSelectControl Whether to use a select control.
60
- * @param {Object[]} optionsArray Array of available font sizes objects.
61
- * @param {*} disableCustomFontSizes Flag that indicates if custom font sizes are disabled.
62
- * @param {boolean} optionsContainComplexCssValues Whether font sizes contain at least one complex css value(clamp, var, etc..).
63
- * @return {Object[]|null} Array of font sizes in proper format for the used control.
68
+ * @param {boolean} useSelectControl Whether to use a select control.
69
+ * @param {Object[]} optionsArray Array of available font sizes objects.
70
+ * @param {boolean} disableCustomFontSizes Flag that indicates if custom font sizes are disabled.
71
+ * @return {Object[]|null} Array of font sizes in proper format for the used control.
64
72
  */
65
73
  export function getFontSizeOptions(
66
74
  useSelectControl,
67
75
  optionsArray,
68
- disableCustomFontSizes,
69
- optionsContainComplexCssValues
76
+ disableCustomFontSizes
70
77
  ) {
71
78
  if ( disableCustomFontSizes && ! optionsArray.length ) {
72
79
  return null;
73
80
  }
74
81
  return useSelectControl
75
82
  ? getSelectOptions( optionsArray, disableCustomFontSizes )
76
- : getToggleGroupOptions( optionsArray, optionsContainComplexCssValues );
83
+ : getToggleGroupOptions( optionsArray );
77
84
  }
78
85
 
79
86
  function getSelectOptions( optionsArray, disableCustomFontSizes ) {
@@ -91,16 +98,24 @@ function getSelectOptions( optionsArray, disableCustomFontSizes ) {
91
98
  } ) );
92
99
  }
93
100
 
94
- function getToggleGroupOptions( optionsArray, optionsContainComplexCssValues ) {
101
+ /**
102
+ * Build options for the toggle group options.
103
+ *
104
+ * @param {Array} optionsArray An array of font size options.
105
+ * @param {string[]} labelAliases An array of alternative labels.
106
+ * @return {Array} Remapped optionsArray.
107
+ */
108
+ export function getToggleGroupOptions(
109
+ optionsArray,
110
+ labelAliases = FONT_SIZES_ALIASES
111
+ ) {
95
112
  return optionsArray.map( ( { slug, size, name }, index ) => {
96
- let label = optionsContainComplexCssValues
97
- ? FONT_SIZES_ALIASES[ index ]
98
- : size;
99
- if ( ! optionsContainComplexCssValues && typeof size === 'string' ) {
100
- const [ numericValue ] = splitValueAndUnitFromSize( size );
101
- label = numericValue;
102
- }
103
- return { key: slug, value: size, label, name };
113
+ return {
114
+ key: slug,
115
+ value: size,
116
+ label: labelAliases[ index ],
117
+ name,
118
+ };
104
119
  } );
105
120
  }
106
121
 
@@ -60,6 +60,7 @@ The `value` property is handled in a manner similar to controlled form component
60
60
  - `__experimentalExpandOnFocus` - If true, the suggestions list will be always expanded when the input field has the focus.
61
61
  - `__experimentalShowHowTo` - If false, the text on how to use the select (ie: _Separate with commas or the Enter key._) will be hidden.
62
62
  - `__experimentalValidateInput` - If passed, all introduced values will be validated before being added as tokens.
63
+ - `__experimentalAutoSelectFirstMatch` - If true, the select the first matching suggestion when the user presses the Enter key (or space when tokenizeOnSpace is true).
63
64
 
64
65
  ## Usage
65
66