@wordpress/components 19.8.4 → 19.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (630) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/CONTRIBUTING.md +80 -7
  3. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
  4. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  5. package/build/border-box-control/border-box-control/component.js +22 -7
  6. package/build/border-box-control/border-box-control/component.js.map +1 -1
  7. package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
  8. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  9. package/build/border-box-control/border-box-control-split-controls/component.js +21 -8
  10. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  11. package/build/border-box-control/border-box-control-visualizer/hook.js +3 -2
  12. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  13. package/build/border-box-control/styles.js +11 -15
  14. package/build/border-box-control/styles.js.map +1 -1
  15. package/build/border-control/border-control/component.js +5 -3
  16. package/build/border-control/border-control/component.js.map +1 -1
  17. package/build/border-control/border-control/hook.js +6 -3
  18. package/build/border-control/border-control/hook.js.map +1 -1
  19. package/build/border-control/border-control-dropdown/component.js +6 -2
  20. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  21. package/build/border-control/border-control-dropdown/hook.js +5 -5
  22. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  23. package/build/border-control/styles.js +58 -29
  24. package/build/border-control/styles.js.map +1 -1
  25. package/build/box-control/index.js +0 -21
  26. package/build/box-control/index.js.map +1 -1
  27. package/build/box-control/utils.js +1 -8
  28. package/build/box-control/utils.js.map +1 -1
  29. package/build/button/index.js +3 -5
  30. package/build/button/index.js.map +1 -1
  31. package/build/button/index.native.js +16 -2
  32. package/build/button/index.native.js.map +1 -1
  33. package/build/button-group/index.js +24 -7
  34. package/build/button-group/index.js.map +1 -1
  35. package/build/{flyout → button-group}/types.js +0 -0
  36. package/build/button-group/types.js.map +1 -0
  37. package/build/checkbox-control/index.js +34 -7
  38. package/build/checkbox-control/index.js.map +1 -1
  39. package/build/checkbox-control/types.js +6 -0
  40. package/build/checkbox-control/types.js.map +1 -0
  41. package/build/circular-option-picker/index.js +1 -2
  42. package/build/circular-option-picker/index.js.map +1 -1
  43. package/build/color-palette/index.js +5 -12
  44. package/build/color-palette/index.js.map +1 -1
  45. package/build/date-time/date.js +43 -19
  46. package/build/date-time/date.js.map +1 -1
  47. package/build/date-time/index.js +28 -3
  48. package/build/date-time/index.js.map +1 -1
  49. package/build/date-time/time.js +42 -40
  50. package/build/date-time/time.js.map +1 -1
  51. package/build/date-time/timezone.js +4 -3
  52. package/build/date-time/timezone.js.map +1 -1
  53. package/build/date-time/types.js +6 -0
  54. package/build/date-time/types.js.map +1 -0
  55. package/build/date-time/utils.js +6 -4
  56. package/build/date-time/utils.js.map +1 -1
  57. package/build/disabled/index.js +4 -76
  58. package/build/disabled/index.js.map +1 -1
  59. package/build/draggable/index.native.js +223 -0
  60. package/build/draggable/index.native.js.map +1 -0
  61. package/build/dropdown/index.js +7 -5
  62. package/build/dropdown/index.js.map +1 -1
  63. package/build/focal-point-picker/index.native.js +3 -3
  64. package/build/focal-point-picker/index.native.js.map +1 -1
  65. package/build/heading/hook.js +1 -1
  66. package/build/heading/hook.js.map +1 -1
  67. package/build/index.js +0 -8
  68. package/build/index.js.map +1 -1
  69. package/build/index.native.js +16 -0
  70. package/build/index.native.js.map +1 -1
  71. package/build/input-control/index.js +27 -4
  72. package/build/input-control/index.js.map +1 -1
  73. package/build/input-control/styles/input-control-styles.js +42 -30
  74. package/build/input-control/styles/input-control-styles.js.map +1 -1
  75. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  76. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  77. package/build/mobile/bottom-sheet/index.native.js +1 -1
  78. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  79. package/build/mobile/bottom-sheet-select-control/index.native.js +4 -2
  80. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  81. package/build/mobile/html-text-input/index.native.js +19 -8
  82. package/build/mobile/html-text-input/index.native.js.map +1 -1
  83. package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
  84. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  85. package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
  86. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  87. package/build/navigation/styles/navigation-styles.js +12 -12
  88. package/build/navigation/styles/navigation-styles.js.map +1 -1
  89. package/build/notice/index.native.js +44 -40
  90. package/build/notice/index.native.js.map +1 -1
  91. package/build/notice/list.native.js +27 -45
  92. package/build/notice/list.native.js.map +1 -1
  93. package/build/palette-edit/index.js +38 -7
  94. package/build/palette-edit/index.js.map +1 -1
  95. package/build/popover/index.js +223 -323
  96. package/build/popover/index.js.map +1 -1
  97. package/build/resizable-box/resize-tooltip/utils.js +5 -8
  98. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  99. package/build/sandbox/index.js +2 -2
  100. package/build/sandbox/index.js.map +1 -1
  101. package/build/sandbox/index.native.js +1 -1
  102. package/build/sandbox/index.native.js.map +1 -1
  103. package/build/select-control/index.js +31 -4
  104. package/build/select-control/index.js.map +1 -1
  105. package/build/select-control/styles/select-control-styles.js +17 -14
  106. package/build/select-control/styles/select-control-styles.js.map +1 -1
  107. package/build/surface/styles.js +8 -8
  108. package/build/surface/styles.js.map +1 -1
  109. package/build/text/hook.js +5 -5
  110. package/build/text/hook.js.map +1 -1
  111. package/build/text/styles/text-mixins.native.js +1 -1
  112. package/build/text/styles/text-mixins.native.js.map +1 -1
  113. package/build/text/styles.js +7 -7
  114. package/build/text/styles.js.map +1 -1
  115. package/build/text-control/index.js +35 -28
  116. package/build/text-control/index.js.map +1 -1
  117. package/build/text-control/types.js +6 -0
  118. package/build/text-control/types.js.map +1 -0
  119. package/build/toggle-group-control/toggle-group-control/component.js +1 -3
  120. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  121. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +6 -4
  122. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  123. package/build/tools-panel/tools-panel-header/component.js +52 -36
  124. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  125. package/build/tooltip/index.js +2 -2
  126. package/build/tooltip/index.js.map +1 -1
  127. package/build/ui/spinner/component.js +1 -1
  128. package/build/ui/spinner/component.js.map +1 -1
  129. package/build/unit-control/index.js +3 -3
  130. package/build/unit-control/index.js.map +1 -1
  131. package/build/unit-control/styles/unit-control-styles.js +11 -20
  132. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  133. package/build/unit-control/utils.js.map +1 -1
  134. package/build/utils/colors-values.js +9 -24
  135. package/build/utils/colors-values.js.map +1 -1
  136. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
  137. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  138. package/build-module/border-box-control/border-box-control/component.js +22 -7
  139. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  140. package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
  141. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  142. package/build-module/border-box-control/border-box-control-split-controls/component.js +21 -8
  143. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  144. package/build-module/border-box-control/border-box-control-visualizer/hook.js +3 -2
  145. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  146. package/build-module/border-box-control/styles.js +9 -15
  147. package/build-module/border-box-control/styles.js.map +1 -1
  148. package/build-module/border-control/border-control/component.js +5 -3
  149. package/build-module/border-control/border-control/component.js.map +1 -1
  150. package/build-module/border-control/border-control/hook.js +6 -3
  151. package/build-module/border-control/border-control/hook.js.map +1 -1
  152. package/build-module/border-control/border-control-dropdown/component.js +6 -2
  153. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  154. package/build-module/border-control/border-control-dropdown/hook.js +5 -5
  155. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  156. package/build-module/border-control/styles.js +56 -29
  157. package/build-module/border-control/styles.js.map +1 -1
  158. package/build-module/box-control/index.js +1 -20
  159. package/build-module/box-control/index.js.map +1 -1
  160. package/build-module/box-control/utils.js +0 -6
  161. package/build-module/box-control/utils.js.map +1 -1
  162. package/build-module/button/index.js +3 -4
  163. package/build-module/button/index.js.map +1 -1
  164. package/build-module/button/index.native.js +16 -3
  165. package/build-module/button/index.native.js.map +1 -1
  166. package/build-module/button-group/index.js +27 -7
  167. package/build-module/button-group/index.js.map +1 -1
  168. package/build-module/{flyout → button-group}/types.js +0 -0
  169. package/build-module/{flyout → button-group}/types.js.map +0 -0
  170. package/build-module/checkbox-control/index.js +31 -7
  171. package/build-module/checkbox-control/index.js.map +1 -1
  172. package/build-module/checkbox-control/types.js +2 -0
  173. package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
  174. package/build-module/circular-option-picker/index.js +1 -2
  175. package/build-module/circular-option-picker/index.js.map +1 -1
  176. package/build-module/color-palette/index.js +5 -11
  177. package/build-module/color-palette/index.js.map +1 -1
  178. package/build-module/date-time/date.js +44 -19
  179. package/build-module/date-time/date.js.map +1 -1
  180. package/build-module/date-time/index.js +28 -4
  181. package/build-module/date-time/index.js.map +1 -1
  182. package/build-module/date-time/time.js +43 -41
  183. package/build-module/date-time/time.js.map +1 -1
  184. package/build-module/date-time/timezone.js +4 -3
  185. package/build-module/date-time/timezone.js.map +1 -1
  186. package/build-module/date-time/types.js +2 -0
  187. package/build-module/date-time/types.js.map +1 -0
  188. package/build-module/date-time/utils.js +6 -4
  189. package/build-module/date-time/utils.js.map +1 -1
  190. package/build-module/disabled/index.js +5 -76
  191. package/build-module/disabled/index.js.map +1 -1
  192. package/build-module/draggable/index.native.js +206 -0
  193. package/build-module/draggable/index.native.js.map +1 -0
  194. package/build-module/dropdown/index.js +7 -5
  195. package/build-module/dropdown/index.js.map +1 -1
  196. package/build-module/focal-point-picker/index.native.js +3 -3
  197. package/build-module/focal-point-picker/index.native.js.map +1 -1
  198. package/build-module/heading/hook.js +1 -1
  199. package/build-module/heading/hook.js.map +1 -1
  200. package/build-module/index.js +0 -1
  201. package/build-module/index.js.map +1 -1
  202. package/build-module/index.native.js +2 -1
  203. package/build-module/index.native.js.map +1 -1
  204. package/build-module/input-control/index.js +24 -3
  205. package/build-module/input-control/index.js.map +1 -1
  206. package/build-module/input-control/styles/input-control-styles.js +42 -30
  207. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  208. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  209. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  210. package/build-module/mobile/bottom-sheet/index.native.js +1 -1
  211. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  212. package/build-module/mobile/bottom-sheet-select-control/index.native.js +4 -2
  213. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  214. package/build-module/mobile/html-text-input/index.native.js +20 -9
  215. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  216. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
  217. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  218. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
  219. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  220. package/build-module/navigation/styles/navigation-styles.js +13 -13
  221. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  222. package/build-module/notice/index.native.js +45 -41
  223. package/build-module/notice/index.native.js.map +1 -1
  224. package/build-module/notice/list.native.js +28 -46
  225. package/build-module/notice/list.native.js.map +1 -1
  226. package/build-module/palette-edit/index.js +37 -7
  227. package/build-module/palette-edit/index.js.map +1 -1
  228. package/build-module/popover/index.js +225 -325
  229. package/build-module/popover/index.js.map +1 -1
  230. package/build-module/resizable-box/resize-tooltip/utils.js +4 -5
  231. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  232. package/build-module/sandbox/index.js +2 -2
  233. package/build-module/sandbox/index.js.map +1 -1
  234. package/build-module/sandbox/index.native.js +1 -1
  235. package/build-module/sandbox/index.native.js.map +1 -1
  236. package/build-module/select-control/index.js +29 -3
  237. package/build-module/select-control/index.js.map +1 -1
  238. package/build-module/select-control/styles/select-control-styles.js +17 -14
  239. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  240. package/build-module/surface/styles.js +8 -8
  241. package/build-module/surface/styles.js.map +1 -1
  242. package/build-module/text/hook.js +5 -5
  243. package/build-module/text/hook.js.map +1 -1
  244. package/build-module/text/styles/text-mixins.native.js +2 -2
  245. package/build-module/text/styles/text-mixins.native.js.map +1 -1
  246. package/build-module/text/styles.js +7 -7
  247. package/build-module/text/styles.js.map +1 -1
  248. package/build-module/text-control/index.js +35 -27
  249. package/build-module/text-control/index.js.map +1 -1
  250. package/build-module/text-control/types.js +2 -0
  251. package/build-module/text-control/types.js.map +1 -0
  252. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
  253. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  254. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +1 -5
  255. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
  256. package/build-module/tools-panel/tools-panel-header/component.js +51 -36
  257. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  258. package/build-module/tooltip/index.js +2 -2
  259. package/build-module/tooltip/index.js.map +1 -1
  260. package/build-module/ui/spinner/component.js +1 -1
  261. package/build-module/ui/spinner/component.js.map +1 -1
  262. package/build-module/unit-control/index.js +3 -3
  263. package/build-module/unit-control/index.js.map +1 -1
  264. package/build-module/unit-control/styles/unit-control-styles.js +11 -20
  265. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  266. package/build-module/unit-control/utils.js.map +1 -1
  267. package/build-module/utils/colors-values.js +19 -23
  268. package/build-module/utils/colors-values.js.map +1 -1
  269. package/build-style/style-rtl.css +55 -170
  270. package/build-style/style.css +51 -170
  271. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  272. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -1
  273. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  274. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  275. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  276. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +3 -1
  277. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  278. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  279. package/build-types/border-box-control/styles.d.ts +2 -2
  280. package/build-types/border-box-control/styles.d.ts.map +1 -1
  281. package/build-types/border-box-control/types.d.ts +40 -13
  282. package/build-types/border-box-control/types.d.ts.map +1 -1
  283. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  284. package/build-types/border-control/border-control/hook.d.ts +2 -1
  285. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  286. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  287. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
  288. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  289. package/build-types/border-control/styles.d.ts +2 -1
  290. package/build-types/border-control/styles.d.ts.map +1 -1
  291. package/build-types/border-control/types.d.ts +18 -6
  292. package/build-types/border-control/types.d.ts.map +1 -1
  293. package/build-types/button/index.d.ts.map +1 -1
  294. package/build-types/button-group/index.d.ts +25 -0
  295. package/build-types/button-group/index.d.ts.map +1 -0
  296. package/build-types/button-group/stories/index.d.ts +12 -0
  297. package/build-types/button-group/stories/index.d.ts.map +1 -0
  298. package/build-types/button-group/types.d.ts +11 -0
  299. package/build-types/button-group/types.d.ts.map +1 -0
  300. package/build-types/checkbox-control/index.d.ts +26 -0
  301. package/build-types/checkbox-control/index.d.ts.map +1 -0
  302. package/build-types/checkbox-control/stories/index.d.ts +13 -0
  303. package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
  304. package/build-types/checkbox-control/types.d.ts +35 -0
  305. package/build-types/checkbox-control/types.d.ts.map +1 -0
  306. package/build-types/circular-option-picker/index.d.ts.map +1 -1
  307. package/build-types/color-palette/index.d.ts.map +1 -1
  308. package/build-types/color-picker/styles.d.ts +3 -3
  309. package/build-types/date-time/date.d.ts +24 -0
  310. package/build-types/date-time/date.d.ts.map +1 -0
  311. package/build-types/date-time/index.d.ts +35 -0
  312. package/build-types/date-time/index.d.ts.map +1 -0
  313. package/build-types/date-time/stories/date.d.ts +14 -0
  314. package/build-types/date-time/stories/date.d.ts.map +1 -0
  315. package/build-types/date-time/stories/index.d.ts +14 -0
  316. package/build-types/date-time/stories/index.d.ts.map +1 -0
  317. package/build-types/date-time/stories/time.d.ts +12 -0
  318. package/build-types/date-time/stories/time.d.ts.map +1 -0
  319. package/build-types/date-time/stories/utils.d.ts +3 -0
  320. package/build-types/date-time/stories/utils.d.ts.map +1 -0
  321. package/build-types/date-time/test/date.d.ts +2 -0
  322. package/build-types/date-time/test/date.d.ts.map +1 -0
  323. package/build-types/date-time/test/time.d.ts +2 -0
  324. package/build-types/date-time/test/time.d.ts.map +1 -0
  325. package/build-types/date-time/test/utils.d.ts +2 -0
  326. package/build-types/date-time/test/utils.d.ts.map +1 -0
  327. package/build-types/date-time/time.d.ts +25 -0
  328. package/build-types/date-time/time.d.ts.map +1 -0
  329. package/build-types/date-time/timezone.d.ts +8 -0
  330. package/build-types/date-time/timezone.d.ts.map +1 -0
  331. package/build-types/date-time/types.d.ts +91 -0
  332. package/build-types/date-time/types.d.ts.map +1 -0
  333. package/build-types/date-time/utils.d.ts +15 -0
  334. package/build-types/date-time/utils.d.ts.map +1 -0
  335. package/build-types/disabled/index.d.ts.map +1 -1
  336. package/build-types/dropdown/index.d.ts.map +1 -1
  337. package/build-types/input-control/index.d.ts +23 -3
  338. package/build-types/input-control/index.d.ts.map +1 -1
  339. package/build-types/input-control/input-field.d.ts +1 -1
  340. package/build-types/input-control/input-field.d.ts.map +1 -1
  341. package/build-types/input-control/stories/index.d.ts +5 -5
  342. package/build-types/input-control/stories/index.d.ts.map +1 -1
  343. package/build-types/input-control/styles/input-control-styles.d.ts +1 -0
  344. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  345. package/build-types/input-control/types.d.ts +79 -3
  346. package/build-types/input-control/types.d.ts.map +1 -1
  347. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  348. package/build-types/popover/index.d.ts +5 -8
  349. package/build-types/popover/index.d.ts.map +1 -1
  350. package/build-types/resizable-box/index.d.ts +1 -1
  351. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  352. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  353. package/build-types/select-control/index.d.ts +30 -26
  354. package/build-types/select-control/index.d.ts.map +1 -1
  355. package/build-types/select-control/stories/index.d.ts +23 -0
  356. package/build-types/select-control/stories/index.d.ts.map +1 -0
  357. package/build-types/select-control/styles/select-control-styles.d.ts +3 -4
  358. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  359. package/build-types/select-control/test/select-control.d.ts +2 -0
  360. package/build-types/select-control/test/select-control.d.ts.map +1 -0
  361. package/build-types/select-control/types.d.ts +52 -1
  362. package/build-types/select-control/types.d.ts.map +1 -1
  363. package/build-types/text-control/index.d.ts +2 -2
  364. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  365. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  366. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  367. package/build-types/tools-panel/types.d.ts +0 -1
  368. package/build-types/tools-panel/types.d.ts.map +1 -1
  369. package/build-types/tooltip/index.d.ts.map +1 -1
  370. package/build-types/unit-control/index.d.ts +2 -2
  371. package/build-types/unit-control/index.d.ts.map +1 -1
  372. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  373. package/build-types/unit-control/test/index.d.ts +2 -0
  374. package/build-types/unit-control/test/index.d.ts.map +1 -0
  375. package/build-types/unit-control/test/utils.d.ts +2 -0
  376. package/build-types/unit-control/test/utils.d.ts.map +1 -0
  377. package/build-types/unit-control/types.d.ts +1 -1
  378. package/build-types/unit-control/types.d.ts.map +1 -1
  379. package/build-types/unit-control/utils.d.ts +3 -3
  380. package/build-types/unit-control/utils.d.ts.map +1 -1
  381. package/build-types/utils/colors-values.d.ts +6 -146
  382. package/build-types/utils/colors-values.d.ts.map +1 -1
  383. package/package.json +19 -19
  384. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +5 -3
  385. package/src/autocomplete/style.scss +1 -1
  386. package/src/border-box-control/border-box-control/README.md +10 -14
  387. package/src/border-box-control/border-box-control/component.tsx +21 -4
  388. package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
  389. package/src/border-box-control/border-box-control-split-controls/component.tsx +24 -7
  390. package/src/border-box-control/border-box-control-visualizer/hook.ts +11 -6
  391. package/src/border-box-control/stories/index.js +1 -0
  392. package/src/border-box-control/styles.ts +15 -8
  393. package/src/border-box-control/types.ts +40 -14
  394. package/src/border-control/border-control/README.md +0 -7
  395. package/src/border-control/border-control/component.tsx +4 -2
  396. package/src/border-control/border-control/hook.ts +5 -2
  397. package/src/border-control/border-control-dropdown/component.tsx +18 -11
  398. package/src/border-control/border-control-dropdown/hook.ts +7 -5
  399. package/src/border-control/stories/index.js +1 -0
  400. package/src/border-control/styles.ts +82 -22
  401. package/src/border-control/types.ts +18 -6
  402. package/src/box-control/README.md +0 -74
  403. package/src/box-control/index.js +0 -15
  404. package/src/box-control/stories/index.js +0 -29
  405. package/src/box-control/utils.js +0 -7
  406. package/src/button/index.js +2 -4
  407. package/src/button/index.native.js +33 -18
  408. package/src/button/test/index.js +16 -1
  409. package/src/button-group/index.tsx +47 -0
  410. package/src/button-group/stories/index.tsx +41 -0
  411. package/src/button-group/types.ts +11 -0
  412. package/src/checkbox-control/README.md +10 -8
  413. package/src/checkbox-control/{index.js → index.tsx} +49 -14
  414. package/src/checkbox-control/stories/{index.js → index.tsx} +49 -27
  415. package/src/checkbox-control/types.ts +36 -0
  416. package/src/circular-option-picker/index.js +1 -2
  417. package/src/circular-option-picker/style.scss +1 -0
  418. package/src/color-palette/README.md +0 -1
  419. package/src/color-palette/index.js +6 -13
  420. package/src/color-palette/style.scss +3 -18
  421. package/src/color-palette/test/__snapshots__/index.js.snap +2 -3
  422. package/src/confirm-dialog/stories/index.js +87 -99
  423. package/src/date-time/README.md +13 -10
  424. package/src/date-time/{date.js → date.tsx} +49 -20
  425. package/src/date-time/{index.js → index.tsx} +31 -5
  426. package/src/date-time/stories/date.tsx +73 -0
  427. package/src/date-time/stories/index.tsx +75 -0
  428. package/src/date-time/stories/time.tsx +51 -0
  429. package/src/date-time/stories/utils.ts +9 -0
  430. package/src/date-time/test/date.tsx +127 -0
  431. package/src/date-time/test/{time.js → time.tsx} +34 -19
  432. package/src/date-time/test/{utils.js → utils.ts} +1 -1
  433. package/src/date-time/{time.js → time.tsx} +57 -46
  434. package/src/date-time/{timezone.js → timezone.tsx} +4 -3
  435. package/src/date-time/types.ts +106 -0
  436. package/src/date-time/utils.ts +20 -0
  437. package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
  438. package/src/disabled/index.js +5 -90
  439. package/src/draggable/index.native.js +215 -0
  440. package/src/draggable/style.native.scss +3 -0
  441. package/src/dropdown/index.js +9 -4
  442. package/src/dropdown/style.scss +1 -1
  443. package/src/focal-point-picker/index.native.js +3 -3
  444. package/src/form-file-upload/test/index.js +20 -13
  445. package/src/heading/hook.ts +1 -1
  446. package/src/heading/test/__snapshots__/index.js.snap +3 -3
  447. package/src/index.js +0 -1
  448. package/src/index.native.js +1 -0
  449. package/src/input-control/README.md +3 -3
  450. package/src/input-control/index.tsx +23 -3
  451. package/src/input-control/stories/index.tsx +63 -0
  452. package/src/input-control/styles/input-control-styles.tsx +20 -7
  453. package/src/input-control/types.ts +79 -2
  454. package/src/item-group/stories/index.js +22 -18
  455. package/src/menu-item/style.scss +10 -0
  456. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  457. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +9 -2
  458. package/src/mobile/bottom-sheet/index.native.js +1 -1
  459. package/src/mobile/bottom-sheet-select-control/index.native.js +8 -2
  460. package/src/mobile/html-text-input/index.native.js +45 -29
  461. package/src/mobile/html-text-input/style.android.scss +2 -15
  462. package/src/mobile/html-text-input/style.ios.scss +2 -15
  463. package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
  464. package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
  465. package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
  466. package/src/mobile/link-settings/test/link-settings-navigation.native.js +9 -1
  467. package/src/navigation/styles/navigation-styles.js +5 -5
  468. package/src/navigator/stories/index.js +16 -10
  469. package/src/notice/index.native.js +44 -54
  470. package/src/notice/list.native.js +27 -51
  471. package/src/notice/style.native.scss +1 -0
  472. package/src/palette-edit/index.js +37 -9
  473. package/src/palette-edit/style.scss +0 -7
  474. package/src/palette-edit/test/index.js +63 -0
  475. package/src/panel/README.md +1 -1
  476. package/src/placeholder/test/index.js +7 -0
  477. package/src/popover/README.md +7 -9
  478. package/src/popover/index.js +242 -417
  479. package/src/popover/style.scss +20 -190
  480. package/src/popover/test/__snapshots__/index.js.snap +6 -18
  481. package/src/query-controls/README.md +2 -2
  482. package/src/resizable-box/resize-tooltip/utils.ts +4 -5
  483. package/src/sandbox/index.js +2 -2
  484. package/src/sandbox/index.native.js +1 -1
  485. package/src/select-control/README.md +2 -2
  486. package/src/select-control/index.tsx +30 -29
  487. package/src/select-control/stories/index.tsx +90 -0
  488. package/src/select-control/styles/select-control-styles.ts +16 -12
  489. package/src/select-control/test/{select-control.js → select-control.tsx} +2 -2
  490. package/src/select-control/types.ts +66 -1
  491. package/src/surface/styles.js +1 -1
  492. package/src/tab-panel/style.scss +1 -1
  493. package/src/text/hook.js +1 -1
  494. package/src/text/styles/text-mixins.native.js +2 -2
  495. package/src/text/styles.js +1 -1
  496. package/src/text/test/__snapshots__/{index.js.snap → index.tsx.snap} +16 -0
  497. package/src/text/test/{index.js → index.tsx} +12 -6
  498. package/src/text-control/index.tsx +84 -0
  499. package/src/text-control/stories/index.tsx +66 -0
  500. package/src/text-control/types.ts +29 -0
  501. package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
  502. package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
  503. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +1 -5
  504. package/src/toolbar-group/style.scss +20 -0
  505. package/src/tools-panel/test/__snapshots__/index.js.snap +2 -2
  506. package/src/tools-panel/test/index.js +71 -18
  507. package/src/tools-panel/tools-panel-header/component.tsx +75 -33
  508. package/src/tools-panel/types.ts +0 -1
  509. package/src/tooltip/index.js +8 -2
  510. package/src/tooltip/style.scss +2 -4
  511. package/src/tooltip/test/index.js +6 -0
  512. package/src/tooltip/test/index.native.js +1 -1
  513. package/src/ui/spinner/component.js +1 -1
  514. package/src/ui/spinner/test/__snapshots__/index.js.snap +3 -3
  515. package/src/unit-control/index.tsx +2 -5
  516. package/src/unit-control/styles/unit-control-styles.ts +3 -13
  517. package/src/unit-control/test/__snapshots__/index.tsx.snap +33 -0
  518. package/src/unit-control/test/{index.js → index.tsx} +295 -166
  519. package/src/unit-control/test/{utils.js → utils.ts} +38 -19
  520. package/src/unit-control/types.ts +4 -1
  521. package/src/unit-control/utils.ts +5 -3
  522. package/src/utils/colors-values.js +18 -22
  523. package/tsconfig.json +14 -3
  524. package/tsconfig.tsbuildinfo +1 -1
  525. package/build/box-control/visualizer.js +0 -165
  526. package/build/box-control/visualizer.js.map +0 -1
  527. package/build/flyout/context.js +0 -23
  528. package/build/flyout/context.js.map +0 -1
  529. package/build/flyout/flyout/component.js +0 -106
  530. package/build/flyout/flyout/component.js.map +0 -1
  531. package/build/flyout/flyout/hook.js +0 -53
  532. package/build/flyout/flyout/hook.js.map +0 -1
  533. package/build/flyout/flyout/index.js +0 -24
  534. package/build/flyout/flyout/index.js.map +0 -1
  535. package/build/flyout/flyout-content/component.js +0 -65
  536. package/build/flyout/flyout-content/component.js.map +0 -1
  537. package/build/flyout/flyout-content/index.js +0 -16
  538. package/build/flyout/flyout-content/index.js.map +0 -1
  539. package/build/flyout/index.js +0 -16
  540. package/build/flyout/index.js.map +0 -1
  541. package/build/flyout/styles.js +0 -46
  542. package/build/flyout/styles.js.map +0 -1
  543. package/build/flyout/utils.js +0 -36
  544. package/build/flyout/utils.js.map +0 -1
  545. package/build/mobile/html-text-input/container.android.js +0 -41
  546. package/build/mobile/html-text-input/container.android.js.map +0 -1
  547. package/build/mobile/html-text-input/container.ios.js +0 -60
  548. package/build/mobile/html-text-input/container.ios.js.map +0 -1
  549. package/build/popover/utils.js +0 -322
  550. package/build/popover/utils.js.map +0 -1
  551. package/build-module/box-control/visualizer.js +0 -154
  552. package/build-module/box-control/visualizer.js.map +0 -1
  553. package/build-module/flyout/context.js +0 -11
  554. package/build-module/flyout/context.js.map +0 -1
  555. package/build-module/flyout/flyout/component.js +0 -89
  556. package/build-module/flyout/flyout/component.js.map +0 -1
  557. package/build-module/flyout/flyout/hook.js +0 -44
  558. package/build-module/flyout/flyout/hook.js.map +0 -1
  559. package/build-module/flyout/flyout/index.js +0 -3
  560. package/build-module/flyout/flyout/index.js.map +0 -1
  561. package/build-module/flyout/flyout-content/component.js +0 -51
  562. package/build-module/flyout/flyout-content/component.js.map +0 -1
  563. package/build-module/flyout/flyout-content/index.js +0 -2
  564. package/build-module/flyout/flyout-content/index.js.map +0 -1
  565. package/build-module/flyout/index.js +0 -2
  566. package/build-module/flyout/index.js.map +0 -1
  567. package/build-module/flyout/styles.js +0 -27
  568. package/build-module/flyout/styles.js.map +0 -1
  569. package/build-module/flyout/utils.js +0 -25
  570. package/build-module/flyout/utils.js.map +0 -1
  571. package/build-module/mobile/html-text-input/container.android.js +0 -29
  572. package/build-module/mobile/html-text-input/container.android.js.map +0 -1
  573. package/build-module/mobile/html-text-input/container.ios.js +0 -48
  574. package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
  575. package/build-module/popover/utils.js +0 -308
  576. package/build-module/popover/utils.js.map +0 -1
  577. package/build-types/flyout/context.d.ts +0 -6
  578. package/build-types/flyout/context.d.ts.map +0 -1
  579. package/build-types/flyout/flyout/component.d.ts +0 -21
  580. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  581. package/build-types/flyout/flyout/hook.d.ts +0 -270
  582. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  583. package/build-types/flyout/flyout/index.d.ts +0 -3
  584. package/build-types/flyout/flyout/index.d.ts.map +0 -1
  585. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  586. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  587. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  588. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  589. package/build-types/flyout/index.d.ts +0 -2
  590. package/build-types/flyout/index.d.ts.map +0 -1
  591. package/build-types/flyout/styles.d.ts +0 -22
  592. package/build-types/flyout/styles.d.ts.map +0 -1
  593. package/build-types/flyout/types.d.ts +0 -80
  594. package/build-types/flyout/types.d.ts.map +0 -1
  595. package/build-types/flyout/utils.d.ts +0 -8
  596. package/build-types/flyout/utils.d.ts.map +0 -1
  597. package/build-types/popover/utils.d.ts +0 -70
  598. package/build-types/popover/utils.d.ts.map +0 -1
  599. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts +0 -19
  600. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +0 -1
  601. package/src/box-control/visualizer.js +0 -116
  602. package/src/button-group/index.js +0 -17
  603. package/src/button-group/stories/index.js +0 -21
  604. package/src/date-time/stories/date.js +0 -17
  605. package/src/date-time/stories/index.js +0 -72
  606. package/src/date-time/stories/time.js +0 -32
  607. package/src/date-time/test/date.js +0 -97
  608. package/src/date-time/utils.js +0 -18
  609. package/src/flyout/context.js +0 -10
  610. package/src/flyout/flyout/README.md +0 -98
  611. package/src/flyout/flyout/component.js +0 -111
  612. package/src/flyout/flyout/hook.js +0 -45
  613. package/src/flyout/flyout/index.js +0 -2
  614. package/src/flyout/flyout-content/component.js +0 -53
  615. package/src/flyout/flyout-content/index.js +0 -1
  616. package/src/flyout/index.js +0 -1
  617. package/src/flyout/stories/index.js +0 -24
  618. package/src/flyout/styles.ts +0 -41
  619. package/src/flyout/test/__snapshots__/index.js.snap +0 -186
  620. package/src/flyout/test/index.js +0 -103
  621. package/src/flyout/types.ts +0 -84
  622. package/src/flyout/utils.js +0 -23
  623. package/src/input-control/stories/index.js +0 -71
  624. package/src/mobile/html-text-input/container.android.js +0 -23
  625. package/src/mobile/html-text-input/container.ios.js +0 -50
  626. package/src/popover/test/utils.js +0 -304
  627. package/src/popover/utils.js +0 -396
  628. package/src/select-control/stories/index.js +0 -104
  629. package/src/text-control/index.js +0 -72
  630. package/src/text-control/stories/index.js +0 -46
