@wordpress/components 25.14.0 → 25.15.1-next.79a6196f.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 (568) hide show
  1. package/CHANGELOG.md +51 -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-palette/index.native.js +11 -7
  17. package/build/color-palette/index.native.js.map +1 -1
  18. package/build/color-picker/color-copy-button.js +1 -1
  19. package/build/color-picker/color-copy-button.js.map +1 -1
  20. package/build/context/wordpress-component.js.map +1 -1
  21. package/build/custom-select-control-v2/index.js +11 -10
  22. package/build/custom-select-control-v2/index.js.map +1 -1
  23. package/build/date-time/date/styles.js +8 -8
  24. package/build/date-time/date/styles.js.map +1 -1
  25. package/build/dropdown-menu-v2/index.js +205 -159
  26. package/build/dropdown-menu-v2/index.js.map +1 -1
  27. package/build/dropdown-menu-v2/styles.js +86 -77
  28. package/build/dropdown-menu-v2/styles.js.map +1 -1
  29. package/build/dropdown-menu-v2/types.js.map +1 -1
  30. package/build/duotone-picker/duotone-picker.js +4 -3
  31. package/build/duotone-picker/duotone-picker.js.map +1 -1
  32. package/build/font-size-picker/index.js +4 -2
  33. package/build/font-size-picker/index.js.map +1 -1
  34. package/build/font-size-picker/index.native.js +6 -3
  35. package/build/font-size-picker/index.native.js.map +1 -1
  36. package/build/form-token-field/index.js +10 -5
  37. package/build/form-token-field/index.js.map +1 -1
  38. package/build/form-token-field/token.js +1 -0
  39. package/build/form-token-field/token.js.map +1 -1
  40. package/build/gradient-picker/index.js +3 -2
  41. package/build/gradient-picker/index.js.map +1 -1
  42. package/build/index.native.js +20 -3
  43. package/build/index.native.js.map +1 -1
  44. package/build/input-control/styles/input-control-styles.js +32 -29
  45. package/build/input-control/styles/input-control-styles.js.map +1 -1
  46. package/build/input-control/types.js.map +1 -1
  47. package/build/lock-unlock.js +18 -0
  48. package/build/lock-unlock.js.map +1 -0
  49. package/build/mobile/bottom-sheet/index.native.js +8 -0
  50. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  51. package/build/mobile/color-settings/palette.screen.native.js +8 -4
  52. package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
  53. package/build/mobile/global-styles-context/utils.native.js +26 -13
  54. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  55. package/build/mobile/image/constants.js +12 -0
  56. package/build/mobile/image/constants.js.map +1 -0
  57. package/build/mobile/image/index.native.js +26 -18
  58. package/build/mobile/image/index.native.js.map +1 -1
  59. package/build/mobile/keyboard-aware-flat-list/index.android.js +40 -8
  60. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  61. package/build/mobile/keyboard-aware-flat-list/index.ios.js +44 -68
  62. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  63. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +39 -0
  64. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  65. package/build/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -29
  66. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  67. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js +93 -0
  68. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  69. package/build/mobile/utils/get-px-from-css-unit.native.js +302 -0
  70. package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  71. package/build/modal/index.js +18 -13
  72. package/build/modal/index.js.map +1 -1
  73. package/build/navigation/menu/menu-title.js +1 -1
  74. package/build/navigation/menu/menu-title.js.map +1 -1
  75. package/build/navigator/navigator-provider/component.js +13 -15
  76. package/build/navigator/navigator-provider/component.js.map +1 -1
  77. package/build/navigator/navigator-screen/component.js +23 -63
  78. package/build/navigator/navigator-screen/component.js.map +1 -1
  79. package/build/navigator/styles.js +52 -0
  80. package/build/navigator/styles.js.map +1 -0
  81. package/build/number-control/index.js +4 -8
  82. package/build/number-control/index.js.map +1 -1
  83. package/build/number-control/types.js.map +1 -1
  84. package/build/palette-edit/index.js +15 -54
  85. package/build/palette-edit/index.js.map +1 -1
  86. package/build/private-apis.js +11 -26
  87. package/build/private-apis.js.map +1 -1
  88. package/build/private-apis.native.js +21 -0
  89. package/build/private-apis.native.js.map +1 -0
  90. package/build/radio-control/index.js +1 -0
  91. package/build/radio-control/index.js.map +1 -1
  92. package/build/range-control/index.js +1 -1
  93. package/build/range-control/index.js.map +1 -1
  94. package/build/select-control/styles/select-control-styles.js +15 -25
  95. package/build/select-control/styles/select-control-styles.js.map +1 -1
  96. package/build/slot-fill/index.js +3 -2
  97. package/build/slot-fill/index.js.map +1 -1
  98. package/build/slot-fill/types.js.map +1 -1
  99. package/build/snackbar/types.js.map +1 -1
  100. package/build/tabs/styles.js +3 -3
  101. package/build/tabs/styles.js.map +1 -1
  102. package/build/tabs/tabpanel.js +9 -7
  103. package/build/tabs/tabpanel.js.map +1 -1
  104. package/build/toggle-group-control/toggle-group-control/component.js +4 -4
  105. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  106. package/build/toggle-group-control/toggle-group-control/styles.js +29 -15
  107. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  108. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  109. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  110. package/build/tools-panel/tools-panel/component.js +3 -1
  111. package/build/tools-panel/tools-panel/component.js.map +1 -1
  112. package/build/tools-panel/tools-panel-header/component.js +9 -8
  113. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  114. package/build/tools-panel/types.js.map +1 -1
  115. package/build/tooltip/index.js +34 -10
  116. package/build/tooltip/index.js.map +1 -1
  117. package/build/tooltip/types.js.map +1 -1
  118. package/build/truncate/hook.js +10 -4
  119. package/build/truncate/hook.js.map +1 -1
  120. package/build/truncate/types.js.map +1 -1
  121. package/build/unit-control/index.js +1 -1
  122. package/build/unit-control/index.js.map +1 -1
  123. package/build/utils/strings.js +34 -3
  124. package/build/utils/strings.js.map +1 -1
  125. package/build-module/base-control/index.js +16 -12
  126. package/build-module/base-control/index.js.map +1 -1
  127. package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -1
  128. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  129. package/build-module/border-control/border-control-style-picker/component.js +1 -1
  130. package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
  131. package/build-module/box-control/index.js +1 -1
  132. package/build-module/box-control/index.js.map +1 -1
  133. package/build-module/box-control/linked-button.js +1 -1
  134. package/build-module/box-control/linked-button.js.map +1 -1
  135. package/build-module/button/index.js +1 -1
  136. package/build-module/button/index.js.map +1 -1
  137. package/build-module/color-palette/index.native.js +11 -7
  138. package/build-module/color-palette/index.native.js.map +1 -1
  139. package/build-module/color-picker/color-copy-button.js +1 -1
  140. package/build-module/color-picker/color-copy-button.js.map +1 -1
  141. package/build-module/context/wordpress-component.js.map +1 -1
  142. package/build-module/custom-select-control-v2/index.js +11 -10
  143. package/build-module/custom-select-control-v2/index.js.map +1 -1
  144. package/build-module/date-time/date/styles.js +8 -8
  145. package/build-module/date-time/date/styles.js.map +1 -1
  146. package/build-module/dropdown-menu-v2/index.js +201 -154
  147. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  148. package/build-module/dropdown-menu-v2/styles.js +68 -61
  149. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  150. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  151. package/build-module/duotone-picker/duotone-picker.js +4 -3
  152. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  153. package/build-module/font-size-picker/index.js +4 -2
  154. package/build-module/font-size-picker/index.js.map +1 -1
  155. package/build-module/font-size-picker/index.native.js +5 -2
  156. package/build-module/font-size-picker/index.native.js.map +1 -1
  157. package/build-module/form-token-field/index.js +10 -5
  158. package/build-module/form-token-field/index.js.map +1 -1
  159. package/build-module/form-token-field/token.js +1 -0
  160. package/build-module/form-token-field/token.js.map +1 -1
  161. package/build-module/gradient-picker/index.js +3 -2
  162. package/build-module/gradient-picker/index.js.map +1 -1
  163. package/build-module/index.native.js +6 -1
  164. package/build-module/index.native.js.map +1 -1
  165. package/build-module/input-control/styles/input-control-styles.js +31 -29
  166. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  167. package/build-module/input-control/types.js.map +1 -1
  168. package/build-module/lock-unlock.js +9 -0
  169. package/build-module/lock-unlock.js.map +1 -0
  170. package/build-module/mobile/bottom-sheet/index.native.js +9 -1
  171. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  172. package/build-module/mobile/color-settings/palette.screen.native.js +8 -4
  173. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  174. package/build-module/mobile/global-styles-context/utils.native.js +25 -13
  175. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  176. package/build-module/mobile/image/constants.js +5 -0
  177. package/build-module/mobile/image/constants.js.map +1 -0
  178. package/build-module/mobile/image/index.native.js +25 -16
  179. package/build-module/mobile/image/index.native.js.map +1 -1
  180. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +40 -6
  181. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  182. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +46 -68
  183. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  184. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +33 -0
  185. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  186. package/build-module/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +21 -27
  187. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  188. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js +86 -0
  189. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  190. package/build-module/mobile/utils/get-px-from-css-unit.native.js +294 -0
  191. package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  192. package/build-module/modal/index.js +18 -13
  193. package/build-module/modal/index.js.map +1 -1
  194. package/build-module/navigation/menu/menu-title.js +1 -1
  195. package/build-module/navigation/menu/menu-title.js.map +1 -1
  196. package/build-module/navigator/navigator-provider/component.js +3 -16
  197. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  198. package/build-module/navigator/navigator-screen/component.js +16 -70
  199. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  200. package/build-module/navigator/styles.js +47 -0
  201. package/build-module/navigator/styles.js.map +1 -0
  202. package/build-module/number-control/index.js +4 -8
  203. package/build-module/number-control/index.js.map +1 -1
  204. package/build-module/number-control/types.js.map +1 -1
  205. package/build-module/palette-edit/index.js +15 -51
  206. package/build-module/palette-edit/index.js.map +1 -1
  207. package/build-module/private-apis.js +10 -23
  208. package/build-module/private-apis.js.map +1 -1
  209. package/build-module/private-apis.native.js +14 -0
  210. package/build-module/private-apis.native.js.map +1 -0
  211. package/build-module/radio-control/index.js +1 -0
  212. package/build-module/radio-control/index.js.map +1 -1
  213. package/build-module/range-control/index.js +1 -1
  214. package/build-module/range-control/index.js.map +1 -1
  215. package/build-module/select-control/styles/select-control-styles.js +15 -25
  216. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  217. package/build-module/slot-fill/index.js +3 -2
  218. package/build-module/slot-fill/index.js.map +1 -1
  219. package/build-module/slot-fill/types.js.map +1 -1
  220. package/build-module/snackbar/types.js.map +1 -1
  221. package/build-module/tabs/styles.js +3 -3
  222. package/build-module/tabs/styles.js.map +1 -1
  223. package/build-module/tabs/tabpanel.js +9 -7
  224. package/build-module/tabs/tabpanel.js.map +1 -1
  225. package/build-module/toggle-group-control/toggle-group-control/component.js +4 -4
  226. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  227. package/build-module/toggle-group-control/toggle-group-control/styles.js +29 -15
  228. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  229. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  230. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  231. package/build-module/tools-panel/tools-panel/component.js +3 -1
  232. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  233. package/build-module/tools-panel/tools-panel-header/component.js +9 -8
  234. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  235. package/build-module/tools-panel/types.js.map +1 -1
  236. package/build-module/tooltip/index.js +34 -12
  237. package/build-module/tooltip/index.js.map +1 -1
  238. package/build-module/tooltip/types.js.map +1 -1
  239. package/build-module/truncate/hook.js +10 -4
  240. package/build-module/truncate/hook.js.map +1 -1
  241. package/build-module/truncate/types.js.map +1 -1
  242. package/build-module/unit-control/index.js +1 -1
  243. package/build-module/unit-control/index.js.map +1 -1
  244. package/build-module/utils/strings.js +32 -2
  245. package/build-module/utils/strings.js.map +1 -1
  246. package/build-style/style-rtl.css +29 -5
  247. package/build-style/style.css +29 -5
  248. package/build-types/base-control/index.d.ts +3 -27
  249. package/build-types/base-control/index.d.ts.map +1 -1
  250. package/build-types/base-control/stories/index.story.d.ts +4 -1
  251. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  252. package/build-types/border-box-control/border-box-control/hook.d.ts +4 -4
  253. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +6 -6
  254. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +4 -4
  255. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +4 -4
  256. package/build-types/border-box-control/stories/index.story.d.ts +1 -1
  257. package/build-types/border-control/border-control/hook.d.ts +4 -4
  258. package/build-types/border-control/border-control-dropdown/hook.d.ts +4 -4
  259. package/build-types/border-control/border-control-style-picker/hook.d.ts +4 -4
  260. package/build-types/border-control/stories/index.story.d.ts +6 -6
  261. package/build-types/box-control/stories/index.story.d.ts +42 -42
  262. package/build-types/box-control/styles/box-control-styles.d.ts +1 -1
  263. package/build-types/button/deprecated.d.ts +3 -3
  264. package/build-types/card/card/hook.d.ts +4 -4
  265. package/build-types/card/card-body/hook.d.ts +4 -4
  266. package/build-types/card/card-divider/hook.d.ts +4 -4
  267. package/build-types/card/card-footer/hook.d.ts +4 -4
  268. package/build-types/card/card-header/hook.d.ts +4 -4
  269. package/build-types/card/card-media/hook.d.ts +4 -4
  270. package/build-types/color-palette/styles.d.ts +2 -2
  271. package/build-types/color-picker/component.d.ts +2 -2
  272. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  273. package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
  274. package/build-types/color-picker/styles.d.ts +3 -3
  275. package/build-types/composite/test/index.d.ts.map +1 -0
  276. package/build-types/context/wordpress-component.d.ts +3 -3
  277. package/build-types/context/wordpress-component.d.ts.map +1 -1
  278. package/build-types/custom-select-control-v2/index.d.ts +3 -2
  279. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  280. package/build-types/custom-select-control-v2/stories/index.story.d.ts +4 -3
  281. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  282. package/build-types/date-time/date/styles.d.ts +3 -3
  283. package/build-types/date-time/date-time/styles.d.ts +1 -1
  284. package/build-types/date-time/time/styles.d.ts +4 -4
  285. package/build-types/dropdown/index.d.ts +1 -1
  286. package/build-types/dropdown/index.d.ts.map +1 -1
  287. package/build-types/dropdown/stories/index.story.d.ts +3 -3
  288. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  289. package/build-types/dropdown-menu/index.d.ts +1 -1
  290. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  291. package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
  292. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  293. package/build-types/dropdown-menu-v2/index.d.ts +18 -15
  294. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  295. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +7 -2
  296. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  297. package/build-types/dropdown-menu-v2/styles.d.ts +77 -23
  298. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  299. package/build-types/dropdown-menu-v2/types.d.ts +89 -173
  300. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  301. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  302. package/build-types/elevation/hook.d.ts +4 -4
  303. package/build-types/flex/flex/hook.d.ts +4 -4
  304. package/build-types/flex/flex-block/hook.d.ts +4 -4
  305. package/build-types/flex/flex-item/hook.d.ts +4 -4
  306. package/build-types/focal-point-picker/stories/index.story.d.ts +4 -4
  307. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
  308. package/build-types/font-size-picker/index.d.ts.map +1 -1
  309. package/build-types/font-size-picker/styles.d.ts +1 -1
  310. package/build-types/form-token-field/index.d.ts.map +1 -1
  311. package/build-types/form-token-field/token.d.ts.map +1 -1
  312. package/build-types/grid/hook.d.ts +4 -4
  313. package/build-types/h-stack/hook.d.ts +4 -4
  314. package/build-types/heading/component.d.ts +1 -1
  315. package/build-types/heading/hook.d.ts +4 -4
  316. package/build-types/input-control/styles/input-control-styles.d.ts +11 -0
  317. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  318. package/build-types/input-control/types.d.ts +1 -1
  319. package/build-types/input-control/types.d.ts.map +1 -1
  320. package/build-types/item-group/item/hook.d.ts +4 -4
  321. package/build-types/item-group/item-group/hook.d.ts +4 -4
  322. package/build-types/lock-unlock.d.ts +3 -0
  323. package/build-types/lock-unlock.d.ts.map +1 -0
  324. package/build-types/menu-item/index.d.ts +1 -1
  325. package/build-types/menu-item/stories/index.story.d.ts +4 -4
  326. package/build-types/mobile/image/constants.d.ts +5 -0
  327. package/build-types/mobile/image/constants.d.ts.map +1 -0
  328. package/build-types/modal/index.d.ts.map +1 -1
  329. package/build-types/navigation/styles/navigation-styles.d.ts +3 -3
  330. package/build-types/navigator/navigator-back-button/hook.d.ts +6 -6
  331. package/build-types/navigator/navigator-button/hook.d.ts +6 -6
  332. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  333. package/build-types/navigator/navigator-screen/component.d.ts +1 -7
  334. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  335. package/build-types/navigator/styles.d.ts +9 -0
  336. package/build-types/navigator/styles.d.ts.map +1 -0
  337. package/build-types/number-control/index.d.ts +1 -1
  338. package/build-types/number-control/index.d.ts.map +1 -1
  339. package/build-types/number-control/stories/index.story.d.ts +1 -1
  340. package/build-types/number-control/types.d.ts +1 -1
  341. package/build-types/palette-edit/index.d.ts +3 -8
  342. package/build-types/palette-edit/index.d.ts.map +1 -1
  343. package/build-types/palette-edit/styles.d.ts +3 -3
  344. package/build-types/popover/index.d.ts +1 -1
  345. package/build-types/popover/index.d.ts.map +1 -1
  346. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  347. package/build-types/private-apis.d.ts +0 -1
  348. package/build-types/private-apis.d.ts.map +1 -1
  349. package/build-types/radio-control/index.d.ts.map +1 -1
  350. package/build-types/range-control/index.d.ts +1 -1
  351. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  352. package/build-types/resizable-box/index.d.ts +1 -1
  353. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  354. package/build-types/resizable-box/stories/index.story.d.ts +2 -2
  355. package/build-types/scrollable/hook.d.ts +4 -4
  356. package/build-types/search-control/index.d.ts +1 -1
  357. package/build-types/search-control/stories/index.story.d.ts +2 -2
  358. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  359. package/build-types/slot-fill/index.d.ts +1 -1
  360. package/build-types/slot-fill/index.d.ts.map +1 -1
  361. package/build-types/slot-fill/types.d.ts +4 -0
  362. package/build-types/slot-fill/types.d.ts.map +1 -1
  363. package/build-types/snackbar/index.d.ts +2 -2
  364. package/build-types/snackbar/stories/index.story.d.ts +0 -3
  365. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  366. package/build-types/snackbar/types.d.ts +1 -1
  367. package/build-types/snackbar/types.d.ts.map +1 -1
  368. package/build-types/spacer/hook.d.ts +4 -4
  369. package/build-types/surface/hook.d.ts +4 -4
  370. package/build-types/tabs/styles.d.ts.map +1 -1
  371. package/build-types/tabs/tabpanel.d.ts +1 -1
  372. package/build-types/tabs/tabpanel.d.ts.map +1 -1
  373. package/build-types/text/hook.d.ts +4 -4
  374. package/build-types/text-control/index.d.ts +1 -1
  375. package/build-types/textarea-control/index.d.ts +1 -1
  376. package/build-types/toggle-control/stories/index.story.d.ts +2 -2
  377. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
  378. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
  379. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  380. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
  381. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  382. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
  383. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
  384. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  385. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  386. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
  387. package/build-types/toolbar/toolbar-button/index.d.ts +3 -3
  388. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  389. package/build-types/tools-panel/tools-panel/hook.d.ts +5 -4
  390. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  391. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  392. package/build-types/tools-panel/tools-panel-header/hook.d.ts +5 -4
  393. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  394. package/build-types/tools-panel/tools-panel-item/hook.d.ts +4 -4
  395. package/build-types/tools-panel/types.d.ts +9 -0
  396. package/build-types/tools-panel/types.d.ts.map +1 -1
  397. package/build-types/tooltip/index.d.ts +1 -1
  398. package/build-types/tooltip/index.d.ts.map +1 -1
  399. package/build-types/tooltip/stories/index.story.d.ts +10 -1
  400. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  401. package/build-types/tooltip/types.d.ts +3 -0
  402. package/build-types/tooltip/types.d.ts.map +1 -1
  403. package/build-types/truncate/hook.d.ts +5 -5
  404. package/build-types/truncate/hook.d.ts.map +1 -1
  405. package/build-types/truncate/types.d.ts +4 -0
  406. package/build-types/truncate/types.d.ts.map +1 -1
  407. package/build-types/unit-control/index.d.ts +1 -1
  408. package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
  409. package/build-types/utils/strings.d.ts +14 -2
  410. package/build-types/utils/strings.d.ts.map +1 -1
  411. package/build-types/v-stack/hook.d.ts +4 -4
  412. package/build-types/v-stack/stories/index.story.d.ts +1 -1
  413. package/package.json +20 -21
  414. package/src/alignment-matrix-control/test/index.tsx +10 -16
  415. package/src/base-control/index.tsx +21 -16
  416. package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
  417. package/src/border-control/border-control-style-picker/component.tsx +1 -1
  418. package/src/box-control/index.tsx +1 -1
  419. package/src/box-control/linked-button.tsx +1 -1
  420. package/src/button/README.md +32 -6
  421. package/src/button/index.tsx +1 -1
  422. package/src/button-group/README.md +0 -6
  423. package/src/card/card/README.md +1 -1
  424. package/src/checkbox-control/README.md +1 -9
  425. package/src/color-palette/index.native.js +18 -7
  426. package/src/color-picker/color-copy-button.tsx +1 -1
  427. package/src/combobox-control/README.md +0 -6
  428. package/src/composite/test/index.tsx +576 -0
  429. package/src/context/wordpress-component.ts +11 -6
  430. package/src/custom-select-control/README.md +0 -6
  431. package/src/custom-select-control-v2/index.tsx +13 -12
  432. package/src/date-time/date/styles.ts +3 -3
  433. package/src/dropdown-menu/README.md +0 -5
  434. package/src/dropdown-menu-v2/README.md +75 -136
  435. package/src/dropdown-menu-v2/index.tsx +321 -231
  436. package/src/dropdown-menu-v2/stories/index.story.tsx +522 -126
  437. package/src/dropdown-menu-v2/styles.ts +226 -151
  438. package/src/dropdown-menu-v2/test/index.tsx +480 -188
  439. package/src/dropdown-menu-v2/types.ts +98 -184
  440. package/src/duotone-picker/duotone-picker.tsx +7 -3
  441. package/src/font-size-picker/index.native.js +8 -2
  442. package/src/font-size-picker/index.tsx +4 -2
  443. package/src/form-toggle/README.md +0 -6
  444. package/src/form-token-field/index.tsx +11 -7
  445. package/src/form-token-field/test/index.tsx +97 -0
  446. package/src/form-token-field/token.tsx +1 -0
  447. package/src/gradient-picker/index.tsx +2 -2
  448. package/src/index.native.js +6 -1
  449. package/src/input-control/styles/input-control-styles.tsx +10 -8
  450. package/src/input-control/types.ts +1 -1
  451. package/src/lock-unlock.js +10 -0
  452. package/src/menu-group/README.md +0 -8
  453. package/src/menu-items-choice/README.md +0 -7
  454. package/src/mobile/bottom-sheet/index.native.js +15 -1
  455. package/src/mobile/color-settings/palette.screen.native.js +7 -5
  456. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +0 -20
  457. package/src/mobile/global-styles-context/utils.native.js +28 -19
  458. package/src/mobile/image/constants.js +1 -0
  459. package/src/mobile/image/index.native.js +55 -18
  460. package/src/mobile/image/style.native.scss +35 -9
  461. package/src/mobile/keyboard-aware-flat-list/index.android.js +50 -5
  462. package/src/mobile/keyboard-aware-flat-list/index.ios.js +65 -91
  463. package/src/mobile/keyboard-aware-flat-list/test/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +27 -25
  464. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +71 -0
  465. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +41 -0
  466. package/src/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -27
  467. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +100 -0
  468. package/src/mobile/utils/get-px-from-css-unit.native.js +329 -0
  469. package/src/mobile/utils/test/get-px-from-css-unit.native.js +172 -0
  470. package/src/modal/README.md +0 -6
  471. package/src/modal/index.tsx +18 -16
  472. package/src/modal/test/index.tsx +90 -1
  473. package/src/navigation/menu/menu-title.tsx +1 -1
  474. package/src/navigator/navigator-provider/component.tsx +3 -4
  475. package/src/navigator/navigator-screen/component.tsx +15 -93
  476. package/src/navigator/styles.ts +71 -0
  477. package/src/navigator/test/index.tsx +0 -64
  478. package/src/notice/README.md +0 -6
  479. package/src/number-control/README.md +2 -2
  480. package/src/number-control/index.tsx +4 -8
  481. package/src/number-control/types.ts +1 -1
  482. package/src/palette-edit/index.tsx +15 -58
  483. package/src/palette-edit/test/index.tsx +1 -75
  484. package/src/panel/README.md +0 -6
  485. package/src/private-apis.native.js +13 -0
  486. package/src/private-apis.ts +12 -37
  487. package/src/radio-control/README.md +0 -6
  488. package/src/radio-control/index.tsx +4 -1
  489. package/src/radio-control/style.scss +29 -2
  490. package/src/radio-group/README.md +0 -6
  491. package/src/range-control/README.md +1 -9
  492. package/src/range-control/index.tsx +1 -1
  493. package/src/search-control/README.md +0 -6
  494. package/src/select-control/README.md +0 -6
  495. package/src/select-control/styles/select-control-styles.ts +10 -28
  496. package/src/slot-fill/index.tsx +5 -2
  497. package/src/slot-fill/types.ts +5 -0
  498. package/src/snackbar/README.md +0 -6
  499. package/src/snackbar/stories/index.story.tsx +7 -5
  500. package/src/snackbar/style.scss +4 -3
  501. package/src/snackbar/types.ts +2 -1
  502. package/src/spacer/README.md +0 -2
  503. package/src/tab-panel/README.md +0 -5
  504. package/src/tab-panel/test/index.tsx +39 -56
  505. package/src/tabs/styles.ts +7 -1
  506. package/src/tabs/tabpanel.tsx +7 -6
  507. package/src/tabs/test/index.tsx +56 -0
  508. package/src/text-control/README.md +0 -6
  509. package/src/textarea-control/README.md +0 -6
  510. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +12 -16
  511. package/src/toggle-group-control/test/index.tsx +58 -45
  512. package/src/toggle-group-control/toggle-group-control/component.tsx +5 -4
  513. package/src/toggle-group-control/toggle-group-control/styles.ts +13 -19
  514. package/src/toggle-group-control/toggle-group-control-option/README.md +1 -1
  515. package/src/toggle-group-control/toggle-group-control-option-base/README.md +1 -1
  516. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +3 -2
  517. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
  518. package/src/toolbar/toolbar/README.md +0 -6
  519. package/src/tools-panel/test/index.tsx +12 -20
  520. package/src/tools-panel/tools-panel/README.md +7 -0
  521. package/src/tools-panel/tools-panel/component.tsx +2 -0
  522. package/src/tools-panel/tools-panel-header/README.md +7 -0
  523. package/src/tools-panel/tools-panel-header/component.tsx +20 -13
  524. package/src/tools-panel/types.ts +9 -0
  525. package/src/tooltip/README.md +4 -0
  526. package/src/tooltip/index.tsx +48 -10
  527. package/src/tooltip/stories/index.story.tsx +18 -1
  528. package/src/tooltip/test/index.tsx +404 -254
  529. package/src/tooltip/types.ts +4 -0
  530. package/src/tree-grid/README.md +0 -4
  531. package/src/truncate/README.md +8 -0
  532. package/src/truncate/hook.ts +17 -10
  533. package/src/truncate/test/index.tsx +54 -27
  534. package/src/truncate/types.ts +4 -0
  535. package/src/unit-control/index.tsx +1 -1
  536. package/src/utils/strings.ts +30 -2
  537. package/src/utils/test/strings.js +96 -1
  538. package/tsconfig.tsbuildinfo +1 -1
  539. package/build/dropdown-menu-v2-ariakit/index.js +0 -256
  540. package/build/dropdown-menu-v2-ariakit/index.js.map +0 -1
  541. package/build/dropdown-menu-v2-ariakit/styles.js +0 -180
  542. package/build/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  543. package/build/dropdown-menu-v2-ariakit/types.js +0 -6
  544. package/build/dropdown-menu-v2-ariakit/types.js.map +0 -1
  545. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  546. package/build-module/dropdown-menu-v2-ariakit/index.js +0 -237
  547. package/build-module/dropdown-menu-v2-ariakit/index.js.map +0 -1
  548. package/build-module/dropdown-menu-v2-ariakit/styles.js +0 -165
  549. package/build-module/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  550. package/build-module/dropdown-menu-v2-ariakit/types.js +0 -2
  551. package/build-module/dropdown-menu-v2-ariakit/types.js.map +0 -1
  552. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  553. package/build-types/dropdown-menu-v2-ariakit/index.d.ts +0 -20
  554. package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +0 -1
  555. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +0 -16
  556. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +0 -1
  557. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +0 -96
  558. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +0 -1
  559. package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +0 -1
  560. package/build-types/dropdown-menu-v2-ariakit/types.d.ts +0 -168
  561. package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +0 -1
  562. package/src/dropdown-menu-v2-ariakit/README.md +0 -331
  563. package/src/dropdown-menu-v2-ariakit/index.tsx +0 -383
  564. package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +0 -617
  565. package/src/dropdown-menu-v2-ariakit/styles.ts +0 -345
  566. package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
  567. package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
  568. /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
