@wordpress/components 19.7.0 → 19.8.2

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 (420) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/README.md +38 -0
  3. package/build/base-control/index.js +35 -31
  4. package/build/base-control/index.js.map +1 -1
  5. package/build/base-control/styles/base-control-styles.js +18 -18
  6. package/build/base-control/styles/base-control-styles.js.map +1 -1
  7. package/build/base-control/types.js +6 -0
  8. package/build/base-control/types.js.map +1 -0
  9. package/build/border-box-control/border-box-control/component.js +124 -0
  10. package/build/border-box-control/border-box-control/component.js.map +1 -0
  11. package/build/border-box-control/border-box-control/hook.js +113 -0
  12. package/build/border-box-control/border-box-control/hook.js.map +1 -0
  13. package/build/border-box-control/border-box-control/index.js +24 -0
  14. package/build/border-box-control/border-box-control/index.js.map +1 -0
  15. package/build/border-box-control/border-box-control-linked-button/component.js +59 -0
  16. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  17. package/build/border-box-control/border-box-control-linked-button/hook.js +41 -0
  18. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  19. package/build/border-box-control/border-box-control-linked-button/index.js +16 -0
  20. package/build/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  21. package/build/border-box-control/border-box-control-split-controls/component.js +93 -0
  22. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  23. package/build/border-box-control/border-box-control-split-controls/hook.js +45 -0
  24. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  25. package/build/border-box-control/border-box-control-split-controls/index.js +16 -0
  26. package/build/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  27. package/build/border-box-control/border-box-control-visualizer/component.js +40 -0
  28. package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  29. package/build/border-box-control/border-box-control-visualizer/hook.js +43 -0
  30. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  31. package/build/border-box-control/border-box-control-visualizer/index.js +16 -0
  32. package/build/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  33. package/build/border-box-control/index.js +44 -0
  34. package/build/border-box-control/index.js.map +1 -0
  35. package/build/border-box-control/styles.js +76 -0
  36. package/build/border-box-control/styles.js.map +1 -0
  37. package/build/border-box-control/types.js +6 -0
  38. package/build/border-box-control/types.js.map +1 -0
  39. package/build/border-box-control/utils.js +161 -0
  40. package/build/border-box-control/utils.js.map +1 -0
  41. package/build/border-control/border-control/component.js +119 -0
  42. package/build/border-control/border-control/component.js.map +1 -0
  43. package/build/border-control/border-control/hook.js +130 -0
  44. package/build/border-control/border-control/hook.js.map +1 -0
  45. package/build/border-control/border-control/index.js +24 -0
  46. package/build/border-control/border-control/index.js.map +1 -0
  47. package/build/border-control/border-control-dropdown/component.js +196 -0
  48. package/build/border-control/border-control-dropdown/component.js.map +1 -0
  49. package/build/border-control/border-control-dropdown/hook.js +105 -0
  50. package/build/border-control/border-control-dropdown/hook.js.map +1 -0
  51. package/build/border-control/border-control-dropdown/index.js +16 -0
  52. package/build/border-control/border-control-dropdown/index.js.map +1 -0
  53. package/build/border-control/border-control-style-picker/component.js +101 -0
  54. package/build/border-control/border-control-style-picker/component.js.map +1 -0
  55. package/build/border-control/border-control-style-picker/hook.js +45 -0
  56. package/build/border-control/border-control-style-picker/hook.js.map +1 -0
  57. package/build/border-control/border-control-style-picker/index.js +16 -0
  58. package/build/border-control/border-control-style-picker/index.js.map +1 -0
  59. package/build/border-control/index.js +24 -0
  60. package/build/border-control/index.js.map +1 -0
  61. package/build/border-control/styles.js +125 -0
  62. package/build/border-control/styles.js.map +1 -0
  63. package/build/border-control/types.js +6 -0
  64. package/build/border-control/types.js.map +1 -0
  65. package/build/card/styles.js +22 -17
  66. package/build/card/styles.js.map +1 -1
  67. package/build/custom-select-control/index.js +4 -1
  68. package/build/custom-select-control/index.js.map +1 -1
  69. package/build/guide/index.js +14 -8
  70. package/build/guide/index.js.map +1 -1
  71. package/build/index.js +40 -0
  72. package/build/index.js.map +1 -1
  73. package/build/item-group/styles.js +14 -14
  74. package/build/item-group/styles.js.map +1 -1
  75. package/build/mobile/picker/index.android.js +0 -3
  76. package/build/mobile/picker/index.android.js.map +1 -1
  77. package/build/palette-edit/index.js +2 -1
  78. package/build/palette-edit/index.js.map +1 -1
  79. package/build/surface/styles.js +8 -8
  80. package/build/surface/styles.js.map +1 -1
  81. package/build/toggle-group-control/index.js +8 -0
  82. package/build/toggle-group-control/index.js.map +1 -1
  83. package/build/toggle-group-control/toggle-group-control/component.js +10 -1
  84. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  85. package/build/toggle-group-control/toggle-group-control/styles.js +14 -3
  86. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  87. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +90 -0
  88. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  89. package/build/toggle-group-control/toggle-group-control-option/component.js +9 -87
  90. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  91. package/build/toggle-group-control/toggle-group-control-option-base/component.js +127 -0
  92. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  93. package/build/toggle-group-control/toggle-group-control-option-base/index.js +16 -0
  94. package/build/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  95. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +66 -0
  96. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  97. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +55 -0
  98. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  99. package/build/toggle-group-control/toggle-group-control-option-icon/index.js +16 -0
  100. package/build/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  101. package/build/toolbar-dropdown-menu/index.js +1 -1
  102. package/build/toolbar-dropdown-menu/index.js.map +1 -1
  103. package/build/unit-control/index.js +7 -2
  104. package/build/unit-control/index.js.map +1 -1
  105. package/build/utils/colors-values.js +5 -3
  106. package/build/utils/colors-values.js.map +1 -1
  107. package/build/utils/config-values.js +9 -4
  108. package/build/utils/config-values.js.map +1 -1
  109. package/build-module/base-control/index.js +33 -34
  110. package/build-module/base-control/index.js.map +1 -1
  111. package/build-module/base-control/styles/base-control-styles.js +18 -18
  112. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  113. package/build-module/base-control/types.js +2 -0
  114. package/build-module/base-control/types.js.map +1 -0
  115. package/build-module/border-box-control/border-box-control/component.js +104 -0
  116. package/build-module/border-box-control/border-box-control/component.js.map +1 -0
  117. package/build-module/border-box-control/border-box-control/hook.js +97 -0
  118. package/build-module/border-box-control/border-box-control/hook.js.map +1 -0
  119. package/build-module/border-box-control/border-box-control/index.js +3 -0
  120. package/build-module/border-box-control/border-box-control/index.js.map +1 -0
  121. package/build-module/border-box-control/border-box-control-linked-button/component.js +42 -0
  122. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  123. package/build-module/border-box-control/border-box-control-linked-button/hook.js +26 -0
  124. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  125. package/build-module/border-box-control/border-box-control-linked-button/index.js +2 -0
  126. package/build-module/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  127. package/build-module/border-box-control/border-box-control-split-controls/component.js +77 -0
  128. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  129. package/build-module/border-box-control/border-box-control-split-controls/hook.js +30 -0
  130. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  131. package/build-module/border-box-control/border-box-control-split-controls/index.js +2 -0
  132. package/build-module/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  133. package/build-module/border-box-control/border-box-control-visualizer/component.js +27 -0
  134. package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  135. package/build-module/border-box-control/border-box-control-visualizer/hook.js +28 -0
  136. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  137. package/build-module/border-box-control/border-box-control-visualizer/index.js +2 -0
  138. package/build-module/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  139. package/build-module/border-box-control/index.js +4 -0
  140. package/build-module/border-box-control/index.js.map +1 -0
  141. package/build-module/border-box-control/styles.js +66 -0
  142. package/build-module/border-box-control/styles.js.map +1 -0
  143. package/build-module/border-box-control/types.js +2 -0
  144. package/build-module/border-box-control/types.js.map +1 -0
  145. package/build-module/border-box-control/utils.js +127 -0
  146. package/build-module/border-box-control/utils.js.map +1 -0
  147. package/build-module/border-control/border-control/component.js +100 -0
  148. package/build-module/border-control/border-control/component.js.map +1 -0
  149. package/build-module/border-control/border-control/hook.js +115 -0
  150. package/build-module/border-control/border-control/hook.js.map +1 -0
  151. package/build-module/border-control/border-control/index.js +3 -0
  152. package/build-module/border-control/border-control/index.js.map +1 -0
  153. package/build-module/border-control/border-control-dropdown/component.js +174 -0
  154. package/build-module/border-control/border-control-dropdown/component.js.map +1 -0
  155. package/build-module/border-control/border-control-dropdown/hook.js +89 -0
  156. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -0
  157. package/build-module/border-control/border-control-dropdown/index.js +2 -0
  158. package/build-module/border-control/border-control-dropdown/index.js.map +1 -0
  159. package/build-module/border-control/border-control-style-picker/component.js +81 -0
  160. package/build-module/border-control/border-control-style-picker/component.js.map +1 -0
  161. package/build-module/border-control/border-control-style-picker/hook.js +30 -0
  162. package/build-module/border-control/border-control-style-picker/hook.js.map +1 -0
  163. package/build-module/border-control/border-control-style-picker/index.js +2 -0
  164. package/build-module/border-control/border-control-style-picker/index.js.map +1 -0
  165. package/build-module/border-control/index.js +3 -0
  166. package/build-module/border-control/index.js.map +1 -0
  167. package/build-module/border-control/styles.js +90 -0
  168. package/build-module/border-control/styles.js.map +1 -0
  169. package/build-module/border-control/types.js +2 -0
  170. package/build-module/border-control/types.js.map +1 -0
  171. package/build-module/card/styles.js +23 -18
  172. package/build-module/card/styles.js.map +1 -1
  173. package/build-module/custom-select-control/index.js +4 -1
  174. package/build-module/custom-select-control/index.js.map +1 -1
  175. package/build-module/guide/index.js +14 -8
  176. package/build-module/guide/index.js.map +1 -1
  177. package/build-module/index.js +3 -1
  178. package/build-module/index.js.map +1 -1
  179. package/build-module/item-group/styles.js +14 -14
  180. package/build-module/item-group/styles.js.map +1 -1
  181. package/build-module/mobile/picker/index.android.js +0 -3
  182. package/build-module/mobile/picker/index.android.js.map +1 -1
  183. package/build-module/palette-edit/index.js +3 -2
  184. package/build-module/palette-edit/index.js.map +1 -1
  185. package/build-module/surface/styles.js +8 -8
  186. package/build-module/surface/styles.js.map +1 -1
  187. package/build-module/toggle-group-control/index.js +1 -0
  188. package/build-module/toggle-group-control/index.js.map +1 -1
  189. package/build-module/toggle-group-control/toggle-group-control/component.js +8 -1
  190. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  191. package/build-module/toggle-group-control/toggle-group-control/styles.js +11 -3
  192. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  193. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +86 -0
  194. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  195. package/build-module/toggle-group-control/toggle-group-control-option/component.js +9 -76
  196. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  197. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +105 -0
  198. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  199. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js +2 -0
  200. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  201. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +55 -0
  202. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  203. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +50 -0
  204. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  205. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js +2 -0
  206. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  207. package/build-module/toolbar-dropdown-menu/index.js +1 -1
  208. package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
  209. package/build-module/unit-control/index.js +7 -2
  210. package/build-module/unit-control/index.js.map +1 -1
  211. package/build-module/utils/colors-values.js +5 -3
  212. package/build-module/utils/colors-values.js.map +1 -1
  213. package/build-module/utils/config-values.js +8 -4
  214. package/build-module/utils/config-values.js.map +1 -1
  215. package/build-style/style-rtl.css +4 -4
  216. package/build-style/style.css +4 -4
  217. package/build-types/base-control/index.d.ts +35 -76
  218. package/build-types/base-control/index.d.ts.map +1 -1
  219. package/build-types/base-control/stories/index.d.ts +25 -0
  220. package/build-types/base-control/stories/index.d.ts.map +1 -0
  221. package/build-types/base-control/styles/base-control-styles.d.ts +6 -5
  222. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  223. package/build-types/base-control/types.d.ts +41 -0
  224. package/build-types/base-control/types.d.ts.map +1 -0
  225. package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
  226. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -0
  227. package/build-types/border-box-control/border-box-control/hook.d.ts +282 -0
  228. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -0
  229. package/build-types/border-box-control/border-box-control/index.d.ts +3 -0
  230. package/build-types/border-box-control/border-box-control/index.d.ts.map +1 -0
  231. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -0
  232. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -0
  233. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +266 -0
  234. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -0
  235. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts +2 -0
  236. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts.map +1 -0
  237. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -0
  238. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -0
  239. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +274 -0
  240. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -0
  241. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts +2 -0
  242. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts.map +1 -0
  243. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +4 -0
  244. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -0
  245. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +266 -0
  246. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -0
  247. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts +2 -0
  248. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts.map +1 -0
  249. package/build-types/border-box-control/index.d.ts +4 -0
  250. package/build-types/border-box-control/index.d.ts.map +1 -0
  251. package/build-types/border-box-control/styles.d.ts +8 -0
  252. package/build-types/border-box-control/styles.d.ts.map +1 -0
  253. package/build-types/border-box-control/types.d.ts +91 -0
  254. package/build-types/border-box-control/types.d.ts.map +1 -0
  255. package/build-types/border-box-control/utils.d.ts +24 -0
  256. package/build-types/border-box-control/utils.d.ts.map +1 -0
  257. package/build-types/border-control/border-control/component.d.ts +4 -0
  258. package/build-types/border-control/border-control/component.d.ts.map +1 -0
  259. package/build-types/border-control/border-control/hook.d.ts +285 -0
  260. package/build-types/border-control/border-control/hook.d.ts.map +1 -0
  261. package/build-types/border-control/border-control/index.d.ts +3 -0
  262. package/build-types/border-control/border-control/index.d.ts.map +1 -0
  263. package/build-types/border-control/border-control-dropdown/component.d.ts +4 -0
  264. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -0
  265. package/build-types/border-control/border-control-dropdown/hook.d.ts +280 -0
  266. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -0
  267. package/build-types/border-control/border-control-dropdown/index.d.ts +2 -0
  268. package/build-types/border-control/border-control-dropdown/index.d.ts.map +1 -0
  269. package/build-types/border-control/border-control-style-picker/component.d.ts +4 -0
  270. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -0
  271. package/build-types/border-control/border-control-style-picker/hook.d.ts +269 -0
  272. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -0
  273. package/build-types/border-control/border-control-style-picker/index.d.ts +2 -0
  274. package/build-types/border-control/border-control-style-picker/index.d.ts.map +1 -0
  275. package/build-types/border-control/index.d.ts +3 -0
  276. package/build-types/border-control/index.d.ts.map +1 -0
  277. package/build-types/border-control/styles.d.ts +18 -0
  278. package/build-types/border-control/styles.d.ts.map +1 -0
  279. package/build-types/border-control/types.d.ts +163 -0
  280. package/build-types/border-control/types.d.ts.map +1 -0
  281. package/build-types/card/styles.d.ts.map +1 -1
  282. package/build-types/color-indicator/index.d.ts +7 -0
  283. package/build-types/color-indicator/index.d.ts.map +1 -0
  284. package/build-types/input-control/stories/index.d.ts +17 -0
  285. package/build-types/input-control/stories/index.d.ts.map +1 -0
  286. package/build-types/item-group/styles.d.ts.map +1 -1
  287. package/build-types/text/test/index.d.ts +2 -0
  288. package/build-types/text/test/index.d.ts.map +1 -0
  289. package/build-types/toggle-group-control/index.d.ts +1 -0
  290. package/build-types/toggle-group-control/index.d.ts.map +1 -1
  291. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  292. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
  293. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  294. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +9 -0
  295. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -0
  296. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -2
  297. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  298. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts +4 -0
  299. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +1 -1
  300. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +25 -0
  301. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -0
  302. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts +2 -0
  303. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts.map +1 -0
  304. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +15 -0
  305. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -0
  306. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +37 -0
  307. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -0
  308. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts +2 -0
  309. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts.map +1 -0
  310. package/build-types/toggle-group-control/types.d.ts +24 -8
  311. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  312. package/build-types/ui/form-group/form-group.d.ts +2 -2
  313. package/build-types/unit-control/index.d.ts +6 -2
  314. package/build-types/unit-control/index.d.ts.map +1 -1
  315. package/build-types/unit-control/types.d.ts +5 -1
  316. package/build-types/unit-control/types.d.ts.map +1 -1
  317. package/build-types/utils/colors-values.d.ts +78 -18
  318. package/build-types/utils/colors-values.d.ts.map +1 -1
  319. package/build-types/utils/config-values.d.ts +71 -71
  320. package/build-types/utils/config-values.d.ts.map +1 -1
  321. package/package.json +17 -17
  322. package/src/animate/README.md +1 -1
  323. package/src/base-control/README.md +11 -11
  324. package/src/base-control/index.tsx +124 -0
  325. package/src/base-control/stories/index.tsx +80 -0
  326. package/src/base-control/styles/{base-control-styles.js → base-control-styles.ts} +0 -0
  327. package/src/base-control/types.ts +42 -0
  328. package/src/border-box-control/border-box-control/README.md +178 -0
  329. package/src/border-box-control/border-box-control/component.tsx +123 -0
  330. package/src/border-box-control/border-box-control/hook.ts +119 -0
  331. package/src/border-box-control/border-box-control/index.ts +2 -0
  332. package/src/border-box-control/border-box-control-linked-button/component.tsx +50 -0
  333. package/src/border-box-control/border-box-control-linked-button/hook.ts +30 -0
  334. package/src/border-box-control/border-box-control-linked-button/index.ts +1 -0
  335. package/src/border-box-control/border-box-control-split-controls/component.tsx +90 -0
  336. package/src/border-box-control/border-box-control-split-controls/hook.ts +34 -0
  337. package/src/border-box-control/border-box-control-split-controls/index.ts +1 -0
  338. package/src/border-box-control/border-box-control-visualizer/component.tsx +28 -0
  339. package/src/border-box-control/border-box-control-visualizer/hook.ts +30 -0
  340. package/src/border-box-control/border-box-control-visualizer/index.ts +1 -0
  341. package/src/border-box-control/index.ts +3 -0
  342. package/src/border-box-control/stories/index.js +104 -0
  343. package/src/border-box-control/styles.ts +69 -0
  344. package/src/border-box-control/test/index.js +354 -0
  345. package/src/border-box-control/test/utils.js +305 -0
  346. package/src/border-box-control/types.ts +98 -0
  347. package/src/border-box-control/utils.ts +151 -0
  348. package/src/border-control/border-control/README.md +181 -0
  349. package/src/border-control/border-control/component.tsx +112 -0
  350. package/src/border-control/border-control/hook.ts +145 -0
  351. package/src/border-control/border-control/index.ts +2 -0
  352. package/src/border-control/border-control-dropdown/component.tsx +252 -0
  353. package/src/border-control/border-control-dropdown/hook.ts +98 -0
  354. package/src/border-control/border-control-dropdown/index.ts +1 -0
  355. package/src/border-control/border-control-style-picker/component.tsx +89 -0
  356. package/src/border-control/border-control-style-picker/hook.ts +34 -0
  357. package/src/border-control/border-control-style-picker/index.ts +1 -0
  358. package/src/border-control/index.ts +2 -0
  359. package/src/border-control/stories/index.js +118 -0
  360. package/src/border-control/styles.ts +190 -0
  361. package/src/border-control/test/index.js +436 -0
  362. package/src/border-control/types.ts +173 -0
  363. package/src/card/styles.js +11 -5
  364. package/src/card/test/__snapshots__/index.js.snap +83 -66
  365. package/src/card/test/index.js +7 -5
  366. package/src/color-palette/README.md +6 -0
  367. package/src/color-palette/stories/index.js +8 -1
  368. package/src/custom-select-control/index.js +7 -1
  369. package/src/custom-select-control/style.scss +5 -1
  370. package/src/disabled/README.md +7 -10
  371. package/src/flyout/test/__snapshots__/index.js.snap +7 -7
  372. package/src/form-toggle/README.md +1 -1
  373. package/src/guide/index.js +12 -13
  374. package/src/guide/style.scss +0 -4
  375. package/src/index.js +8 -0
  376. package/src/item-group/styles.ts +1 -0
  377. package/src/item-group/test/__snapshots__/index.js.snap +11 -10
  378. package/src/mobile/picker/index.android.js +0 -1
  379. package/src/palette-edit/index.js +8 -2
  380. package/src/surface/styles.js +1 -1
  381. package/src/surface/test/__snapshots__/index.js.snap +11 -11
  382. package/src/toggle-group-control/index.ts +1 -0
  383. package/src/toggle-group-control/stories/index.js +37 -7
  384. package/src/toggle-group-control/test/__snapshots__/index.js.snap +269 -5
  385. package/src/toggle-group-control/test/index.js +43 -10
  386. package/src/toggle-group-control/toggle-group-control/component.tsx +10 -0
  387. package/src/toggle-group-control/toggle-group-control/styles.ts +14 -0
  388. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +86 -0
  389. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
  390. package/src/toggle-group-control/toggle-group-control-option/component.tsx +18 -94
  391. package/src/toggle-group-control/toggle-group-control-option-base/README.md +27 -0
  392. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +129 -0
  393. package/src/toggle-group-control/toggle-group-control-option-base/index.ts +1 -0
  394. package/src/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.ts +4 -1
  395. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +56 -0
  396. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +56 -0
  397. package/src/toggle-group-control/toggle-group-control-option-icon/index.ts +1 -0
  398. package/src/toggle-group-control/types.ts +33 -8
  399. package/src/toolbar-dropdown-menu/index.js +1 -1
  400. package/src/tools-panel/test/__snapshots__/index.js.snap +8 -8
  401. package/src/unit-control/README.md +6 -0
  402. package/src/unit-control/index.tsx +6 -1
  403. package/src/unit-control/test/index.js +120 -0
  404. package/src/unit-control/types.ts +5 -1
  405. package/src/utils/colors-values.js +4 -3
  406. package/src/utils/config-values.js +9 -4
  407. package/tsconfig.json +3 -0
  408. package/tsconfig.tsbuildinfo +1 -1
  409. package/build/guide/finish-button.js +0 -44
  410. package/build/guide/finish-button.js.map +0 -1
  411. package/build/toggle-group-control/toggle-group-control-option/styles.js +0 -66
  412. package/build/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  413. package/build-module/guide/finish-button.js +0 -34
  414. package/build-module/guide/finish-button.js.map +0 -1
  415. package/build-module/toggle-group-control/toggle-group-control-option/styles.js +0 -55
  416. package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  417. package/src/base-control/index.js +0 -118
  418. package/src/base-control/stories/index.js +0 -81
  419. package/src/guide/finish-button.js +0 -26
  420. package/src/guide/test/finish-button.js +0 -49
