@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
@@ -0,0 +1,106 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import type { Moment } from 'moment';
5
+ import type { ReactNode } from 'react';
6
+
7
+ export type UpdateOnBlurAsIntegerFieldProps = {
8
+ /**
9
+ * The value of the integer field.
10
+ */
11
+ value: number | string;
12
+
13
+ /**
14
+ * Called when the field is changed.
15
+ */
16
+ onUpdate: ( value: number ) => void;
17
+
18
+ /**
19
+ * Children to render inside the field.
20
+ */
21
+ children?: ReactNode;
22
+ };
23
+
24
+ export type TimePickerProps = {
25
+ /**
26
+ * The initial current time the time picker should render.
27
+ */
28
+ currentTime?: Date | string | number | null;
29
+
30
+ /**
31
+ * Whether we use a 12-hour clock. With a 12-hour clock, an AM/PM widget is
32
+ * displayed and the time format is assumed to be `MM-DD-YYYY` (as opposed
33
+ * to the default format `DD-MM-YYYY`).
34
+ */
35
+ is12Hour?: boolean;
36
+
37
+ /**
38
+ * The function called when a new time has been selected. It is passed the
39
+ * time as an argument.
40
+ */
41
+ onChange?: ( time: string ) => void;
42
+ };
43
+
44
+ export type DatePickerEvent = {
45
+ /**
46
+ * The date of the event.
47
+ */
48
+ date: Date;
49
+ };
50
+
51
+ export type DatePickerDayProps = {
52
+ /**
53
+ * The day to display.
54
+ */
55
+ day: Moment;
56
+
57
+ /**
58
+ * List of events to show on this day.
59
+ *
60
+ * @default []
61
+ */
62
+ events?: DatePickerEvent[];
63
+ };
64
+
65
+ export type DatePickerProps = {
66
+ /**
67
+ * The current date and time at initialization. Optionally pass in a `null`
68
+ * value to specify no date is currently selected.
69
+ */
70
+ currentDate?: Date | string | number | null;
71
+
72
+ /**
73
+ * The function called when a new date has been selected. It is passed the
74
+ * date as an argument.
75
+ */
76
+ onChange?: ( date: string ) => void;
77
+
78
+ /**
79
+ * A callback function which receives a Date object representing a day as an
80
+ * argument, and should return a Boolean to signify if the day is valid or
81
+ * not.
82
+ */
83
+ isInvalidDate?: ( date: Date ) => boolean;
84
+
85
+ /**
86
+ * A callback invoked when selecting the previous/next month in the date
87
+ * picker. The callback receives the new month date in the ISO format as an
88
+ * argument.
89
+ */
90
+ onMonthPreviewed?: ( date: string ) => void;
91
+
92
+ /**
93
+ * List of events to show in the date picker. Each event will appear as a
94
+ * dot on the day of the event.
95
+ */
96
+ events?: DatePickerEvent[];
97
+ };
98
+
99
+ export type DateTimePickerProps = Omit< DatePickerProps, 'onChange' > &
100
+ Omit< TimePickerProps, 'currentTime' | 'onChange' > & {
101
+ /**
102
+ * The function called when a new date or time has been selected. It is
103
+ * passed the date and time as an argument.
104
+ */
105
+ onChange?: ( date: string | null ) => void;
106
+ };
@@ -0,0 +1,20 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import moment from 'moment';
5
+
6
+ /**
7
+ * Create a Moment object from a date string. With no date supplied, default to
8
+ * a Moment object representing now. If a null value is passed, return a null
9
+ * value.
10
+ *
11
+ * @param [date] Date representing the currently selected
12
+ * date or null to signify no selection.
13
+ * @return Moment object for selected date or null.
14
+ */
15
+ export const getMomentDate = ( date?: Date | string | number | null ) => {
16
+ if ( null === date ) {
17
+ return null;
18
+ }
19
+ return date ? moment( date ) : moment();
20
+ };
@@ -1,7 +1,7 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`DimensionControl rendering renders with custom sizes 1`] = `
4
- <ForwardRef(SelectControl)
4
+ <ForwardRef(UnforwardedSelectControl)
5
5
  className="block-editor-dimension-control"
6
6
  hideLabelFromVision={false}
7
7
  label={
@@ -34,7 +34,7 @@ exports[`DimensionControl rendering renders with custom sizes 1`] = `
34
34
  `;
35
35
 
36
36
  exports[`DimensionControl rendering renders with defaults 1`] = `