@@ -29,7 +29,6 @@ import { colorsUtils } from './utils';
29
29
  import styles from './style.scss';
30
30
 
31
31
  const HIT_SLOP = { top: 8, bottom: 8, left: 8, right: 8 };
32
- const THEME_PALETTE_NAME = 'Theme';
33
32
 
34
33
  const PaletteScreen = () => {
35
34
  const route = useRoute();
@@ -48,7 +47,6 @@ const PaletteScreen = () => {
48
47
  const [ currentValue, setCurrentValue ] = useState( colorValue );
49
48
  const isGradientColor = isGradient( currentValue );
50
49
  const selectedSegmentIndex = isGradientColor ? 1 : 0;
51
- const allAvailableColors = useMobileGlobalStylesColors();
52
50
 
53
51
  const [ currentSegment, setCurrentSegment ] = useState(
54
52
  segments[ selectedSegmentIndex ]
@@ -57,6 +55,10 @@ const PaletteScreen = () => {
57
55
  const currentSegmentColors = ! isGradientSegment
58
56
  ? defaultSettings.colors
59
57
  : defaultSettings.gradients;
58
+ const allAvailableColors = useMobileGlobalStylesColors();
59
+ const allAvailableGradients = currentSegmentColors
60
+ .flatMap( ( { gradients } ) => gradients )
61
+ .filter( Boolean );
60
62
 
61
63
  const horizontalSeparatorStyle = usePreferredColorSchemeStyle(
62
64
  styles.horizontalSeparator,
@@ -184,10 +186,10 @@ const PaletteScreen = () => {
184
186
  colors: palette.colors,
185
187
  gradients: palette.gradients,
186
188
  allColors: allAvailableColors,
189
+ allGradients: allAvailableGradients,
187
190
  };
188
- const enableCustomColor =
189
- ! isGradientSegment &&
190
- palette.name === THEME_PALETTE_NAME;
191
+ // Limit to show the custom indicator to the first available palette
192
+ const enableCustomColor = paletteKey === 0;
191
193
 
192
194
  return (
193
195
  <ColorPalette
@@ -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 );