@wordpress/components 25.14.0 → 25.15.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 (479) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/CONTRIBUTING.md +57 -115
  3. package/LICENSE.md +1 -1
  4. package/build/base-control/index.js +17 -13
  5. package/build/base-control/index.js.map +1 -1
  6. package/build/border-box-control/border-box-control-linked-button/component.js +1 -1
  7. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  8. package/build/border-control/border-control-style-picker/component.js +1 -1
  9. package/build/border-control/border-control-style-picker/component.js.map +1 -1
  10. package/build/box-control/index.js +1 -1
  11. package/build/box-control/index.js.map +1 -1
  12. package/build/box-control/linked-button.js +1 -1
  13. package/build/box-control/linked-button.js.map +1 -1
  14. package/build/button/index.js +1 -1
  15. package/build/button/index.js.map +1 -1
  16. package/build/color-picker/color-copy-button.js +1 -1
  17. package/build/color-picker/color-copy-button.js.map +1 -1
  18. package/build/context/wordpress-component.js.map +1 -1
  19. package/build/custom-select-control-v2/index.js +11 -10
  20. package/build/custom-select-control-v2/index.js.map +1 -1
  21. package/build/date-time/date/styles.js +8 -8
  22. package/build/date-time/date/styles.js.map +1 -1
  23. package/build/dropdown-menu-v2/index.js +205 -159
  24. package/build/dropdown-menu-v2/index.js.map +1 -1
  25. package/build/dropdown-menu-v2/styles.js +86 -77
  26. package/build/dropdown-menu-v2/styles.js.map +1 -1
  27. package/build/dropdown-menu-v2/types.js.map +1 -1
  28. package/build/duotone-picker/duotone-picker.js +4 -3
  29. package/build/duotone-picker/duotone-picker.js.map +1 -1
  30. package/build/font-size-picker/index.js +4 -2
  31. package/build/font-size-picker/index.js.map +1 -1
  32. package/build/font-size-picker/index.native.js +6 -3
  33. package/build/font-size-picker/index.native.js.map +1 -1
  34. package/build/form-token-field/index.js +10 -5
  35. package/build/form-token-field/index.js.map +1 -1
  36. package/build/form-token-field/token.js +1 -0
  37. package/build/form-token-field/token.js.map +1 -1
  38. package/build/gradient-picker/index.js +3 -2
  39. package/build/gradient-picker/index.js.map +1 -1
  40. package/build/index.native.js +20 -3
  41. package/build/index.native.js.map +1 -1
  42. package/build/input-control/styles/input-control-styles.js +32 -29
  43. package/build/input-control/styles/input-control-styles.js.map +1 -1
  44. package/build/input-control/types.js.map +1 -1
  45. package/build/lock-unlock.js +18 -0
  46. package/build/lock-unlock.js.map +1 -0
  47. package/build/mobile/bottom-sheet/index.native.js +8 -0
  48. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  49. package/build/mobile/global-styles-context/utils.native.js +26 -13
  50. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  51. package/build/mobile/image/constants.js +12 -0
  52. package/build/mobile/image/constants.js.map +1 -0
  53. package/build/mobile/image/index.native.js +26 -18
  54. package/build/mobile/image/index.native.js.map +1 -1
  55. package/build/mobile/keyboard-aware-flat-list/index.android.js +40 -8
  56. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  57. package/build/mobile/keyboard-aware-flat-list/index.ios.js +44 -68
  58. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  59. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +39 -0
  60. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  61. package/build/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -29
  62. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  63. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js +93 -0
  64. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  65. package/build/mobile/utils/get-px-from-css-unit.native.js +302 -0
  66. package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  67. package/build/modal/index.js +18 -13
  68. package/build/modal/index.js.map +1 -1
  69. package/build/navigation/menu/menu-title.js +1 -1
  70. package/build/navigation/menu/menu-title.js.map +1 -1
  71. package/build/navigator/navigator-provider/component.js +13 -15
  72. package/build/navigator/navigator-provider/component.js.map +1 -1
  73. package/build/navigator/navigator-screen/component.js +23 -63
  74. package/build/navigator/navigator-screen/component.js.map +1 -1
  75. package/build/navigator/styles.js +52 -0
  76. package/build/navigator/styles.js.map +1 -0
  77. package/build/number-control/index.js +4 -8
  78. package/build/number-control/index.js.map +1 -1
  79. package/build/number-control/types.js.map +1 -1
  80. package/build/palette-edit/index.js +15 -54
  81. package/build/palette-edit/index.js.map +1 -1
  82. package/build/private-apis.js +11 -26
  83. package/build/private-apis.js.map +1 -1
  84. package/build/private-apis.native.js +21 -0
  85. package/build/private-apis.native.js.map +1 -0
  86. package/build/radio-control/index.js +1 -0
  87. package/build/radio-control/index.js.map +1 -1
  88. package/build/range-control/index.js +1 -1
  89. package/build/range-control/index.js.map +1 -1
  90. package/build/select-control/styles/select-control-styles.js +15 -25
  91. package/build/select-control/styles/select-control-styles.js.map +1 -1
  92. package/build/slot-fill/index.js +3 -2
  93. package/build/slot-fill/index.js.map +1 -1
  94. package/build/slot-fill/types.js.map +1 -1
  95. package/build/snackbar/types.js.map +1 -1
  96. package/build/tabs/styles.js +3 -3
  97. package/build/tabs/styles.js.map +1 -1
  98. package/build/tabs/tabpanel.js +9 -7
  99. package/build/tabs/tabpanel.js.map +1 -1
  100. package/build/toggle-group-control/toggle-group-control/component.js +4 -4
  101. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  102. package/build/toggle-group-control/toggle-group-control/styles.js +29 -15
  103. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  104. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  105. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  106. package/build/tools-panel/tools-panel/component.js +3 -1
  107. package/build/tools-panel/tools-panel/component.js.map +1 -1
  108. package/build/tools-panel/tools-panel-header/component.js +9 -8
  109. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  110. package/build/tools-panel/types.js.map +1 -1
  111. package/build/tooltip/index.js +1 -1
  112. package/build/tooltip/index.js.map +1 -1
  113. package/build/truncate/hook.js +10 -4
  114. package/build/truncate/hook.js.map +1 -1
  115. package/build/truncate/types.js.map +1 -1
  116. package/build/unit-control/index.js +1 -1
  117. package/build/unit-control/index.js.map +1 -1
  118. package/build/utils/strings.js +34 -3
  119. package/build/utils/strings.js.map +1 -1
  120. package/build-module/base-control/index.js +16 -12
  121. package/build-module/base-control/index.js.map +1 -1
  122. package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -1
  123. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  124. package/build-module/border-control/border-control-style-picker/component.js +1 -1
  125. package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
  126. package/build-module/box-control/index.js +1 -1
  127. package/build-module/box-control/index.js.map +1 -1
  128. package/build-module/box-control/linked-button.js +1 -1
  129. package/build-module/box-control/linked-button.js.map +1 -1
  130. package/build-module/button/index.js +1 -1
  131. package/build-module/button/index.js.map +1 -1
  132. package/build-module/color-picker/color-copy-button.js +1 -1
  133. package/build-module/color-picker/color-copy-button.js.map +1 -1
  134. package/build-module/context/wordpress-component.js.map +1 -1
  135. package/build-module/custom-select-control-v2/index.js +11 -10
  136. package/build-module/custom-select-control-v2/index.js.map +1 -1
  137. package/build-module/date-time/date/styles.js +8 -8
  138. package/build-module/date-time/date/styles.js.map +1 -1
  139. package/build-module/dropdown-menu-v2/index.js +201 -154
  140. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  141. package/build-module/dropdown-menu-v2/styles.js +68 -61
  142. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  143. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  144. package/build-module/duotone-picker/duotone-picker.js +4 -3
  145. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  146. package/build-module/font-size-picker/index.js +4 -2
  147. package/build-module/font-size-picker/index.js.map +1 -1
  148. package/build-module/font-size-picker/index.native.js +5 -2
  149. package/build-module/font-size-picker/index.native.js.map +1 -1
  150. package/build-module/form-token-field/index.js +10 -5
  151. package/build-module/form-token-field/index.js.map +1 -1
  152. package/build-module/form-token-field/token.js +1 -0
  153. package/build-module/form-token-field/token.js.map +1 -1
  154. package/build-module/gradient-picker/index.js +3 -2
  155. package/build-module/gradient-picker/index.js.map +1 -1
  156. package/build-module/index.native.js +6 -1
  157. package/build-module/index.native.js.map +1 -1
  158. package/build-module/input-control/styles/input-control-styles.js +31 -29
  159. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  160. package/build-module/input-control/types.js.map +1 -1
  161. package/build-module/lock-unlock.js +9 -0
  162. package/build-module/lock-unlock.js.map +1 -0
  163. package/build-module/mobile/bottom-sheet/index.native.js +9 -1
  164. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  165. package/build-module/mobile/global-styles-context/utils.native.js +25 -13
  166. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  167. package/build-module/mobile/image/constants.js +5 -0
  168. package/build-module/mobile/image/constants.js.map +1 -0
  169. package/build-module/mobile/image/index.native.js +25 -16
  170. package/build-module/mobile/image/index.native.js.map +1 -1
  171. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +40 -6
  172. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  173. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +46 -68
  174. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  175. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +33 -0
  176. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  177. package/build-module/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +21 -27
  178. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  179. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js +86 -0
  180. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  181. package/build-module/mobile/utils/get-px-from-css-unit.native.js +294 -0
  182. package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  183. package/build-module/modal/index.js +18 -13
  184. package/build-module/modal/index.js.map +1 -1
  185. package/build-module/navigation/menu/menu-title.js +1 -1
  186. package/build-module/navigation/menu/menu-title.js.map +1 -1
  187. package/build-module/navigator/navigator-provider/component.js +3 -16
  188. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  189. package/build-module/navigator/navigator-screen/component.js +16 -70
  190. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  191. package/build-module/navigator/styles.js +47 -0
  192. package/build-module/navigator/styles.js.map +1 -0
  193. package/build-module/number-control/index.js +4 -8
  194. package/build-module/number-control/index.js.map +1 -1
  195. package/build-module/number-control/types.js.map +1 -1
  196. package/build-module/palette-edit/index.js +15 -51
  197. package/build-module/palette-edit/index.js.map +1 -1
  198. package/build-module/private-apis.js +10 -23
  199. package/build-module/private-apis.js.map +1 -1
  200. package/build-module/private-apis.native.js +14 -0
  201. package/build-module/private-apis.native.js.map +1 -0
  202. package/build-module/radio-control/index.js +1 -0
  203. package/build-module/radio-control/index.js.map +1 -1
  204. package/build-module/range-control/index.js +1 -1
  205. package/build-module/range-control/index.js.map +1 -1
  206. package/build-module/select-control/styles/select-control-styles.js +15 -25
  207. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  208. package/build-module/slot-fill/index.js +3 -2
  209. package/build-module/slot-fill/index.js.map +1 -1
  210. package/build-module/slot-fill/types.js.map +1 -1
  211. package/build-module/snackbar/types.js.map +1 -1
  212. package/build-module/tabs/styles.js +3 -3
  213. package/build-module/tabs/styles.js.map +1 -1
  214. package/build-module/tabs/tabpanel.js +9 -7
  215. package/build-module/tabs/tabpanel.js.map +1 -1
  216. package/build-module/toggle-group-control/toggle-group-control/component.js +4 -4
  217. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  218. package/build-module/toggle-group-control/toggle-group-control/styles.js +29 -15
  219. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  220. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  221. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  222. package/build-module/tools-panel/tools-panel/component.js +3 -1
  223. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  224. package/build-module/tools-panel/tools-panel-header/component.js +9 -8
  225. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  226. package/build-module/tools-panel/types.js.map +1 -1
  227. package/build-module/tooltip/index.js +1 -1
  228. package/build-module/tooltip/index.js.map +1 -1
  229. package/build-module/truncate/hook.js +10 -4
  230. package/build-module/truncate/hook.js.map +1 -1
  231. package/build-module/truncate/types.js.map +1 -1
  232. package/build-module/unit-control/index.js +1 -1
  233. package/build-module/unit-control/index.js.map +1 -1
  234. package/build-module/utils/strings.js +32 -2
  235. package/build-module/utils/strings.js.map +1 -1
  236. package/build-style/style-rtl.css +29 -5
  237. package/build-style/style.css +29 -5
  238. package/build-types/base-control/index.d.ts +3 -27
  239. package/build-types/base-control/index.d.ts.map +1 -1
  240. package/build-types/base-control/stories/index.story.d.ts +4 -1
  241. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  242. package/build-types/color-picker/component.d.ts +1 -1
  243. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  244. package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
  245. package/build-types/composite/test/index.d.ts.map +1 -0
  246. package/build-types/context/wordpress-component.d.ts +3 -3
  247. package/build-types/context/wordpress-component.d.ts.map +1 -1
  248. package/build-types/custom-select-control-v2/index.d.ts +3 -2
  249. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  250. package/build-types/custom-select-control-v2/stories/index.story.d.ts +4 -3
  251. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  252. package/build-types/dropdown/index.d.ts +1 -1
  253. package/build-types/dropdown/index.d.ts.map +1 -1
  254. package/build-types/dropdown/stories/index.story.d.ts +3 -3
  255. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  256. package/build-types/dropdown-menu/index.d.ts +1 -1
  257. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  258. package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
  259. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  260. package/build-types/dropdown-menu-v2/index.d.ts +18 -15
  261. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  262. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +7 -2
  263. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  264. package/build-types/dropdown-menu-v2/styles.d.ts +77 -23
  265. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  266. package/build-types/dropdown-menu-v2/types.d.ts +89 -173
  267. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  268. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  269. package/build-types/font-size-picker/index.d.ts.map +1 -1
  270. package/build-types/form-token-field/index.d.ts.map +1 -1
  271. package/build-types/form-token-field/token.d.ts.map +1 -1
  272. package/build-types/input-control/styles/input-control-styles.d.ts +11 -0
  273. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  274. package/build-types/input-control/types.d.ts +1 -1
  275. package/build-types/input-control/types.d.ts.map +1 -1
  276. package/build-types/lock-unlock.d.ts +3 -0
  277. package/build-types/lock-unlock.d.ts.map +1 -0
  278. package/build-types/mobile/image/constants.d.ts +5 -0
  279. package/build-types/mobile/image/constants.d.ts.map +1 -0
  280. package/build-types/modal/index.d.ts.map +1 -1
  281. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  282. package/build-types/navigator/navigator-screen/component.d.ts +1 -7
  283. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  284. package/build-types/navigator/styles.d.ts +9 -0
  285. package/build-types/navigator/styles.d.ts.map +1 -0
  286. package/build-types/number-control/index.d.ts.map +1 -1
  287. package/build-types/number-control/types.d.ts +1 -1
  288. package/build-types/palette-edit/index.d.ts +3 -8
  289. package/build-types/palette-edit/index.d.ts.map +1 -1
  290. package/build-types/popover/index.d.ts +1 -1
  291. package/build-types/popover/index.d.ts.map +1 -1
  292. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  293. package/build-types/private-apis.d.ts +0 -1
  294. package/build-types/private-apis.d.ts.map +1 -1
  295. package/build-types/radio-control/index.d.ts.map +1 -1
  296. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  297. package/build-types/slot-fill/index.d.ts +1 -1
  298. package/build-types/slot-fill/index.d.ts.map +1 -1
  299. package/build-types/slot-fill/types.d.ts +4 -0
  300. package/build-types/slot-fill/types.d.ts.map +1 -1
  301. package/build-types/snackbar/index.d.ts +2 -2
  302. package/build-types/snackbar/stories/index.story.d.ts +0 -3
  303. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  304. package/build-types/snackbar/types.d.ts +1 -1
  305. package/build-types/snackbar/types.d.ts.map +1 -1
  306. package/build-types/tabs/styles.d.ts.map +1 -1
  307. package/build-types/tabs/tabpanel.d.ts +1 -1
  308. package/build-types/tabs/tabpanel.d.ts.map +1 -1
  309. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  310. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
  311. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  312. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
  313. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  314. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  315. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  316. package/build-types/tools-panel/tools-panel/hook.d.ts +1 -0
  317. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  318. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  319. package/build-types/tools-panel/tools-panel-header/hook.d.ts +1 -0
  320. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  321. package/build-types/tools-panel/types.d.ts +9 -0
  322. package/build-types/tools-panel/types.d.ts.map +1 -1
  323. package/build-types/truncate/hook.d.ts +1 -1
  324. package/build-types/truncate/hook.d.ts.map +1 -1
  325. package/build-types/truncate/types.d.ts +4 -0
  326. package/build-types/truncate/types.d.ts.map +1 -1
  327. package/build-types/utils/strings.d.ts +14 -2
  328. package/build-types/utils/strings.d.ts.map +1 -1
  329. package/package.json +20 -21
  330. package/src/alignment-matrix-control/test/index.tsx +10 -16
  331. package/src/base-control/index.tsx +21 -16
  332. package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
  333. package/src/border-control/border-control-style-picker/component.tsx +1 -1
  334. package/src/box-control/index.tsx +1 -1
  335. package/src/box-control/linked-button.tsx +1 -1
  336. package/src/button/README.md +32 -6
  337. package/src/button/index.tsx +1 -1
  338. package/src/button-group/README.md +0 -6
  339. package/src/card/card/README.md +1 -1
  340. package/src/checkbox-control/README.md +1 -9
  341. package/src/color-picker/color-copy-button.tsx +1 -1
  342. package/src/combobox-control/README.md +0 -6
  343. package/src/composite/test/index.tsx +576 -0
  344. package/src/context/wordpress-component.ts +11 -6
  345. package/src/custom-select-control/README.md +0 -6
  346. package/src/custom-select-control-v2/index.tsx +13 -12
  347. package/src/date-time/date/styles.ts +3 -3
  348. package/src/dropdown-menu/README.md +0 -5
  349. package/src/dropdown-menu-v2/README.md +75 -136
  350. package/src/dropdown-menu-v2/index.tsx +321 -231
  351. package/src/dropdown-menu-v2/stories/index.story.tsx +522 -126
  352. package/src/dropdown-menu-v2/styles.ts +226 -151
  353. package/src/dropdown-menu-v2/test/index.tsx +480 -188
  354. package/src/dropdown-menu-v2/types.ts +98 -184
  355. package/src/duotone-picker/duotone-picker.tsx +7 -3
  356. package/src/font-size-picker/index.native.js +8 -2
  357. package/src/font-size-picker/index.tsx +4 -2
  358. package/src/form-toggle/README.md +0 -6
  359. package/src/form-token-field/index.tsx +11 -7
  360. package/src/form-token-field/test/index.tsx +97 -0
  361. package/src/form-token-field/token.tsx +1 -0
  362. package/src/gradient-picker/index.tsx +2 -2
  363. package/src/index.native.js +6 -1
  364. package/src/input-control/styles/input-control-styles.tsx +10 -8
  365. package/src/input-control/types.ts +1 -1
  366. package/src/lock-unlock.js +10 -0
  367. package/src/menu-group/README.md +0 -8
  368. package/src/menu-items-choice/README.md +0 -7
  369. package/src/mobile/bottom-sheet/index.native.js +15 -1
  370. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +0 -20
  371. package/src/mobile/global-styles-context/utils.native.js +28 -19
  372. package/src/mobile/image/constants.js +1 -0
  373. package/src/mobile/image/index.native.js +55 -18
  374. package/src/mobile/image/style.native.scss +35 -9
  375. package/src/mobile/keyboard-aware-flat-list/index.android.js +50 -5
  376. package/src/mobile/keyboard-aware-flat-list/index.ios.js +65 -91
  377. package/src/mobile/keyboard-aware-flat-list/test/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +27 -25
  378. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +71 -0
  379. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +41 -0
  380. package/src/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -27
  381. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +100 -0
  382. package/src/mobile/utils/get-px-from-css-unit.native.js +329 -0
  383. package/src/mobile/utils/test/get-px-from-css-unit.native.js +172 -0
  384. package/src/modal/README.md +0 -6
  385. package/src/modal/index.tsx +18 -16
  386. package/src/modal/test/index.tsx +90 -1
  387. package/src/navigation/menu/menu-title.tsx +1 -1
  388. package/src/navigator/navigator-provider/component.tsx +3 -4
  389. package/src/navigator/navigator-screen/component.tsx +15 -93
  390. package/src/navigator/styles.ts +71 -0
  391. package/src/navigator/test/index.tsx +0 -64
  392. package/src/notice/README.md +0 -6
  393. package/src/number-control/README.md +2 -2
  394. package/src/number-control/index.tsx +4 -8
  395. package/src/number-control/types.ts +1 -1
  396. package/src/palette-edit/index.tsx +15 -58
  397. package/src/palette-edit/test/index.tsx +1 -75
  398. package/src/panel/README.md +0 -6
  399. package/src/private-apis.native.js +13 -0
  400. package/src/private-apis.ts +12 -37
  401. package/src/radio-control/README.md +0 -6
  402. package/src/radio-control/index.tsx +4 -1
  403. package/src/radio-control/style.scss +29 -2
  404. package/src/radio-group/README.md +0 -6
  405. package/src/range-control/README.md +1 -9
  406. package/src/range-control/index.tsx +1 -1
  407. package/src/search-control/README.md +0 -6
  408. package/src/select-control/README.md +0 -6
  409. package/src/select-control/styles/select-control-styles.ts +10 -28
  410. package/src/slot-fill/index.tsx +5 -2
  411. package/src/slot-fill/types.ts +5 -0
  412. package/src/snackbar/README.md +0 -6
  413. package/src/snackbar/stories/index.story.tsx +7 -5
  414. package/src/snackbar/style.scss +4 -3
  415. package/src/snackbar/types.ts +2 -1
  416. package/src/spacer/README.md +0 -2
  417. package/src/tab-panel/README.md +0 -5
  418. package/src/tab-panel/test/index.tsx +39 -56
  419. package/src/tabs/styles.ts +7 -1
  420. package/src/tabs/tabpanel.tsx +7 -6
  421. package/src/tabs/test/index.tsx +56 -0
  422. package/src/text-control/README.md +0 -6
  423. package/src/textarea-control/README.md +0 -6
  424. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +12 -16
  425. package/src/toggle-group-control/test/index.tsx +58 -45
  426. package/src/toggle-group-control/toggle-group-control/component.tsx +5 -4
  427. package/src/toggle-group-control/toggle-group-control/styles.ts +13 -19
  428. package/src/toggle-group-control/toggle-group-control-option/README.md +1 -1
  429. package/src/toggle-group-control/toggle-group-control-option-base/README.md +1 -1
  430. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +3 -2
  431. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
  432. package/src/toolbar/toolbar/README.md +0 -6
  433. package/src/tools-panel/test/index.tsx +12 -20
  434. package/src/tools-panel/tools-panel/README.md +7 -0
  435. package/src/tools-panel/tools-panel/component.tsx +2 -0
  436. package/src/tools-panel/tools-panel-header/README.md +7 -0
  437. package/src/tools-panel/tools-panel-header/component.tsx +20 -13
  438. package/src/tools-panel/types.ts +9 -0
  439. package/src/tooltip/index.tsx +1 -1
  440. package/src/tooltip/test/index.tsx +360 -256
  441. package/src/tree-grid/README.md +0 -4
  442. package/src/truncate/README.md +8 -0
  443. package/src/truncate/hook.ts +17 -10
  444. package/src/truncate/test/index.tsx +54 -27
  445. package/src/truncate/types.ts +4 -0
  446. package/src/unit-control/index.tsx +1 -1
  447. package/src/utils/strings.ts +30 -2
  448. package/src/utils/test/strings.js +96 -1
  449. package/tsconfig.tsbuildinfo +1 -1
  450. package/build/dropdown-menu-v2-ariakit/index.js +0 -256
  451. package/build/dropdown-menu-v2-ariakit/index.js.map +0 -1
  452. package/build/dropdown-menu-v2-ariakit/styles.js +0 -180
  453. package/build/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  454. package/build/dropdown-menu-v2-ariakit/types.js +0 -6
  455. package/build/dropdown-menu-v2-ariakit/types.js.map +0 -1
  456. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  457. package/build-module/dropdown-menu-v2-ariakit/index.js +0 -237
  458. package/build-module/dropdown-menu-v2-ariakit/index.js.map +0 -1
  459. package/build-module/dropdown-menu-v2-ariakit/styles.js +0 -165
  460. package/build-module/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  461. package/build-module/dropdown-menu-v2-ariakit/types.js +0 -2
  462. package/build-module/dropdown-menu-v2-ariakit/types.js.map +0 -1
  463. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  464. package/build-types/dropdown-menu-v2-ariakit/index.d.ts +0 -20
  465. package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +0 -1
  466. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +0 -16
  467. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +0 -1
  468. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +0 -96
  469. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +0 -1
  470. package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +0 -1
  471. package/build-types/dropdown-menu-v2-ariakit/types.d.ts +0 -168
  472. package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +0 -1
  473. package/src/dropdown-menu-v2-ariakit/README.md +0 -331
  474. package/src/dropdown-menu-v2-ariakit/index.tsx +0 -383
  475. package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +0 -617
  476. package/src/dropdown-menu-v2-ariakit/styles.ts +0 -345
  477. package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
  478. package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
  479. /package/build-types/{dropdown-menu-v2-ariakit → composite}/test/index.d.ts +0 -0