37
- <ForwardRef(SelectControl)
37
+ <ForwardRef(UnforwardedSelectControl)
38
38
  className="block-editor-dimension-control"
39
39
  hideLabelFromVision={false}
40
40
  label={
@@ -75,7 +75,7 @@ exports[`DimensionControl rendering renders with defaults 1`] = `
75
75
  `;
76
76
 
77
77
  exports[`DimensionControl rendering renders with icon and custom icon label 1`] = `
78
- <ForwardRef(SelectControl)
78
+ <ForwardRef(UnforwardedSelectControl)
79
79
  className="block-editor-dimension-control"
80
80
  hideLabelFromVision={false}
81
81
  label={
@@ -128,7 +128,7 @@ exports[`DimensionControl rendering renders with icon and custom icon label 1`]
128
128
  `;
129
129
 
130
130
  exports[`DimensionControl rendering renders with icon and default icon label 1`] = `
131
- <ForwardRef(SelectControl)
131
+ <ForwardRef(UnforwardedSelectControl)
132
132
  className="block-editor-dimension-control"
133
133
  hideLabelFromVision={false}
134
134
  label={
@@ -1,19 +1,13 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { includes, debounce } from 'lodash';
5
4
  import classnames from 'classnames';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
9
8
  */
10
- import {
11
- createContext,
12
- useCallback,
13
- useLayoutEffect,
14
- useRef,
15
- } from '@wordpress/element';
16
- import { focus } from '@wordpress/dom';
9
+ import { useDisabled } from '@wordpress/compose';
10
+ import { createContext } from '@wordpress/element';
17
11
 
18
12
  /**
19
13
  * Internal dependencies
@@ -23,25 +17,6 @@ import { StyledWrapper } from './styles/disabled-styles';
23
17
  const Context = createContext( false );
24
18
  const { Consumer, Provider } = Context;
25
19
 
26
- /**
27
- * Names of control nodes which qualify for disabled behavior.
28
- *
29
- * See WHATWG HTML Standard: 4.10.18.5: "Enabling and disabling form controls: the disabled attribute".
30
- *
31
- * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#enabling-and-disabling-form-controls:-the-disabled-attribute
32
- *
33
- * @type {string[]}
34
- */
35
- const DISABLED_ELIGIBLE_NODE_NAMES = [
36
- 'BUTTON',
37
- 'FIELDSET',
38
- 'INPUT',
39
- 'OPTGROUP',
40
- 'OPTION',
41
- 'SELECT',
42
- 'TEXTAREA',
43
- ];
44
-
45
20
  /**
46
21
  * @typedef OwnProps
47
22
  * @property {string} [className] Classname for the disabled element.
@@ -54,68 +29,8 @@ const DISABLED_ELIGIBLE_NODE_NAMES = [
54
29
  * @return {JSX.Element} Element wrapping the children to disable them when isDisabled is true.
55
30
  */
56
31
  function Disabled( { className, children, isDisabled = true, ...props } ) {
57
- /** @type {import('react').RefObject<HTMLDivElement>} */
58
- const node = useRef( null );
59
-
60
- const disable = () => {
61
- if ( ! node.current ) {
62
- return;
63
- }
64
-
65
- focus.focusable.find( node.current ).forEach( ( focusable ) => {
66
- if (
67
- includes( DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName )
68
- ) {
69
- focusable.setAttribute( 'disabled', '' );
70
- }
71
-
72
- if ( focusable.nodeName === 'A' ) {
73
- focusable.setAttribute( 'tabindex', '-1' );
74
- }
75
-
76
- const tabIndex = focusable.getAttribute( 'tabindex' );
77
- if ( tabIndex !== null && tabIndex !== '-1' ) {
78
- focusable.removeAttribute( 'tabindex' );
79
- }
80
-
81
- if ( focusable.hasAttribute( 'contenteditable' ) ) {
82
- focusable.setAttribute( 'contenteditable', 'false' );
83
- }
84
- } );
85
- };
86
-
87
- // Debounce re-disable since disabling process itself will incur
88
- // additional mutations which should be ignored.
89
- const debouncedDisable = useCallback(
90
- debounce( disable, undefined, { leading: true } ),
91
- []
92
- );
93
-
94
- useLayoutEffect( () => {
95
- if ( ! isDisabled ) {
96
- return;
97
- }
98
-
99
- disable();
100
-
101
- /** @type {MutationObserver | undefined} */
102
- let observer;
103
- if ( node.current ) {
104
- observer = new window.MutationObserver( debouncedDisable );
105
- observer.observe( node.current, {
106
- childList: true,
107
- attributes: true,
108
- subtree: true,
109
- } );
110
- }
111
-
112
- return () => {
113
- if ( observer ) {
114
- observer.disconnect();
115
- }
116
- debouncedDisable.cancel();
117
- };
118
- }, [] );
32
+ /** @type {import('react').RefCallback<HTMLDivElement>} */
33
+ const ref = useDisabled();
119
34
 
120
35
  if ( ! isDisabled ) {
121
36
  return <Provider value={ false }>{ children }</Provider>;
@@ -124,7 +39,7 @@ function Disabled( { className, children, isDisabled = true, ...props } ) {
124
39
  return (
125
40
  <Provider value={ true }>
126
41
  <StyledWrapper
127
- ref={ node }
42
+ ref={ ref }
128
43
  className={ classnames( className, 'components-disabled' ) }
129
44
  { ...props }
130
45
  >
@@ -0,0 +1,215 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import {
5
+ Gesture,
6
+ GestureDetector,
7
+ LongPressGestureHandler,
8
+ } from 'react-native-gesture-handler';
9
+ import Animated, {
10
+ useSharedValue,
11
+ runOnJS,
12
+ useAnimatedReaction,
13
+ useAnimatedGestureHandler,
14
+ } from 'react-native-reanimated';
15
+
16
+ /**
17
+ * WordPress dependencies
18
+ */
19
+ import { createContext, useContext, useRef, useMemo } from '@wordpress/element';
20
+
21
+ /**
22
+ * Internal dependencies
23
+ */
24
+ import styles from './style.scss';
25
+
26
+ const Context = createContext( {} );
27
+ const { Provider } = Context;
28
+
29
+ /**
30
+ * Draggable component.
31
+ *
32
+ * @param {Object} props Component props.
33
+ * @param {JSX.Element} props.children Children to be rendered.
34
+ * @param {Function} [props.onDragEnd] Callback when dragging ends.
35
+ * @param {Function} [props.onDragOver] Callback when dragging happens over an element.
36
+ * @param {Function} [props.onDragStart] Callback when dragging starts.
37
+ *
38
+ * @return {JSX.Element} The component to be rendered.
39
+ */
40
+ const Draggable = ( { children, onDragEnd, onDragOver, onDragStart } ) => {
41
+ const isDragging = useSharedValue( false );
42
+ const isPanActive = useSharedValue( false );
43
+ const draggingId = useSharedValue( '' );
44
+ const panGestureRef = useRef();
45
+ const currentFirstTouchId = useSharedValue( null );
46
+
47
+ const initialPosition = {
48
+ x: useSharedValue( 0 ),
49
+ y: useSharedValue( 0 ),
50
+ };
51
+ const lastPosition = {
52
+ x: useSharedValue( 0 ),
53
+ y: useSharedValue( 0 ),
54
+ };
55
+
56
+ useAnimatedReaction(
57
+ () => isDragging.value,
58
+ ( result, previous ) => {
59
+ if ( result === previous || previous === null ) {
60
+ return;
61
+ }
62
+
63
+ if ( result ) {
64
+ if ( onDragStart ) {
65
+ onDragStart( {
66
+ x: initialPosition.x.value,
67
+ y: initialPosition.y.value,
68
+ id: draggingId.value,
69
+ } );
70
+ }
71
+ } else if ( onDragEnd ) {
72
+ onDragEnd( {
73
+ x: lastPosition.x.value,
74
+ y: lastPosition.y.value,
75
+ id: draggingId.value,
76
+ } );
77
+ }
78
+ }
79
+ );
80
+
81
+ function getFirstTouchEvent( event ) {
82
+ 'worklet';
83
+
84
+ return event.allTouches.find(
85
+ ( touch ) => touch.id === currentFirstTouchId.value
86
+ );
87
+ }
88
+
89
+ const panGesture = Gesture.Pan()
90
+ .manualActivation( true )
91
+ .onTouchesDown( ( event ) => {
92
+ if ( ! currentFirstTouchId.value ) {
93
+ const firstEvent = event.allTouches[ 0 ];
94
+ const { x = 0, y = 0 } = firstEvent;
95
+
96
+ currentFirstTouchId.value = firstEvent.id;
97
+
98
+ initialPosition.x.value = x;
99
+ initialPosition.y.value = y;
100
+ }
101
+ } )
102
+ .onTouchesMove( ( event, state ) => {
103
+ if ( ! isPanActive.value && isDragging.value ) {
104
+ isPanActive.value = true;
105
+ state.activate();
106
+ }
107
+
108
+ if ( isPanActive.value && isDragging.value ) {
109
+ const firstEvent = getFirstTouchEvent( event );
110
+
111
+ if ( ! firstEvent ) {
112
+ state.end();
113
+ return;
114
+ }
115
+
116
+ lastPosition.x.value = firstEvent.x;
117
+ lastPosition.y.value = firstEvent.y;
118
+
119
+ if ( onDragOver ) {
120
+ onDragOver( firstEvent );
121
+ }
122
+ }
123
+ } )
124
+ .onTouchesCancelled( ( _event, state ) => {
125
+ state.end();
126
+ } )
127
+ .onEnd( () => {
128
+ currentFirstTouchId.value = null;
129
+ isPanActive.value = false;
130
+ isDragging.value = false;
131
+ } )
132
+ .withRef( panGestureRef )
133
+ .shouldCancelWhenOutside( false );
134
+
135
+ const providerValue = useMemo( () => {
136
+ return { panGestureRef, isDragging, isPanActive, draggingId };
137
+ }, [] );
138
+
139
+ return (
140
+ <GestureDetector gesture={ panGesture }>
141
+ <Animated.View style={ styles.draggable__container }>
142
+ <Provider value={ providerValue }>{ children }</Provider>
143
+ </Animated.View>
144
+ </GestureDetector>
145
+ );
146
+ };
147
+
148
+ /**
149
+ * Draggable trigger component.
150
+ *
151
+ * This component acts as the trigger for the dragging functionality.
152
+ *
153
+ * @param {Object} props Component props.
154
+ * @param {JSX.Element} props.children Children to be rendered.
155
+ * @param {*} props.id Identifier passed within the event callbacks.
156
+ * @param {boolean} [props.enabled] Enables the long-press gesture.
157
+ * @param {number} [props.maxDistance] Maximum distance, that defines how far the finger is allowed to travel during a long press gesture.
158
+ * @param {number} [props.minDuration] Minimum time, that a finger must remain pressed on the corresponding view.
159
+ * @param {Function} [props.onLongPress] Callback when long-press gesture is triggered over an element.
160
+ * @param {Function} [props.onLongPressEnd] Callback when long-press gesture ends.
161
+ *
162
+ * @return {JSX.Element} The component to be rendered.
163
+ */
164
+ const DraggableTrigger = ( {
165
+ children,
166
+ enabled = true,
167
+ id,
168
+ maxDistance = 1000,
169
+ minDuration = 500,
170
+ onLongPress,
171
+ onLongPressEnd,
172
+ } ) => {
173
+ const { panGestureRef, isDragging, isPanActive, draggingId } = useContext(
174
+ Context
175
+ );
176
+
177
+ const gestureHandler = useAnimatedGestureHandler( {
178
+ onActive: () => {
179
+ if ( isDragging.value ) {
180
+ return;
181
+ }
182
+
183
+ isDragging.value = true;
184
+ draggingId.value = id;
185
+ if ( onLongPress ) {
186
+ runOnJS( onLongPress )( id );
187
+ }
188
+ },
189
+ onEnd: () => {
190
+ if ( ! isPanActive.value ) {
191
+ isDragging.value = false;
192
+ }
193
+
194
+ if ( onLongPressEnd ) {
195
+ runOnJS( onLongPressEnd )( id );
196
+ }
197
+ },
198
+ } );
199
+
200
+ return (
201
+ <LongPressGestureHandler
202
+ enabled={ enabled }
203
+ minDurationMs={ minDuration }
204
+ maxDist={ maxDistance }
205
+ simultaneousHandlers={ panGestureRef }
206
+ shouldCancelWhenOutside={ false }
207
+ onGestureEvent={ gestureHandler }
208
+ >
209
+ { children }
210
+ </LongPressGestureHandler>
211
+ );
212
+ };
213
+
214
+ export { DraggableTrigger };
215
+ export default Draggable;
@@ -0,0 +1,3 @@
1
+ .draggable__container {
2
+ flex: 1;
3
+ }
@@ -31,12 +31,12 @@ export default function Dropdown( props ) {
31
31
  const {
32
32
  renderContent,
33
33
  renderToggle,
34
- position = 'bottom right',
35
34
  className,
36
35
  contentClassName,
37
36
  expandOnMobile,
38
37
  headerTitle,
39
38
  focusOnMount,
39
+ position,
40
40
  popoverProps,
41
41
  onClose,
42
42
  onToggle,
@@ -82,6 +82,10 @@ export default function Dropdown( props ) {
82
82
  }
83
83
 
84
84
  const args = { isOpen, onToggle: toggle, onClose: close };
85
+ const hasAnchorRef =
86
+ !! popoverProps?.anchorRef ||
87
+ !! popoverProps?.getAnchorRect ||
88
+ !! popoverProps?.anchorRect;
85
89
 
86
90
  return (
87
91
  <div
@@ -101,10 +105,11 @@ export default function Dropdown( props ) {
101
105
  expandOnMobile={ expandOnMobile }
102
106
  headerTitle={ headerTitle }
103
107
  focusOnMount={ focusOnMount }
108
+ // This value is used to ensure that the dropdowns
109
+ // align with the editor header by default.
110
+ offset={ 13 }
111
+ anchorRef={ ! hasAnchorRef ? containerRef : undefined }
104
112
  { ...popoverProps }
105
- anchorRef={
106
- popoverProps?.anchorRef ?? containerRef.current
107
- }
108
113
  className={ classnames(
109
114
  'components-dropdown__content',
110
115
  popoverProps ? popoverProps.className : undefined,
@@ -3,7 +3,7 @@
3
3
  }
4
4
 
5
5
  .components-dropdown__content {
6
- .components-popover__content > div {
6
+ .components-popover__content {
7
7
  padding: $grid-unit-10;
8
8
  }
9
9
 
@@ -105,7 +105,7 @@ function FocalPointPicker( props ) {
105
105
  // coordinates to workaround a bug affecting Android's PanResponder.
106
106
  // Specifically, dragging the handle outside the bounds of the image
107
107
  // results in inaccurate locationX and locationY coordinates to be
108
- // reported. https://git.io/JtWmi
108
+ // reported. https://github.com/facebook/react-native/issues/15290#issuecomment-435494944
109
109
  const x = pageX - locationPageOffsetX;
110
110
  const y = pageY - locationPageOffsetY;
111
111
  onChange( {
@@ -116,7 +116,7 @@ function FocalPointPicker( props ) {
116
116
  } );
117
117
  // Slider (child of RangeCell) is uncontrolled, so we must increment a
118
118
  // key to re-mount and sync the pan gesture values to the sliders
119
- // https://git.io/JTe4A
119
+ // https://github.com/callstack/react-native-slider/tree/v3.0.3#value
120
120
  setSliderKey( ( prevState ) => prevState + 1 );
121
121
  },
122
122
  } ),
@@ -193,7 +193,7 @@ function FocalPointPicker( props ) {
193
193
  setVideoNaturalSize( { height, width } );
194
194
  setDisplayPlaceholder( false );
195
195
  // Avoid invisible, paused video on Android, presumably related to
196
- // https://git.io/Jt6Dr
196
+ // https://github.com/react-native-video/react-native-video/issues/1979
197
197
  videoRef?.current.seek( 0 );
198
198
  };
199
199
  const onXCoordinateChange = ( x ) =>
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { render as RTLrender, screen } from '@testing-library/react';
4
+ import { render, screen } from '@testing-library/react';
5
5
  import userEvent from '@testing-library/user-event';
6
6
 
7
7
  /**
@@ -14,16 +14,6 @@ import FormFileUpload from '../';
14
14
  */
15
15
  const { File } = window;
16
16
 
17
- function render( jsx ) {
18
- return {
19
- user: userEvent.setup( {
20
- // Avoids timeout errors (https://github.com/testing-library/user-event/issues/565#issuecomment-1064579531).
21
- delay: null,
22
- } ),
23
- ...RTLrender( jsx ),
24
- };
25
- }
26
-
27
17
  // @testing-library/user-event considers changing <input type="file"> to a string as a change, but it do not occur on real browsers, so the comparisons will be against this result
28
18
  const fakePath = expect.objectContaining( {
29
19
  target: expect.objectContaining( {
@@ -32,6 +22,15 @@ const fakePath = expect.objectContaining( {
32
22
  } );
33
23
 
34
24
  describe( 'FormFileUpload', () => {
25
+ beforeEach( () => {
26
+ jest.useFakeTimers();
27
+ } );
28
+
29
+ afterEach( () => {
30
+ jest.runOnlyPendingTimers();
31
+ jest.useRealTimers();
32
+ } );
33
+
35
34
  it( 'should show an Icon Button and a hidden input', () => {
36
35
  render( <FormFileUpload>My Upload Button</FormFileUpload> );
37
36
 
@@ -42,9 +41,13 @@ describe( 'FormFileUpload', () => {
42
41
  } );
43
42
 
44
43
  it( 'should not fire a change event after selecting the same file', async () => {
44
+ const user = userEvent.setup( {
45
+ advanceTimers: jest.advanceTimersByTime,
46
+ } );
47
+
45
48
  const onChange = jest.fn();
46
49
 
47
- const { user } = render(
50
+ render(
48
51
  <FormFileUpload onChange={ onChange }>
49
52
  My Upload Button
50
53
  </FormFileUpload>
@@ -65,9 +68,13 @@ describe( 'FormFileUpload', () => {
65
68
  } );
66
69
 
67
70
  it( 'should fire a change event after selecting the same file if the value was reset in between', async () => {
71
+ const user = userEvent.setup( {
72
+ advanceTimers: jest.advanceTimersByTime,
73
+ } );
74
+
68
75
  const onChange = jest.fn();
69
76
 
70
- const { user } = render(
77
+ render(
71
78
  <FormFileUpload
72
79
  onClick={ jest.fn( ( e ) => ( e.target.value = '' ) ) }
73
80
  onChange={ onChange }
@@ -70,7 +70,7 @@ export function useHeading(
70
70
  }
71
71
 
72
72
  const textProps = useText( {
73
- color: COLORS.darkGray.heading,
73
+ color: COLORS.gray[ 900 ],
74
74
  size: getHeadingFontSize( level ),
75
75
  isBlock: true,
76
76
  weight: CONFIG.fontWeightHeading as import('react').CSSProperties[ 'fontWeight' ],
@@ -5,7 +5,7 @@ exports[`props should render correctly 1`] = `
5
5
  color: #1e1e1e;
6
6
  line-height: 1.2;
7
7
  margin: 0;
8
- color: #050505;
8
+ color: #1e1e1e;
9
9
  font-size: calc(1.95 * 13px);
10
10
  font-weight: 600;
11
11
  display: block;
@@ -27,7 +27,7 @@ Snapshot Diff:
27
27
 
28
28
  Array [
29
29
  Object {
30
- "color": "#050505",
30
+ "color": "#1e1e1e",
31
31
  "display": "block",
32
32
  - "font-size": "calc(1.25 * 13px)",
33
33
  + "font-size": "calc(1.95 * 13px)",
@@ -45,7 +45,7 @@ Snapshot Diff:
45
45
 
46
46
  Array [
47
47
  Object {
48
- "color": "#050505",
48
+ "color": "#1e1e1e",
49
49
  "display": "block",
50
50
  - "font-size": "calc(1.25 * 13px)",
51
51
  + "font-size": "calc(1.95 * 13px)",
package/src/index.js CHANGED
@@ -71,7 +71,6 @@ export { DuotoneSwatch, DuotonePicker } from './duotone-picker';
71
71
  export { Elevation as __experimentalElevation } from './elevation';
72
72
  export { default as ExternalLink } from './external-link';
73
73
  export { Flex, FlexBlock, FlexItem } from './flex';
74
- export { Flyout as __experimentalFlyout } from './flyout';
75
74
  export { default as FocalPointPicker } from './focal-point-picker';
76
75
  export { default as FocusableIframe } from './focusable-iframe';
77
76
  export { default as FontSizePicker } from './font-size-picker';