@@ -1,4 +1,7 @@
1
- /// <reference types="react" />
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { FocusEventHandler } from 'react';
2
5
  import type { UnitControlOnChangeCallback } from './types';
3
6
  import type { StateReducer } from '../input-control/reducer/state';
4
7
  /**
@@ -29,9 +32,10 @@ export declare const UnitControl: import("react").ForwardRefExoticComponent<Pick
29
32
  value?: string | number | undefined;
30
33
  isShiftStepEnabled?: boolean | undefined;
31
34
  shiftStep?: number | undefined;
35
+ onBlur?: FocusEventHandler<HTMLInputElement | HTMLSelectElement> | undefined;
32
36
  } & Omit<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>> & {
33
37
  ref?: ((instance: HTMLInputElement | null) => void) | import("react").RefObject<HTMLInputElement> | null | undefined;
34
- }, "children" | "value" | "label" | "as" | "onChange" | "size" | "hideLabelFromVision" | "__unstableInputWidth" | "isPressEnterToChange" | "__unstableStateReducer" | "isShiftStepEnabled" | "shiftStep" | "unit" | "isUnitSelectTabbable" | "units" | "disableUnits" | "isResetValueOnUnitChange" | "onUnitChange">, "type" | "value" | "form" | "label" | "slot" | "style" | "title" | "pattern" | "className" | "color" | "height" | "id" | "lang" | "max" | "min" | "name" | "width" | "role" | "tabIndex" | "crossOrigin" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "key" | "list" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "alt" | "src" | "autoFocus" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "autoComplete" | "accept" | "capture" | "checked" | "enterKeyHint" | "maxLength" | "minLength" | "multiple" | "readOnly" | "required" | "size" | "step" | "hideLabelFromVision" | "__unstableInputWidth" | "isPressEnterToChange" | "__unstableStateReducer" | "isShiftStepEnabled" | "shiftStep" | "unit" | "isUnitSelectTabbable" | "units" | "disableUnits" | "isResetValueOnUnitChange" | "onUnitChange"> & import("react").RefAttributes<any>>;
38
+ }, "children" | "value" | "label" | "as" | "onBlur" | "onChange" | "size" | "hideLabelFromVision" | "__unstableInputWidth" | "isPressEnterToChange" | "__unstableStateReducer" | "unit" | "isUnitSelectTabbable" | "units" | "disableUnits" | "isShiftStepEnabled" | "shiftStep" | "isResetValueOnUnitChange" | "onUnitChange">, "type" | "value" | "form" | "label" | "slot" | "style" | "title" | "pattern" | "className" | "color" | "height" | "id" | "lang" | "max" | "min" | "name" | "width" | "role" | "tabIndex" | "crossOrigin" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "css" | "key" | "list" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "alt" | "src" | "autoFocus" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "autoComplete" | "accept" | "capture" | "checked" | "enterKeyHint" | "maxLength" | "minLength" | "multiple" | "readOnly" | "required" | "size" | "step" | "hideLabelFromVision" | "__unstableInputWidth" | "isPressEnterToChange" | "__unstableStateReducer" | "unit" | "isUnitSelectTabbable" | "units" | "disableUnits" | "isShiftStepEnabled" | "shiftStep" | "isResetValueOnUnitChange" | "onUnitChange"> & import("react").RefAttributes<any>>;
35
39
  export { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';
36
40
  export default UnitControl;
37
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unit-control/index.tsx"],"names":[],"mappings":";AAmCA,OAAO,KAAK,EAAoB,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAwPnE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;+8KAAuC,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3E,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/unit-control/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EACX,iBAAiB,EAMjB,MAAM,OAAO,CAAC;AAyBf,OAAO,KAAK,EAAoB,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AA6PnE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;09KAAuC,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3E,eAAe,WAAW,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { CSSProperties, SyntheticEvent } from 'react';
4
+ import type { CSSProperties, FocusEventHandler, SyntheticEvent } from 'react';
5
5
  /**
6
6
  * Internal dependencies
7
7
  */
