@wordpress/components 19.16.0 → 19.17.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 (434) hide show
  1. package/CHANGELOG.md +40 -4
  2. package/build/base-control/index.js +6 -3
  3. package/build/base-control/index.js.map +1 -1
  4. package/build/base-control/styles/base-control-styles.js +8 -8
  5. package/build/base-control/styles/base-control-styles.js.map +1 -1
  6. package/build/border-control/styles.js +17 -25
  7. package/build/border-control/styles.js.map +1 -1
  8. package/build/box-control/all-input-control.js +2 -27
  9. package/build/box-control/all-input-control.js.map +1 -1
  10. package/build/box-control/index.js +10 -5
  11. package/build/box-control/index.js.map +1 -1
  12. package/build/box-control/styles/box-control-styles.js +17 -9
  13. package/build/box-control/styles/box-control-styles.js.map +1 -1
  14. package/build/box-control/utils.js +35 -0
  15. package/build/box-control/utils.js.map +1 -1
  16. package/build/color-picker/styles.js +10 -8
  17. package/build/color-picker/styles.js.map +1 -1
  18. package/build/combobox-control/index.js +14 -6
  19. package/build/combobox-control/index.js.map +1 -1
  20. package/build/custom-select-control/index.js +3 -1
  21. package/build/custom-select-control/index.js.map +1 -1
  22. package/build/date-time/time/index.js +6 -2
  23. package/build/date-time/time/index.js.map +1 -1
  24. package/build/date-time/time/styles.js +17 -24
  25. package/build/date-time/time/styles.js.map +1 -1
  26. package/build/external-link/index.js +6 -0
  27. package/build/external-link/index.js.map +1 -1
  28. package/build/flex/flex/component.js +9 -9
  29. package/build/flex/flex/component.js.map +1 -1
  30. package/build/flex/flex/hook.js +6 -16
  31. package/build/flex/flex/hook.js.map +1 -1
  32. package/build/flex/flex/index.js.map +1 -1
  33. package/build/flex/flex-block/component.js +9 -9
  34. package/build/flex/flex-block/component.js.map +1 -1
  35. package/build/flex/flex-block/hook.js +0 -4
  36. package/build/flex/flex-block/hook.js.map +1 -1
  37. package/build/flex/flex-block/index.js.map +1 -1
  38. package/build/flex/flex-item/component.js +9 -9
  39. package/build/flex/flex-item/component.js.map +1 -1
  40. package/build/flex/flex-item/hook.js +1 -5
  41. package/build/flex/flex-item/hook.js.map +1 -1
  42. package/build/flex/flex-item/index.js.map +1 -1
  43. package/build/flex/index.js.map +1 -1
  44. package/build/flex/styles.js +5 -5
  45. package/build/flex/styles.js.map +1 -1
  46. package/build/focal-point-picker/styles/focal-point-picker-style.js +22 -22
  47. package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  48. package/build/focal-point-picker/styles/focal-point-style.js +5 -5
  49. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  50. package/build/font-size-picker/index.js +15 -6
  51. package/build/font-size-picker/index.js.map +1 -1
  52. package/build/form-token-field/index.js +6 -2
  53. package/build/form-token-field/index.js.map +1 -1
  54. package/build/form-token-field/suggestions-list.js +19 -6
  55. package/build/form-token-field/suggestions-list.js.map +1 -1
  56. package/build/index.js +7 -1
  57. package/build/index.js.map +1 -1
  58. package/build/input-control/input-base.js +1 -2
  59. package/build/input-control/input-base.js.map +1 -1
  60. package/build/input-control/reducer/actions.js +3 -1
  61. package/build/input-control/reducer/actions.js.map +1 -1
  62. package/build/input-control/reducer/reducer.js +28 -11
  63. package/build/input-control/reducer/reducer.js.map +1 -1
  64. package/build/input-control/reducer/state.js.map +1 -1
  65. package/build/input-control/styles/input-control-styles.js +26 -26
  66. package/build/input-control/styles/input-control-styles.js.map +1 -1
  67. package/build/mobile/global-styles-context/utils.native.js +23 -3
  68. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  69. package/build/mobile/image/index.native.js +23 -2
  70. package/build/mobile/image/index.native.js.map +1 -1
  71. package/build/mobile/link-picker/link-picker-screen.native.js +10 -4
  72. package/build/mobile/link-picker/link-picker-screen.native.js.map +1 -1
  73. package/build/mobile/picker/index.ios.js +16 -3
  74. package/build/mobile/picker/index.ios.js.map +1 -1
  75. package/build/placeholder/index.js +11 -14
  76. package/build/placeholder/index.js.map +1 -1
  77. package/build/placeholder/types.js +6 -0
  78. package/build/placeholder/types.js.map +1 -0
  79. package/build/popover/index.js +113 -62
  80. package/build/popover/index.js.map +1 -1
  81. package/build/range-control/styles/range-control-styles.js +40 -40
  82. package/build/range-control/styles/range-control-styles.js.map +1 -1
  83. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  84. package/build/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  85. package/build/select-control/styles/select-control-styles.js +6 -6
  86. package/build/select-control/styles/select-control-styles.js.map +1 -1
  87. package/build/style-provider/index.js +10 -7
  88. package/build/style-provider/index.js.map +1 -1
  89. package/build/style-provider/types.js +6 -0
  90. package/build/style-provider/types.js.map +1 -0
  91. package/build/swatch/index.js +2 -0
  92. package/build/swatch/index.js.map +1 -1
  93. package/build/swatch/types.js +6 -0
  94. package/build/swatch/types.js.map +1 -0
  95. package/build/text/hook.js +5 -8
  96. package/build/text/hook.js.map +1 -1
  97. package/build/tools-panel/styles.js +13 -10
  98. package/build/tools-panel/styles.js.map +1 -1
  99. package/build/tools-panel/tools-panel/hook.js +1 -1
  100. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  101. package/build/ui/tooltip/styles.js +4 -4
  102. package/build/ui/tooltip/styles.js.map +1 -1
  103. package/build/unit-control/styles/unit-control-styles.js +34 -9
  104. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  105. package/build/utils/base-label.js +24 -0
  106. package/build/utils/base-label.js.map +1 -0
  107. package/build/utils/box-sizing.js +22 -0
  108. package/build/utils/box-sizing.js.map +1 -0
  109. package/build/utils/style-mixins.js +16 -0
  110. package/build/utils/style-mixins.js.map +1 -1
  111. package/build-module/base-control/index.js +7 -5
  112. package/build-module/base-control/index.js.map +1 -1
  113. package/build-module/base-control/styles/base-control-styles.js +9 -9
  114. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  115. package/build-module/border-control/styles.js +18 -26
  116. package/build-module/border-control/styles.js.map +1 -1
  117. package/build-module/box-control/all-input-control.js +3 -28
  118. package/build-module/box-control/all-input-control.js.map +1 -1
  119. package/build-module/box-control/index.js +4 -4
  120. package/build-module/box-control/index.js.map +1 -1
  121. package/build-module/box-control/styles/box-control-styles.js +18 -10
  122. package/build-module/box-control/styles/box-control-styles.js.map +1 -1
  123. package/build-module/box-control/utils.js +33 -0
  124. package/build-module/box-control/utils.js.map +1 -1
  125. package/build-module/color-picker/styles.js +9 -8
  126. package/build-module/color-picker/styles.js.map +1 -1
  127. package/build-module/combobox-control/index.js +13 -6
  128. package/build-module/combobox-control/index.js.map +1 -1
  129. package/build-module/custom-select-control/index.js +2 -1
  130. package/build-module/custom-select-control/index.js.map +1 -1
  131. package/build-module/date-time/time/index.js +6 -3
  132. package/build-module/date-time/time/index.js.map +1 -1
  133. package/build-module/date-time/time/styles.js +15 -21
  134. package/build-module/date-time/time/styles.js.map +1 -1
  135. package/build-module/external-link/index.js +6 -0
  136. package/build-module/external-link/index.js.map +1 -1
  137. package/build-module/flex/flex/component.js +9 -9
  138. package/build-module/flex/flex/component.js.map +1 -1
  139. package/build-module/flex/flex/hook.js +6 -15
  140. package/build-module/flex/flex/hook.js.map +1 -1
  141. package/build-module/flex/flex/index.js.map +1 -1
  142. package/build-module/flex/flex-block/component.js +9 -9
  143. package/build-module/flex/flex-block/component.js.map +1 -1
  144. package/build-module/flex/flex-block/hook.js +0 -4
  145. package/build-module/flex/flex-block/hook.js.map +1 -1
  146. package/build-module/flex/flex-block/index.js.map +1 -1
  147. package/build-module/flex/flex-item/component.js +9 -9
  148. package/build-module/flex/flex-item/component.js.map +1 -1
  149. package/build-module/flex/flex-item/hook.js +1 -5
  150. package/build-module/flex/flex-item/hook.js.map +1 -1
  151. package/build-module/flex/flex-item/index.js.map +1 -1
  152. package/build-module/flex/index.js.map +1 -1
  153. package/build-module/flex/styles.js +5 -5
  154. package/build-module/flex/styles.js.map +1 -1
  155. package/build-module/focal-point-picker/styles/focal-point-picker-style.js +22 -22
  156. package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  157. package/build-module/focal-point-picker/styles/focal-point-style.js +5 -5
  158. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  159. package/build-module/font-size-picker/index.js +14 -6
  160. package/build-module/font-size-picker/index.js.map +1 -1
  161. package/build-module/form-token-field/index.js +5 -2
  162. package/build-module/form-token-field/index.js.map +1 -1
  163. package/build-module/form-token-field/suggestions-list.js +19 -6
  164. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  165. package/build-module/index.js +1 -1
  166. package/build-module/index.js.map +1 -1
  167. package/build-module/input-control/input-base.js +1 -2
  168. package/build-module/input-control/input-base.js.map +1 -1
  169. package/build-module/input-control/reducer/actions.js +1 -0
  170. package/build-module/input-control/reducer/actions.js.map +1 -1
  171. package/build-module/input-control/reducer/reducer.js +28 -11
  172. package/build-module/input-control/reducer/reducer.js.map +1 -1
  173. package/build-module/input-control/reducer/state.js.map +1 -1
  174. package/build-module/input-control/styles/input-control-styles.js +27 -27
  175. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  176. package/build-module/mobile/global-styles-context/utils.native.js +23 -4
  177. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  178. package/build-module/mobile/image/index.native.js +25 -4
  179. package/build-module/mobile/image/index.native.js.map +1 -1
  180. package/build-module/mobile/link-picker/link-picker-screen.native.js +11 -4
  181. package/build-module/mobile/link-picker/link-picker-screen.native.js.map +1 -1
  182. package/build-module/mobile/picker/index.ios.js +14 -3
  183. package/build-module/mobile/picker/index.ios.js.map +1 -1
  184. package/build-module/placeholder/index.js +10 -15
  185. package/build-module/placeholder/index.js.map +1 -1
  186. package/build-module/placeholder/types.js +2 -0
  187. package/build-module/placeholder/types.js.map +1 -0
  188. package/build-module/popover/index.js +112 -62
  189. package/build-module/popover/index.js.map +1 -1
  190. package/build-module/range-control/styles/range-control-styles.js +40 -40
  191. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  192. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +4 -4
  193. package/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js.map +1 -1
  194. package/build-module/select-control/styles/select-control-styles.js +6 -6
  195. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  196. package/build-module/style-provider/index.js +10 -5
  197. package/build-module/style-provider/index.js.map +1 -1
  198. package/build-module/style-provider/types.js +2 -0
  199. package/build-module/style-provider/types.js.map +1 -0
  200. package/build-module/swatch/index.js +2 -0
  201. package/build-module/swatch/index.js.map +1 -1
  202. package/build-module/swatch/types.js +2 -0
  203. package/build-module/swatch/types.js.map +1 -0
  204. package/build-module/text/hook.js +5 -7
  205. package/build-module/text/hook.js.map +1 -1
  206. package/build-module/tools-panel/styles.js +12 -11
  207. package/build-module/tools-panel/styles.js.map +1 -1
  208. package/build-module/tools-panel/tools-panel/hook.js +1 -1
  209. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  210. package/build-module/ui/tooltip/styles.js +4 -4
  211. package/build-module/ui/tooltip/styles.js.map +1 -1
  212. package/build-module/unit-control/styles/unit-control-styles.js +35 -9
  213. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  214. package/build-module/utils/base-label.js +18 -0
  215. package/build-module/utils/base-label.js.map +1 -0
  216. package/build-module/utils/box-sizing.js +16 -0
  217. package/build-module/utils/box-sizing.js.map +1 -0
  218. package/build-module/utils/style-mixins.js +2 -0
  219. package/build-module/utils/style-mixins.js.map +1 -1
  220. package/build-style/style-rtl.css +50 -30
  221. package/build-style/style.css +52 -30
  222. package/build-types/base-control/index.d.ts +4 -3
  223. package/build-types/base-control/index.d.ts.map +1 -1
  224. package/build-types/base-control/stories/index.d.ts +1 -1
  225. package/build-types/base-control/stories/index.d.ts.map +1 -1
  226. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  227. package/build-types/base-control/types.d.ts +0 -1
  228. package/build-types/base-control/types.d.ts.map +1 -1
  229. package/build-types/border-control/styles.d.ts.map +1 -1
  230. package/build-types/color-picker/color-display.d.ts +13 -0
  231. package/build-types/color-picker/color-display.d.ts.map +1 -0
  232. package/build-types/color-picker/styles.d.ts.map +1 -1
  233. package/build-types/date-time/time/index.d.ts.map +1 -1
  234. package/build-types/date-time/time/styles.d.ts +0 -4
  235. package/build-types/date-time/time/styles.d.ts.map +1 -1
  236. package/build-types/external-link/index.d.ts.map +1 -1
  237. package/build-types/flex/flex/component.d.ts +5 -4
  238. package/build-types/flex/flex/component.d.ts.map +1 -1
  239. package/build-types/flex/flex/hook.d.ts +5 -2
  240. package/build-types/flex/flex/hook.d.ts.map +1 -1
  241. package/build-types/flex/flex/index.d.ts +2 -2
  242. package/build-types/flex/flex/index.d.ts.map +1 -1
  243. package/build-types/flex/flex-block/component.d.ts +5 -4
  244. package/build-types/flex/flex-block/component.d.ts.map +1 -1
  245. package/build-types/flex/flex-block/hook.d.ts +6 -3
  246. package/build-types/flex/flex-block/hook.d.ts.map +1 -1
  247. package/build-types/flex/flex-block/index.d.ts +2 -2
  248. package/build-types/flex/flex-block/index.d.ts.map +1 -1
  249. package/build-types/flex/flex-item/component.d.ts +5 -4
  250. package/build-types/flex/flex-item/component.d.ts.map +1 -1
  251. package/build-types/flex/flex-item/hook.d.ts +6 -3
  252. package/build-types/flex/flex-item/hook.d.ts.map +1 -1
  253. package/build-types/flex/flex-item/index.d.ts +2 -2
  254. package/build-types/flex/flex-item/index.d.ts.map +1 -1
  255. package/build-types/flex/index.d.ts +3 -3
  256. package/build-types/flex/index.d.ts.map +1 -1
  257. package/build-types/flex/stories/index.d.ts +13 -0
  258. package/build-types/flex/stories/index.d.ts.map +1 -0
  259. package/build-types/flex/styles.d.ts +5 -5
  260. package/build-types/flex/styles.d.ts.map +1 -1
  261. package/build-types/flex/test/index.d.ts +2 -0
  262. package/build-types/flex/test/index.d.ts.map +1 -0
  263. package/build-types/flex/types.d.ts +15 -11
  264. package/build-types/flex/types.d.ts.map +1 -1
  265. package/build-types/flyout/context.d.ts +6 -0
  266. package/build-types/flyout/context.d.ts.map +1 -0
  267. package/build-types/flyout/flyout/component.d.ts +21 -0
  268. package/build-types/flyout/flyout/component.d.ts.map +1 -0
  269. package/build-types/flyout/flyout/hook.d.ts +270 -0
  270. package/build-types/flyout/flyout/hook.d.ts.map +1 -0
  271. package/build-types/flyout/flyout/index.d.ts +3 -0
  272. package/build-types/flyout/flyout/index.d.ts.map +1 -0
  273. package/build-types/flyout/flyout-content/component.d.ts +3 -0
  274. package/build-types/flyout/flyout-content/component.d.ts.map +1 -0
  275. package/build-types/flyout/flyout-content/index.d.ts +2 -0
  276. package/build-types/flyout/flyout-content/index.d.ts.map +1 -0
  277. package/build-types/flyout/index.d.ts +2 -0
  278. package/build-types/flyout/index.d.ts.map +1 -0
  279. package/build-types/flyout/styles.d.ts +22 -0
  280. package/build-types/flyout/styles.d.ts.map +1 -0
  281. package/build-types/flyout/types.d.ts +80 -0
  282. package/build-types/flyout/types.d.ts.map +1 -0
  283. package/build-types/flyout/utils.d.ts +8 -0
  284. package/build-types/flyout/utils.d.ts.map +1 -0
  285. package/build-types/form-token-field/index.d.ts.map +1 -1
  286. package/build-types/form-token-field/stories/index.d.ts +6 -0
  287. package/build-types/form-token-field/stories/index.d.ts.map +1 -1
  288. package/build-types/form-token-field/suggestions-list.d.ts +1 -1
  289. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -1
  290. package/build-types/form-token-field/types.d.ts +15 -3
  291. package/build-types/form-token-field/types.d.ts.map +1 -1
  292. package/build-types/input-control/input-base.d.ts.map +1 -1
  293. package/build-types/input-control/reducer/actions.d.ts +3 -1
  294. package/build-types/input-control/reducer/actions.d.ts.map +1 -1
  295. package/build-types/input-control/reducer/reducer.d.ts +2 -2
  296. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  297. package/build-types/input-control/reducer/state.d.ts +2 -2
  298. package/build-types/input-control/reducer/state.d.ts.map +1 -1
  299. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  300. package/build-types/placeholder/index.d.ts +16 -0
  301. package/build-types/placeholder/index.d.ts.map +1 -0
  302. package/build-types/placeholder/stories/index.d.ts +12 -0
  303. package/build-types/placeholder/stories/index.d.ts.map +1 -0
  304. package/build-types/placeholder/types.d.ts +47 -0
  305. package/build-types/placeholder/types.d.ts.map +1 -0
  306. package/build-types/popover/index.d.ts +1 -1
  307. package/build-types/popover/index.d.ts.map +1 -1
  308. package/build-types/popover/utils.d.ts +70 -0
  309. package/build-types/popover/utils.d.ts.map +1 -0
  310. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  311. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  312. package/build-types/style-provider/index.d.ts +7 -4
  313. package/build-types/style-provider/index.d.ts.map +1 -1
  314. package/build-types/style-provider/types.d.ts +15 -0
  315. package/build-types/style-provider/types.d.ts.map +1 -0
  316. package/build-types/swatch/index.d.ts +5 -0
  317. package/build-types/swatch/index.d.ts.map +1 -0
  318. package/build-types/swatch/types.d.ts +11 -0
  319. package/build-types/swatch/types.d.ts.map +1 -0
  320. package/build-types/text/hook.d.ts.map +1 -1
  321. package/build-types/tools-panel/styles.d.ts +1 -1
  322. package/build-types/tools-panel/styles.d.ts.map +1 -1
  323. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  324. package/build-types/ui/tooltip/styles.d.ts.map +1 -1
  325. package/build-types/unit-control/index.d.ts +1 -1
  326. package/build-types/unit-control/stories/index.d.ts.map +1 -1
  327. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  328. package/build-types/unit-control/types.d.ts +1 -7
  329. package/build-types/unit-control/types.d.ts.map +1 -1
  330. package/build-types/utils/base-label.d.ts +2 -0
  331. package/build-types/utils/base-label.d.ts.map +1 -0
  332. package/build-types/utils/box-sizing.d.ts +2 -0
  333. package/build-types/utils/box-sizing.d.ts.map +1 -0
  334. package/build-types/utils/hooks/use-combined-ref.d.ts +8 -0
  335. package/build-types/utils/hooks/use-combined-ref.d.ts.map +1 -0
  336. package/build-types/utils/style-mixins.d.ts +2 -0
  337. package/package.json +17 -17
  338. package/src/base-control/index.tsx +5 -3
  339. package/src/base-control/stories/index.tsx +1 -0
  340. package/src/base-control/styles/base-control-styles.ts +9 -5
  341. package/src/base-control/types.ts +0 -1
  342. package/src/border-control/styles.ts +2 -1
  343. package/src/box-control/all-input-control.js +3 -27
  344. package/src/box-control/index.js +5 -6
  345. package/src/box-control/styles/box-control-styles.js +1 -2
  346. package/src/box-control/utils.js +32 -0
  347. package/src/color-picker/styles.ts +3 -0
  348. package/src/combobox-control/README.md +7 -0
  349. package/src/combobox-control/index.js +14 -4
  350. package/src/combobox-control/stories/index.js +49 -5
  351. package/src/custom-gradient-picker/style.scss +0 -12
  352. package/src/custom-select-control/index.js +3 -2
  353. package/src/custom-select-control/style.scss +1 -5
  354. package/src/date-time/time/index.tsx +7 -5
  355. package/src/date-time/time/styles.ts +3 -6
  356. package/src/external-link/index.tsx +10 -0
  357. package/src/flex/flex/README.md +19 -13
  358. package/src/flex/flex/{component.js → component.tsx} +15 -10
  359. package/src/flex/flex/{hook.js → hook.ts} +14 -13
  360. package/src/flex/flex/{index.js → index.ts} +0 -0
  361. package/src/flex/flex-block/README.md +3 -3
  362. package/src/flex/flex-block/{component.js → component.tsx} +15 -10
  363. package/src/flex/flex-block/{hook.js → hook.ts} +5 -5
  364. package/src/flex/flex-block/{index.js → index.ts} +0 -0
  365. package/src/flex/flex-item/README.md +6 -5
  366. package/src/flex/flex-item/{component.js → component.tsx} +15 -10
  367. package/src/flex/flex-item/{hook.js → hook.ts} +10 -7
  368. package/src/flex/flex-item/{index.js → index.ts} +0 -0
  369. package/src/flex/{index.js → index.ts} +0 -0
  370. package/src/flex/stories/index.tsx +81 -0
  371. package/src/flex/{styles.js → styles.ts} +0 -0
  372. package/src/flex/test/__snapshots__/{index.js.snap → index.tsx.snap} +49 -9
  373. package/src/flex/test/index.tsx +84 -0
  374. package/src/flex/types.ts +15 -11
  375. package/src/focal-point-picker/styles/focal-point-picker-style.js +0 -5
  376. package/src/focal-point-picker/styles/focal-point-style.js +0 -1
  377. package/src/font-size-picker/index.js +18 -7
  378. package/src/font-size-picker/stories/index.js +6 -0
  379. package/src/form-token-field/README.md +2 -1
  380. package/src/form-token-field/index.tsx +5 -2
  381. package/src/form-token-field/stories/index.tsx +14 -0
  382. package/src/form-token-field/style.scss +0 -5
  383. package/src/form-token-field/suggestions-list.tsx +21 -12
  384. package/src/form-token-field/types.ts +16 -2
  385. package/src/index.js +4 -1
  386. package/src/input-control/input-base.tsx +0 -1
  387. package/src/input-control/reducer/actions.ts +3 -1
  388. package/src/input-control/reducer/reducer.ts +27 -10
  389. package/src/input-control/reducer/state.ts +7 -2
  390. package/src/input-control/styles/input-control-styles.tsx +3 -1
  391. package/src/input-control/test/index.js +20 -4
  392. package/src/mobile/global-styles-context/utils.native.js +21 -4
  393. package/src/mobile/image/index.native.js +27 -2
  394. package/src/mobile/link-picker/link-picker-screen.native.js +12 -4
  395. package/src/mobile/picker/index.ios.js +16 -0
  396. package/src/mobile/picker/styles.native.scss +8 -0
  397. package/src/panel/style.scss +4 -1
  398. package/src/placeholder/README.md +49 -9
  399. package/src/placeholder/{index.js → index.tsx} +27 -23
  400. package/src/placeholder/stories/index.tsx +64 -0
  401. package/src/placeholder/style.scss +0 -4
  402. package/src/placeholder/types.ts +48 -0
  403. package/src/popover/README.md +7 -0
  404. package/src/popover/index.js +144 -70
  405. package/src/popover/stories/index.js +199 -98
  406. package/src/popover/style.scss +60 -6
  407. package/src/popover/test/index.js +23 -1
  408. package/src/range-control/styles/range-control-styles.ts +0 -12
  409. package/src/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js +1 -1
  410. package/src/select-control/styles/select-control-styles.ts +0 -1
  411. package/src/style-provider/index.tsx +41 -0
  412. package/src/style-provider/types.ts +15 -0
  413. package/src/swatch/{index.js → index.tsx} +4 -1
  414. package/src/swatch/types.ts +11 -0
  415. package/src/text/hook.js +5 -3
  416. package/src/toggle-group-control/test/__snapshots__/index.js.snap +24 -0
  417. package/src/tools-panel/styles.ts +7 -16
  418. package/src/tools-panel/test/__snapshots__/index.js.snap +2 -11
  419. package/src/tools-panel/tools-panel/hook.ts +6 -1
  420. package/src/ui/tooltip/styles.js +1 -0
  421. package/src/ui/tooltip/test/__snapshots__/index.js.snap +1 -0
  422. package/src/unit-control/stories/index.tsx +16 -23
  423. package/src/unit-control/styles/unit-control-styles.ts +93 -41
  424. package/src/unit-control/types.ts +1 -7
  425. package/src/utils/base-label.ts +13 -0
  426. package/src/utils/box-sizing.ts +14 -0
  427. package/src/utils/style-mixins.js +2 -0
  428. package/tsconfig.json +2 -0
  429. package/tsconfig.tsbuildinfo +1 -1
  430. package/src/flex/stories/index.js +0 -29
  431. package/src/flex/test/index.js +0 -77
  432. package/src/placeholder/stories/index.js +0 -44
  433. package/src/popover/stories/_utils.js +0 -64
  434. package/src/style-provider/index.js +0 -31
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/input-control/styles/input-control-styles.tsx"],"names":["css","Flex","FlexItem","Text","COLORS","rtl","space","rootFocusedStyles","isFocused","rootLabelPositionStyles","labelPosition","Root","containerDisabledStyles","disabled","backgroundColor","ui","backgroundDisabled","background","containerMarginStyles","hideLabel","containerWidthStyles","__unstableInputWidth","flex","width","Container","disabledStyles","color","textDisabled","fontSizeStyles","inputSize","size","sizes","default","small","fontSize","fontSizeMobile","getSizeConfig","__next36pxDefaultSize","height","lineHeight","minHeight","paddingLeft","paddingRight","sizeStyles","props","customPaddings","paddingInlineStart","paddingInlineEnd","dragStyles","isDragging","dragCursor","defaultArrowStyles","activeDragCursorStyles","Input","gray","labelMargin","marginBottom","marginTop","marginRight","marginLeft","BaseLabel","Label","LabelWrapper","backdropFocusedStyles","borderColor","borderFocus","border","boxShadow","borderDisabled","borderStyle","borderWidth","BackdropUI","Prefix","Suffix"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { css, SerializedStyles } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../ui/context';\nimport { Flex, FlexItem } from '../../flex';\nimport { Text } from '../../text';\nimport { COLORS, rtl } from '../../utils';\nimport type { LabelPosition, Size } from '../types';\nimport { space } from '../../ui/utils/space';\n\ntype ContainerProps = {\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\t__unstableInputWidth?: CSSProperties[ 'width' ];\n\tlabelPosition?: LabelPosition;\n};\n\ntype RootProps = {\n\tisFocused?: boolean;\n\tlabelPosition?: LabelPosition;\n};\n\nconst rootFocusedStyles = ( { isFocused }: RootProps ) => {\n\tif ( ! isFocused ) return '';\n\n\treturn css( { zIndex: 1 } );\n};\n\nconst rootLabelPositionStyles = ( { labelPosition }: RootProps ) => {\n\tswitch ( labelPosition ) {\n\t\tcase 'top':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n\t\tcase 'bottom':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t`;\n\t\tcase 'edge':\n\t\t\treturn css`\n\t\t\t\tjustify-content: space-between;\n\t\t\t`;\n\t\tdefault:\n\t\t\treturn '';\n\t}\n};\n\nexport const Root = styled( Flex )< RootProps >`\n\tposition: relative;\n\tborder-radius: 2px;\n\tpadding-top: 0;\n\t${ rootFocusedStyles }\n\t${ rootLabelPositionStyles }\n`;\n\nconst containerDisabledStyles = ( { disabled }: ContainerProps ) => {\n\tconst backgroundColor = disabled\n\t\t? COLORS.ui.backgroundDisabled\n\t\t: COLORS.ui.background;\n\n\treturn css( { backgroundColor } );\n};\n\n// Normalizes the margins from the <Flex /> (components/ui/flex/) container.\nconst containerMarginStyles = ( { hideLabel }: ContainerProps ) => {\n\treturn hideLabel ? css( { margin: '0 !important' } ) : null;\n};\n\nconst containerWidthStyles = ( {\n\t__unstableInputWidth,\n\tlabelPosition,\n}: ContainerProps ) => {\n\tif ( ! __unstableInputWidth ) return css( { width: '100%' } );\n\n\tif ( labelPosition === 'side' ) return '';\n\n\tif ( labelPosition === 'edge' ) {\n\t\treturn css( {\n\t\t\tflex: `0 0 ${ __unstableInputWidth }`,\n\t\t} );\n\t}\n\n\treturn css( { width: __unstableInputWidth } );\n};\n\nexport const Container = styled.div< ContainerProps >`\n\talign-items: center;\n\tbox-sizing: border-box;\n\tborder-radius: inherit;\n\tdisplay: flex;\n\tflex: 1;\n\tposition: relative;\n\n\t${ containerDisabledStyles }\n\t${ containerMarginStyles }\n\t${ containerWidthStyles }\n`;\n\ntype InputProps = {\n\t__next36pxDefaultSize?: boolean;\n\tdisabled?: boolean;\n\tinputSize?: Size;\n\tisDragging?: boolean;\n\tdragCursor?: CSSProperties[ 'cursor' ];\n\tpaddingInlineStart?: CSSProperties[ 'paddingInlineStart' ];\n\tpaddingInlineEnd?: CSSProperties[ 'paddingInlineEnd' ];\n};\n\nconst disabledStyles = ( { disabled }: InputProps ) => {\n\tif ( ! disabled ) return '';\n\n\treturn css( {\n\t\tcolor: COLORS.ui.textDisabled,\n\t} );\n};\n\nconst fontSizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: '13px',\n\t\tsmall: '11px',\n\t\t'__unstable-large': '13px',\n\t};\n\n\tconst fontSize = sizes[ size as Size ] || sizes.default;\n\tconst fontSizeMobile = '16px';\n\n\tif ( ! fontSize ) return '';\n\n\treturn css`\n\t\tfont-size: ${ fontSizeMobile };\n\n\t\t@media ( min-width: 600px ) {\n\t\t\tfont-size: ${ fontSize };\n\t\t}\n\t`;\n};\n\nexport const getSizeConfig = ( {\n\tinputSize: size,\n\t__next36pxDefaultSize,\n}: InputProps ) => {\n\t// Paddings may be overridden by the custom paddings props.\n\tconst sizes = {\n\t\tdefault: {\n\t\t\theight: 36,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 36,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t\tsmall: {\n\t\t\theight: 24,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 24,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t},\n\t\t'__unstable-large': {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t};\n\n\tif ( ! __next36pxDefaultSize ) {\n\t\tsizes.default = {\n\t\t\theight: 30,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 30,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t};\n\t}\n\n\treturn sizes[ size as Size ] || sizes.default;\n};\n\nconst sizeStyles = ( props: InputProps ) => {\n\treturn css( getSizeConfig( props ) );\n};\n\nconst customPaddings = ( {\n\tpaddingInlineStart,\n\tpaddingInlineEnd,\n}: InputProps ) => {\n\treturn css( { paddingInlineStart, paddingInlineEnd } );\n};\n\nconst dragStyles = ( { isDragging, dragCursor }: InputProps ) => {\n\tlet defaultArrowStyles: SerializedStyles | undefined;\n\tlet activeDragCursorStyles: SerializedStyles | undefined;\n\n\tif ( isDragging ) {\n\t\tdefaultArrowStyles = css`\n\t\t\tcursor: ${ dragCursor };\n\t\t\tuser-select: none;\n\n\t\t\t&::-webkit-outer-spin-button,\n\t\t\t&::-webkit-inner-spin-button {\n\t\t\t\t-webkit-appearance: none !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t`;\n\t}\n\n\tif ( isDragging && dragCursor ) {\n\t\tactiveDragCursorStyles = css`\n\t\t\t&:active {\n\t\t\t\tcursor: ${ dragCursor };\n\t\t\t}\n\t\t`;\n\t}\n\n\treturn css`\n\t\t${ defaultArrowStyles }\n\t\t${ activeDragCursorStyles }\n\t`;\n};\n\n// TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nexport const Input = styled.input< InputProps >`\n\t&&& {\n\t\tbackground-color: transparent;\n\t\tbox-sizing: border-box;\n\t\tborder: none;\n\t\tbox-shadow: none !important;\n\t\tcolor: ${ COLORS.gray[ 900 ] };\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\tmargin: 0;\n\t\toutline: none;\n\t\twidth: 100%;\n\n\t\t${ dragStyles }\n\t\t${ disabledStyles }\n\t\t${ fontSizeStyles }\n\t\t${ sizeStyles }\n\t\t${ customPaddings }\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tline-height: normal;\n\t\t}\n\t}\n`;\n\nconst labelMargin = ( {\n\tlabelPosition,\n}: {\n\tlabelPosition?: LabelPosition;\n} ) => {\n\tlet marginBottom = 8;\n\n\tif ( labelPosition === 'edge' || labelPosition === 'side' ) {\n\t\tmarginBottom = 0;\n\t}\n\n\treturn css( { marginTop: 0, marginRight: 0, marginBottom, marginLeft: 0 } );\n};\n\nconst BaseLabel = styled( Text )< { labelPosition?: LabelPosition } >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tmax-width: 100%;\n\t\tz-index: 1;\n\n\t\t${ labelMargin }\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Label = (\n\tprops: WordPressComponentProps<\n\t\t{ labelPosition?: LabelPosition; children: ReactNode },\n\t\t'label',\n\t\tfalse\n\t>\n) => <BaseLabel { ...props } as=\"label\" />;\n\nexport const LabelWrapper = styled( FlexItem )`\n\tmax-width: calc( 100% - 10px );\n`;\n\ntype BackdropProps = {\n\tdisabled?: boolean;\n\tisFocused?: boolean;\n};\n\nconst backdropFocusedStyles = ( {\n\tdisabled,\n\tisFocused,\n}: BackdropProps ): SerializedStyles => {\n\tlet borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;\n\n\tlet boxShadow;\n\n\tif ( isFocused ) {\n\t\tboxShadow = `0 0 0 1px ${ COLORS.ui.borderFocus } inset`;\n\t}\n\n\tif ( disabled ) {\n\t\tborderColor = COLORS.ui.borderDisabled;\n\t}\n\n\treturn css( {\n\t\tboxShadow,\n\t\tborderColor,\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t} );\n};\n\nexport const BackdropUI = styled.div< BackdropProps >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tborder-radius: inherit;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\n\t\t${ backdropFocusedStyles }\n\t\t${ rtl( { paddingLeft: 2 } ) }\n\t}\n`;\n\nexport const Prefix = styled.span`\n\tbox-sizing: border-box;\n\tdisplay: block;\n`;\n\nexport const Suffix = styled.span`\n\talign-items: center;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n`;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/input-control/styles/input-control-styles.tsx"],"names":["css","Flex","FlexItem","Text","baseLabelTypography","COLORS","rtl","space","rootFocusedStyles","isFocused","rootLabelPositionStyles","labelPosition","Root","containerDisabledStyles","disabled","backgroundColor","ui","backgroundDisabled","background","containerMarginStyles","hideLabel","containerWidthStyles","__unstableInputWidth","flex","width","Container","disabledStyles","color","textDisabled","fontSizeStyles","inputSize","size","sizes","default","small","fontSize","fontSizeMobile","getSizeConfig","__next36pxDefaultSize","height","lineHeight","minHeight","paddingLeft","paddingRight","sizeStyles","props","customPaddings","paddingInlineStart","paddingInlineEnd","dragStyles","isDragging","dragCursor","defaultArrowStyles","activeDragCursorStyles","Input","gray","labelMargin","marginBottom","marginTop","marginRight","marginLeft","BaseLabel","Label","LabelWrapper","backdropFocusedStyles","borderColor","borderFocus","border","boxShadow","borderDisabled","borderStyle","borderWidth","BackdropUI","Prefix","Suffix"],"mappings":";;;;;;AAAA;AACA;AACA;AACA,SAASA,GAAT,QAAsC,gBAAtC;AAQA,SAASC,IAAT,EAAeC,QAAf,QAA+B,YAA/B;AACA,SAASC,IAAT,QAAqB,YAArB;AACA,SAASC,mBAAT,EAA8BC,MAA9B,EAAsCC,GAAtC,QAAiD,aAAjD;AAEA,SAASC,KAAT,QAAsB,sBAAtB;;;;;;;;;;;;AAcA,MAAMC,iBAAiB,GAAG,SAAgC;AAAA,MAA9B;AAAEC,IAAAA;AAAF,GAA8B;AACzD,MAAK,CAAEA,SAAP,EAAmB,OAAO,EAAP;AAEnB;AACA,CAJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAMC,uBAAuB,GAAG,SAAoC;AAAA,MAAlC;AAAEC,IAAAA;AAAF,GAAkC;;AACnE,UAASA,aAAT;AACC,SAAK,KAAL;AACC;;AAID,SAAK,QAAL;AACC;;AAID,SAAK,MAAL;AACC;;AAGD;AACC,aAAO,EAAP;AAhBF;AAkBA,CAnBD;;AAqBA,OAAO,MAAMC,IAAI,GAAG,qBAAQX,IAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,uDAIbO,iBAJa,OAKbE,uBALa,6kWAAV;;AAQP,MAAMG,uBAAuB,GAAG,SAAoC;AAAA,MAAlC;AAAEC,IAAAA;AAAF,GAAkC;AACnE,QAAMC,eAAe,GAAGD,QAAQ,GAC7BT,MAAM,CAACW,EAAP,CAAUC,kBADmB,GAE7BZ,MAAM,CAACW,EAAP,CAAUE,UAFb;AAIA,sBAAOlB,GAAG,CAAE;AAAEe,IAAAA;AAAF,GAAF,ipWAAV;AACA,CAND,C,CAQA;;;;;;;;;;;;;AACA,MAAMI,qBAAqB,GAAG,UAAqC;AAAA,MAAnC;AAAEC,IAAAA;AAAF,GAAmC;AAClE,SAAOA,SAAS,WAAuC,IAAvD;AACA,CAFD;;;;;;;;;;;;AAIA,MAAMC,oBAAoB,GAAG,UAGN;AAAA,MAHQ;AAC9BC,IAAAA,oBAD8B;AAE9BX,IAAAA;AAF8B,GAGR;AACtB,MAAK,CAAEW,oBAAP,EAA8B;AAE9B,MAAKX,aAAa,KAAK,MAAvB,EAAgC,OAAO,EAAP;;AAEhC,MAAKA,aAAa,KAAK,MAAvB,EAAgC;AAC/B,wBAAOX,GAAG,CAAE;AACXuB,MAAAA,IAAI,EAAG,OAAOD,oBAAsB;AADzB,KAAF,8oWAAV;AAGA;;AAED,sBAAOtB,GAAG,CAAE;AAAEwB,IAAAA,KAAK,EAAEF;AAAT,GAAF,8oWAAV;AACA,CAfD;;AAiBA,OAAO,MAAMG,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,4GAQlBZ,uBARkB,OASlBM,qBATkB,OAUlBE,oBAVkB,6kWAAf;;AAuBP,MAAMK,cAAc,GAAG,UAAgC;AAAA,MAA9B;AAAEZ,IAAAA;AAAF,GAA8B;AACtD,MAAK,CAAEA,QAAP,EAAkB,OAAO,EAAP;AAElB,sBAAOd,GAAG,CAAE;AACX2B,IAAAA,KAAK,EAAEtB,MAAM,CAACW,EAAP,CAAUY;AADN,GAAF,woWAAV;AAGA,CAND;;AAQA,MAAMC,cAAc,GAAG,UAAuC;AAAA,MAArC;AAAEC,IAAAA,SAAS,EAAEC;AAAb,GAAqC;AAC7D,QAAMC,KAAK,GAAG;AACbC,IAAAA,OAAO,EAAE,MADI;AAEbC,IAAAA,KAAK,EAAE,MAFM;AAGb,wBAAoB;AAHP,GAAd;AAMA,QAAMC,QAAQ,GAAGH,KAAK,CAAED,IAAF,CAAL,IAAyBC,KAAK,CAACC,OAAhD;AACA,QAAMG,cAAc,GAAG,MAAvB;AAEA,MAAK,CAAED,QAAP,EAAkB,OAAO,EAAP;AAElB,sBAAOnC,GAAP,eACeoC,cADf,6CAIgBD,QAJhB;AAOA,CAnBD;;AAqBA,OAAO,MAAME,aAAa,GAAG,UAGV;AAAA,MAHY;AAC9BP,IAAAA,SAAS,EAAEC,IADmB;AAE9BO,IAAAA;AAF8B,GAGZ;AAClB;AACA,QAAMN,KAAK,GAAG;AACbC,IAAAA,OAAO,EAAE;AACRM,MAAAA,MAAM,EAAE,EADA;AAERC,MAAAA,UAAU,EAAE,CAFJ;AAGRC,MAAAA,SAAS,EAAE,EAHH;AAIRC,MAAAA,WAAW,EAAEnC,KAAK,CAAE,CAAF,CAJV;AAKRoC,MAAAA,YAAY,EAAEpC,KAAK,CAAE,CAAF;AALX,KADI;AAQb2B,IAAAA,KAAK,EAAE;AACNK,MAAAA,MAAM,EAAE,EADF;AAENC,MAAAA,UAAU,EAAE,CAFN;AAGNC,MAAAA,SAAS,EAAE,EAHL;AAINC,MAAAA,WAAW,EAAEnC,KAAK,CAAE,CAAF,CAJZ;AAKNoC,MAAAA,YAAY,EAAEpC,KAAK,CAAE,CAAF;AALb,KARM;AAeb,wBAAoB;AACnBgC,MAAAA,MAAM,EAAE,EADW;AAEnBC,MAAAA,UAAU,EAAE,CAFO;AAGnBC,MAAAA,SAAS,EAAE,EAHQ;AAInBC,MAAAA,WAAW,EAAEnC,KAAK,CAAE,CAAF,CAJC;AAKnBoC,MAAAA,YAAY,EAAEpC,KAAK,CAAE,CAAF;AALA;AAfP,GAAd;;AAwBA,MAAK,CAAE+B,qBAAP,EAA+B;AAC9BN,IAAAA,KAAK,CAACC,OAAN,GAAgB;AACfM,MAAAA,MAAM,EAAE,EADO;AAEfC,MAAAA,UAAU,EAAE,CAFG;AAGfC,MAAAA,SAAS,EAAE,EAHI;AAIfC,MAAAA,WAAW,EAAEnC,KAAK,CAAE,CAAF,CAJH;AAKfoC,MAAAA,YAAY,EAAEpC,KAAK,CAAE,CAAF;AALJ,KAAhB;AAOA;;AAED,SAAOyB,KAAK,CAAED,IAAF,CAAL,IAAyBC,KAAK,CAACC,OAAtC;AACA,CAxCM;;AA0CP,MAAMW,UAAU,GAAKC,KAAF,IAAyB;AAC3C,sBAAO7C,GAAG,CAAEqC,aAAa,CAAEQ,KAAF,CAAf,ooWAAV;AACA,CAFD;;AAIA,MAAMC,cAAc,GAAG,UAGJ;AAAA,MAHM;AACxBC,IAAAA,kBADwB;AAExBC,IAAAA;AAFwB,GAGN;AAClB,sBAAOhD,GAAG,CAAE;AAAE+C,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,GAAF,woWAAV;AACA,CALD;;AAOA,MAAMC,UAAU,GAAG,UAA8C;AAAA,MAA5C;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAA4C;AAChE,MAAIC,kBAAJ;AACA,MAAIC,sBAAJ;;AAEA,MAAKH,UAAL,EAAkB;AACjBE,IAAAA,kBAAkB,gBAAGpD,GAAH,YACNmD,UADM,yxWAAlB;AAUA;;AAED,MAAKD,UAAU,IAAIC,UAAnB,EAAgC;AAC/BE,IAAAA,sBAAsB,gBAAGrD,GAAH,qBAETmD,UAFS,6pWAAtB;AAKA;;AAED,sBAAOnD,GAAP,CACIoD,kBADJ,OAEIC,sBAFJ;AAIA,CA7BD,C,CA+BA;AACA;;;AAEA,OAAO,MAAMC,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,0GAMNjD,MAAM,CAACkD,IAAP,CAAa,GAAb,CANM,0EAabN,UAba,OAcbvB,cAda,OAebG,cAfa,OAgBbe,UAhBa,OAiBbE,cAjBa,+nWAAX;;AAyBP,MAAMU,WAAW,GAAG,UAIb;AAAA,MAJe;AACrB7C,IAAAA;AADqB,GAIf;AACN,MAAI8C,YAAY,GAAG,CAAnB;;AAEA,MAAK9C,aAAa,KAAK,MAAlB,IAA4BA,aAAa,KAAK,MAAnD,EAA4D;AAC3D8C,IAAAA,YAAY,GAAG,CAAf;AACA;;AAED,sBAAOzD,GAAG,CAAE;AAAE0D,IAAAA,SAAS,EAAE,CAAb;AAAgBC,IAAAA,WAAW,EAAE,CAA7B;AAAgCF,IAAAA,YAAhC;AAA8CG,IAAAA,UAAU,EAAE;AAA1D,GAAF,qoWAAV;AACA,CAZD;;AAcA,MAAMC,SAAS,GAAG,qBAAQ1D,IAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,SAEVC,mBAFU,mGAWVoD,WAXU,woWAAf;;AAkBA,OAAO,MAAMM,KAAK,GACjBjB,KADoB,IAMhB,cAAC,SAAD,eAAgBA,KAAhB;AAAwB,EAAA,EAAE,EAAC;AAA3B,GANE;AAQP,OAAO,MAAMkB,YAAY,GAAG,qBAAQ7D,QAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlB;;AASP,MAAM8D,qBAAqB,GAAG,UAGU;AAAA,MAHR;AAC/BlD,IAAAA,QAD+B;AAE/BL,IAAAA;AAF+B,GAGQ;AACvC,MAAIwD,WAAW,GAAGxD,SAAS,GAAGJ,MAAM,CAACW,EAAP,CAAUkD,WAAb,GAA2B7D,MAAM,CAACW,EAAP,CAAUmD,MAAhE;AAEA,MAAIC,SAAJ;;AAEA,MAAK3D,SAAL,EAAiB;AAChB2D,IAAAA,SAAS,GAAI,aAAa/D,MAAM,CAACW,EAAP,CAAUkD,WAAa,QAAjD;AACA;;AAED,MAAKpD,QAAL,EAAgB;AACfmD,IAAAA,WAAW,GAAG5D,MAAM,CAACW,EAAP,CAAUqD,cAAxB;AACA;;AAED,sBAAOrE,GAAG,CAAE;AACXoE,IAAAA,SADW;AAEXH,IAAAA,WAFW;AAGXK,IAAAA,WAAW,EAAE,OAHF;AAIXC,IAAAA,WAAW,EAAE;AAJF,GAAF,+oWAAV;AAMA,CAtBD;;AAwBA,OAAO,MAAMC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,8IAalBR,qBAbkB,OAclB1D,GAAG,CAAE;AAAEoC,EAAAA,WAAW,EAAE;AAAf,CAAF,CAde,8kWAAhB;AAkBP,OAAO,MAAM+B,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAZ;AAKP,OAAO,MAAMC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAZ","sourcesContent":["/**\n * External dependencies\n */\nimport { css, SerializedStyles } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../ui/context';\nimport { Flex, FlexItem } from '../../flex';\nimport { Text } from '../../text';\nimport { baseLabelTypography, COLORS, rtl } from '../../utils';\nimport type { LabelPosition, Size } from '../types';\nimport { space } from '../../ui/utils/space';\n\ntype ContainerProps = {\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\t__unstableInputWidth?: CSSProperties[ 'width' ];\n\tlabelPosition?: LabelPosition;\n};\n\ntype RootProps = {\n\tisFocused?: boolean;\n\tlabelPosition?: LabelPosition;\n};\n\nconst rootFocusedStyles = ( { isFocused }: RootProps ) => {\n\tif ( ! isFocused ) return '';\n\n\treturn css( { zIndex: 1 } );\n};\n\nconst rootLabelPositionStyles = ( { labelPosition }: RootProps ) => {\n\tswitch ( labelPosition ) {\n\t\tcase 'top':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n\t\tcase 'bottom':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t`;\n\t\tcase 'edge':\n\t\t\treturn css`\n\t\t\t\tjustify-content: space-between;\n\t\t\t`;\n\t\tdefault:\n\t\t\treturn '';\n\t}\n};\n\nexport const Root = styled( Flex )< RootProps >`\n\tposition: relative;\n\tborder-radius: 2px;\n\tpadding-top: 0;\n\t${ rootFocusedStyles }\n\t${ rootLabelPositionStyles }\n`;\n\nconst containerDisabledStyles = ( { disabled }: ContainerProps ) => {\n\tconst backgroundColor = disabled\n\t\t? COLORS.ui.backgroundDisabled\n\t\t: COLORS.ui.background;\n\n\treturn css( { backgroundColor } );\n};\n\n// Normalizes the margins from the <Flex /> (components/ui/flex/) container.\nconst containerMarginStyles = ( { hideLabel }: ContainerProps ) => {\n\treturn hideLabel ? css( { margin: '0 !important' } ) : null;\n};\n\nconst containerWidthStyles = ( {\n\t__unstableInputWidth,\n\tlabelPosition,\n}: ContainerProps ) => {\n\tif ( ! __unstableInputWidth ) return css( { width: '100%' } );\n\n\tif ( labelPosition === 'side' ) return '';\n\n\tif ( labelPosition === 'edge' ) {\n\t\treturn css( {\n\t\t\tflex: `0 0 ${ __unstableInputWidth }`,\n\t\t} );\n\t}\n\n\treturn css( { width: __unstableInputWidth } );\n};\n\nexport const Container = styled.div< ContainerProps >`\n\talign-items: center;\n\tbox-sizing: border-box;\n\tborder-radius: inherit;\n\tdisplay: flex;\n\tflex: 1;\n\tposition: relative;\n\n\t${ containerDisabledStyles }\n\t${ containerMarginStyles }\n\t${ containerWidthStyles }\n`;\n\ntype InputProps = {\n\t__next36pxDefaultSize?: boolean;\n\tdisabled?: boolean;\n\tinputSize?: Size;\n\tisDragging?: boolean;\n\tdragCursor?: CSSProperties[ 'cursor' ];\n\tpaddingInlineStart?: CSSProperties[ 'paddingInlineStart' ];\n\tpaddingInlineEnd?: CSSProperties[ 'paddingInlineEnd' ];\n};\n\nconst disabledStyles = ( { disabled }: InputProps ) => {\n\tif ( ! disabled ) return '';\n\n\treturn css( {\n\t\tcolor: COLORS.ui.textDisabled,\n\t} );\n};\n\nconst fontSizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: '13px',\n\t\tsmall: '11px',\n\t\t'__unstable-large': '13px',\n\t};\n\n\tconst fontSize = sizes[ size as Size ] || sizes.default;\n\tconst fontSizeMobile = '16px';\n\n\tif ( ! fontSize ) return '';\n\n\treturn css`\n\t\tfont-size: ${ fontSizeMobile };\n\n\t\t@media ( min-width: 600px ) {\n\t\t\tfont-size: ${ fontSize };\n\t\t}\n\t`;\n};\n\nexport const getSizeConfig = ( {\n\tinputSize: size,\n\t__next36pxDefaultSize,\n}: InputProps ) => {\n\t// Paddings may be overridden by the custom paddings props.\n\tconst sizes = {\n\t\tdefault: {\n\t\t\theight: 36,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 36,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t\tsmall: {\n\t\t\theight: 24,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 24,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t},\n\t\t'__unstable-large': {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t};\n\n\tif ( ! __next36pxDefaultSize ) {\n\t\tsizes.default = {\n\t\t\theight: 30,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 30,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t};\n\t}\n\n\treturn sizes[ size as Size ] || sizes.default;\n};\n\nconst sizeStyles = ( props: InputProps ) => {\n\treturn css( getSizeConfig( props ) );\n};\n\nconst customPaddings = ( {\n\tpaddingInlineStart,\n\tpaddingInlineEnd,\n}: InputProps ) => {\n\treturn css( { paddingInlineStart, paddingInlineEnd } );\n};\n\nconst dragStyles = ( { isDragging, dragCursor }: InputProps ) => {\n\tlet defaultArrowStyles: SerializedStyles | undefined;\n\tlet activeDragCursorStyles: SerializedStyles | undefined;\n\n\tif ( isDragging ) {\n\t\tdefaultArrowStyles = css`\n\t\t\tcursor: ${ dragCursor };\n\t\t\tuser-select: none;\n\n\t\t\t&::-webkit-outer-spin-button,\n\t\t\t&::-webkit-inner-spin-button {\n\t\t\t\t-webkit-appearance: none !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t`;\n\t}\n\n\tif ( isDragging && dragCursor ) {\n\t\tactiveDragCursorStyles = css`\n\t\t\t&:active {\n\t\t\t\tcursor: ${ dragCursor };\n\t\t\t}\n\t\t`;\n\t}\n\n\treturn css`\n\t\t${ defaultArrowStyles }\n\t\t${ activeDragCursorStyles }\n\t`;\n};\n\n// TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nexport const Input = styled.input< InputProps >`\n\t&&& {\n\t\tbackground-color: transparent;\n\t\tbox-sizing: border-box;\n\t\tborder: none;\n\t\tbox-shadow: none !important;\n\t\tcolor: ${ COLORS.gray[ 900 ] };\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\tmargin: 0;\n\t\toutline: none;\n\t\twidth: 100%;\n\n\t\t${ dragStyles }\n\t\t${ disabledStyles }\n\t\t${ fontSizeStyles }\n\t\t${ sizeStyles }\n\t\t${ customPaddings }\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tline-height: normal;\n\t\t}\n\t}\n`;\n\nconst labelMargin = ( {\n\tlabelPosition,\n}: {\n\tlabelPosition?: LabelPosition;\n} ) => {\n\tlet marginBottom = 8;\n\n\tif ( labelPosition === 'edge' || labelPosition === 'side' ) {\n\t\tmarginBottom = 0;\n\t}\n\n\treturn css( { marginTop: 0, marginRight: 0, marginBottom, marginLeft: 0 } );\n};\n\nconst BaseLabel = styled( Text )< { labelPosition?: LabelPosition } >`\n\t&&& {\n\t\t${ baseLabelTypography };\n\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tmax-width: 100%;\n\t\tz-index: 1;\n\n\t\t${ labelMargin }\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Label = (\n\tprops: WordPressComponentProps<\n\t\t{ labelPosition?: LabelPosition; children: ReactNode },\n\t\t'label',\n\t\tfalse\n\t>\n) => <BaseLabel { ...props } as=\"label\" />;\n\nexport const LabelWrapper = styled( FlexItem )`\n\tmax-width: calc( 100% - 10px );\n`;\n\ntype BackdropProps = {\n\tdisabled?: boolean;\n\tisFocused?: boolean;\n};\n\nconst backdropFocusedStyles = ( {\n\tdisabled,\n\tisFocused,\n}: BackdropProps ): SerializedStyles => {\n\tlet borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;\n\n\tlet boxShadow;\n\n\tif ( isFocused ) {\n\t\tboxShadow = `0 0 0 1px ${ COLORS.ui.borderFocus } inset`;\n\t}\n\n\tif ( disabled ) {\n\t\tborderColor = COLORS.ui.borderDisabled;\n\t}\n\n\treturn css( {\n\t\tboxShadow,\n\t\tborderColor,\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t} );\n};\n\nexport const BackdropUI = styled.div< BackdropProps >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tborder-radius: inherit;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\n\t\t${ backdropFocusedStyles }\n\t\t${ rtl( { paddingLeft: 2 } ) }\n\t}\n`;\n\nexport const Prefix = styled.span`\n\tbox-sizing: border-box;\n\tdisplay: block;\n`;\n\nexport const Suffix = styled.span`\n\talign-items: center;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n`;\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { find, startsWith, get, camelCase, has } from 'lodash';
4
+ import { find, get, camelCase, has } from 'lodash';
5
5
  import { Dimensions } from 'react-native';
6
6
  /**
7
7
  * WordPress dependencies
@@ -20,6 +20,7 @@ const BLOCK_STYLE_ATTRIBUTES_MAPPING = {
20
20
  const PADDING = 12; // $solid-border-space
21
21
 
22
22
  const UNKNOWN_VALUE = 'undefined';
23
+ const DEFAULT_FONT_SIZE = 16;
23
24
  export function getBlockPaddings(mergedStyle, wrapperPropsStyle, blockStyleAttributes, blockColors) {
24
25
  const blockPaddings = {};
25
26
 
@@ -74,8 +75,10 @@ export function getBlockColors(blockStyleAttributes, defaultColors, blockName, b
74
75
 
75
76
 
76
77
  Object.entries(blockStyleAttributes).forEach(_ref2 => {
78
+ var _value$startsWith;
79
+
77
80
  let [key, value] = _ref2;
78
- const isCustomColor = startsWith(value, '#');
81
+ const isCustomColor = value === null || value === void 0 ? void 0 : (_value$startsWith = value.startsWith) === null || _value$startsWith === void 0 ? void 0 : _value$startsWith.call(value, '#');
79
82
  let styleKey = key;
80
83
 
81
84
  if (BLOCK_STYLE_ATTRIBUTES_MAPPING[styleKey]) {
@@ -156,7 +159,7 @@ export function getBlockTypography(blockStyleAttributes, fontSizes, blockName, b
156
159
  }
157
160
  export function parseStylesVariables(styles, mappedValues, customValues) {
158
161
  let stylesBase = styles;
159
- const variables = ['preset', 'custom', 'var'];
162
+ const variables = ['preset', 'custom', 'var', 'fontSize'];
160
163
 
161
164
  if (!stylesBase) {
162
165
  return styles;
@@ -169,6 +172,7 @@ export function parseStylesVariables(styles, mappedValues, customValues) {
169
172
  // var:preset|color|custom-color-2
170
173
  const regex = new RegExp(`var\\(--wp--${variable}--(.*?)\\)`, 'g');
171
174
  const varRegex = /\"var:preset\|color\|(.*?)\"/gm;
175
+ const fontSizeRegex = /"fontSize":"(.*?)"/gm;
172
176
 
173
177
  if (variable === 'preset') {
174
178
  stylesBase = stylesBase.replace(regex, (_$1, $2) => {
@@ -214,6 +218,21 @@ export function parseStylesVariables(styles, mappedValues, customValues) {
214
218
  return UNKNOWN_VALUE;
215
219
  });
216
220
  }
221
+
222
+ if (variable === 'fontSize') {
223
+ const {
224
+ width,
225
+ height
226
+ } = Dimensions.get('window');
227
+ stylesBase = stylesBase.replace(fontSizeRegex, (_$1, $2) => {
228
+ const parsedFontSize = getPxFromCssUnit($2, {
229
+ width,
230
+ height,
231
+ fontSize: DEFAULT_FONT_SIZE
232
+ }) || `${DEFAULT_FONT_SIZE}px`;
233
+ return `"fontSize":"${parsedFontSize}"`;
234
+ });
235
+ }
217
236
  });
218
237
  return JSON.parse(stylesBase);
219
238
  }
@@ -260,7 +279,7 @@ function normalizeFontSizes(fontSizes) {
260
279
  fontSizeObject.sizePx = getPxFromCssUnit(fontSizeObject.size, {
261
280
  width: dimensions.width,
262
281
  height: dimensions.height,
263
- fontSize: 16
282
+ fontSize: DEFAULT_FONT_SIZE
264
283
  });
265
284
  return fontSizeObject;
266
285
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/global-styles-context/utils.native.js"],"names":["find","startsWith","get","camelCase","has","Dimensions","getPxFromCssUnit","useSetting","useMultipleOriginColorsAndGradients","BLOCK_STYLE_ATTRIBUTES","BLOCK_STYLE_ATTRIBUTES_MAPPING","textColor","text","background","link","placeholder","PADDING","UNKNOWN_VALUE","getBlockPaddings","mergedStyle","wrapperPropsStyle","blockStyleAttributes","blockColors","blockPaddings","padding","backgroundColor","undefined","getBlockColors","defaultColors","blockName","baseGlobalStyles","blockStyles","customBlockStyles","style","color","blockGlobalStyles","blocks","Object","entries","forEach","key","value","styleKey","styles","elements","linkColor","isCustomColor","mappedColor","slug","getBlockTypography","fontSizes","typographyStyles","typography","fontSize","lineHeight","parseInt","mappedFontSize","size","parseStylesVariables","mappedValues","customValues","stylesBase","variables","variable","regex","RegExp","varRegex","replace","_$1","$2","path","split","mappedPresetValue","matchedValue","values","customValuesData","JSON","parse","slice","length","getMappedValues","features","palette","colors","theme","custom","default","normalizeFontSizes","normalizedFontSizes","dimensions","map","fontSizeObject","sizePx","width","height","useMobileGlobalStylesColors","type","colorGradientSettings","availableThemeColors","reduce","origin","concat","colorPalette","editorDefaultPalette","getColorsAndGradients","defaultEditorColors","defaultEditorGradients","rawFeatures","__experimentalGlobalStylesBaseStyles","__experimentalFeatures","gradients","defaultPalette","defaultGradients","getGlobalStyles","rawStyles","stringify","globalStyles","customLineHeight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, startsWith, get, camelCase, has } from 'lodash';\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetPxFromCssUnit,\n\tuseSetting,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\nexport const BLOCK_STYLE_ATTRIBUTES = [\n\t'textColor',\n\t'backgroundColor',\n\t'style',\n\t'color',\n\t'fontSize',\n];\n\n// Mapping style properties name to native.\nconst BLOCK_STYLE_ATTRIBUTES_MAPPING = {\n\ttextColor: 'color',\n\ttext: 'color',\n\tbackground: 'backgroundColor',\n\tlink: 'linkColor',\n\tplaceholder: 'placeholderColor',\n};\n\nconst PADDING = 12; // $solid-border-space\nconst UNKNOWN_VALUE = 'undefined';\n\nexport function getBlockPaddings(\n\tmergedStyle,\n\twrapperPropsStyle,\n\tblockStyleAttributes,\n\tblockColors\n) {\n\tconst blockPaddings = {};\n\n\tif (\n\t\t! mergedStyle.padding &&\n\t\t( wrapperPropsStyle?.backgroundColor ||\n\t\t\tblockStyleAttributes?.backgroundColor ||\n\t\t\tblockColors?.backgroundColor )\n\t) {\n\t\tblockPaddings.padding = PADDING;\n\t\treturn blockPaddings;\n\t}\n\n\t// Prevent adding extra paddings to inner blocks without background colors.\n\tif (\n\t\tmergedStyle?.padding &&\n\t\t! wrapperPropsStyle?.backgroundColor &&\n\t\t! blockStyleAttributes?.backgroundColor &&\n\t\t! blockColors?.backgroundColor\n\t) {\n\t\tblockPaddings.padding = undefined;\n\t}\n\n\treturn blockPaddings;\n}\n\nexport function getBlockColors(\n\tblockStyleAttributes,\n\tdefaultColors,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst blockStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.color || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles colors.\n\tif ( blockGlobalStyles?.color ) {\n\t\tObject.entries( blockGlobalStyles.color ).forEach(\n\t\t\t( [ key, value ] ) => {\n\t\t\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ key ];\n\n\t\t\t\tif ( styleKey && value !== UNKNOWN_VALUE ) {\n\t\t\t\t\tconst color = customBlockStyles[ key ] ?? value;\n\t\t\t\t\tblockStyles[ styleKey ] = color;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t} else if ( baseGlobalStyles?.styles?.color?.text ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.text ] =\n\t\t\tbaseGlobalStyles?.styles?.color?.text;\n\t}\n\n\t// Global styles elements.\n\tif ( blockGlobalStyles?.elements ) {\n\t\tconst linkColor = blockGlobalStyles.elements?.link?.color?.text;\n\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING.link;\n\n\t\tif ( styleKey && linkColor && linkColor !== UNKNOWN_VALUE ) {\n\t\t\tblockStyles[ styleKey ] = linkColor;\n\t\t}\n\t}\n\n\t// Custom colors.\n\tObject.entries( blockStyleAttributes ).forEach( ( [ key, value ] ) => {\n\t\tconst isCustomColor = startsWith( value, '#' );\n\t\tlet styleKey = key;\n\n\t\tif ( BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ] ) {\n\t\t\tstyleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ];\n\t\t}\n\n\t\tif ( ! isCustomColor ) {\n\t\t\tconst mappedColor = find( defaultColors, {\n\t\t\t\tslug: value,\n\t\t\t} );\n\n\t\t\tif ( mappedColor ) {\n\t\t\t\tblockStyles[ styleKey ] = mappedColor.color;\n\t\t\t}\n\t\t} else {\n\t\t\tblockStyles[ styleKey ] = value;\n\t\t}\n\t} );\n\n\t// Color placeholder.\n\tif ( blockStyles?.color ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.placeholder ] =\n\t\t\tblockStyles.color;\n\t}\n\n\treturn blockStyles;\n}\n\nexport function getBlockTypography(\n\tblockStyleAttributes,\n\tfontSizes,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst typographyStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.typography || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles.\n\tif ( blockGlobalStyles?.typography ) {\n\t\tconst fontSize = blockGlobalStyles?.typography?.fontSize;\n\t\tconst lineHeight = blockGlobalStyles?.typography?.lineHeight;\n\n\t\tif ( fontSize ) {\n\t\t\tif ( parseInt( fontSize, 10 ) ) {\n\t\t\t\ttypographyStyles.fontSize = fontSize;\n\t\t\t} else {\n\t\t\t\tconst mappedFontSize = find( fontSizes, {\n\t\t\t\t\tslug: fontSize,\n\t\t\t\t} );\n\n\t\t\t\tif ( mappedFontSize ) {\n\t\t\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( lineHeight ) {\n\t\t\ttypographyStyles.lineHeight = lineHeight;\n\t\t}\n\t}\n\n\tif ( blockStyleAttributes?.fontSize && baseGlobalStyles ) {\n\t\tconst mappedFontSize = find( fontSizes, {\n\t\t\tslug: blockStyleAttributes?.fontSize,\n\t\t} );\n\n\t\tif ( mappedFontSize ) {\n\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t}\n\t}\n\n\t// Custom styles.\n\tif ( customBlockStyles?.fontSize ) {\n\t\ttypographyStyles.fontSize = customBlockStyles?.fontSize;\n\t}\n\n\tif ( customBlockStyles?.lineHeight ) {\n\t\ttypographyStyles.lineHeight = customBlockStyles?.lineHeight;\n\t}\n\n\treturn typographyStyles;\n}\n\nexport function parseStylesVariables( styles, mappedValues, customValues ) {\n\tlet stylesBase = styles;\n\tconst variables = [ 'preset', 'custom', 'var' ];\n\n\tif ( ! stylesBase ) {\n\t\treturn styles;\n\t}\n\n\tvariables.forEach( ( variable ) => {\n\t\t// Examples\n\t\t// var(--wp--preset--color--gray)\n\t\t// var(--wp--custom--body--typography--font-family)\n\t\t// var:preset|color|custom-color-2\n\t\tconst regex = new RegExp( `var\\\\(--wp--${ variable }--(.*?)\\\\)`, 'g' );\n\t\tconst varRegex = /\\\"var:preset\\|color\\|(.*?)\\\"/gm;\n\n\t\tif ( variable === 'preset' ) {\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tconst mappedPresetValue = mappedValues[ path[ 0 ] ];\n\t\t\t\tif ( mappedPresetValue && mappedPresetValue.slug ) {\n\t\t\t\t\tconst matchedValue = find( mappedPresetValue.values, {\n\t\t\t\t\t\tslug: path[ 1 ],\n\t\t\t\t\t} );\n\t\t\t\t\treturn matchedValue?.[ mappedPresetValue.slug ];\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t\tif ( variable === 'custom' ) {\n\t\t\tconst customValuesData = customValues ?? JSON.parse( stylesBase );\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tif ( has( customValuesData, path ) ) {\n\t\t\t\t\treturn get( customValuesData, path );\n\t\t\t\t}\n\n\t\t\t\t// Check for camelcase properties.\n\t\t\t\treturn get( customValuesData, [\n\t\t\t\t\t...path.slice( 0, path.length - 1 ),\n\t\t\t\t\tcamelCase( path[ path.length - 1 ] ),\n\t\t\t\t] );\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'var' ) {\n\t\t\tstylesBase = stylesBase.replace( varRegex, ( _$1, $2 ) => {\n\t\t\t\tif ( mappedValues?.color ) {\n\t\t\t\t\tconst matchedValue = find( mappedValues.color?.values, {\n\t\t\t\t\t\tslug: $2,\n\t\t\t\t\t} );\n\t\t\t\t\treturn `\"${ matchedValue?.color }\"`;\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn JSON.parse( stylesBase );\n}\n\nexport function getMappedValues( features, palette ) {\n\tconst typography = features?.typography;\n\tconst colors = [\n\t\t...( palette?.theme || [] ),\n\t\t...( palette?.custom || [] ),\n\t\t...( palette?.default || [] ),\n\t];\n\n\tconst fontSizes = {\n\t\t...typography?.fontSizes?.theme,\n\t\t...typography?.fontSizes?.custom,\n\t};\n\tconst mappedValues = {\n\t\tcolor: {\n\t\t\tvalues: colors,\n\t\t\tslug: 'color',\n\t\t},\n\t\t'font-size': {\n\t\t\tvalues: fontSizes,\n\t\t\tslug: 'size',\n\t\t},\n\t};\n\treturn mappedValues;\n}\n\n/**\n * Returns the normalized fontSizes to include the sizePx value for each of the different sizes.\n *\n * @param {Object} fontSizes found in global styles.\n * @return {Object} normalized sizes.\n */\nfunction normalizeFontSizes( fontSizes ) {\n\t// Adds normalized PX values for each of the different keys.\n\tif ( ! fontSizes ) {\n\t\treturn fontSizes;\n\t}\n\tconst normalizedFontSizes = {};\n\tconst dimensions = Dimensions.get( 'window' );\n\n\t[ 'default', 'theme', 'custom' ].forEach( ( key ) => {\n\t\tif ( fontSizes[ key ] ) {\n\t\t\tnormalizedFontSizes[ key ] = fontSizes[ key ]?.map(\n\t\t\t\t( fontSizeObject ) => {\n\t\t\t\t\tfontSizeObject.sizePx = getPxFromCssUnit(\n\t\t\t\t\t\tfontSizeObject.size,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tfontSize: 16,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn fontSizeObject;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn normalizedFontSizes;\n}\n\nexport function useMobileGlobalStylesColors( type = 'colors' ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableThemeColors = colorGradientSettings?.[ type ]?.reduce(\n\t\t( colors, origin ) => colors.concat( origin?.[ type ] ),\n\t\t[]\n\t);\n\t// Default editor colors/gradients if it's not a block-based theme.\n\tconst colorPalette =\n\t\ttype === 'colors' ? 'color.palette' : 'color.gradients';\n\tconst editorDefaultPalette = useSetting( colorPalette );\n\n\treturn availableThemeColors.length >= 1\n\t\t? availableThemeColors\n\t\t: editorDefaultPalette;\n}\n\nexport function getColorsAndGradients(\n\tdefaultEditorColors = [],\n\tdefaultEditorGradients = [],\n\trawFeatures\n) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\n\treturn {\n\t\t__experimentalGlobalStylesBaseStyles: null,\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\t...( ! features?.color\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: true,\n\t\t\t\t\t\t\tbackground: true,\n\t\t\t\t\t\t\tpalette: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorColors,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgradients: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorGradients,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: features?.color ),\n\t\t\t\tdefaultPalette: defaultEditorColors?.length > 0,\n\t\t\t\tdefaultGradients: defaultEditorGradients?.length > 0,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function getGlobalStyles( rawStyles, rawFeatures ) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\tconst mappedValues = getMappedValues( features, features?.color?.palette );\n\tconst colors = parseStylesVariables(\n\t\tJSON.stringify( features?.color ),\n\t\tmappedValues\n\t);\n\tconst gradients = parseStylesVariables(\n\t\tJSON.stringify( features?.color?.gradients ),\n\t\tmappedValues\n\t);\n\tconst customValues = parseStylesVariables(\n\t\tJSON.stringify( features?.custom ),\n\t\tmappedValues\n\t);\n\tconst globalStyles = parseStylesVariables(\n\t\trawStyles,\n\t\tmappedValues,\n\t\tcustomValues\n\t);\n\n\tconst fontSizes = normalizeFontSizes( features?.typography?.fontSizes );\n\n\treturn {\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\tpalette: colors?.palette,\n\t\t\t\tgradients,\n\t\t\t\ttext: features?.color?.text ?? true,\n\t\t\t\tbackground: features?.color?.background ?? true,\n\t\t\t\tdefaultPalette: features?.color?.defaultPalette ?? true,\n\t\t\t\tdefaultGradients: features?.color?.defaultGradients ?? true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSizes,\n\t\t\t\tcustomLineHeight: features?.custom?.[ 'line-height' ],\n\t\t\t},\n\t\t},\n\t\t__experimentalGlobalStylesBaseStyles: globalStyles,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/global-styles-context/utils.native.js"],"names":["find","get","camelCase","has","Dimensions","getPxFromCssUnit","useSetting","useMultipleOriginColorsAndGradients","BLOCK_STYLE_ATTRIBUTES","BLOCK_STYLE_ATTRIBUTES_MAPPING","textColor","text","background","link","placeholder","PADDING","UNKNOWN_VALUE","DEFAULT_FONT_SIZE","getBlockPaddings","mergedStyle","wrapperPropsStyle","blockStyleAttributes","blockColors","blockPaddings","padding","backgroundColor","undefined","getBlockColors","defaultColors","blockName","baseGlobalStyles","blockStyles","customBlockStyles","style","color","blockGlobalStyles","blocks","Object","entries","forEach","key","value","styleKey","styles","elements","linkColor","isCustomColor","startsWith","mappedColor","slug","getBlockTypography","fontSizes","typographyStyles","typography","fontSize","lineHeight","parseInt","mappedFontSize","size","parseStylesVariables","mappedValues","customValues","stylesBase","variables","variable","regex","RegExp","varRegex","fontSizeRegex","replace","_$1","$2","path","split","mappedPresetValue","matchedValue","values","customValuesData","JSON","parse","slice","length","width","height","parsedFontSize","getMappedValues","features","palette","colors","theme","custom","default","normalizeFontSizes","normalizedFontSizes","dimensions","map","fontSizeObject","sizePx","useMobileGlobalStylesColors","type","colorGradientSettings","availableThemeColors","reduce","origin","concat","colorPalette","editorDefaultPalette","getColorsAndGradients","defaultEditorColors","defaultEditorGradients","rawFeatures","__experimentalGlobalStylesBaseStyles","__experimentalFeatures","gradients","defaultPalette","defaultGradients","getGlobalStyles","rawStyles","stringify","globalStyles","customLineHeight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find, get, camelCase, has } from 'lodash';\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetPxFromCssUnit,\n\tuseSetting,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\nexport const BLOCK_STYLE_ATTRIBUTES = [\n\t'textColor',\n\t'backgroundColor',\n\t'style',\n\t'color',\n\t'fontSize',\n];\n\n// Mapping style properties name to native.\nconst BLOCK_STYLE_ATTRIBUTES_MAPPING = {\n\ttextColor: 'color',\n\ttext: 'color',\n\tbackground: 'backgroundColor',\n\tlink: 'linkColor',\n\tplaceholder: 'placeholderColor',\n};\n\nconst PADDING = 12; // $solid-border-space\nconst UNKNOWN_VALUE = 'undefined';\nconst DEFAULT_FONT_SIZE = 16;\n\nexport function getBlockPaddings(\n\tmergedStyle,\n\twrapperPropsStyle,\n\tblockStyleAttributes,\n\tblockColors\n) {\n\tconst blockPaddings = {};\n\n\tif (\n\t\t! mergedStyle.padding &&\n\t\t( wrapperPropsStyle?.backgroundColor ||\n\t\t\tblockStyleAttributes?.backgroundColor ||\n\t\t\tblockColors?.backgroundColor )\n\t) {\n\t\tblockPaddings.padding = PADDING;\n\t\treturn blockPaddings;\n\t}\n\n\t// Prevent adding extra paddings to inner blocks without background colors.\n\tif (\n\t\tmergedStyle?.padding &&\n\t\t! wrapperPropsStyle?.backgroundColor &&\n\t\t! blockStyleAttributes?.backgroundColor &&\n\t\t! blockColors?.backgroundColor\n\t) {\n\t\tblockPaddings.padding = undefined;\n\t}\n\n\treturn blockPaddings;\n}\n\nexport function getBlockColors(\n\tblockStyleAttributes,\n\tdefaultColors,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst blockStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.color || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles colors.\n\tif ( blockGlobalStyles?.color ) {\n\t\tObject.entries( blockGlobalStyles.color ).forEach(\n\t\t\t( [ key, value ] ) => {\n\t\t\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ key ];\n\n\t\t\t\tif ( styleKey && value !== UNKNOWN_VALUE ) {\n\t\t\t\t\tconst color = customBlockStyles[ key ] ?? value;\n\t\t\t\t\tblockStyles[ styleKey ] = color;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t} else if ( baseGlobalStyles?.styles?.color?.text ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.text ] =\n\t\t\tbaseGlobalStyles?.styles?.color?.text;\n\t}\n\n\t// Global styles elements.\n\tif ( blockGlobalStyles?.elements ) {\n\t\tconst linkColor = blockGlobalStyles.elements?.link?.color?.text;\n\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING.link;\n\n\t\tif ( styleKey && linkColor && linkColor !== UNKNOWN_VALUE ) {\n\t\t\tblockStyles[ styleKey ] = linkColor;\n\t\t}\n\t}\n\n\t// Custom colors.\n\tObject.entries( blockStyleAttributes ).forEach( ( [ key, value ] ) => {\n\t\tconst isCustomColor = value?.startsWith?.( '#' );\n\t\tlet styleKey = key;\n\n\t\tif ( BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ] ) {\n\t\t\tstyleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ];\n\t\t}\n\n\t\tif ( ! isCustomColor ) {\n\t\t\tconst mappedColor = find( defaultColors, {\n\t\t\t\tslug: value,\n\t\t\t} );\n\n\t\t\tif ( mappedColor ) {\n\t\t\t\tblockStyles[ styleKey ] = mappedColor.color;\n\t\t\t}\n\t\t} else {\n\t\t\tblockStyles[ styleKey ] = value;\n\t\t}\n\t} );\n\n\t// Color placeholder.\n\tif ( blockStyles?.color ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.placeholder ] =\n\t\t\tblockStyles.color;\n\t}\n\n\treturn blockStyles;\n}\n\nexport function getBlockTypography(\n\tblockStyleAttributes,\n\tfontSizes,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst typographyStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.typography || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles.\n\tif ( blockGlobalStyles?.typography ) {\n\t\tconst fontSize = blockGlobalStyles?.typography?.fontSize;\n\t\tconst lineHeight = blockGlobalStyles?.typography?.lineHeight;\n\n\t\tif ( fontSize ) {\n\t\t\tif ( parseInt( fontSize, 10 ) ) {\n\t\t\t\ttypographyStyles.fontSize = fontSize;\n\t\t\t} else {\n\t\t\t\tconst mappedFontSize = find( fontSizes, {\n\t\t\t\t\tslug: fontSize,\n\t\t\t\t} );\n\n\t\t\t\tif ( mappedFontSize ) {\n\t\t\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( lineHeight ) {\n\t\t\ttypographyStyles.lineHeight = lineHeight;\n\t\t}\n\t}\n\n\tif ( blockStyleAttributes?.fontSize && baseGlobalStyles ) {\n\t\tconst mappedFontSize = find( fontSizes, {\n\t\t\tslug: blockStyleAttributes?.fontSize,\n\t\t} );\n\n\t\tif ( mappedFontSize ) {\n\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t}\n\t}\n\n\t// Custom styles.\n\tif ( customBlockStyles?.fontSize ) {\n\t\ttypographyStyles.fontSize = customBlockStyles?.fontSize;\n\t}\n\n\tif ( customBlockStyles?.lineHeight ) {\n\t\ttypographyStyles.lineHeight = customBlockStyles?.lineHeight;\n\t}\n\n\treturn typographyStyles;\n}\n\nexport function parseStylesVariables( styles, mappedValues, customValues ) {\n\tlet stylesBase = styles;\n\tconst variables = [ 'preset', 'custom', 'var', 'fontSize' ];\n\n\tif ( ! stylesBase ) {\n\t\treturn styles;\n\t}\n\n\tvariables.forEach( ( variable ) => {\n\t\t// Examples\n\t\t// var(--wp--preset--color--gray)\n\t\t// var(--wp--custom--body--typography--font-family)\n\t\t// var:preset|color|custom-color-2\n\t\tconst regex = new RegExp( `var\\\\(--wp--${ variable }--(.*?)\\\\)`, 'g' );\n\t\tconst varRegex = /\\\"var:preset\\|color\\|(.*?)\\\"/gm;\n\t\tconst fontSizeRegex = /\"fontSize\":\"(.*?)\"/gm;\n\n\t\tif ( variable === 'preset' ) {\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tconst mappedPresetValue = mappedValues[ path[ 0 ] ];\n\t\t\t\tif ( mappedPresetValue && mappedPresetValue.slug ) {\n\t\t\t\t\tconst matchedValue = find( mappedPresetValue.values, {\n\t\t\t\t\t\tslug: path[ 1 ],\n\t\t\t\t\t} );\n\t\t\t\t\treturn matchedValue?.[ mappedPresetValue.slug ];\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t\tif ( variable === 'custom' ) {\n\t\t\tconst customValuesData = customValues ?? JSON.parse( stylesBase );\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tif ( has( customValuesData, path ) ) {\n\t\t\t\t\treturn get( customValuesData, path );\n\t\t\t\t}\n\n\t\t\t\t// Check for camelcase properties.\n\t\t\t\treturn get( customValuesData, [\n\t\t\t\t\t...path.slice( 0, path.length - 1 ),\n\t\t\t\t\tcamelCase( path[ path.length - 1 ] ),\n\t\t\t\t] );\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'var' ) {\n\t\t\tstylesBase = stylesBase.replace( varRegex, ( _$1, $2 ) => {\n\t\t\t\tif ( mappedValues?.color ) {\n\t\t\t\t\tconst matchedValue = find( mappedValues.color?.values, {\n\t\t\t\t\t\tslug: $2,\n\t\t\t\t\t} );\n\t\t\t\t\treturn `\"${ matchedValue?.color }\"`;\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'fontSize' ) {\n\t\t\tconst { width, height } = Dimensions.get( 'window' );\n\n\t\t\tstylesBase = stylesBase.replace( fontSizeRegex, ( _$1, $2 ) => {\n\t\t\t\tconst parsedFontSize =\n\t\t\t\t\tgetPxFromCssUnit( $2, {\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t} ) || `${ DEFAULT_FONT_SIZE }px`;\n\n\t\t\t\treturn `\"fontSize\":\"${ parsedFontSize }\"`;\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn JSON.parse( stylesBase );\n}\n\nexport function getMappedValues( features, palette ) {\n\tconst typography = features?.typography;\n\tconst colors = [\n\t\t...( palette?.theme || [] ),\n\t\t...( palette?.custom || [] ),\n\t\t...( palette?.default || [] ),\n\t];\n\n\tconst fontSizes = {\n\t\t...typography?.fontSizes?.theme,\n\t\t...typography?.fontSizes?.custom,\n\t};\n\tconst mappedValues = {\n\t\tcolor: {\n\t\t\tvalues: colors,\n\t\t\tslug: 'color',\n\t\t},\n\t\t'font-size': {\n\t\t\tvalues: fontSizes,\n\t\t\tslug: 'size',\n\t\t},\n\t};\n\treturn mappedValues;\n}\n\n/**\n * Returns the normalized fontSizes to include the sizePx value for each of the different sizes.\n *\n * @param {Object} fontSizes found in global styles.\n * @return {Object} normalized sizes.\n */\nfunction normalizeFontSizes( fontSizes ) {\n\t// Adds normalized PX values for each of the different keys.\n\tif ( ! fontSizes ) {\n\t\treturn fontSizes;\n\t}\n\tconst normalizedFontSizes = {};\n\tconst dimensions = Dimensions.get( 'window' );\n\n\t[ 'default', 'theme', 'custom' ].forEach( ( key ) => {\n\t\tif ( fontSizes[ key ] ) {\n\t\t\tnormalizedFontSizes[ key ] = fontSizes[ key ]?.map(\n\t\t\t\t( fontSizeObject ) => {\n\t\t\t\t\tfontSizeObject.sizePx = getPxFromCssUnit(\n\t\t\t\t\t\tfontSizeObject.size,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn fontSizeObject;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn normalizedFontSizes;\n}\n\nexport function useMobileGlobalStylesColors( type = 'colors' ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableThemeColors = colorGradientSettings?.[ type ]?.reduce(\n\t\t( colors, origin ) => colors.concat( origin?.[ type ] ),\n\t\t[]\n\t);\n\t// Default editor colors/gradients if it's not a block-based theme.\n\tconst colorPalette =\n\t\ttype === 'colors' ? 'color.palette' : 'color.gradients';\n\tconst editorDefaultPalette = useSetting( colorPalette );\n\n\treturn availableThemeColors.length >= 1\n\t\t? availableThemeColors\n\t\t: editorDefaultPalette;\n}\n\nexport function getColorsAndGradients(\n\tdefaultEditorColors = [],\n\tdefaultEditorGradients = [],\n\trawFeatures\n) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\n\treturn {\n\t\t__experimentalGlobalStylesBaseStyles: null,\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\t...( ! features?.color\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: true,\n\t\t\t\t\t\t\tbackground: true,\n\t\t\t\t\t\t\tpalette: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorColors,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgradients: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorGradients,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: features?.color ),\n\t\t\t\tdefaultPalette: defaultEditorColors?.length > 0,\n\t\t\t\tdefaultGradients: defaultEditorGradients?.length > 0,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function getGlobalStyles( rawStyles, rawFeatures ) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\tconst mappedValues = getMappedValues( features, features?.color?.palette );\n\tconst colors = parseStylesVariables(\n\t\tJSON.stringify( features?.color ),\n\t\tmappedValues\n\t);\n\tconst gradients = parseStylesVariables(\n\t\tJSON.stringify( features?.color?.gradients ),\n\t\tmappedValues\n\t);\n\tconst customValues = parseStylesVariables(\n\t\tJSON.stringify( features?.custom ),\n\t\tmappedValues\n\t);\n\tconst globalStyles = parseStylesVariables(\n\t\trawStyles,\n\t\tmappedValues,\n\t\tcustomValues\n\t);\n\n\tconst fontSizes = normalizeFontSizes( features?.typography?.fontSizes );\n\n\treturn {\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\tpalette: colors?.palette,\n\t\t\t\tgradients,\n\t\t\t\ttext: features?.color?.text ?? true,\n\t\t\t\tbackground: features?.color?.background ?? true,\n\t\t\t\tdefaultPalette: features?.color?.defaultPalette ?? true,\n\t\t\t\tdefaultGradients: features?.color?.defaultGradients ?? true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSizes,\n\t\t\t\tcustomLineHeight: features?.custom?.[ 'line-height' ],\n\t\t\t},\n\t\t},\n\t\t__experimentalGlobalStylesBaseStyles: globalStyles,\n\t};\n}\n"]}
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
4
4
  /**
5
5
  * External dependencies
6
6
  */
7
- import { Image as RNImage, Text, View } from 'react-native';
7
+ import { Image as RNImage, Text, View, useWindowDimensions } from 'react-native';
8
8
  import FastImage from 'react-native-fast-image';
9
9
  /**
10
10
  * WordPress dependencies
@@ -14,7 +14,7 @@ import { __ } from '@wordpress/i18n';
14
14
  import { Icon } from '@wordpress/components';
15
15
  import { image as icon } from '@wordpress/icons';
16
16
  import { usePreferredColorSchemeStyle } from '@wordpress/compose';
17
- import { useEffect, useState } from '@wordpress/element';
17
+ import { useEffect, useState, useRef, Platform } from '@wordpress/element';
18
18
  /**
19
19
  * Internal dependencies
20
20
  */
@@ -61,6 +61,12 @@ const ImageComponent = _ref => {
61
61
  } = _ref;
62
62
  const [imageData, setImageData] = useState(null);
63
63
  const [containerSize, setContainerSize] = useState(null);
64
+ const [shouldUseFallback, setShouldUseFallback] = useState(false);
65
+ const {
66
+ height: windowHeight,
67
+ width: windowWidth
68
+ } = useWindowDimensions();
69
+ const isLandscape = useRef(windowWidth > windowHeight);
64
70
  const Image = !shouldUseFastImage ? RNImage : FastImage;
65
71
  const imageResizeMode = !shouldUseFastImage ? resizeMode : FastImage.resizeMode[resizeMode];
66
72
  useEffect(() => {
@@ -86,7 +92,21 @@ const ImageComponent = _ref => {
86
92
  }
87
93
 
88
94
  return () => isCurrent = false;
89
- }, [url]);
95
+ }, [url]); // Workaround for Android where changing the orientation breaks FastImage
96
+ // for now if there's any orientation changes, it will use the fallback
97
+ // prop to use the default Image component.
98
+ // https://github.com/WordPress/gutenberg/issues/42869
99
+
100
+ useEffect(() => {
101
+ if (Platform.isAndroid && shouldUseFastImage) {
102
+ const isCurrentOrientationLandscape = windowWidth > windowHeight;
103
+
104
+ if (isLandscape.current !== isCurrentOrientationLandscape) {
105
+ setShouldUseFallback(true);
106
+ isLandscape.current = isCurrentOrientationLandscape;
107
+ }
108
+ }
109
+ }, [windowHeight, windowWidth]);
90
110
 