@@ -1,222 +1,41 @@
1
- $arrow-size: 8px;
2
-
3
- /*!rtl:begin:ignore*/
4
1
  .components-popover {
5
- position: fixed;
6
2
  z-index: z-index(".components-popover");
7
- top: 0;
8
- left: 0;
9
-
10
- // Hide the popover element until the position has been calculated. The position
11
- // cannot be calculated until the popover element is rendered because the
12
- // position depends on the size of the popover.
13
- opacity: 0;
14
-
15
- &.is-expanded,
16
- &[data-x-axis][data-y-axis] {
17
- opacity: 1;
18
- }
19
3
 
20
4
  &.is-expanded {
5
+ position: fixed;
21
6
  top: 0;
22
7
  left: 0;
23
8
  right: 0;
24
9
  bottom: 0;
25
10
  z-index: z-index(".components-popover") !important;
26
11
  }
27
-
28
- &:not(.is-without-arrow) {
29
- margin-left: 2px;
30
-
31
- &::before {
32
- border: $arrow-size solid $gray-400;
33
- }
34
-
35
- &.is-alternate::before {
36
- border-color: $gray-900;
37
- }
38
-
39
- &::after {
40
- border: $arrow-size solid $white;
41
- }
42
-
43
- &::before,
44
- &::after {
45
- content: "";
46
- position: absolute;
47
- height: 0;
48
- width: 0;
49
- line-height: 0;
50
- }
51
-
52
- &[data-y-axis="top"] {
53
- margin-top: - $arrow-size;
54
-
55
- &::before {
56
- bottom: - $arrow-size;
57
- }
58
-
59
- &::after {
60
- bottom: -6px;
61
- }
62
-
63
- &::before,
64
- &::after {
65
- border-bottom: none;
66
- border-left-color: transparent;
67
- border-right-color: transparent;
68
- border-top-style: solid;
69
- margin-left: -10px;
70
- }
71
- }
72
-
73
- &[data-y-axis="bottom"] {
74
- margin-top: $arrow-size;
75
-
76
- &::before {
77
- top: -$arrow-size;
78
- }
79
-
80
- &::after {
81
- top: -6px;
82
- }
83
-
84
- &::before,
85
- &::after {
86
- border-bottom-style: solid;
87
- border-left-color: transparent;
88
- border-right-color: transparent;
89
- border-top: none;
90
- margin-left: -10px;
91
- }
92
- }
93
-
94
- &[data-y-axis="middle"][data-x-axis="left"] {
95
- margin-left: -$arrow-size;
96
-
97
- &::before {
98
- right: -$arrow-size;
99
- }
100
-
101
- &::after {
102
- right: -6px;
103
- }
104
-
105
- &::before,
106
- &::after {
107
- border-bottom-color: transparent;
108
- border-left-style: solid;
109
- border-right: none;
110
- border-top-color: transparent;
111
- }
112
- }
113
-
114
- &[data-y-axis="middle"][data-x-axis="right"] {
115
- margin-left: $arrow-size;
116
-
117
- &::before {
118
- left: -$arrow-size;
119
- }
120
-
121
- &::after {
122
- left: -6px;
123
- }
124
-
125
- &::before,
126
- &::after {
127
- border-bottom-color: transparent;
128
- border-left: none;
129
- border-right-style: solid;
130
- border-top-color: transparent;
131
- }
132
- }
133
- }
134
-
135
- &[data-y-axis="top"] {
136
- bottom: 100%;
137
- }
138
-
139
- &[data-y-axis="bottom"] {
140
- top: 100%;
141
- }
142
-
143
- &[data-y-axis="middle"] {
144
- align-items: center;
145
- display: flex;
146
- }
147
-
148
- // Add spacing.
149
- &.is-from-top {
150
- margin-top: $grid-unit-15;
151
- }
152
-
153
- &.is-from-bottom {
154
- margin-top: -$grid-unit-15;
155
- }
156
-
157
- &.is-from-left:not(.is-from-top):not(.is-from-bottom) {
158
- margin-left: $grid-unit-15;
159
- }
160
-
161
- &.is-from-right:not(.is-from-top):not(.is-from-bottom) {
162
- margin-right: $grid-unit-15;
163
- }
164
12
  }