@@ -97,10 +97,11 @@ const disabledStyles = ( { disabled }: InputProps ) => {
97
97
  } );
98
98
  };
99
99
 
100
- const fontSizeStyles = ( { inputSize: size }: InputProps ) => {
100
+ export const fontSizeStyles = ( { inputSize: size }: InputProps ) => {
101
101
  const sizes = {
102
102
  default: '13px',
103
103
  small: '11px',
104
+ compact: '13px',
104
105
  '__unstable-large': '13px',
105
106
  };
106
107
 
@@ -138,6 +139,13 @@ export const getSizeConfig = ( {
138
139
  paddingLeft: space( 2 ),
139
140
  paddingRight: space( 2 ),
140
141
  },
142
+ compact: {
143
+ height: 32,
144
+ lineHeight: 1,
145
+ minHeight: 32,
146
+ paddingLeft: space( 2 ),
147
+ paddingRight: space( 2 ),
148
+ },
141
149
  '__unstable-large': {
142
150
  height: 40,
143
151
  lineHeight: 1,
@@ -148,13 +156,7 @@ export const getSizeConfig = ( {
148
156
  };
149
157
 
150
158
  if ( ! __next40pxDefaultSize ) {
151
- sizes.default = {
152
- height: 32,
153
- lineHeight: 1,
154
- minHeight: 32,
155
- paddingLeft: space( 2 ),
156
- paddingRight: space( 2 ),
157
- };
159
+ sizes.default = sizes.compact;
158
160
  }
159
161
 
160
162
  return sizes[ size as Size ] || sizes.default;
@@ -23,7 +23,7 @@ export type DragDirection = 'n' | 's' | 'e' | 'w';
23
23
 
24
24
  export type DragProps = Parameters< Parameters< typeof useDrag >[ 0 ] >[ 0 ];
25
25
 
26
- export type Size = 'default' | 'small' | '__unstable-large';
26
+ export type Size = 'default' | 'small' | 'compact' | '__unstable-large';
27
27
 
28
28
  interface BaseProps {
29
29
  /**
@@ -0,0 +1,10 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';
5
+
6
+ export const { lock, unlock } =
7
+ __dangerousOptInToUnstableAPIsOnlyForCoreModules(
8
+ 'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',
9
+ '@wordpress/components'
10
+ );
@@ -4,14 +4,6 @@
4
4
 
5
5
  ![MenuGroup Example](https://wordpress.org/gutenberg/files/2019/03/MenuGroup.png)
6
6
 
7
- 1. MenuGroup
8
-
9
- ## Table of Contents
10
-
11
- 1. [Design guidelines](#design-guidelines)
12
- 2. [Development guidelines](#development-guidelines)
13
- 3. [Related components](#related-components)
14
-
15
7
  ## Design guidelines
16
8
 
17
9
  ### Usage
@@ -4,13 +4,6 @@
4
4
 
5
5
  ![MenuItemsChoice Example](https://wordpress.org/gutenberg/files/2019/03/MenuItemsChoice.png)
6
6
 
7
- 1. MenuItemsChoice
8
-
9
- ## Table of contents
10
-
11
- 1. [Design guidelines](#design-guidelines)
12
- 2. [Development guidelines](#development-guidelines)
13
-
14
7
  ## Design guidelines
15
8
 
16
9
  A `MenuItemsChoice` should be housed within in its own distinct `MenuGroup`, so that the set of options are distinct from nearby `MenuItems`.
@@ -19,7 +19,10 @@ import SafeArea from 'react-native-safe-area';
19
19
  /**
20
20
  * WordPress dependencies
21
21
  */
22
- import { subscribeAndroidModalClosed } from '@wordpress/react-native-bridge';
22
+ import {
23
+ subscribeAndroidModalClosed,
24
+ showAndroidSoftKeyboard,
25
+ } from '@wordpress/react-native-bridge';
23
26
  import { Component } from '@wordpress/element';
24
27
  import { withPreferredColorScheme } from '@wordpress/compose';
25
28
 
@@ -215,6 +218,11 @@ class BottomSheet extends Component {
215
218
  if ( this.androidModalClosedSubscription ) {
216
219
  this.androidModalClosedSubscription.remove();
217
220
  }
221
+
222
+ if ( this.props.isVisible ) {
223
+ showAndroidSoftKeyboard();
224
+ }
225
+
218
226
  if ( this.safeAreaEventSubscription === null ) {
219
227
  return;
220
228
  }
@@ -315,6 +323,9 @@ class BottomSheet extends Component {
315
323
  onDismiss() {
316
324
  const { onDismiss } = this.props;
317
325
 
326
+ // Restore Keyboard Visibility
327
+ showAndroidSoftKeyboard();
328
+
318
329
  if ( onDismiss ) {
319
330
  onDismiss();
320
331
  }
@@ -368,6 +379,7 @@ class BottomSheet extends Component {
368
379
  onHardwareButtonPress() {
369
380
  const { onClose } = this.props;
370
381
  const { handleHardwareButtonPress } = this.state;
382
+
371
383
  if ( handleHardwareButtonPress && handleHardwareButtonPress() ) {
372
384
  return;
373
385
  }
@@ -528,6 +540,8 @@ class BottomSheet extends Component {
528
540
  }
529
541
  onAccessibilityEscape={ this.onCloseBottomSheet }
530
542
  testID="bottom-sheet"
543
+ hardwareAccelerated={ true }
544
+ useNativeDriverForBackdrop={ true }
531
545
  { ...rest }
532
546
  >
533
547
  <KeyboardAvoidingView
@@ -231,26 +231,6 @@ export const RAW_FEATURES = {
231
231
  },
232
232
  typography: {
233
233
  fontSizes: {
234
- default: [
235
- {
236
- name: 'Small',
237
- slug: 'small',
238
- size: '13px',
239
- sizePx: '13px',
240
- },
241
- {
242
- name: 'Normal',
243
- slug: 'normal',
244
- size: '16px',
245
- sizePx: '16px',
246
- },
247
- {
248
- name: 'Huge',
249
- slug: 'huge',
250
- size: '42px',
251
- sizePx: '42px',
252
- },
253
- ],
254
234
  theme: [
255
235
  {
256
236
  name: 'Normal',
@@ -9,7 +9,6 @@ import { colord } from 'colord';
9
9
  * WordPress dependencies
10
10
  */
11
11
  import {
12
- getPxFromCssUnit,
13
12
  useSettings,
14
13
  useMultipleOriginColorsAndGradients,
15
14
  SETTINGS_DEFAULTS,
@@ -19,6 +18,7 @@ import { usePreferredColorSchemeStyle } from '@wordpress/compose';
19
18
  /**
20
19
  * Internal dependencies
21
20
  */
21
+ import { default as getPxFromCssUnit } from '../utils/get-px-from-css-unit';
22
22
  import { useGlobalStyles } from './index.native';
23
23
 
24
24
  export const BLOCK_STYLE_ATTRIBUTES = [
@@ -342,29 +342,38 @@ export function getMappedValues( features, palette ) {
342
342
  * @return {Object} normalized sizes.
343
343
  */
344
344
  function normalizeFontSizes( fontSizes ) {
345
- // Adds normalized PX values for each of the different keys.
346
345
  if ( ! fontSizes ) {
347
346
  return fontSizes;
348
347
  }
349
- const normalizedFontSizes = {};
348
+
350
349
  const dimensions = Dimensions.get( 'window' );
350
+ const normalizedFontSizes = {};
351
+ const keysToProcess = [];
351
352
 
352
- [ 'default', 'theme', 'custom' ].forEach( ( key ) => {
353
- if ( fontSizes[ key ] ) {
354
- normalizedFontSizes[ key ] = fontSizes[ key ]?.map(
355
- ( fontSizeObject ) => {
356
- fontSizeObject.sizePx = getPxFromCssUnit(
357
- fontSizeObject.size,
358
- {
359
- width: dimensions.width,
360
- height: dimensions.height,
361
- fontSize: DEFAULT_FONT_SIZE,
362
- }
363
- );
364
- return fontSizeObject;
365
- }
366
- );
367
- }
353
+ // Check if 'theme' or 'custom' keys exist and add them to keysToProcess array
354
+ if ( fontSizes?.theme ) {
355
+ keysToProcess.push( 'theme' );
356
+ }
357
+ if ( fontSizes?.custom ) {
358
+ keysToProcess.push( 'custom' );
359
+ }
360
+
361
+ // If neither 'theme' nor 'custom' exist, add 'default' if it exists
362
+ if ( keysToProcess.length === 0 && fontSizes?.default ) {
363
+ keysToProcess.push( 'default' );
364
+ }
365
+
366
+ keysToProcess.forEach( ( key ) => {
367
+ normalizedFontSizes[ key ] = fontSizes[ key ].map(
368
+ ( fontSizeObject ) => {
369
+ fontSizeObject.sizePx = getPxFromCssUnit( fontSizeObject.size, {
370
+ width: dimensions.width,
371
+ height: dimensions.height,
372
+ fontSize: DEFAULT_FONT_SIZE,
373
+ } );
374
+ return fontSizeObject;
375
+ }
376
+ );
368
377
  } );
369
378
 
370
379
  return normalizedFontSizes;
@@ -0,0 +1 @@
1
+ export const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };
@@ -9,7 +9,7 @@ import FastImage from 'react-native-fast-image';
9
9
  */
10
10
  import { __ } from '@wordpress/i18n';
11
11
  import { Icon } from '@wordpress/components';
12
- import { image as icon } from '@wordpress/icons';
12
+ import { image, offline } from '@wordpress/icons';
13
13
  import { usePreferredColorSchemeStyle } from '@wordpress/compose';
14
14
  import { useEffect, useState, Platform } from '@wordpress/element';
15
15
 
@@ -22,13 +22,12 @@ import SvgIconRetry from './icon-retry';
22
22
  import ImageEditingButton from './image-editing-button';
23
23
 
24
24
  const ICON_TYPE = {
25
+ OFFLINE: 'offline',
25
26
  PLACEHOLDER: 'placeholder',
26
27
  RETRY: 'retry',
27
28
  UPLOAD: 'upload',
28
29
  };
29
30
 
30
- export const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };
31
-
32
31
  const ImageComponent = ( {
33
32
  align,
34
33
  alt,
@@ -39,6 +38,7 @@ const ImageComponent = ( {
39
38
  isSelected,
40
39
  shouldUseFastImage,
41
40
  isUploadFailed,
41
+ isUploadPaused,
42
42
  isUploadInProgress,
43
43
  mediaPickerOptions,
44
44
  onImageDataLoad,
@@ -101,19 +101,23 @@ const ImageComponent = ( {
101
101
  };
102
102
 
103
103
  const getIcon = ( iconType ) => {
104
+ let icon;
104
105
  let iconStyle;
105
106
  switch ( iconType ) {
106
107
  case ICON_TYPE.RETRY:
107
- return (
108
- <Icon
109
- icon={ retryIcon || SvgIconRetry }
110
- { ...styles.iconRetry }
111
- />
112
- );
108
+ icon = retryIcon || SvgIconRetry;
109
+ iconStyle = iconRetryStyles;
110
+ break;
111
+ case ICON_TYPE.OFFLINE:
112
+ icon = offline;
113
+ iconStyle = iconOfflineStyles;
114
+ break;
113
115
  case ICON_TYPE.PLACEHOLDER:
116
+ icon = image;
114
117
  iconStyle = iconPlaceholderStyles;
115
118
  break;
116
119
  case ICON_TYPE.UPLOAD:
120
+ icon = image;
117
121
  iconStyle = iconUploadStyles;
118
122
  break;
119
123
  }
@@ -130,6 +134,31 @@ const ImageComponent = ( {
130
134
  styles.iconUploadDark
131
135
  );
132
136
 
137
+ const iconOfflineStyles = usePreferredColorSchemeStyle(
138
+ styles.iconOffline,
139
+ styles.iconOfflineDark
140
+ );
141
+
142
+ const retryIconStyles = usePreferredColorSchemeStyle(
143
+ styles.retryIcon,
144
+ styles.retryIconDark
145
+ );
146
+
147
+ const iconRetryStyles = usePreferredColorSchemeStyle(
148
+ styles.iconRetry,
149
+ styles.iconRetryDark
150
+ );
151
+
152
+ const retryContainerStyles = usePreferredColorSchemeStyle(
153
+ styles.retryContainer,
154
+ styles.retryContainerDark
155
+ );
156
+
157
+ const uploadFailedTextStyles = usePreferredColorSchemeStyle(
158
+ styles.uploadFailedText,
159
+ styles.uploadFailedTextDark
160
+ );
161
+
133
162
  const placeholderStyles = [
134
163
  usePreferredColorSchemeStyle(
135
164
  styles.imageContainerUpload,
@@ -216,9 +245,11 @@ const ImageComponent = ( {
216
245
  >
217
246
  { isSelected &&
218
247
  highlightSelected &&
219
- ! ( isUploadInProgress || isUploadFailed ) && (
220
- <View style={ imageSelectedStyles } />
221
- ) }
248
+ ! (
249
+ isUploadInProgress ||
250
+ isUploadFailed ||
251
+ isUploadPaused
252
+ ) && <View style={ imageSelectedStyles } /> }
222
253
 
223
254
  { ! imageData ? (
224
255
  <View style={ placeholderStyles }>
@@ -239,22 +270,24 @@ const ImageComponent = ( {
239
270
  </View>
240
271
  ) }
241
272
 
242
- { isUploadFailed && retryMessage && (
273
+ { ( isUploadFailed || isUploadPaused ) && retryMessage && (
243
274
  <View
244
275
  style={ [
245
276
  styles.imageContainer,
246
- styles.retryContainer,
277
+ retryContainerStyles,
247
278
  ] }
248
279
  >
249
280
  <View
250
281
  style={ [
251
- styles.retryIcon,
282
+ retryIconStyles,
252
283
  retryIcon && styles.customRetryIcon,
253
284
  ] }
254
285
  >
255
- { getIcon( ICON_TYPE.RETRY ) }
286
+ { isUploadPaused
287
+ ? getIcon( ICON_TYPE.OFFLINE )
288
+ : getIcon( ICON_TYPE.RETRY ) }
256
289
  </View>
257
- <Text style={ styles.uploadFailedText }>
290
+ <Text style={ uploadFailedTextStyles }>
258
291
  { retryMessage }
259
292
  </Text>
260
293
  </View>
@@ -265,7 +298,11 @@ const ImageComponent = ( {
265
298
  <ImageEditingButton
266
299
  onSelectMediaUploadOption={ onSelectMediaUploadOption }
267
300
  openMediaOptions={ openMediaOptions }
268
- url={ ! isUploadFailed && imageData && url }
301
+ url={
302
+ ! ( isUploadFailed || isUploadPaused ) &&
303
+ imageData &&
304
+ url
305
+ }
269
306
  pickerOptions={ mediaPickerOptions }
270
307
  />
271
308
  ) }
@@ -21,10 +21,23 @@
21
21
  }
22
22
 
23
23
  .retryIcon {
24
- width: 80px;
25
- height: 80px;
26
- justify-content: center;
27
- align-items: center;
24
+ background-color: $black;
25
+ border-radius: 200px;
26
+ padding: 8px;
27
+ }
28
+
29
+ .retryIconDark {
30
+ background-color: $white;
31
+ }
32
+
33
+ .iconOffline {
34
+ fill: $white;
35
+ width: 24px;
36
+ height: 24px;
37
+ }
38
+
39
+ .iconOfflineDark {
40
+ fill: $black;
28
41
  }
29
42
 
30
43
  .customRetryIcon {
@@ -33,9 +46,13 @@
33
46
  }
34
47
 
35
48
  .iconRetry {
36
- fill: #fff;
37
- width: 100%;
38
- height: 100%;
49
+ fill: $white;
50
+ width: 24px;
51
+ height: 24px;
52
+ }
53
+
54
+ .iconRetryDark {
55
+ fill: $black;
39
56
  }
40
57
 
41
58
  .iconPlaceholder {
@@ -90,12 +107,17 @@
90
107
  }
91
108
 
92
109
  .uploadFailedText {
93
- color: #fff;
110
+ color: $black;
111
+ font-weight: bold;
94
112
  font-size: 14;
95
113
  margin-top: 5;
96
114
  text-align: center;
97
115
  }
98
116
 
117
+ .uploadFailedTextDark {
118
+ color: $white;
119
+ }
120
+
99
121
  .editContainer {
100
122
  width: 44px;
101
123
  height: 44px;
@@ -116,7 +138,7 @@
116
138
  }
117
139
 
118
140
  .iconCustomise {
119
- fill: #fff;
141
+ fill: $white;
120
142
  position: absolute;
121
143
  top: 7px;
122
144
  left: 7px;
@@ -124,6 +146,10 @@
124
146
 
125
147
  .retryContainer {
126
148
  flex: 1;
149
+ background-color: "rgba(255, 255, 255, 0.8)";
150
+ }
151
+
152
+ .retryContainerDark {
127
153
  background-color: "rgba(0, 0, 0, 0.5)";
128
154
  }
129
155
 
@@ -2,26 +2,71 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { FlatList } from 'react-native';
5
- import Animated, { useAnimatedScrollHandler } from 'react-native-reanimated';
5
+ import Animated from 'react-native-reanimated';
6
+
7
+ /**
8
+ * WordPress dependencies
9
+ */
10
+ import {
11
+ forwardRef,
12
+ useCallback,
13
+ useImperativeHandle,
14
+ } from '@wordpress/element';
6
15
 
7
16
  /**
8
17
  * Internal dependencies
9
18
  */
19
+ import useScroll from './use-scroll';
10
20
  import KeyboardAvoidingView from '../keyboard-avoiding-view';
11
21
 
12
22
  const AnimatedFlatList = Animated.createAnimatedComponent( FlatList );
13
23
 
14
- export const KeyboardAwareFlatList = ( { innerRef, onScroll, ...props } ) => {
15
- const scrollHandler = useAnimatedScrollHandler( { onScroll } );
24
+ export const KeyboardAwareFlatList = ( { onScroll, ...props }, ref ) => {
25
+ const { extraScrollHeight, scrollEnabled, shouldPreventAutomaticScroll } =
26
+ props;
27
+
28
+ const {
29
+ scrollViewRef,
30
+ scrollHandler,
31
+ scrollToSection,
32
+ scrollToElement,
33
+ onContentSizeChange,
34
+ lastScrollTo,
35
+ } = useScroll( {
36
+ scrollEnabled,
37
+ shouldPreventAutomaticScroll,
38
+ extraScrollHeight,
39
+ onScroll,
40
+ } );
41
+
42
+ const getFlatListRef = useCallback(
43
+ ( flatListRef ) => {
44
+ // On Android, we get the ref of the associated scroll
45
+ // view to the FlatList.
46
+ scrollViewRef.current = flatListRef?.getNativeScrollRef();
47
+ },
48
+ [ scrollViewRef ]
49
+ );
50
+
51
+ useImperativeHandle( ref, () => {
52
+ return {
53
+ scrollViewRef: scrollViewRef.current,
54
+ scrollToSection,
55
+ scrollToElement,
56
+ lastScrollTo,
57
+ };
58
+ } );
59
+
16
60
  return (
17
61
  <KeyboardAvoidingView style={ { flex: 1 } }>
18
62
  <AnimatedFlatList
19
- ref={ innerRef }
63
+ ref={ getFlatListRef }
20
64
  onScroll={ scrollHandler }
65
+ onContentSizeChange={ onContentSizeChange }
21
66
  { ...props }
22
67
  />
23
68
  </KeyboardAvoidingView>
24
69
  );
25
70
  };
26
71
 
27
- export default KeyboardAwareFlatList;
72
+ export default forwardRef( KeyboardAwareFlatList );