91
111
  const onContainerLayout = event => {
92
112
  const {
@@ -180,7 +200,8 @@ const ImageComponent = _ref => {
180
200
  }, !focalPoint && {
181
201
  resizeMethod: 'scale'
182
202
  }, {
183
- resizeMode: imageResizeMode
203
+ resizeMode: imageResizeMode,
204
+ fallback: shouldUseFallback
184
205
  }))), isUploadFailed && retryMessage && createElement(View, {
185
206
  style: [styles.imageContainer, styles.retryContainer]
186
207
  }, createElement(View, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/image/index.native.js"],"names":["Image","RNImage","Text","View","FastImage","__","Icon","image","icon","usePreferredColorSchemeStyle","useEffect","useState","getImageWithFocalPointStyles","styles","SvgIconRetry","ImageEditingButton","ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","IMAGE_DEFAULT_FOCAL_POINT","x","y","ImageComponent","align","alt","editButton","focalPoint","height","imageHeight","highlightSelected","isSelected","shouldUseFastImage","isUploadFailed","isUploadInProgress","mediaPickerOptions","onImageDataLoad","onSelectMediaUploadOption","openMediaOptions","resizeMode","retryMessage","retryIcon","url","shapeStyle","style","width","imageWidth","imageData","setImageData","containerSize","setContainerSize","imageResizeMode","isCurrent","getSize","imgWidth","imgHeight","metaData","aspectRatio","onContainerLayout","event","nativeEvent","layout","getIcon","iconType","iconStyle","iconRetry","iconPlaceholderStyles","iconUploadStyles","iconPlaceholder","iconPlaceholderDark","iconUpload","iconUploadDark","placeholderStyles","imageContainerUpload","imageContainerUploadDark","imageContainerUploadWithFocalpoint","customWidth","wide","imageContainerStyles","imageContent","focalPointContainer","imageStyles","opacity","undefined","container","alignItems","imageBorder","imageUploadingIconContainer","focalPointContent","uri","resizeMethod","imageContainer","retryContainer","customRetryIcon","uploadFailedText"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Image as RNImage, Text, View } from 'react-native';\nimport FastImage from 'react-native-fast-image';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon } from '@wordpress/components';\nimport { image as icon } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { useEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getImageWithFocalPointStyles } from './utils';\nimport styles from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport ImageEditingButton from './image-editing-button';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nexport const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };\n\nconst ImageComponent = ( {\n\talign,\n\talt,\n\teditButton = true,\n\tfocalPoint,\n\theight: imageHeight,\n\thighlightSelected = true,\n\tisSelected,\n\tshouldUseFastImage,\n\tisUploadFailed,\n\tisUploadInProgress,\n\tmediaPickerOptions,\n\tonImageDataLoad,\n\tonSelectMediaUploadOption,\n\topenMediaOptions,\n\tresizeMode,\n\tretryMessage,\n\tretryIcon,\n\turl,\n\tshapeStyle,\n\tstyle,\n\twidth: imageWidth,\n} ) => {\n\tconst [ imageData, setImageData ] = useState( null );\n\tconst [ containerSize, setContainerSize ] = useState( null );\n\tconst Image = ! shouldUseFastImage ? RNImage : FastImage;\n\tconst imageResizeMode = ! shouldUseFastImage\n\t\t? resizeMode\n\t\t: FastImage.resizeMode[ resizeMode ];\n\n\tuseEffect( () => {\n\t\tlet isCurrent = true;\n\t\tif ( url ) {\n\t\t\tRNImage.getSize( url, ( imgWidth, imgHeight ) => {\n\t\t\t\tif ( ! isCurrent ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst metaData = {\n\t\t\t\t\taspectRatio: imgWidth / imgHeight,\n\t\t\t\t\twidth: imgWidth,\n\t\t\t\t\theight: imgHeight,\n\t\t\t\t};\n\t\t\t\tsetImageData( metaData );\n\t\t\t\tif ( onImageDataLoad ) {\n\t\t\t\t\tonImageDataLoad( metaData );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => ( isCurrent = false );\n\t}, [ url ] );\n\n\tconst onContainerLayout = ( event ) => {\n\t\tconst { height, width } = event.nativeEvent.layout;\n\n\t\tif (\n\t\t\twidth !== 0 &&\n\t\t\theight !== 0 &&\n\t\t\t( containerSize?.width !== width ||\n\t\t\t\tcontainerSize?.height !== height )\n\t\t) {\n\t\t\tsetContainerSize( { width, height } );\n\t\t}\n\t};\n\n\tconst getIcon = ( iconType ) => {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ retryIcon || SvgIconRetry }\n\t\t\t\t\t\t{ ...styles.iconRetry }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = iconPlaceholderStyles;\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = iconUploadStyles;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn <Icon icon={ icon } { ...iconStyle } />;\n\t};\n\n\tconst iconPlaceholderStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconPlaceholder,\n\t\tstyles.iconPlaceholderDark\n\t);\n\n\tconst iconUploadStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconUpload,\n\t\tstyles.iconUploadDark\n\t);\n\n\tconst placeholderStyles = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.imageContainerUpload,\n\t\t\tstyles.imageContainerUploadDark\n\t\t),\n\t\tfocalPoint && styles.imageContainerUploadWithFocalpoint,\n\t\timageHeight && { height: imageHeight },\n\t];\n\n\tconst customWidth =\n\t\timageData?.width < containerSize?.width\n\t\t\t? imageData?.width\n\t\t\t: styles.wide?.width;\n\n\tconst imageContainerStyles = [\n\t\tstyles.imageContent,\n\t\t{\n\t\t\twidth:\n\t\t\t\timageWidth === styles.wide?.width ||\n\t\t\t\t( imageData &&\n\t\t\t\t\timageWidth > 0 &&\n\t\t\t\t\timageWidth < containerSize?.width )\n\t\t\t\t\t? imageWidth\n\t\t\t\t\t: customWidth,\n\t\t},\n\t\tresizeMode && { width: styles.wide?.width },\n\t\tfocalPoint && styles.focalPointContainer,\n\t];\n\n\tconst imageStyles = [\n\t\t{\n\t\t\topacity: isUploadInProgress ? 0.3 : 1,\n\t\t\theight: containerSize?.height,\n\t\t},\n\t\t! resizeMode && {\n\t\t\taspectRatio: imageData?.aspectRatio,\n\t\t},\n\t\tfocalPoint && styles.focalPoint,\n\t\tfocalPoint &&\n\t\t\tgetImageWithFocalPointStyles(\n\t\t\t\tfocalPoint,\n\t\t\t\tcontainerSize,\n\t\t\t\timageData\n\t\t\t),\n\t\t! focalPoint &&\n\t\t\timageData &&\n\t\t\tcontainerSize && {\n\t\t\t\theight:\n\t\t\t\t\timageData?.width > containerSize?.width\n\t\t\t\t\t\t? containerSize?.width / imageData?.aspectRatio\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\timageHeight && { height: imageHeight },\n\t\tshapeStyle,\n\t];\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tstyles.container,\n\t\t\t\t// Only set alignItems if an image exists because alignItems causes the placeholder\n\t\t\t\t// to disappear when an aligned image can't be downloaded\n\t\t\t\t// https://github.com/wordpress-mobile/gutenberg-mobile/issues/1592\n\t\t\t\timageData && align && { alignItems: align },\n\t\t\t\tstyle,\n\t\t\t] }\n\t\t\tonLayout={ onContainerLayout }\n\t\t>\n\t\t\t<View\n\t\t\t\taccessible\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ alt }\n\t\t\t\taccessibilityHint={ __( 'Double tap and hold to edit' ) }\n\t\t\t\taccessibilityRole={ 'imagebutton' }\n\t\t\t\tkey={ url }\n\t\t\t\tstyle={ imageContainerStyles }\n\t\t\t>\n\t\t\t\t{ isSelected &&\n\t\t\t\t\thighlightSelected &&\n\t\t\t\t\t! ( isUploadInProgress || isUploadFailed ) && (\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.imageBorder,\n\t\t\t\t\t\t\t\t{ height: containerSize?.height },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t{ ! imageData ? (\n\t\t\t\t\t<View style={ placeholderStyles }>\n\t\t\t\t\t\t<View style={ styles.imageUploadingIconContainer }>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.UPLOAD ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) : (\n\t\t\t\t\t<View style={ focalPoint && styles.focalPointContent }>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t{ ...( ! focalPoint && {\n\t\t\t\t\t\t\t\tresizeMethod: 'scale',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tresizeMode={ imageResizeMode }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ isUploadFailed && retryMessage && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\t\t\tstyles.retryContainer,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.retryIcon,\n\t\t\t\t\t\t\t\tretryIcon && styles.customRetryIcon,\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.RETRY ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t<Text style={ styles.uploadFailedText }>\n\t\t\t\t\t\t\t{ retryMessage }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\n\t\t\t{ editButton && isSelected && ! isUploadInProgress && (\n\t\t\t\t<ImageEditingButton\n\t\t\t\t\tonSelectMediaUploadOption={ onSelectMediaUploadOption }\n\t\t\t\t\topenMediaOptions={ openMediaOptions }\n\t\t\t\t\turl={ ! isUploadFailed && imageData && url }\n\t\t\t\t\tpickerOptions={ mediaPickerOptions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</View>\n\t);\n};\n\nexport default ImageComponent;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/image/index.native.js"],"names":["Image","RNImage","Text","View","useWindowDimensions","FastImage","__","Icon","image","icon","usePreferredColorSchemeStyle","useEffect","useState","useRef","Platform","getImageWithFocalPointStyles","styles","SvgIconRetry","ImageEditingButton","ICON_TYPE","PLACEHOLDER","RETRY","UPLOAD","IMAGE_DEFAULT_FOCAL_POINT","x","y","ImageComponent","align","alt","editButton","focalPoint","height","imageHeight","highlightSelected","isSelected","shouldUseFastImage","isUploadFailed","isUploadInProgress","mediaPickerOptions","onImageDataLoad","onSelectMediaUploadOption","openMediaOptions","resizeMode","retryMessage","retryIcon","url","shapeStyle","style","width","imageWidth","imageData","setImageData","containerSize","setContainerSize","shouldUseFallback","setShouldUseFallback","windowHeight","windowWidth","isLandscape","imageResizeMode","isCurrent","getSize","imgWidth","imgHeight","metaData","aspectRatio","isAndroid","isCurrentOrientationLandscape","current","onContainerLayout","event","nativeEvent","layout","getIcon","iconType","iconStyle","iconRetry","iconPlaceholderStyles","iconUploadStyles","iconPlaceholder","iconPlaceholderDark","iconUpload","iconUploadDark","placeholderStyles","imageContainerUpload","imageContainerUploadDark","imageContainerUploadWithFocalpoint","customWidth","wide","imageContainerStyles","imageContent","focalPointContainer","imageStyles","opacity","undefined","container","alignItems","imageBorder","imageUploadingIconContainer","focalPointContent","uri","resizeMethod","imageContainer","retryContainer","customRetryIcon","uploadFailedText"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tImage as RNImage,\n\tText,\n\tView,\n\tuseWindowDimensions,\n} from 'react-native';\nimport FastImage from 'react-native-fast-image';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon } from '@wordpress/components';\nimport { image as icon } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { useEffect, useState, useRef, Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getImageWithFocalPointStyles } from './utils';\nimport styles from './style.scss';\nimport SvgIconRetry from './icon-retry';\nimport ImageEditingButton from './image-editing-button';\n\nconst ICON_TYPE = {\n\tPLACEHOLDER: 'placeholder',\n\tRETRY: 'retry',\n\tUPLOAD: 'upload',\n};\n\nexport const IMAGE_DEFAULT_FOCAL_POINT = { x: 0.5, y: 0.5 };\n\nconst ImageComponent = ( {\n\talign,\n\talt,\n\teditButton = true,\n\tfocalPoint,\n\theight: imageHeight,\n\thighlightSelected = true,\n\tisSelected,\n\tshouldUseFastImage,\n\tisUploadFailed,\n\tisUploadInProgress,\n\tmediaPickerOptions,\n\tonImageDataLoad,\n\tonSelectMediaUploadOption,\n\topenMediaOptions,\n\tresizeMode,\n\tretryMessage,\n\tretryIcon,\n\turl,\n\tshapeStyle,\n\tstyle,\n\twidth: imageWidth,\n} ) => {\n\tconst [ imageData, setImageData ] = useState( null );\n\tconst [ containerSize, setContainerSize ] = useState( null );\n\tconst [ shouldUseFallback, setShouldUseFallback ] = useState( false );\n\tconst { height: windowHeight, width: windowWidth } = useWindowDimensions();\n\tconst isLandscape = useRef( windowWidth > windowHeight );\n\n\tconst Image = ! shouldUseFastImage ? RNImage : FastImage;\n\tconst imageResizeMode = ! shouldUseFastImage\n\t\t? resizeMode\n\t\t: FastImage.resizeMode[ resizeMode ];\n\n\tuseEffect( () => {\n\t\tlet isCurrent = true;\n\t\tif ( url ) {\n\t\t\tRNImage.getSize( url, ( imgWidth, imgHeight ) => {\n\t\t\t\tif ( ! isCurrent ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst metaData = {\n\t\t\t\t\taspectRatio: imgWidth / imgHeight,\n\t\t\t\t\twidth: imgWidth,\n\t\t\t\t\theight: imgHeight,\n\t\t\t\t};\n\t\t\t\tsetImageData( metaData );\n\t\t\t\tif ( onImageDataLoad ) {\n\t\t\t\t\tonImageDataLoad( metaData );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => ( isCurrent = false );\n\t}, [ url ] );\n\n\t// Workaround for Android where changing the orientation breaks FastImage\n\t// for now if there's any orientation changes, it will use the fallback\n\t// prop to use the default Image component.\n\t// https://github.com/WordPress/gutenberg/issues/42869\n\tuseEffect( () => {\n\t\tif ( Platform.isAndroid && shouldUseFastImage ) {\n\t\t\tconst isCurrentOrientationLandscape = windowWidth > windowHeight;\n\n\t\t\tif ( isLandscape.current !== isCurrentOrientationLandscape ) {\n\t\t\t\tsetShouldUseFallback( true );\n\t\t\t\tisLandscape.current = isCurrentOrientationLandscape;\n\t\t\t}\n\t\t}\n\t}, [ windowHeight, windowWidth ] );\n\n\tconst onContainerLayout = ( event ) => {\n\t\tconst { height, width } = event.nativeEvent.layout;\n\n\t\tif (\n\t\t\twidth !== 0 &&\n\t\t\theight !== 0 &&\n\t\t\t( containerSize?.width !== width ||\n\t\t\t\tcontainerSize?.height !== height )\n\t\t) {\n\t\t\tsetContainerSize( { width, height } );\n\t\t}\n\t};\n\n\tconst getIcon = ( iconType ) => {\n\t\tlet iconStyle;\n\t\tswitch ( iconType ) {\n\t\t\tcase ICON_TYPE.RETRY:\n\t\t\t\treturn (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ retryIcon || SvgIconRetry }\n\t\t\t\t\t\t{ ...styles.iconRetry }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase ICON_TYPE.PLACEHOLDER:\n\t\t\t\ticonStyle = iconPlaceholderStyles;\n\t\t\t\tbreak;\n\t\t\tcase ICON_TYPE.UPLOAD:\n\t\t\t\ticonStyle = iconUploadStyles;\n\t\t\t\tbreak;\n\t\t}\n\t\treturn <Icon icon={ icon } { ...iconStyle } />;\n\t};\n\n\tconst iconPlaceholderStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconPlaceholder,\n\t\tstyles.iconPlaceholderDark\n\t);\n\n\tconst iconUploadStyles = usePreferredColorSchemeStyle(\n\t\tstyles.iconUpload,\n\t\tstyles.iconUploadDark\n\t);\n\n\tconst placeholderStyles = [\n\t\tusePreferredColorSchemeStyle(\n\t\t\tstyles.imageContainerUpload,\n\t\t\tstyles.imageContainerUploadDark\n\t\t),\n\t\tfocalPoint && styles.imageContainerUploadWithFocalpoint,\n\t\timageHeight && { height: imageHeight },\n\t];\n\n\tconst customWidth =\n\t\timageData?.width < containerSize?.width\n\t\t\t? imageData?.width\n\t\t\t: styles.wide?.width;\n\n\tconst imageContainerStyles = [\n\t\tstyles.imageContent,\n\t\t{\n\t\t\twidth:\n\t\t\t\timageWidth === styles.wide?.width ||\n\t\t\t\t( imageData &&\n\t\t\t\t\timageWidth > 0 &&\n\t\t\t\t\timageWidth < containerSize?.width )\n\t\t\t\t\t? imageWidth\n\t\t\t\t\t: customWidth,\n\t\t},\n\t\tresizeMode && { width: styles.wide?.width },\n\t\tfocalPoint && styles.focalPointContainer,\n\t];\n\n\tconst imageStyles = [\n\t\t{\n\t\t\topacity: isUploadInProgress ? 0.3 : 1,\n\t\t\theight: containerSize?.height,\n\t\t},\n\t\t! resizeMode && {\n\t\t\taspectRatio: imageData?.aspectRatio,\n\t\t},\n\t\tfocalPoint && styles.focalPoint,\n\t\tfocalPoint &&\n\t\t\tgetImageWithFocalPointStyles(\n\t\t\t\tfocalPoint,\n\t\t\t\tcontainerSize,\n\t\t\t\timageData\n\t\t\t),\n\t\t! focalPoint &&\n\t\t\timageData &&\n\t\t\tcontainerSize && {\n\t\t\t\theight:\n\t\t\t\t\timageData?.width > containerSize?.width\n\t\t\t\t\t\t? containerSize?.width / imageData?.aspectRatio\n\t\t\t\t\t\t: undefined,\n\t\t\t},\n\t\timageHeight && { height: imageHeight },\n\t\tshapeStyle,\n\t];\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tstyles.container,\n\t\t\t\t// Only set alignItems if an image exists because alignItems causes the placeholder\n\t\t\t\t// to disappear when an aligned image can't be downloaded\n\t\t\t\t// https://github.com/wordpress-mobile/gutenberg-mobile/issues/1592\n\t\t\t\timageData && align && { alignItems: align },\n\t\t\t\tstyle,\n\t\t\t] }\n\t\t\tonLayout={ onContainerLayout }\n\t\t>\n\t\t\t<View\n\t\t\t\taccessible\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ alt }\n\t\t\t\taccessibilityHint={ __( 'Double tap and hold to edit' ) }\n\t\t\t\taccessibilityRole={ 'imagebutton' }\n\t\t\t\tkey={ url }\n\t\t\t\tstyle={ imageContainerStyles }\n\t\t\t>\n\t\t\t\t{ isSelected &&\n\t\t\t\t\thighlightSelected &&\n\t\t\t\t\t! ( isUploadInProgress || isUploadFailed ) && (\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.imageBorder,\n\t\t\t\t\t\t\t\t{ height: containerSize?.height },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t{ ! imageData ? (\n\t\t\t\t\t<View style={ placeholderStyles }>\n\t\t\t\t\t\t<View style={ styles.imageUploadingIconContainer }>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.UPLOAD ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t) : (\n\t\t\t\t\t<View style={ focalPoint && styles.focalPointContent }>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tstyle={ imageStyles }\n\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t{ ...( ! focalPoint && {\n\t\t\t\t\t\t\t\tresizeMethod: 'scale',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\tresizeMode={ imageResizeMode }\n\t\t\t\t\t\t\tfallback={ shouldUseFallback }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\n\t\t\t\t{ isUploadFailed && retryMessage && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\tstyles.imageContainer,\n\t\t\t\t\t\t\tstyles.retryContainer,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\tstyles.retryIcon,\n\t\t\t\t\t\t\t\tretryIcon && styles.customRetryIcon,\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getIcon( ICON_TYPE.RETRY ) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t\t<Text style={ styles.uploadFailedText }>\n\t\t\t\t\t\t\t{ retryMessage }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\n\t\t\t{ editButton && isSelected && ! isUploadInProgress && (\n\t\t\t\t<ImageEditingButton\n\t\t\t\t\tonSelectMediaUploadOption={ onSelectMediaUploadOption }\n\t\t\t\t\topenMediaOptions={ openMediaOptions }\n\t\t\t\t\turl={ ! isUploadFailed && imageData && url }\n\t\t\t\t\tpickerOptions={ mediaPickerOptions }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</View>\n\t);\n};\n\nexport default ImageComponent;\n"]}
@@ -5,12 +5,11 @@ import { createElement } from "@wordpress/element";
5
5
  */
6
6
  import { Keyboard } from 'react-native';
7
7
  import { useNavigation, useRoute } from '@react-navigation/native';
8
- import { delay } from 'lodash';
9
8
  /**
10
9
  * WordPress dependencies
11
10
  */
12
11
 
13
- import { useMemo } from '@wordpress/element';
12
+ import { useEffect, useMemo, useRef } from '@wordpress/element';
14
13
  /**
15
14
  * Internal dependencies
16
15
  */
@@ -23,6 +22,8 @@ const LinkPickerScreen = _ref => {
23
22
  } = _ref;
24
23
  const navigation = useNavigation();
25
24
  const route = useRoute();
25
+ const navigateToLinkTimeoutRef = useRef(null);
26
+ const navigateBackTimeoutRef = useRef(null);
26
27
 
27
28
  const onLinkPicked = _ref2 => {
28
29
  let {
@@ -30,7 +31,7 @@ const LinkPickerScreen = _ref => {
30
31
  title
31
32
  } = _ref2;
32
33
  Keyboard.dismiss();
33
- delay(() => {
34
+ navigateToLinkTimeoutRef.current = setTimeout(() => {
34
35
  navigation.navigate(returnScreenName, {
35
36
  inputValue: url,
36
37
  text: title
@@ -40,11 +41,17 @@ const LinkPickerScreen = _ref => {
40
41
 
41
42
  const onCancel = () => {
42
43
  Keyboard.dismiss();
43
- delay(() => {
44
+ navigateBackTimeoutRef.current = setTimeout(() => {
44
45
  navigation.goBack();
45
46
  }, 100);
46
47
  };
47
48
 
49
+ useEffect(() => {
50
+ return () => {
51
+ clearTimeout(navigateToLinkTimeoutRef.current);
52
+ clearTimeout(navigateBackTimeoutRef.current);
53
+ };
54
+ }, []);
48
55
  const {
49
56
  inputValue
50
57
  } = route.params;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/link-picker-screen.native.js"],"names":["Keyboard","useNavigation","useRoute","delay","useMemo","LinkPicker","LinkPickerScreen","returnScreenName","navigation","route","onLinkPicked","url","title","dismiss","navigate","inputValue","text","onCancel","goBack","params"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,cAAzB;AACA,SAASC,aAAT,EAAwBC,QAAxB,QAAwC,0BAAxC;AACA,SAASC,KAAT,QAAsB,QAAtB;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,IAA3B;;AAEA,MAAMC,gBAAgB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA;AAAF,GAA0B;AACpD,QAAMC,UAAU,GAAGP,aAAa,EAAhC;AACA,QAAMQ,KAAK,GAAGP,QAAQ,EAAtB;;AAEA,QAAMQ,YAAY,GAAG,SAAsB;AAAA,QAApB;AAAEC,MAAAA,GAAF;AAAOC,MAAAA;AAAP,KAAoB;AAC1CZ,IAAAA,QAAQ,CAACa,OAAT;AACAV,IAAAA,KAAK,CAAE,MAAM;AACZK,MAAAA,UAAU,CAACM,QAAX,CAAqBP,gBAArB,EAAuC;AACtCQ,QAAAA,UAAU,EAAEJ,GAD0B;AAEtCK,QAAAA,IAAI,EAAEJ;AAFgC,OAAvC;AAIA,KALI,EAKF,GALE,CAAL;AAMA,GARD;;AAUA,QAAMK,QAAQ,GAAG,MAAM;AACtBjB,IAAAA,QAAQ,CAACa,OAAT;AACAV,IAAAA,KAAK,CAAE,MAAM;AACZK,MAAAA,UAAU,CAACU,MAAX;AACA,KAFI,EAEF,GAFE,CAAL;AAGA,GALD;;AAOA,QAAM;AAAEH,IAAAA;AAAF,MAAiBN,KAAK,CAACU,MAA7B;AACA,SAAOf,OAAO,CAAE,MAAM;AACrB,WACC,cAAC,UAAD;AACC,MAAA,KAAK,EAAGW,UADT;AAEC,MAAA,YAAY,EAAGL,YAFhB;AAGC,MAAA,QAAQ,EAAGO;AAHZ,MADD;AAOA,GARa,EAQX,CAAEF,UAAF,CARW,CAAd;AASA,CA/BD;;AAiCA,eAAeT,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { LinkPicker } from './';\n\nconst LinkPickerScreen = ( { returnScreenName } ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tdelay( () => {\n\t\t\tnavigation.navigate( returnScreenName, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tdelay( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-picker/link-picker-screen.native.js"],"names":["Keyboard","useNavigation","useRoute","useEffect","useMemo","useRef","LinkPicker","LinkPickerScreen","returnScreenName","navigation","route","navigateToLinkTimeoutRef","navigateBackTimeoutRef","onLinkPicked","url","title","dismiss","current","setTimeout","navigate","inputValue","text","onCancel","goBack","clearTimeout","params"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,cAAzB;AACA,SAASC,aAAT,EAAwBC,QAAxB,QAAwC,0BAAxC;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,OAApB,EAA6BC,MAA7B,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,IAA3B;;AAEA,MAAMC,gBAAgB,GAAG,QAA4B;AAAA,MAA1B;AAAEC,IAAAA;AAAF,GAA0B;AACpD,QAAMC,UAAU,GAAGR,aAAa,EAAhC;AACA,QAAMS,KAAK,GAAGR,QAAQ,EAAtB;AACA,QAAMS,wBAAwB,GAAGN,MAAM,CAAE,IAAF,CAAvC;AACA,QAAMO,sBAAsB,GAAGP,MAAM,CAAE,IAAF,CAArC;;AAEA,QAAMQ,YAAY,GAAG,SAAsB;AAAA,QAApB;AAAEC,MAAAA,GAAF;AAAOC,MAAAA;AAAP,KAAoB;AAC1Cf,IAAAA,QAAQ,CAACgB,OAAT;AACAL,IAAAA,wBAAwB,CAACM,OAAzB,GAAmCC,UAAU,CAAE,MAAM;AACpDT,MAAAA,UAAU,CAACU,QAAX,CAAqBX,gBAArB,EAAuC;AACtCY,QAAAA,UAAU,EAAEN,GAD0B;AAEtCO,QAAAA,IAAI,EAAEN;AAFgC,OAAvC;AAIA,KAL4C,EAK1C,GAL0C,CAA7C;AAMA,GARD;;AAUA,QAAMO,QAAQ,GAAG,MAAM;AACtBtB,IAAAA,QAAQ,CAACgB,OAAT;AACAJ,IAAAA,sBAAsB,CAACK,OAAvB,GAAiCC,UAAU,CAAE,MAAM;AAClDT,MAAAA,UAAU,CAACc,MAAX;AACA,KAF0C,EAExC,GAFwC,CAA3C;AAGA,GALD;;AAOApB,EAAAA,SAAS,CAAE,MAAM;AAChB,WAAO,MAAM;AACZqB,MAAAA,YAAY,CAAEb,wBAAwB,CAACM,OAA3B,CAAZ;AACAO,MAAAA,YAAY,CAAEZ,sBAAsB,CAACK,OAAzB,CAAZ;AACA,KAHD;AAIA,GALQ,EAKN,EALM,CAAT;AAOA,QAAM;AAAEG,IAAAA;AAAF,MAAiBV,KAAK,CAACe,MAA7B;AACA,SAAOrB,OAAO,CAAE,MAAM;AACrB,WACC,cAAC,UAAD;AACC,MAAA,KAAK,EAAGgB,UADT;AAEC,MAAA,YAAY,EAAGP,YAFhB;AAGC,MAAA,QAAQ,EAAGS;AAHZ,MADD;AAOA,GARa,EAQX,CAAEF,UAAF,CARW,CAAd;AASA,CAxCD;;AA0CA,eAAeb,gBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { Keyboard } from 'react-native';\nimport { useNavigation, useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useMemo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { LinkPicker } from './';\n\nconst LinkPickerScreen = ( { returnScreenName } ) => {\n\tconst navigation = useNavigation();\n\tconst route = useRoute();\n\tconst navigateToLinkTimeoutRef = useRef( null );\n\tconst navigateBackTimeoutRef = useRef( null );\n\n\tconst onLinkPicked = ( { url, title } ) => {\n\t\tKeyboard.dismiss();\n\t\tnavigateToLinkTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.navigate( returnScreenName, {\n\t\t\t\tinputValue: url,\n\t\t\t\ttext: title,\n\t\t\t} );\n\t\t}, 100 );\n\t};\n\n\tconst onCancel = () => {\n\t\tKeyboard.dismiss();\n\t\tnavigateBackTimeoutRef.current = setTimeout( () => {\n\t\t\tnavigation.goBack();\n\t\t}, 100 );\n\t};\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tclearTimeout( navigateToLinkTimeoutRef.current );\n\t\t\tclearTimeout( navigateBackTimeoutRef.current );\n\t\t};\n\t}, [] );\n\n\tconst { inputValue } = route.params;\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\t<LinkPicker\n\t\t\t\tvalue={ inputValue }\n\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\tonCancel={ onCancel }\n\t\t\t/>\n\t\t);\n\t}, [ inputValue ] );\n};\n\nexport default LinkPickerScreen;\n"]}
@@ -13,6 +13,12 @@ import { __ } from '@wordpress/i18n';
13
13
  import { Component, forwardRef, useContext } from '@wordpress/element';
14
14
  import { useDispatch, useSelect } from '@wordpress/data';
15
15
  import { BottomSheetContext } from '@wordpress/components';
16
+ import { usePreferredColorScheme } from '@wordpress/compose';
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+
21
+ import styles from './styles.scss';
16
22
 
17
23
  class Picker extends Component {
18
24
  presentPicker() {
@@ -25,7 +31,8 @@ class Picker extends Component {
25
31
  getAnchor,
26
32
  isBottomSheetOpened,
27
33
  closeBottomSheet,
28
- onHandleClosingBottomSheet
34
+ onHandleClosingBottomSheet,
35
+ colorScheme
29
36
  } = this.props;
30
37
  const labels = options.map(_ref => {
31
38
  let {
@@ -34,13 +41,15 @@ class Picker extends Component {
34
41
  return label;
35
42
  });
36
43
  const fullOptions = [__('Cancel')].concat(labels);
44
+ const buttonTitleColor = colorScheme === 'light' ? styles['components-picker__button-title'].color : styles['components-picker__button-title--dark'].color;
37
45
  ActionSheetIOS.showActionSheetWithOptions({
38
46
  title,
39
47
  options: fullOptions,
40
48
  cancelButtonIndex: 0,
41
49
  destructiveButtonIndex,
42
50
  disabledButtonIndices,
43
- anchor: getAnchor && getAnchor()
51
+ anchor: getAnchor && getAnchor(),
52
+ tintColor: buttonTitleColor
44
53
  }, buttonIndex => {
45
54
  if (buttonIndex === 0) {
46
55
  return;
@@ -73,12 +82,14 @@ const PickerComponent = forwardRef((props, ref) => {
73
82
  const {
74
83
  onHandleClosingBottomSheet
75
84
  } = useContext(BottomSheetContext);
85
+ const colorScheme = usePreferredColorScheme();
76
86
  return createElement(Picker, _extends({
77
87
  ref: ref
78
88
  }, props, {
79
89
  isBottomSheetOpened: isBottomSheetOpened,
80
90
  closeBottomSheet: closeGeneralSidebar,
81
- onHandleClosingBottomSheet: onHandleClosingBottomSheet
91
+ onHandleClosingBottomSheet: onHandleClosingBottomSheet,
92
+ colorScheme: colorScheme
82
93
  }));
83
94
  });
84
95
  export default PickerComponent;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/picker/index.ios.js"],"names":["ActionSheetIOS","__","Component","forwardRef","useContext","useDispatch","useSelect","BottomSheetContext","Picker","presentPicker","options","onChange","title","destructiveButtonIndex","disabledButtonIndices","getAnchor","isBottomSheetOpened","closeBottomSheet","onHandleClosingBottomSheet","props","labels","map","label","fullOptions","concat","showActionSheetWithOptions","cancelButtonIndex","anchor","buttonIndex","selected","requiresModal","value","render","PickerComponent","ref","select","isEditorSidebarOpened","closeGeneralSidebar"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,cAAT,QAA+B,cAA/B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,UAApB,EAAgCC,UAAhC,QAAkD,oBAAlD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,kBAAT,QAAmC,uBAAnC;;AAEA,MAAMC,MAAN,SAAqBN,SAArB,CAA+B;AAC9BO,EAAAA,aAAa,GAAG;AACf,UAAM;AACLC,MAAAA,OADK;AAELC,MAAAA,QAFK;AAGLC,MAAAA,KAHK;AAILC,MAAAA,sBAJK;AAKLC,MAAAA,qBALK;AAMLC,MAAAA,SANK;AAOLC,MAAAA,mBAPK;AAQLC,MAAAA,gBARK;AASLC,MAAAA;AATK,QAUF,KAAKC,KAVT;AAWA,UAAMC,MAAM,GAAGV,OAAO,CAACW,GAAR,CAAa;AAAA,UAAE;AAAEC,QAAAA;AAAF,OAAF;AAAA,aAAiBA,KAAjB;AAAA,KAAb,CAAf;AACA,UAAMC,WAAW,GAAG,CAAEtB,EAAE,CAAE,QAAF,CAAJ,EAAmBuB,MAAnB,CAA2BJ,MAA3B,CAApB;AAEApB,IAAAA,cAAc,CAACyB,0BAAf,CACC;AACCb,MAAAA,KADD;AAECF,MAAAA,OAAO,EAAEa,WAFV;AAGCG,MAAAA,iBAAiB,EAAE,CAHpB;AAICb,MAAAA,sBAJD;AAKCC,MAAAA,qBALD;AAMCa,MAAAA,MAAM,EAAEZ,SAAS,IAAIA,SAAS;AAN/B,KADD,EASGa,WAAF,IAAmB;AAClB,UAAKA,WAAW,KAAK,CAArB,EAAyB;AACxB;AACA;;AACD,YAAMC,QAAQ,GAAGnB,OAAO,CAAEkB,WAAW,GAAG,CAAhB,CAAxB;;AAEA,UAAKC,QAAQ,CAACC,aAAT,IAA0Bd,mBAA/B,EAAqD;AACpDE,QAAAA,0BAA0B,CAAE,MAAM;AACjCP,UAAAA,QAAQ,CAAEkB,QAAQ,CAACE,KAAX,CAAR;AACA,SAFyB,CAA1B;AAGAd,QAAAA,gBAAgB;AAChB,OALD,MAKO;AACNN,QAAAA,QAAQ,CAAEkB,QAAQ,CAACE,KAAX,CAAR;AACA;AACD,KAvBF;AAyBA;;AAEDC,EAAAA,MAAM,GAAG;AACR,WAAO,IAAP;AACA;;AA7C6B;;AAgD/B,MAAMC,eAAe,GAAG9B,UAAU,CAAE,CAAEgB,KAAF,EAASe,GAAT,KAAkB;AACrD,QAAMlB,mBAAmB,GAAGV,SAAS,CAAI6B,MAAF,IACtCA,MAAM,CAAE,gBAAF,CAAN,CAA2BC,qBAA3B,EADoC,CAArC;AAGA,QAAM;AAAEC,IAAAA;AAAF,MAA0BhC,WAAW,CAAE,gBAAF,CAA3C;AACA,QAAM;AAAEa,IAAAA;AAAF,MAAiCd,UAAU,CAAEG,kBAAF,CAAjD;AAEA,SACC,cAAC,MAAD;AACC,IAAA,GAAG,EAAG2B;AADP,KAEMf,KAFN;AAGC,IAAA,mBAAmB,EAAGH,mBAHvB;AAIC,IAAA,gBAAgB,EAAGqB,mBAJpB;AAKC,IAAA,0BAA0B,EAAGnB;AAL9B,KADD;AASA,CAhBiC,CAAlC;AAkBA,eAAee,eAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { ActionSheetIOS } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, forwardRef, useContext } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { BottomSheetContext } from '@wordpress/components';\n\nclass Picker extends Component {\n\tpresentPicker() {\n\t\tconst {\n\t\t\toptions,\n\t\t\tonChange,\n\t\t\ttitle,\n\t\t\tdestructiveButtonIndex,\n\t\t\tdisabledButtonIndices,\n\t\t\tgetAnchor,\n\t\t\tisBottomSheetOpened,\n\t\t\tcloseBottomSheet,\n\t\t\tonHandleClosingBottomSheet,\n\t\t} = this.props;\n\t\tconst labels = options.map( ( { label } ) => label );\n\t\tconst fullOptions = [ __( 'Cancel' ) ].concat( labels );\n\n\t\tActionSheetIOS.showActionSheetWithOptions(\n\t\t\t{\n\t\t\t\ttitle,\n\t\t\t\toptions: fullOptions,\n\t\t\t\tcancelButtonIndex: 0,\n\t\t\t\tdestructiveButtonIndex,\n\t\t\t\tdisabledButtonIndices,\n\t\t\t\tanchor: getAnchor && getAnchor(),\n\t\t\t},\n\t\t\t( buttonIndex ) => {\n\t\t\t\tif ( buttonIndex === 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst selected = options[ buttonIndex - 1 ];\n\n\t\t\t\tif ( selected.requiresModal && isBottomSheetOpened ) {\n\t\t\t\t\tonHandleClosingBottomSheet( () => {\n\t\t\t\t\t\tonChange( selected.value );\n\t\t\t\t\t} );\n\t\t\t\t\tcloseBottomSheet();\n\t\t\t\t} else {\n\t\t\t\t\tonChange( selected.value );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\trender() {\n\t\treturn null;\n\t}\n}\n\nconst PickerComponent = forwardRef( ( props, ref ) => {\n\tconst isBottomSheetOpened = useSelect( ( select ) =>\n\t\tselect( 'core/edit-post' ).isEditorSidebarOpened()\n\t);\n\tconst { closeGeneralSidebar } = useDispatch( 'core/edit-post' );\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\n\treturn (\n\t\t<Picker\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tisBottomSheetOpened={ isBottomSheetOpened }\n\t\t\tcloseBottomSheet={ closeGeneralSidebar }\n\t\t\tonHandleClosingBottomSheet={ onHandleClosingBottomSheet }\n\t\t/>\n\t);\n} );\n\nexport default PickerComponent;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/picker/index.ios.js"],"names":["ActionSheetIOS","__","Component","forwardRef","useContext","useDispatch","useSelect","BottomSheetContext","usePreferredColorScheme","styles","Picker","presentPicker","options","onChange","title","destructiveButtonIndex","disabledButtonIndices","getAnchor","isBottomSheetOpened","closeBottomSheet","onHandleClosingBottomSheet","colorScheme","props","labels","map","label","fullOptions","concat","buttonTitleColor","color","showActionSheetWithOptions","cancelButtonIndex","anchor","tintColor","buttonIndex","selected","requiresModal","value","render","PickerComponent","ref","select","isEditorSidebarOpened","closeGeneralSidebar"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { ActionSheetIOS } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, forwardRef, useContext } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { BottomSheetContext } from '@wordpress/components';\nimport { usePreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nclass Picker extends Component {\n\tpresentPicker() {\n\t\tconst {\n\t\t\toptions,\n\t\t\tonChange,\n\t\t\ttitle,\n\t\t\tdestructiveButtonIndex,\n\t\t\tdisabledButtonIndices,\n\t\t\tgetAnchor,\n\t\t\tisBottomSheetOpened,\n\t\t\tcloseBottomSheet,\n\t\t\tonHandleClosingBottomSheet,\n\t\t\tcolorScheme,\n\t\t} = this.props;\n\t\tconst labels = options.map( ( { label } ) => label );\n\t\tconst fullOptions = [ __( 'Cancel' ) ].concat( labels );\n\n\t\tconst buttonTitleColor =\n\t\t\tcolorScheme === 'light'\n\t\t\t\t? styles[ 'components-picker__button-title' ].color\n\t\t\t\t: styles[ 'components-picker__button-title--dark' ].color;\n\n\t\tActionSheetIOS.showActionSheetWithOptions(\n\t\t\t{\n\t\t\t\ttitle,\n\t\t\t\toptions: fullOptions,\n\t\t\t\tcancelButtonIndex: 0,\n\t\t\t\tdestructiveButtonIndex,\n\t\t\t\tdisabledButtonIndices,\n\t\t\t\tanchor: getAnchor && getAnchor(),\n\t\t\t\ttintColor: buttonTitleColor,\n\t\t\t},\n\t\t\t( buttonIndex ) => {\n\t\t\t\tif ( buttonIndex === 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst selected = options[ buttonIndex - 1 ];\n\n\t\t\t\tif ( selected.requiresModal && isBottomSheetOpened ) {\n\t\t\t\t\tonHandleClosingBottomSheet( () => {\n\t\t\t\t\t\tonChange( selected.value );\n\t\t\t\t\t} );\n\t\t\t\t\tcloseBottomSheet();\n\t\t\t\t} else {\n\t\t\t\t\tonChange( selected.value );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\trender() {\n\t\treturn null;\n\t}\n}\n\nconst PickerComponent = forwardRef( ( props, ref ) => {\n\tconst isBottomSheetOpened = useSelect( ( select ) =>\n\t\tselect( 'core/edit-post' ).isEditorSidebarOpened()\n\t);\n\tconst { closeGeneralSidebar } = useDispatch( 'core/edit-post' );\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\n\tconst colorScheme = usePreferredColorScheme();\n\n\treturn (\n\t\t<Picker\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tisBottomSheetOpened={ isBottomSheetOpened }\n\t\t\tcloseBottomSheet={ closeGeneralSidebar }\n\t\t\tonHandleClosingBottomSheet={ onHandleClosingBottomSheet }\n\t\t\tcolorScheme={ colorScheme }\n\t\t/>\n\t);\n} );\n\nexport default PickerComponent;\n"]}