165
13
 
166
14
  .components-popover__content {
167
- height: 100%;
168
15
  background: $white;
169
- border: $border-width solid $gray-400;
16
+ // Using outline instead of border to avoid impacting
17
+ // popover computations.
18
+ outline: $border-width solid $gray-400;
170
19
  box-shadow: $shadow-popover;
171
20
  border-radius: $radius-block-ui;
21
+ box-sizing: border-box;
22
+ width: min-content;
172
23
 
173
24
  // Alternate treatment for popovers that put them at elevation zero with high contrast.
174
25
  .is-alternate & {
175
- border: $border-width solid $gray-900;
26
+ outline: $border-width solid $gray-900;
176
27
  box-shadow: none;
177
28
  }
178
29
 
179
- .components-popover & {
180
- position: absolute;
181
- height: auto;
182
- overflow-y: auto;
183
- }
184
-
185
30
  .components-popover.is-expanded & {
186
31
  position: static;
187
32
  height: calc(100% - #{ $panel-header-height });
188
33
  overflow-y: visible;
189
34
  min-width: auto;
190
35
  border: none;
36
+ outline: none;
191
37
  border-top: $border-width solid $gray-900;
192
38
  }
193
-
194
- .components-popover[data-y-axis="top"] & {
195
- bottom: 100%;
196
- }
197
-
198
- .components-popover[data-x-axis="center"] & {
199
- left: 50%;
200
- transform: translateX(-50%);
201
- }
202
-
203
- .components-popover[data-x-axis="right"] & {
204
- position: absolute;
205
- left: 100%;
206
- }
207
-
208
- .components-popover:not([data-y-axis="middle"])[data-x-axis="right"] & {
209
- margin-left: -($grid-unit-30 + $border-width);
210
- }
211
-
212
- .components-popover[data-x-axis="left"] & {
213
- position: absolute;
214
- right: 100%;
215
- }
216
-
217
- .components-popover:not([data-y-axis="middle"])[data-x-axis="left"] & {
218
- margin-right: -($grid-unit-30 + $border-width);
219
- }
220
39
  }
221
40
 
222
41
  .components-popover__header {
@@ -238,4 +57,15 @@ $arrow-size: 8px;
238
57
  .components-popover__close.components-button {
239
58
  z-index: z-index(".components-popover__close");
240
59
  }
241
- /*!rtl:end:ignore*/
60
+
61
+ .components-popover__arrow {
62
+ position: absolute;
63
+ background: $gray-400;
64
+ width: 8px;
65
+ height: 8px;
66
+ transform: rotate(45deg);
67
+ z-index: -1;
68
+ .is-alternate & {
69
+ background: $gray-900;
70
+ }
71
+ }
@@ -3,21 +3,15 @@
3
3
  exports[`Popover should pass additional props to portaled element 1`] = `
4
4
  <span>
5
5
  <div
6
- class="components-popover components-animate__appear is-from-top is-from-left is-without-arrow"
7
- data-x-axis="right"
8
- data-y-axis="bottom"
6
+ class="components-popover components-animate__appear is-from-left is-from-top"
9
7
  role="tooltip"
10
- style="top: 0px; left: 0px;"
8
+ style="position: absolute;"
11
9
  tabindex="-1"
12
10
  >
13
11
  <div
14
12
  class="components-popover__content"
15
13
  >
16
- <div
17
- style="position: relative;"
18
- >
19
- Hello
20
- </div>
14
+ Hello
21
15
  </div>
22
16
  </div>
23
17
  </span>
@@ -26,20 +20,14 @@ exports[`Popover should pass additional props to portaled element 1`] = `
26
20
  exports[`Popover should render content 1`] = `
27
21
  <span>
28
22
  <div
29
- class="components-popover components-animate__appear is-from-top is-from-left is-without-arrow"
30
- data-x-axis="right"
31
- data-y-axis="bottom"
32
- style="top: 0px; left: 0px;"
23
+ class="components-popover components-animate__appear is-from-left is-from-top"
24
+ style="position: absolute;"
33
25
  tabindex="-1"
34
26
  >
35
27
  <div
36
28
  class="components-popover__content"
37
29
  >
38
- <div
39
- style="position: relative;"
40
- >
41
- Hello
42
- </div>
30
+ Hello
43
31
  </div>
44
32
  </div>
45
33
  </span>
@@ -51,7 +51,7 @@ const MyQueryControls = () => {
51
51
  selectedCategoryId={ category }
52
52
  onCategoryChange={ ( newCategory ) => updateQuery( { category: newCategory } ) }
53
53
  onNumberOfItemsChange={ ( newNumberOfItems ) =>
54
- updateQuery( { numberOfItems: newCategory } )
54
+ updateQuery( { numberOfItems: newNumberOfItems } )
55
55
  }
56
56
  />
57
57
  );
@@ -104,7 +104,7 @@ const MyQueryControls = () => {
104
104
  selectedCategories={ selectedCategories }
105
105
  onCategoryChange={ ( category ) => updateQuery( { selectedCategories: category } ) }
106
106
  onNumberOfItemsChange={ ( newNumberOfItems ) =>
107
- updateQuery( { numberOfItems: newCategory } )
107
+ updateQuery( { numberOfItems: newNumberOfItems } )
108
108
  }
109
109
  />
110
110
  );
@@ -2,12 +2,12 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { noop } from 'lodash';
5
- import useResizeAware from 'react-resize-aware';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
9
8
  */
10
9
  import { useEffect, useRef, useState } from '@wordpress/element';
10
+ import { useResizeObserver } from '@wordpress/compose';
11
11
 
12
12
  const { clearTimeout, setTimeout } = window;
13
13
 
@@ -56,11 +56,10 @@ export function useResizeLabel( {
56
56
  showPx = false,
57
57
  }: UseResizeLabelArgs ): UseResizeLabelProps {
58
58
  /*
59
- * The width/height values derive from this special useResizeAware hook.
60
- * This custom hook uses injects an iFrame into the element, allowing it
61
- * to tap into the onResize (window) callback events.
59
+ * The width/height values derive from this special useResizeObserver hook.
60
+ * This custom hook uses the ResizeObserver API to listen for resize events.
62
61
  */
63
- const [ resizeListener, sizes ] = useResizeAware();
62
+ const [ resizeListener, sizes ] = useResizeObserver();
64
63
 
65
64
  /*
66
65
  * Indicates if the x/y axis is preferred.
@@ -227,11 +227,11 @@ export default function Sandbox( {
227
227
 
228
228
  useEffect( () => {
229
229
  trySandbox();
230
- }, [ title, type, styles, scripts ] );
230
+ }, [ title, styles, scripts ] );
231
231
 
232
232
  useEffect( () => {
233
233
  trySandbox( true );
234
- }, [ html ] );
234
+ }, [ html, type ] );
235
235
 
236
236
  return (
237
237
  <iframe
@@ -110,7 +110,7 @@ const style = `
110
110
  /**
111
111
  * Add responsiveness to embeds with aspect ratios.
112
112
  *
113
- * These styles have been copied from the web version (https://git.io/JEFcX) and
113
+ * These styles have been copied from the web version (https://github.com/WordPress/gutenberg/blob/7901895ca20cf61e402925e31571d659dab64721/packages/block-library/src/embed/style.scss#L42-L89) and
114
114
  * adapted for the native version.
115
115
  */
116
116
  .wp-has-aspect-ratio.wp-block-embed__wrapper::before {
@@ -114,7 +114,7 @@ Render a user interface to select multiple users from a list.
114
114
  this.setState( { users } );
115
115
  } }
116
116
  options={ [
117
- { value: null, label: 'Select a User', disabled: true },
117
+ { value: '', label: 'Select a User', disabled: true },
118
118
  { value: 'a', label: 'User A' },
119
119
  { value: 'b', label: 'User B' },
120
120
  { value: 'c', label: 'User c' },
@@ -194,7 +194,7 @@ If this property is added, multiple values can be selected. The value passed sho
194
194
  An array of objects containing the following properties:
195
195
 
196
196
  - `label`: (string) The label to be shown to the user.
197
- - `value`: (Object) The internal value used to choose the selected value. This is also the value passed to onChange when the option is selected.
197
+ - `value`: (string) The internal value used to choose the selected value. This is also the value passed to onChange when the option is selected.
198
198
  - `disabled`: (boolean) Whether or not the option should have the disabled attribute.
199
199
  - Type: `Array`
200
200
  - Required: No
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { isEmpty, noop } from 'lodash';
5
5
  import classNames from 'classnames';
6
- import type { ChangeEvent, FocusEvent, ReactNode, ForwardedRef } from 'react';
6
+ import type { ChangeEvent, FocusEvent, ForwardedRef } from 'react';
7
7
 
8
8
  /**
9
9
  * WordPress dependencies
@@ -17,10 +17,9 @@ import { Icon, chevronDown } from '@wordpress/icons';
17
17
  */
18
18
  import BaseControl from '../base-control';
19
19
  import InputBase from '../input-control/input-base';
20
- import type { InputBaseProps, LabelPosition } from '../input-control/types';
21
20
  import { Select, DownArrowWrapper } from './styles/select-control-styles';
22
- import type { Size } from './types';
23
21
  import type { WordPressComponentProps } from '../ui/context';
22
+ import type { SelectControlProps } from './types';
24
23
 
25
24
  function useUniqueId( idProp?: string ) {
26
25
  const instanceId = useInstanceId( SelectControl );
@@ -29,30 +28,7 @@ function useUniqueId( idProp?: string ) {
29
28
  return idProp || id;
30
29
  }
31
30
 
32
- export interface SelectControlProps
33
- extends Omit< InputBaseProps, 'children' | 'isFocused' > {
34
- help?: string;
35
- hideLabelFromVision?: boolean;
36
- multiple?: boolean;
37
- onBlur?: ( event: FocusEvent< HTMLSelectElement > ) => void;
38
- onFocus?: ( event: FocusEvent< HTMLSelectElement > ) => void;
39
- onChange?: (
40
- value: string | string[],
41
- extra?: { event?: ChangeEvent< HTMLSelectElement > }
42
- ) => void;
43
- options?: {
44
- label: string;
45
- value: string;
46
- id?: string;
47
- disabled?: boolean;
48
- }[];
49
- size?: Size;
50
- value?: string | string[];
51
- labelPosition?: LabelPosition;
52
- children?: ReactNode;
53
- }
54
-
55
- function SelectControl(
31
+ function UnforwardedSelectControl(
56
32
  {
57
33
  className,
58
34
  disabled = false,
@@ -165,6 +141,31 @@ function SelectControl(
165
141
  /* eslint-enable jsx-a11y/no-onchange */
166
142
  }
167
143
 
168
- const ForwardedComponent = forwardRef( SelectControl );
144
+ /**
145
+ * `SelectControl` allows users to select from a single or multiple option menu.
146
+ * It functions as a wrapper around the browser's native `<select>` element.
147
+ *
148
+ * @example
149
+ * import { SelectControl } from '@wordpress/components';
150
+ * import { useState } from '@wordpress/element';
151
+ *
152
+ * const MySelectControl = () => {
153
+ * const [ size, setSize ] = useState( '50%' );
154
+ *
155
+ * return (
156
+ * <SelectControl
157
+ * label="Size"
158
+ * value={ size }
159
+ * options={ [
160
+ * { label: 'Big', value: '100%' },
161
+ * { label: 'Medium', value: '50%' },
162
+ * { label: 'Small', value: '25%' },
163
+ * ] }
164
+ * onChange={ setSize }
165
+ * />
166
+ * );
167
+ * };
168
+ */
169
+ export const SelectControl = forwardRef( UnforwardedSelectControl );
169
170
 
170
- export default ForwardedComponent;
171
+ export default SelectControl;
@@ -0,0 +1,90 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { ComponentMeta, ComponentStory } from '@storybook/react';
5
+ import type { ComponentProps } from 'react';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import { useState } from '@wordpress/element';
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ import SelectControl from '..';
16
+
17
+ const meta: ComponentMeta< typeof SelectControl > = {
18
+ title: 'Components/SelectControl',
19
+ component: SelectControl,
20
+ argTypes: {
21
+ help: { control: { type: 'text' } },
22
+ label: { control: { type: 'text' } },
23
+ prefix: { control: { type: 'text' } },
24
+ suffix: { control: { type: 'text' } },
25
+ value: { control: { type: null } },
26
+ },
27
+ parameters: {
28
+ controls: { expanded: true },
29
+ docs: { source: { state: 'open' } },
30
+ },
31
+ };
32
+ export default meta;
33
+
34
+ const SelectControlWithState: ComponentStory< typeof SelectControl > = (
35
+ args
36
+ ) => {
37
+ const [ selection, setSelection ] = useState<
38
+ ComponentProps< typeof SelectControl >[ 'value' ]
39
+ >();
40
+
41
+ return (
42
+ <SelectControl
43
+ { ...args }
44
+ value={ selection }
45
+ onChange={ setSelection }
46
+ />
47
+ );
48
+ };
49
+
50
+ export const Default = SelectControlWithState.bind( {} );
51
+ Default.args = {
52
+ options: [
53
+ { value: '', label: 'Select an Option', disabled: true },
54
+ { value: 'a', label: 'Option A' },
55
+ { value: 'b', label: 'Option B' },
56
+ { value: 'c', label: 'Option C' },
57
+ ],
58
+ };
59
+
60
+ export const WithLabelAndHelpText = SelectControlWithState.bind( {} );
61
+ WithLabelAndHelpText.args = {
62
+ ...Default.args,
63
+ help: 'Help text to explain the select control.',
64
+ label: 'Value',
65
+ };
66
+
67
+ /**
68
+ * As an alternative to the `options` prop, `optgroup`s and `options` can be
69
+ * passed in as `children` for more customizability.
70
+ */
71
+ export const WithCustomChildren: ComponentStory< typeof SelectControl > = (
72
+ args
73
+ ) => {
74
+ return (
75
+ <SelectControlWithState { ...args }>
76
+ <option value="option-1">Option 1</option>
77
+ <option value="option-2" disabled>
78
+ Option 2 - Disabled
79
+ </option>
80
+ <optgroup label="Option Group 1">
81
+ <option value="option-group-1-option-1">
82
+ Option Group 1 - Option 1
83
+ </option>
84
+ <option value="option-group-1-option-2" disabled>
85
+ Option Group 1 - Option 2 - Disabled
86
+ </option>
87
+ </optgroup>
88
+ </SelectControlWithState>
89
+ );
90
+ };
@@ -8,11 +8,12 @@ import styled from '@emotion/styled';
8
8
  * Internal dependencies
9
9
  */
10
10
  import { COLORS, rtl } from '../../utils';
11
- import type { Size } from '../types';
11
+ import type { SelectControlProps } from '../types';
12
12
 
13
- interface SelectProps {
14
- disabled?: boolean;
15
- selectSize?: Size;
13
+ interface SelectProps extends Pick< SelectControlProps, 'disabled' > {
14
+ // Using `selectSize` instead of `size` to avoid a type conflict with the
15
+ // `size` HTML attribute of the `select` element.
16
+ selectSize?: SelectControlProps[ 'size' ];
16
17
  }
17
18
 
18
19
  const disabledStyles = ( { disabled }: SelectProps ) => {
@@ -23,14 +24,14 @@ const disabledStyles = ( { disabled }: SelectProps ) => {
23
24
  } );
24
25
  };
25
26
 
26
- const fontSizeStyles = ( { selectSize }: SelectProps ) => {
27
+ const fontSizeStyles = ( { selectSize = 'default' }: SelectProps ) => {
27
28
  const sizes = {
28
29
  default: '13px',
29
30
  small: '11px',
30
31
  '__unstable-large': '13px',
31
32
  };
32
33
 
33
- const fontSize = sizes[ selectSize as Size ];
34
+ const fontSize = sizes[ selectSize ];
34
35
  const fontSizeMobile = '16px';
35
36
 
36
37
  if ( ! fontSize ) return '';
@@ -44,26 +45,29 @@ const fontSizeStyles = ( { selectSize }: SelectProps ) => {
44
45
  `;
45
46
  };
46
47
 
47
- const sizeStyles = ( { selectSize }: SelectProps ) => {
48
+ const sizeStyles = ( { selectSize = 'default' }: SelectProps ) => {
48
49
  const sizes = {
49
50
  default: {
50
51
  height: 30,
51
- lineHeight: 1,
52
52
  minHeight: 30,
53
+ paddingTop: 0,
54
+ paddingBottom: 0,
53
55
  },
54
56
  small: {
55
57
  height: 24,
56
- lineHeight: 1,
57
58
  minHeight: 24,
59
+ paddingTop: 0,
60
+ paddingBottom: 0,
58
61
  },
59
62
  '__unstable-large': {
60
63
  height: 40,
61
- lineHeight: 1,
62
64
  minHeight: 40,
65
+ paddingTop: 0,
66
+ paddingBottom: 0,
63
67
  },
64
68
  };
65
69
 
66
- const style = sizes[ selectSize as Size ] || sizes.default;
70
+ const style = sizes[ selectSize ];
67
71
 
68
72
  return css( style );
69
73
  };
@@ -96,7 +100,7 @@ export const Select = styled.select< SelectProps >`
96
100
  box-sizing: border-box;
97
101
  border: none;
98
102
  box-shadow: none !important;
99
- color: ${ COLORS.black };
103
+ color: ${ COLORS.gray[ 900 ] };
100
104
  display: block;
101
105
  font-family: inherit;
102
106
  margin: 0;
@@ -32,7 +32,7 @@ describe( 'SelectControl', () => {
32
32
 
33
33
  expect( screen.getByText( 'Option 1' ) ).toBeInTheDocument();
34
34
 
35
- const selectElement = screen.queryByLabelText( 'Select' );
35
+ const selectElement = screen.getByLabelText( 'Select' );
36
36
 
37
37
  fireEvent.change( selectElement, {
38
38
  target: { value: 'option-group-option-1' },
@@ -68,7 +68,7 @@ describe( 'SelectControl', () => {
68
68
 
69
69
  expect( screen.getByText( 'Option 1' ) ).toBeInTheDocument();
70
70
 
71
- const selectElement = screen.queryByLabelText( 'Select' );
71
+ const selectElement = screen.getByLabelText( 'Select' );
72
72
 
73
73
  fireEvent.change( selectElement, {
74
74
  target: { value: 'option-2' },