@@ -118,5 +118,9 @@ export declare type UnitControlProps = Omit<UnitSelectControlProps, 'unit'> & Pi
118
118
  * @default 10
119
119
  */
120
120
  shiftStep?: number;
121
+ /**
122
+ * Callback when either the quantity or the unit inputs lose focus.
123
+ */
124
+ onBlur?: FocusEventHandler<HTMLInputElement | HTMLSelectElement>;
121
125
  };
122
126
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unit-control/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE3D;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,IAAI,SAAS,EACjB,MAAM,wBAAwB,CAAC;AAEhC,oBAAY,UAAU,GAAG,SAAS,CAAC;AAEnC,oBAAY,iBAAiB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,2BAA2B,GAAG,mBAAmB,CAC5D,cAAc,CAAE,iBAAiB,GAAG,gBAAgB,CAAE,EACtD;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAC5B,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACpC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAGF,oBAAY,gBAAgB,GAAG,IAAI,CAAE,sBAAsB,EAAE,MAAM,CAAE,GACpE,IAAI,CAAE,iBAAiB,EAAE,qBAAqB,CAAE,GAAG;IAClD,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC,oBAAoB,CAAC,EAAE,aAAa,CAAE,OAAO,CAAE,CAAC;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/unit-control/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE9E;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EACX,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,IAAI,SAAS,EACjB,MAAM,wBAAwB,CAAC;AAEhC,oBAAY,UAAU,GAAG,SAAS,CAAC;AAEnC,oBAAY,iBAAiB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,2BAA2B,GAAG,mBAAmB,CAC5D,cAAc,CAAE,iBAAiB,GAAG,gBAAgB,CAAE,EACtD;IAAE,IAAI,CAAC,EAAE,iBAAiB,CAAA;CAAE,CAC5B,CAAC;AAEF,oBAAY,sBAAsB,GAAG;IACpC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,2BAA2B,CAAC;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC5B,CAAC;AAGF,oBAAY,gBAAgB,GAAG,IAAI,CAAE,sBAAsB,EAAE,MAAM,CAAE,GACpE,IAAI,CAAE,iBAAiB,EAAE,qBAAqB,CAAE,GAAG;IAClD,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC,oBAAoB,CAAC,EAAE,aAAa,CAAE,OAAO,CAAE,CAAC;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAE,gBAAgB,GAAG,iBAAiB,CAAE,CAAC;CACnE,CAAC"}
@@ -141,8 +141,11 @@ export namespace UI {
141
141
  import textLight = BASE.black;
142
142
  export { textLight };
143
143
  }
144
- export namespace COLORS {
145
- const darkGray_1: {
144
+ export const COLORS: {
145
+ black: string;
146
+ white: string;
147
+ } & {
148
+ darkGray: {
146
149
  900: string;
147
150
  800: string;
148
151
  700: string;
@@ -158,14 +161,42 @@ export namespace COLORS {
158
161
  primary: string;
159
162
  heading: string;
160
163
  };
161
- export { darkGray_1 as darkGray };
162
- export { DARK_OPACITY as darkOpacity };
163
- export { DARK_OPACITY_LIGHT as darkOpacityLight };
164
- import mediumGray_1 = G2.mediumGray;
165
- export { mediumGray_1 as mediumGray };
166
- import gray_1 = G2.gray;
167
- export { gray_1 as gray };
168
- const lightGray_1: {
164
+ darkOpacity: {
165
+ 900: string;
166
+ 800: string;
167
+ 700: string;
168
+ 600: string;
169
+ 500: string;
170
+ 400: string;
171
+ 300: string;
172
+ 200: string;
173
+ 100: string;
174
+ backgroundFill: string;
175
+ };
176
+ darkOpacityLight: {
177
+ 900: string;
178
+ 800: string;
179
+ 700: string;
180
+ 600: string;
181
+ 500: string;
182
+ 400: string;
183
+ 300: string;
184
+ 200: string;
185
+ 100: string;
186
+ };
187
+ mediumGray: {
188
+ text: string;
189
+ };
190
+ gray: {
191
+ 900: string;
192
+ 700: string;
193
+ 600: string;
194
+ 400: string;
195
+ 300: string;
196
+ 200: string;
197
+ 100: string;
198
+ };
199
+ lightGray: {
169
200
  900: string;
170
201
  800: string;
171
202
  700: string;
@@ -181,9 +212,19 @@ export namespace COLORS {
181
212
  secondary: string;
182
213
  tertiary: string;
183
214
  };
184
- export { lightGray_1 as lightGray };
185
- export { LIGHT_OPACITY_LIGHT as lightGrayLight };
186
- const blue_1: {
215
+ lightGrayLight: {
216
+ 900: string;
217
+ 800: string;
218
+ 700: string;
219
+ 600: string;
220
+ 500: string;
221
+ 400: string;
222
+ 300: string;
223
+ 200: string;
224
+ 100: string;
225
+ backgroundFill: string;
226
+ };
227
+ blue: {
187
228
  wordpress: {
188
229
  700: string;
189
230
  };
@@ -209,10 +250,29 @@ export namespace COLORS {
209
250
  focusDark: string;
210
251
  };
211
252
  };
212
- export { blue_1 as blue };
213
- export { ALERT as alert };
214
- export { ADMIN as admin };
215
- export { UI as ui };
216
- }
253
+ alert: {
254
+ yellow: string;
255
+ red: string;
256
+ green: string;
257
+ };
258
+ admin: {
259
+ theme: string;
260
+ themeDark10: string;
261
+ };
262
+ ui: {
263
+ theme: string;
264
+ background: string;
265
+ backgroundDisabled: string;
266
+ border: string;
267
+ borderHover: string;
268
+ borderFocus: string;
269
+ borderDisabled: string;
270
+ borderLight: string;
271
+ label: string;
272
+ textDisabled: string;
273
+ textDark: string;
274
+ textLight: string;
275
+ };
276
+ };
217
277
  export default COLORS;
218
278
  //# sourceMappingURL=colors-values.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors-values.d.ts","sourceRoot":"","sources":["../../src/utils/colors-values.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA;;;;;;;;;;;;EAYE;AAEF;;;;;;;;;;;EAWE;AAEF;;;;;;;;;;EAUE;AAEF;;;;;;;;;;;EAWE;AAEF;;;;;;;;;;;EAWE"}
1
+ {"version":3,"file":"colors-values.d.ts","sourceRoot":"","sources":["../../src/utils/colors-values.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA;;;;;;;;;;;;EAYE;AAEF;;;;;;;;;;;EAWE;AAEF;;;;;;;;;;EAUE;AAEF;;;;;;;;;;;EAWE;AAEF;;;;;;;;;;;EAWE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYI"}
@@ -1,73 +1,73 @@
1
- declare namespace _default {
2
- export const colorDivider: string;
3
- export const colorScrollbarThumb: string;
4
- export const colorScrollbarThumbHover: string;
5
- export const colorScrollbarTrack: string;
6
- export const elevationIntensity: number;
7
- export const radiusBlockUi: string;
8
- export const borderWidth: string;
9
- export const borderWidthFocus: string;
10
- export const borderWidthTab: string;
11
- export const spinnerSize: number;
12
- export const fontSize: string;
13
- export const fontSizeH1: string;
14
- export const fontSizeH2: string;
15
- export const fontSizeH3: string;
16
- export const fontSizeH4: string;
17
- export const fontSizeH5: string;
18
- export const fontSizeH6: string;
19
- export const fontSizeInputMobile: string;
20
- export const fontSizeMobile: string;
21
- export const fontSizeSmall: string;
22
- export const fontSizeXSmall: string;
23
- export const fontLineHeightBase: string;
24
- export const fontWeight: string;
25
- export const fontWeightHeading: string;
26
- export const gridBase: string;
27
- export const cardBorderRadius: string;
28
- export const cardPaddingXSmall: string;
29
- export const cardPaddingSmall: string;
30
- export const cardPaddingMedium: string;
31
- export const cardPaddingLarge: string;
32
- export const surfaceBackgroundColor: string;
33
- export const surfaceBackgroundSubtleColor: string;
34
- export const surfaceBackgroundTintColor: string;
35
- export const surfaceBorderColor: string;
36
- export const surfaceBorderBoldColor: string;
37
- export const surfaceBorderSubtleColor: string;
38
- export const surfaceBackgroundTertiaryColor: string;
39
- export const surfaceColor: string;
40
- export const transitionDuration: string;
41
- export const transitionDurationFast: string;
42
- export const transitionDurationFaster: string;
43
- export const transitionDurationFastest: string;
44
- export const transitionTimingFunction: string;
45
- export const transitionTimingFunctionControl: string;
46
- import toggleGroupControlBackgroundColor = controlBackgroundColor;
47
- export { toggleGroupControlBackgroundColor };
48
- export const toggleGroupControlBorderColor: string;
49
- import toggleGroupControlButtonColorActive = controlBackgroundColor;
50
- export { toggleGroupControlButtonColorActive };
51
- export const controlSurfaceColor: string;
52
- export const controlTextActiveColor: string;
53
- export { CONTROL_PADDING_X as controlPaddingX };
54
- export const controlPaddingXLarge: string;
55
- export const controlPaddingXSmall: string;
56
- export const controlBackgroundColor: string;
57
- export const controlBorderRadius: string;
58
- export const controlBorderColor: string;
59
- export const controlBoxShadow: string;
60
- export const controlBorderColorHover: string;
61
- export const controlBoxShadowFocus: string;
62
- export const controlDestructiveBorderColor: string;
63
- export { CONTROL_HEIGHT as controlHeight };
64
- export const controlHeightXSmall: string;
65
- export const controlHeightSmall: string;
66
- export const controlHeightLarge: string;
67
- export const controlHeightXLarge: string;
68
- }
1
+ declare var _default: {
2
+ controlSurfaceColor: string;
3
+ controlTextActiveColor: string;
4
+ controlPaddingX: string;
5
+ controlPaddingXLarge: string;
6
+ controlPaddingXSmall: string;
7
+ controlBackgroundColor: string;
8
+ controlBorderRadius: string;
9
+ controlBorderColor: string;
10
+ controlBoxShadow: string;
11
+ controlBorderColorHover: string;
12
+ controlBoxShadowFocus: string;
13
+ controlDestructiveBorderColor: string;
14
+ controlHeight: string;
15
+ controlHeightXSmall: string;
16
+ controlHeightSmall: string;
17
+ controlHeightLarge: string;
18
+ controlHeightXLarge: string;
19
+ } & {
20
+ toggleGroupControlBackgroundColor: string;
21
+ toggleGroupControlBorderColor: string;
22
+ toggleGroupControlBackdropBackgroundColor: string;
23
+ toggleGroupControlBackdropBorderColor: string;
24
+ toggleGroupControlBackdropBoxShadow: string;
25
+ toggleGroupControlButtonColorActive: string;
26
+ } & {
27
+ colorDivider: string;
28
+ colorScrollbarThumb: string;
29
+ colorScrollbarThumbHover: string;
30
+ colorScrollbarTrack: string;
31
+ elevationIntensity: number;
32
+ radiusBlockUi: string;
33
+ borderWidth: string;
34
+ borderWidthFocus: string;
35
+ borderWidthTab: string;
36
+ spinnerSize: number;
37
+ fontSize: string;
38
+ fontSizeH1: string;
39
+ fontSizeH2: string;
40
+ fontSizeH3: string;
41
+ fontSizeH4: string;
42
+ fontSizeH5: string;
43
+ fontSizeH6: string;
44
+ fontSizeInputMobile: string;
45
+ fontSizeMobile: string;
46
+ fontSizeSmall: string;
47
+ fontSizeXSmall: string;
48
+ fontLineHeightBase: string;
49
+ fontWeight: string;
50
+ fontWeightHeading: string;
51
+ gridBase: string;
52
+ cardBorderRadius: string;
53
+ cardPaddingXSmall: string;
54
+ cardPaddingSmall: string;
55
+ cardPaddingMedium: string;
56
+ cardPaddingLarge: string;
57
+ surfaceBackgroundColor: string;
58
+ surfaceBackgroundSubtleColor: string;
59
+ surfaceBackgroundTintColor: string;
60
+ surfaceBorderColor: string;
61
+ surfaceBorderBoldColor: string;
62
+ surfaceBorderSubtleColor: string;
63
+ surfaceBackgroundTertiaryColor: string;
64
+ surfaceColor: string;
65
+ transitionDuration: string;
66
+ transitionDurationFast: string;
67
+ transitionDurationFaster: string;
68
+ transitionDurationFastest: string;
69
+ transitionTimingFunction: string;
70
+ transitionTimingFunctionControl: string;
71
+ };
69
72
  export default _default;
70
- declare namespace CONTROL_PROPS { }
71
- declare const CONTROL_PADDING_X: "12px";
72
- declare const CONTROL_HEIGHT: "36px";
73
73
  //# sourceMappingURL=config-values.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-values.d.ts","sourceRoot":"","sources":["../../src/utils/config-values.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wCAAiC;AADjC,qCAA8B"}
1
+ {"version":3,"file":"config-values.d.ts","sourceRoot":"","sources":["../../src/utils/config-values.js"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/components",
3
- "version": "19.7.0",
3
+ "version": "19.8.2",
4
4
  "description": "UI components for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -37,21 +37,21 @@
37
37
  "@emotion/styled": "^11.6.0",
38
38
  "@emotion/utils": "1.0.0",
39
39
  "@use-gesture/react": "^10.2.6",
40
- "@wordpress/a11y": "^3.5.0",
41
- "@wordpress/compose": "^5.3.0",
42
- "@wordpress/date": "^4.5.0",
43
- "@wordpress/deprecated": "^3.5.0",
44
- "@wordpress/dom": "^3.5.0",
45
- "@wordpress/element": "^4.3.0",
46
- "@wordpress/escape-html": "^2.5.0",
47
- "@wordpress/hooks": "^3.5.0",
48
- "@wordpress/i18n": "^4.5.0",
49
- "@wordpress/icons": "^8.1.0",
50
- "@wordpress/is-shallow-equal": "^4.5.0",
51
- "@wordpress/keycodes": "^3.5.0",
52
- "@wordpress/primitives": "^3.3.0",
53
- "@wordpress/rich-text": "^5.3.0",
54
- "@wordpress/warning": "^2.5.0",
40
+ "@wordpress/a11y": "^3.6.1",
41
+ "@wordpress/compose": "^5.4.1",
42
+ "@wordpress/date": "^4.6.1",
43
+ "@wordpress/deprecated": "^3.6.1",
44
+ "@wordpress/dom": "^3.6.1",
45
+ "@wordpress/element": "^4.4.1",
46
+ "@wordpress/escape-html": "^2.6.1",
47
+ "@wordpress/hooks": "^3.6.1",
48
+ "@wordpress/i18n": "^4.6.1",
49
+ "@wordpress/icons": "^8.2.2",
50
+ "@wordpress/is-shallow-equal": "^4.6.1",
51
+ "@wordpress/keycodes": "^3.6.1",
52
+ "@wordpress/primitives": "^3.4.1",
53
+ "@wordpress/rich-text": "^5.4.1",
54
+ "@wordpress/warning": "^2.6.1",
55
55
  "classnames": "^2.3.1",
56
56
  "colord": "^2.7.0",
57
57
  "dom-scroll-into-view": "^1.2.1",
@@ -76,5 +76,5 @@
76
76
  "publishConfig": {
77
77
  "access": "public"
78
78
  },
79
- "gitHead": "aa003c3634016cc4ab6348b2106907e371c648e1"
79
+ "gitHead": "37e930b93fbba88fa024a91eb527a90f855c97f3"
80
80
  }
@@ -5,7 +5,7 @@ Simple interface to introduce animations to components.
5
5
  ## Usage
6
6
 
7
7
  ```jsx
8
- import { Animate } from '@wordpress/components';
8
+ import { Animate, Notice } from '@wordpress/components';
9
9
 
10
10
  const MyAnimatedNotice = () => (
11
11
  <Animate type="slide-in" options={ { origin: 'top' } }>
@@ -1,14 +1,15 @@
1
1
  # BaseControl
2
2
 
3
- BaseControl component is used to generate labels and help text for components handling user inputs.
3
+ `BaseControl` is a component used to generate labels and help text for components handling user inputs.
4
4
 
5
5
  ## Usage
6
6
 
7
- Render a BaseControl for a textarea input:
7
+ Render a `BaseControl` for a textarea input:
8
8
 
9
9
  ```jsx
10
10
  import { BaseControl } from '@wordpress/components';
11
11
 
12
+ // The `id` prop is necessary to accessibly associate the label with the textarea
12
13
  const MyBaseControl = () => (
13
14
  <BaseControl id="textarea-1" label="Text" help="Enter some text" __nextHasNoMarginBottom={ true }>
14
15
  <textarea id="textarea-1" />
@@ -22,10 +23,10 @@ The component accepts the following props:
22
23
 
23
24
  ### id
24
25
 
25
- The id of the element to which labels and help text are being generated. That element should be passed as a child.
26
+ The HTML `id` of the element (passed in as a child to `BaseControl`) to which labels and help text are being generated. This is necessary to accessibly associate the label with that element.
26
27
 
27
28
  - Type: `String`
28
- - Required: Yes
29
+ - Required: No
29
30
 
30
31
  ### label
31
32
 
@@ -50,8 +51,7 @@ If this property is added, a help text will be generated using help property as
50
51
 
51
52
  ### className
52
53
 
53
- The class that will be added with "components-base-control" to the classes of the wrapper div.
54
- If no className is passed only components-base-control is used.
54
+ Any other classes to add to the wrapper div.
55
55
 
56
56
  - Type: `String`
57
57
  - Required: No
@@ -73,8 +73,9 @@ Start opting into the new margin-free styles that will become the default in a f
73
73
 
74
74
  ## BaseControl.VisualLabel
75
75
 
76
- `BaseControl.VisualLabel` component is used to render a purely visual label inside a `BaseControl` component.
77
- It should only be used in cases where the children being rendered inside BaseControl are already properly labeled, e.g., a button, but we want an additional visual label for that section equivalent to the labels BaseControl would otherwise use if the label prop was passed.
76
+ `BaseControl.VisualLabel` is used to render a purely visual label inside a `BaseControl` component.
77
+
78
+ It should only be used in cases where the children being rendered inside BaseControl are already accessibly labeled, e.g., a button, but we want an additional visual label for that section equivalent to the labels `BaseControl` would otherwise use if the `label` prop was passed.
78
79
 
79
80
  ## Usage
80
81
 
@@ -82,7 +83,7 @@ It should only be used in cases where the children being rendered inside BaseCon
82
83
  import { BaseControl } from '@wordpress/components';
83
84
 
84
85
  const MyBaseControl = () => (
85
- <BaseControl help="Pressing the Select an author button will open a modal that allows an advanced mechanism for author selection">
86
+ <BaseControl help="This button is already accessibly labeled.">
86
87
  <BaseControl.VisualLabel>Author</BaseControl.VisualLabel>
87
88
  <Button>Select an author</Button>
88
89
  </BaseControl>
@@ -93,8 +94,7 @@ const MyBaseControl = () => (
93
94
 
94
95
  #### className
95
96
 
96
- The class that will be added with `components-base-control__label` to the classes of the wrapper div.
97
- If no className is passed only `components-base-control__label` is used.
97
+ Any other classes to add to the wrapper div.
98
98
 
99
99
  - Type: `String`
100
100
  - Required: No
@@ -0,0 +1,124 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import classnames from 'classnames';
5
+ import type { FunctionComponent } from 'react';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import { VisuallyHidden } from '../visually-hidden';
11
+ import type { BaseControlProps, BaseControlVisualLabelProps } from './types';
12
+ import {
13
+ Wrapper,
14
+ StyledField,
15
+ StyledLabel,
16
+ StyledHelp,
17
+ StyledVisualLabel,
18
+ } from './styles/base-control-styles';
19
+
20
+ /**
21
+ * `BaseControl` is a component used to generate labels and help text for components handling user inputs.
22
+ *
23
+ * @example
24
+ * // Render a `BaseControl` for a textarea input
25
+ * import { BaseControl } from '@wordpress/components';
26
+ *
27
+ * // The `id` prop is necessary to accessibly associate the label with the textarea
28
+ * const MyBaseControl = () => (
29
+ * <BaseControl id="textarea-1" label="Text" help="Enter some text" __nextHasNoMarginBottom={ true }>
30
+ * <textarea id="textarea-1" />
31
+ * </BaseControl>
32
+ * );
33
+ */
34
+ export const BaseControl = ( {
35
+ __nextHasNoMarginBottom = false,
36
+ id,
37
+ label,
38
+ hideLabelFromVision = false,
39
+ help,
40
+ className,
41
+ children,
42
+ }: BaseControlProps ) => {
43
+ return (
44
+ <Wrapper
45
+ className={ classnames( 'components-base-control', className ) }
46
+ >
47
+ <StyledField
48
+ className="components-base-control__field"
49
+ // TODO: Official deprecation for this should start after all internal usages have been migrated
50
+ __nextHasNoMarginBottom={ __nextHasNoMarginBottom }
51
+ >
52
+ { label &&
53
+ id &&
54
+ ( hideLabelFromVision ? (
55
+ <VisuallyHidden as="label" htmlFor={ id }>
56
+ { label }
57
+ </VisuallyHidden>
58
+ ) : (
59
+ <StyledLabel
60
+ className="components-base-control__label"
61
+ htmlFor={ id }
62
+ >
63
+ { label }
64
+ </StyledLabel>
65
+ ) ) }
66
+ { label &&
67
+ ! id &&
68
+ ( hideLabelFromVision ? (
69
+ <VisuallyHidden as="label">{ label }</VisuallyHidden>
70
+ ) : (
71
+ <BaseControl.VisualLabel>
72
+ { label }
73
+ </BaseControl.VisualLabel>
74
+ ) ) }
75
+ { children }
76
+ </StyledField>
77
+ { !! help && (
78
+ <StyledHelp
79
+ id={ id ? id + '__help' : undefined }
80
+ className="components-base-control__help"
81
+ __nextHasNoMarginBottom={ __nextHasNoMarginBottom }
82
+ >
83
+ { help }
84
+ </StyledHelp>
85
+ ) }
86
+ </Wrapper>
87
+ );
88
+ };
89
+
90
+ /**
91
+ * `BaseControl.VisualLabel` is used to render a purely visual label inside a `BaseControl` component.
92
+ *
93
+ * It should only be used in cases where the children being rendered inside `BaseControl` are already accessibly labeled,
94
+ * e.g., a button, but we want an additional visual label for that section equivalent to the labels `BaseControl` would
95
+ * otherwise use if the `label` prop was passed.
96
+ *
97
+ * @example
98
+ * import { BaseControl } from '@wordpress/components';
99
+ *
100
+ * const MyBaseControl = () => (
101
+ * <BaseControl help="This button is already accessibly labeled.">
102
+ * <BaseControl.VisualLabel>Author</BaseControl.VisualLabel>
103
+ * <Button>Select an author</Button>
104
+ * </BaseControl>
105
+ * );
106
+ */
107
+ export const VisualLabel: FunctionComponent< BaseControlVisualLabelProps > = ( {
108
+ className,
109
+ children,
110
+ } ) => {
111
+ return (
112
+ <StyledVisualLabel
113
+ className={ classnames(
114
+ 'components-base-control__label',
115
+ className
116
+ ) }
117
+ >
118
+ { children }
119
+ </StyledVisualLabel>
120
+ );
121
+ };
122
+ BaseControl.VisualLabel = VisualLabel;
123
+
124
+ export default BaseControl;