@wordpress/components 28.9.0 → 28.10.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 (689) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/build/alignment-matrix-control/icon.js.map +1 -1
  3. package/build/alignment-matrix-control/types.js.map +1 -1
  4. package/build/alignment-matrix-control/utils.js.map +1 -1
  5. package/build/angle-picker-control/angle-circle.js.map +1 -1
  6. package/build/autocomplete/autocompleter-ui.js +3 -3
  7. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  8. package/build/autocomplete/get-default-use-items.js.map +1 -1
  9. package/build/autocomplete/index.js +1 -0
  10. package/build/autocomplete/index.js.map +1 -1
  11. package/build/base-control/hooks.js.map +1 -1
  12. package/build/base-control/index.js.map +1 -1
  13. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  14. package/build/border-box-control/styles.js.map +1 -1
  15. package/build/border-box-control/utils.js.map +1 -1
  16. package/build/border-control/border-control/hook.js.map +1 -1
  17. package/build/border-control/styles.js.map +1 -1
  18. package/build/box-control/axial-input-controls.js.map +1 -1
  19. package/build/box-control/icon.js.map +1 -1
  20. package/build/box-control/index.js.map +1 -1
  21. package/build/box-control/input-controls.js.map +1 -1
  22. package/build/button/index.native.js +1 -1
  23. package/build/button/index.native.js.map +1 -1
  24. package/build/card/card/component.js +1 -1
  25. package/build/card/card/component.js.map +1 -1
  26. package/build/card/styles.js.map +1 -1
  27. package/build/color-palette/index.js.map +1 -1
  28. package/build/color-palette/index.native.js +2 -1
  29. package/build/color-palette/index.native.js.map +1 -1
  30. package/build/color-picker/styles.js.map +1 -1
  31. package/build/combobox-control/index.js +1 -1
  32. package/build/combobox-control/index.js.map +1 -1
  33. package/build/composite/legacy/index.js.map +1 -1
  34. package/build/context/context-connect.js +1 -0
  35. package/build/context/context-connect.js.map +1 -1
  36. package/build/context/context-system-provider.js +1 -1
  37. package/build/context/context-system-provider.js.map +1 -1
  38. package/build/context/get-styled-class-name-from-key.js.map +1 -1
  39. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  40. package/build/custom-gradient-picker/index.js.map +1 -1
  41. package/build/custom-gradient-picker/serializer.js.map +1 -1
  42. package/build/custom-gradient-picker/utils.js.map +1 -1
  43. package/build/custom-select-control-v2/styles.js.map +1 -1
  44. package/build/dashicon/index.js.map +1 -1
  45. package/build/date-time/date/styles.js.map +1 -1
  46. package/build/date-time/time/timezone.js.map +1 -1
  47. package/build/draggable/index.js.map +1 -1
  48. package/build/drop-zone/index.js +1 -2
  49. package/build/drop-zone/index.js.map +1 -1
  50. package/build/dropdown-menu-v2/styles.js.map +1 -1
  51. package/build/duotone-picker/color-list-picker/index.js.map +1 -1
  52. package/build/duotone-picker/utils.js.map +1 -1
  53. package/build/elevation/hook.js.map +1 -1
  54. package/build/external-link/index.js +20 -23
  55. package/build/external-link/index.js.map +1 -1
  56. package/build/focal-point-picker/index.js.map +1 -1
  57. package/build/focal-point-picker/index.native.js.map +1 -1
  58. package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
  59. package/build/font-size-picker/index.js.map +1 -1
  60. package/build/form-token-field/index.js +2 -1
  61. package/build/form-token-field/index.js.map +1 -1
  62. package/build/form-token-field/suggestions-list.js.map +1 -1
  63. package/build/form-token-field/token-input.js.map +1 -1
  64. package/build/form-token-field/token.js +1 -1
  65. package/build/form-token-field/token.js.map +1 -1
  66. package/build/gradient-picker/index.js.map +1 -1
  67. package/build/grid/hook.js.map +1 -1
  68. package/build/guide/page-control.js +1 -1
  69. package/build/guide/page-control.js.map +1 -1
  70. package/build/h-stack/hook.js.map +1 -1
  71. package/build/heading/hook.js.map +1 -1
  72. package/build/input-control/index.js.map +1 -1
  73. package/build/input-control/input-base.js.map +1 -1
  74. package/build/input-control/styles/input-control-styles.js.map +1 -1
  75. package/build/item-group/styles.js.map +1 -1
  76. package/build/menu-group/index.js.map +1 -1
  77. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  78. package/build/mobile/bottom-sheet/cell.native.js +4 -4
  79. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  80. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  81. package/build/mobile/bottom-sheet/range-cell.native.js +1 -1
  82. package/build/mobile/bottom-sheet/range-cell.native.js.map +1 -1
  83. package/build/mobile/bottom-sheet/range-text-input.native.js.map +1 -1
  84. package/build/mobile/bottom-sheet/stepper-cell/index.native.js +1 -1
  85. package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  86. package/build/mobile/bottom-sheet/switch-cell.native.js +4 -4
  87. package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  88. package/build/mobile/cycle-select-control/index.native.js.map +1 -1
  89. package/build/mobile/gradient/index.native.js.map +1 -1
  90. package/build/mobile/image/index.native.js.map +1 -1
  91. package/build/mobile/link-picker/index.native.js +1 -1
  92. package/build/mobile/link-picker/index.native.js.map +1 -1
  93. package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
  94. package/build/mobile/picker/index.android.js.map +1 -1
  95. package/build/mobile/segmented-control/index.native.js.map +1 -1
  96. package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -1
  97. package/build/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
  98. package/build/modal/aria-helper.js +2 -1
  99. package/build/modal/aria-helper.js.map +1 -1
  100. package/build/modal/index.js +2 -1
  101. package/build/modal/index.js.map +1 -1
  102. package/build/modal/use-modal-exit-animation.js.map +1 -1
  103. package/build/navigation/group/index.js.map +1 -1
  104. package/build/navigation/item/base.js.map +1 -1
  105. package/build/navigation/menu/index.js.map +1 -1
  106. package/build/navigation/menu/menu-title-search.js +2 -2
  107. package/build/navigation/menu/menu-title-search.js.map +1 -1
  108. package/build/navigation/menu/menu-title.js.map +1 -1
  109. package/build/navigation/styles/navigation-styles.js.map +1 -1
  110. package/build/navigator/navigator/component.js.map +1 -1
  111. package/build/navigator/navigator-button/hook.js.map +1 -1
  112. package/build/number-control/styles/number-control-styles.js.map +1 -1
  113. package/build/palette-edit/index.js +25 -2
  114. package/build/palette-edit/index.js.map +1 -1
  115. package/build/popover/index.js +1 -1
  116. package/build/popover/index.js.map +1 -1
  117. package/build/popover/overlay-middlewares.js.map +1 -1
  118. package/build/popover/utils.js.map +1 -1
  119. package/build/progress-bar/index.js.map +1 -1
  120. package/build/progress-bar/styles.js.map +1 -1
  121. package/build/query-controls/index.js.map +1 -1
  122. package/build/query-controls/index.native.js.map +1 -1
  123. package/build/radio-control/index.js.map +1 -1
  124. package/build/radio-control/index.native.js.map +1 -1
  125. package/build/range-control/index.js.map +1 -1
  126. package/build/range-control/index.native.js.map +1 -1
  127. package/build/range-control/rail.js.map +1 -1
  128. package/build/range-control/styles/range-control-styles.js +32 -32
  129. package/build/range-control/styles/range-control-styles.js.map +1 -1
  130. package/build/range-control/tooltip.js +1 -1
  131. package/build/range-control/tooltip.js.map +1 -1
  132. package/build/range-control/utils.js.map +1 -1
  133. package/build/resizable-box/resize-tooltip/label.js.map +1 -1
  134. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  135. package/build/responsive-wrapper/index.js.map +1 -1
  136. package/build/sandbox/index.js.map +1 -1
  137. package/build/sandbox/index.native.js.map +1 -1
  138. package/build/search-control/index.js +6 -0
  139. package/build/search-control/index.js.map +1 -1
  140. package/build/search-control/index.native.js.map +1 -1
  141. package/build/search-control/types.js.map +1 -1
  142. package/build/select-control/index.js.map +1 -1
  143. package/build/select-control/index.native.js.map +1 -1
  144. package/build/slot-fill/index.js.map +1 -1
  145. package/build/spinner/styles.js.map +1 -1
  146. package/build/style-provider/index.js +1 -0
  147. package/build/style-provider/index.js.map +1 -1
  148. package/build/surface/hook.js.map +1 -1
  149. package/build/surface/styles.js.map +1 -1
  150. package/build/tab-panel/index.js.map +1 -1
  151. package/build/tabs/index.js.map +1 -1
  152. package/build/tabs/styles.js +30 -12
  153. package/build/tabs/styles.js.map +1 -1
  154. package/build/tabs/tab.js +7 -2
  155. package/build/tabs/tab.js.map +1 -1
  156. package/build/tabs/tablist.js +47 -48
  157. package/build/tabs/tablist.js.map +1 -1
  158. package/build/tabs/tabpanel.js.map +1 -1
  159. package/build/text/get-line-height.js.map +1 -1
  160. package/build/text/styles/text-mixins.native.js.map +1 -1
  161. package/build/text/utils.js.map +1 -1
  162. package/build/text-control/index.native.js.map +1 -1
  163. package/build/text-highlight/index.js.map +1 -1
  164. package/build/textarea-control/index.js.map +1 -1
  165. package/build/theme/color-algorithms.js.map +1 -1
  166. package/build/theme/styles.js.map +1 -1
  167. package/build/toggle-control/index.js.map +1 -1
  168. package/build/toggle-control/index.native.js.map +1 -1
  169. package/build/toggle-group-control/toggle-group-control/as-radio-group.js +9 -1
  170. package/build/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  171. package/build/toggle-group-control/toggle-group-control/component.js +2 -60
  172. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  173. package/build/toggle-group-control/toggle-group-control-option-base/component.js +10 -10
  174. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  175. package/build/toggle-group-control/types.js.map +1 -1
  176. package/build/toolbar/toolbar/index.js.map +1 -1
  177. package/build/tools-panel/styles.js.map +1 -1
  178. package/build/tooltip/index.js +5 -1
  179. package/build/tooltip/index.js.map +1 -1
  180. package/build/unit-control/index.js.map +1 -1
  181. package/build/unit-control/utils.js.map +1 -1
  182. package/build/utils/breakpoint.js.map +1 -1
  183. package/build/utils/colors-values.js.map +1 -1
  184. package/build/utils/config-values.js.map +1 -1
  185. package/build/utils/font-size.js.map +1 -1
  186. package/build/utils/hooks/use-animated-offset-rect.js +80 -0
  187. package/build/utils/hooks/use-animated-offset-rect.js.map +1 -0
  188. package/build/utils/hooks/use-cx.js.map +1 -1
  189. package/build/utils/math.js +2 -2
  190. package/build/utils/math.js.map +1 -1
  191. package/build/utils/space.js.map +1 -1
  192. package/build/utils/unit-values.js.map +1 -1
  193. package/build/utils/use-responsive-value.js.map +1 -1
  194. package/build-module/alignment-matrix-control/cell.js +1 -2
  195. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  196. package/build-module/alignment-matrix-control/icon.js.map +1 -1
  197. package/build-module/alignment-matrix-control/types.js.map +1 -1
  198. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  199. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  200. package/build-module/angle-picker-control/index.js +1 -2
  201. package/build-module/angle-picker-control/index.js.map +1 -1
  202. package/build-module/autocomplete/autocompleter-ui.js +4 -6
  203. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  204. package/build-module/autocomplete/autocompleter-ui.native.js +1 -2
  205. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  206. package/build-module/autocomplete/get-default-use-items.js.map +1 -1
  207. package/build-module/autocomplete/index.js +2 -3
  208. package/build-module/autocomplete/index.js.map +1 -1
  209. package/build-module/base-control/hooks.js.map +1 -1
  210. package/build-module/base-control/index.js +1 -2
  211. package/build-module/base-control/index.js.map +1 -1
  212. package/build-module/base-control/index.native.js +1 -2
  213. package/build-module/base-control/index.native.js.map +1 -1
  214. package/build-module/border-box-control/border-box-control/component.js +1 -2
  215. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  216. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  217. package/build-module/border-box-control/border-box-control-split-controls/component.js +1 -2
  218. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  219. package/build-module/border-box-control/styles.js.map +1 -1
  220. package/build-module/border-box-control/utils.js.map +1 -1
  221. package/build-module/border-control/border-control/component.js +1 -2
  222. package/build-module/border-control/border-control/component.js.map +1 -1
  223. package/build-module/border-control/border-control/hook.js.map +1 -1
  224. package/build-module/border-control/border-control-dropdown/component.js +1 -3
  225. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  226. package/build-module/border-control/styles.js.map +1 -1
  227. package/build-module/box-control/all-input-control.js +1 -3
  228. package/build-module/box-control/all-input-control.js.map +1 -1
  229. package/build-module/box-control/axial-input-controls.js +1 -3
  230. package/build-module/box-control/axial-input-controls.js.map +1 -1
  231. package/build-module/box-control/icon.js +1 -2
  232. package/build-module/box-control/icon.js.map +1 -1
  233. package/build-module/box-control/index.js +1 -2
  234. package/build-module/box-control/index.js.map +1 -1
  235. package/build-module/box-control/input-controls.js +1 -3
  236. package/build-module/box-control/input-controls.js.map +1 -1
  237. package/build-module/button/index.js +1 -3
  238. package/build-module/button/index.js.map +1 -1
  239. package/build-module/button/index.native.js +2 -3
  240. package/build-module/button/index.native.js.map +1 -1
  241. package/build-module/card/card/component.js +2 -3
  242. package/build-module/card/card/component.js.map +1 -1
  243. package/build-module/card/styles.js.map +1 -1
  244. package/build-module/checkbox-control/index.js +1 -2
  245. package/build-module/checkbox-control/index.js.map +1 -1
  246. package/build-module/circular-option-picker/circular-option-picker-option.js +1 -2
  247. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  248. package/build-module/circular-option-picker/circular-option-picker.js +1 -2
  249. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  250. package/build-module/color-indicator/index.native.js +1 -2
  251. package/build-module/color-indicator/index.native.js.map +1 -1
  252. package/build-module/color-palette/index.js +1 -2
  253. package/build-module/color-palette/index.js.map +1 -1
  254. package/build-module/color-palette/index.native.js +3 -4
  255. package/build-module/color-palette/index.native.js.map +1 -1
  256. package/build-module/color-picker/component.js +1 -2
  257. package/build-module/color-picker/component.js.map +1 -1
  258. package/build-module/color-picker/hsl-input.js +1 -3
  259. package/build-module/color-picker/hsl-input.js.map +1 -1
  260. package/build-module/color-picker/hsv-color-picker.native.js +1 -2
  261. package/build-module/color-picker/hsv-color-picker.native.js.map +1 -1
  262. package/build-module/color-picker/hue-picker.native.js +1 -2
  263. package/build-module/color-picker/hue-picker.native.js.map +1 -1
  264. package/build-module/color-picker/index.native.js +1 -3
  265. package/build-module/color-picker/index.native.js.map +1 -1
  266. package/build-module/color-picker/input-with-slider.js +1 -2
  267. package/build-module/color-picker/input-with-slider.js.map +1 -1
  268. package/build-module/color-picker/rgb-input.js +1 -3
  269. package/build-module/color-picker/rgb-input.js.map +1 -1
  270. package/build-module/color-picker/saturation-picker.native.js +1 -2
  271. package/build-module/color-picker/saturation-picker.native.js.map +1 -1
  272. package/build-module/color-picker/styles.js.map +1 -1
  273. package/build-module/combobox-control/index.js +2 -3
  274. package/build-module/combobox-control/index.js.map +1 -1
  275. package/build-module/composite/legacy/index.js.map +1 -1
  276. package/build-module/confirm-dialog/component.js +1 -3
  277. package/build-module/confirm-dialog/component.js.map +1 -1
  278. package/build-module/context/context-connect.js +1 -0
  279. package/build-module/context/context-connect.js.map +1 -1
  280. package/build-module/context/context-system-provider.js +1 -1
  281. package/build-module/context/context-system-provider.js.map +1 -1
  282. package/build-module/context/get-styled-class-name-from-key.js.map +1 -1
  283. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +1 -3
  284. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  285. package/build-module/custom-gradient-picker/gradient-bar/index.js +1 -2
  286. package/build-module/custom-gradient-picker/gradient-bar/index.js.map +1 -1
  287. package/build-module/custom-gradient-picker/index.js +1 -2
  288. package/build-module/custom-gradient-picker/index.js.map +1 -1
  289. package/build-module/custom-gradient-picker/index.native.js +1 -3
  290. package/build-module/custom-gradient-picker/index.native.js.map +1 -1
  291. package/build-module/custom-gradient-picker/serializer.js.map +1 -1
  292. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  293. package/build-module/custom-select-control/index.js +1 -3
  294. package/build-module/custom-select-control/index.js.map +1 -1
  295. package/build-module/custom-select-control-v2/custom-select.js +1 -2
  296. package/build-module/custom-select-control-v2/custom-select.js.map +1 -1
  297. package/build-module/custom-select-control-v2/item.js +1 -2
  298. package/build-module/custom-select-control-v2/item.js.map +1 -1
  299. package/build-module/custom-select-control-v2/styles.js.map +1 -1
  300. package/build-module/dashicon/index.js.map +1 -1
  301. package/build-module/date-time/date/index.js +1 -2
  302. package/build-module/date-time/date/index.js.map +1 -1
  303. package/build-module/date-time/date/styles.js.map +1 -1
  304. package/build-module/date-time/date-time/index.js +1 -3
  305. package/build-module/date-time/date-time/index.js.map +1 -1
  306. package/build-module/date-time/time/index.js +1 -2
  307. package/build-module/date-time/time/index.js.map +1 -1
  308. package/build-module/date-time/time/time-input/index.js +1 -2
  309. package/build-module/date-time/time/time-input/index.js.map +1 -1
  310. package/build-module/date-time/time/timezone.js.map +1 -1
  311. package/build-module/dimension-control/index.js +1 -3
  312. package/build-module/dimension-control/index.js.map +1 -1
  313. package/build-module/draggable/index.js +1 -3
  314. package/build-module/draggable/index.js.map +1 -1
  315. package/build-module/drop-zone/index.js +2 -4
  316. package/build-module/drop-zone/index.js.map +1 -1
  317. package/build-module/dropdown/index.js +1 -2
  318. package/build-module/dropdown/index.js.map +1 -1
  319. package/build-module/dropdown/index.native.js +1 -2
  320. package/build-module/dropdown/index.native.js.map +1 -1
  321. package/build-module/dropdown-menu/index.js +1 -2
  322. package/build-module/dropdown-menu/index.js.map +1 -1
  323. package/build-module/dropdown-menu/index.native.js +1 -2
  324. package/build-module/dropdown-menu/index.native.js.map +1 -1
  325. package/build-module/dropdown-menu-v2/checkbox-item.js +1 -2
  326. package/build-module/dropdown-menu-v2/checkbox-item.js.map +1 -1
  327. package/build-module/dropdown-menu-v2/index.js +1 -3
  328. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  329. package/build-module/dropdown-menu-v2/item.js +1 -2
  330. package/build-module/dropdown-menu-v2/item.js.map +1 -1
  331. package/build-module/dropdown-menu-v2/radio-item.js +1 -2
  332. package/build-module/dropdown-menu-v2/radio-item.js.map +1 -1
  333. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  334. package/build-module/duotone-picker/color-list-picker/index.js +1 -3
  335. package/build-module/duotone-picker/color-list-picker/index.js.map +1 -1
  336. package/build-module/duotone-picker/duotone-picker.js +1 -2
  337. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  338. package/build-module/duotone-picker/utils.js.map +1 -1
  339. package/build-module/elevation/hook.js.map +1 -1
  340. package/build-module/external-link/index.js +21 -25
  341. package/build-module/external-link/index.js.map +1 -1
  342. package/build-module/external-link/index.native.js +1 -2
  343. package/build-module/external-link/index.native.js.map +1 -1
  344. package/build-module/focal-point-picker/controls.js +1 -2
  345. package/build-module/focal-point-picker/controls.js.map +1 -1
  346. package/build-module/focal-point-picker/focal-point.native.js +1 -2
  347. package/build-module/focal-point-picker/focal-point.native.js.map +1 -1
  348. package/build-module/focal-point-picker/grid.js +1 -2
  349. package/build-module/focal-point-picker/grid.js.map +1 -1
  350. package/build-module/focal-point-picker/index.js +1 -2
  351. package/build-module/focal-point-picker/index.js.map +1 -1
  352. package/build-module/focal-point-picker/index.native.js +1 -2
  353. package/build-module/focal-point-picker/index.native.js.map +1 -1
  354. package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
  355. package/build-module/focal-point-picker/tooltip/index.native.js +1 -2
  356. package/build-module/focal-point-picker/tooltip/index.native.js.map +1 -1
  357. package/build-module/font-size-picker/index.js +1 -2
  358. package/build-module/font-size-picker/index.js.map +1 -1
  359. package/build-module/font-size-picker/index.native.js +1 -3
  360. package/build-module/font-size-picker/index.native.js.map +1 -1
  361. package/build-module/form-file-upload/index.js +1 -2
  362. package/build-module/form-file-upload/index.js.map +1 -1
  363. package/build-module/form-toggle/index.js +1 -2
  364. package/build-module/form-toggle/index.js.map +1 -1
  365. package/build-module/form-token-field/index.js +3 -3
  366. package/build-module/form-token-field/index.js.map +1 -1
  367. package/build-module/form-token-field/suggestions-list.js +1 -2
  368. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  369. package/build-module/form-token-field/token-input.js.map +1 -1
  370. package/build-module/form-token-field/token.js +2 -3
  371. package/build-module/form-token-field/token.js.map +1 -1
  372. package/build-module/gradient-picker/index.js +1 -2
  373. package/build-module/gradient-picker/index.js.map +1 -1
  374. package/build-module/grid/hook.js.map +1 -1
  375. package/build-module/guide/index.js +1 -2
  376. package/build-module/guide/index.js.map +1 -1
  377. package/build-module/guide/page-control.js +1 -1
  378. package/build-module/guide/page-control.js.map +1 -1
  379. package/build-module/h-stack/hook.js.map +1 -1
  380. package/build-module/heading/hook.js.map +1 -1
  381. package/build-module/higher-order/with-fallback-styles/index.js +3 -4
  382. package/build-module/higher-order/with-fallback-styles/index.js.map +1 -1
  383. package/build-module/input-control/index.js.map +1 -1
  384. package/build-module/input-control/input-base.js +1 -2
  385. package/build-module/input-control/input-base.js.map +1 -1
  386. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  387. package/build-module/item-group/styles.js.map +1 -1
  388. package/build-module/keyboard-shortcuts/index.js +1 -3
  389. package/build-module/keyboard-shortcuts/index.js.map +1 -1
  390. package/build-module/menu-group/index.js +1 -2
  391. package/build-module/menu-group/index.js.map +1 -1
  392. package/build-module/menu-item/index.js +1 -2
  393. package/build-module/menu-item/index.js.map +1 -1
  394. package/build-module/menu-items-choice/index.js +1 -2
  395. package/build-module/menu-items-choice/index.js.map +1 -1
  396. package/build-module/mobile/badge/index.native.js +1 -3
  397. package/build-module/mobile/badge/index.native.js.map +1 -1
  398. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -2
  399. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  400. package/build-module/mobile/bottom-sheet/cell.native.js +5 -6
  401. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  402. package/build-module/mobile/bottom-sheet/color-cell.native.js +1 -2
  403. package/build-module/mobile/bottom-sheet/color-cell.native.js.map +1 -1
  404. package/build-module/mobile/bottom-sheet/index.native.js +1 -3
  405. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  406. package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js +1 -2
  407. package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js.map +1 -1
  408. package/build-module/mobile/bottom-sheet/nav-bar/back-button.native.js +1 -2
  409. package/build-module/mobile/bottom-sheet/nav-bar/back-button.native.js.map +1 -1
  410. package/build-module/mobile/bottom-sheet/range-cell.native.js +2 -3
  411. package/build-module/mobile/bottom-sheet/range-cell.native.js.map +1 -1
  412. package/build-module/mobile/bottom-sheet/range-text-input.native.js +1 -2
  413. package/build-module/mobile/bottom-sheet/range-text-input.native.js.map +1 -1
  414. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js +2 -3
  415. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  416. package/build-module/mobile/bottom-sheet/stepper-cell/stepper.android.js +1 -2
  417. package/build-module/mobile/bottom-sheet/stepper-cell/stepper.android.js.map +1 -1
  418. package/build-module/mobile/bottom-sheet/stepper-cell/stepper.ios.js +1 -2
  419. package/build-module/mobile/bottom-sheet/stepper-cell/stepper.ios.js.map +1 -1
  420. package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js +1 -3
  421. package/build-module/mobile/bottom-sheet/sub-sheet/index.native.js.map +1 -1
  422. package/build-module/mobile/bottom-sheet/switch-cell.native.js +4 -4
  423. package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  424. package/build-module/mobile/bottom-sheet-select-control/index.native.js +1 -3
  425. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  426. package/build-module/mobile/bottom-sheet-text-control/index.native.js +1 -3
  427. package/build-module/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  428. package/build-module/mobile/color-settings/gradient-picker-screen.native.js +1 -2
  429. package/build-module/mobile/color-settings/gradient-picker-screen.native.js.map +1 -1
  430. package/build-module/mobile/color-settings/index.native.js +1 -2
  431. package/build-module/mobile/color-settings/index.native.js.map +1 -1
  432. package/build-module/mobile/color-settings/palette.screen.native.js +1 -3
  433. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  434. package/build-module/mobile/cycle-select-control/index.native.js.map +1 -1
  435. package/build-module/mobile/focal-point-settings-panel/index.native.js +1 -2
  436. package/build-module/mobile/focal-point-settings-panel/index.native.js.map +1 -1
  437. package/build-module/mobile/gradient/index.native.js +1 -2
  438. package/build-module/mobile/gradient/index.native.js.map +1 -1
  439. package/build-module/mobile/html-text-input/index.native.js +1 -2
  440. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  441. package/build-module/mobile/image/icon-retry.native.js +1 -2
  442. package/build-module/mobile/image/icon-retry.native.js.map +1 -1
  443. package/build-module/mobile/image/image-editing-button.native.js +1 -2
  444. package/build-module/mobile/image/image-editing-button.native.js.map +1 -1
  445. package/build-module/mobile/image/index.native.js +1 -3
  446. package/build-module/mobile/image/index.native.js.map +1 -1
  447. package/build-module/mobile/keyboard-avoiding-view/index.ios.js +1 -2
  448. package/build-module/mobile/keyboard-avoiding-view/index.ios.js.map +1 -1
  449. package/build-module/mobile/link-picker/index.native.js +2 -3
  450. package/build-module/mobile/link-picker/index.native.js.map +1 -1
  451. package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
  452. package/build-module/mobile/link-settings/index.native.js +1 -3
  453. package/build-module/mobile/link-settings/index.native.js.map +1 -1
  454. package/build-module/mobile/link-settings/link-settings-navigation.native.js +1 -2
  455. package/build-module/mobile/link-settings/link-settings-navigation.native.js.map +1 -1
  456. package/build-module/mobile/picker/index.android.js +1 -2
  457. package/build-module/mobile/picker/index.android.js.map +1 -1
  458. package/build-module/mobile/segmented-control/index.native.js +1 -2
  459. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  460. package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -1
  461. package/build-module/mobile/utils/use-unit-converter-to-mobile.native.js.map +1 -1
  462. package/build-module/modal/aria-helper.js +2 -1
  463. package/build-module/modal/aria-helper.js.map +1 -1
  464. package/build-module/modal/index.js +3 -4
  465. package/build-module/modal/index.js.map +1 -1
  466. package/build-module/modal/use-modal-exit-animation.js.map +1 -1
  467. package/build-module/navigation/back-button/index.js +1 -2
  468. package/build-module/navigation/back-button/index.js.map +1 -1
  469. package/build-module/navigation/group/index.js +1 -2
  470. package/build-module/navigation/group/index.js.map +1 -1
  471. package/build-module/navigation/item/base-content.js +1 -3
  472. package/build-module/navigation/item/base-content.js.map +1 -1
  473. package/build-module/navigation/item/base.js.map +1 -1
  474. package/build-module/navigation/item/index.js +1 -2
  475. package/build-module/navigation/item/index.js.map +1 -1
  476. package/build-module/navigation/menu/index.js +1 -2
  477. package/build-module/navigation/menu/index.js.map +1 -1
  478. package/build-module/navigation/menu/menu-title-search.js +2 -2
  479. package/build-module/navigation/menu/menu-title-search.js.map +1 -1
  480. package/build-module/navigation/menu/menu-title.js +1 -2
  481. package/build-module/navigation/menu/menu-title.js.map +1 -1
  482. package/build-module/navigation/menu/search-no-results-found.js +1 -2
  483. package/build-module/navigation/menu/search-no-results-found.js.map +1 -1
  484. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  485. package/build-module/navigator/navigator/component.js.map +1 -1
  486. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  487. package/build-module/notice/index.js +1 -2
  488. package/build-module/notice/index.js.map +1 -1
  489. package/build-module/notice/index.native.js +1 -3
  490. package/build-module/notice/index.native.js.map +1 -1
  491. package/build-module/number-control/index.js +1 -3
  492. package/build-module/number-control/index.js.map +1 -1
  493. package/build-module/number-control/styles/number-control-styles.js.map +1 -1
  494. package/build-module/palette-edit/index.js +25 -5
  495. package/build-module/palette-edit/index.js.map +1 -1
  496. package/build-module/panel/actions.native.js +1 -2
  497. package/build-module/panel/actions.native.js.map +1 -1
  498. package/build-module/panel/body.js +1 -2
  499. package/build-module/panel/body.js.map +1 -1
  500. package/build-module/panel/body.native.js +1 -2
  501. package/build-module/panel/body.native.js.map +1 -1
  502. package/build-module/panel/header.js +1 -2
  503. package/build-module/panel/header.js.map +1 -1
  504. package/build-module/panel/index.js +1 -2
  505. package/build-module/panel/index.js.map +1 -1
  506. package/build-module/placeholder/index.js +1 -2
  507. package/build-module/placeholder/index.js.map +1 -1
  508. package/build-module/popover/index.js +2 -4
  509. package/build-module/popover/index.js.map +1 -1
  510. package/build-module/popover/overlay-middlewares.js.map +1 -1
  511. package/build-module/popover/utils.js.map +1 -1
  512. package/build-module/progress-bar/index.js +1 -2
  513. package/build-module/progress-bar/index.js.map +1 -1
  514. package/build-module/progress-bar/styles.js.map +1 -1
  515. package/build-module/query-controls/index.js.map +1 -1
  516. package/build-module/query-controls/index.native.js +1 -3
  517. package/build-module/query-controls/index.native.js.map +1 -1
  518. package/build-module/radio-control/index.js +1 -2
  519. package/build-module/radio-control/index.js.map +1 -1
  520. package/build-module/radio-control/index.native.js +1 -2
  521. package/build-module/radio-control/index.native.js.map +1 -1
  522. package/build-module/range-control/index.js +1 -2
  523. package/build-module/range-control/index.js.map +1 -1
  524. package/build-module/range-control/index.native.js.map +1 -1
  525. package/build-module/range-control/mark.js +1 -3
  526. package/build-module/range-control/mark.js.map +1 -1
  527. package/build-module/range-control/rail.js +1 -3
  528. package/build-module/range-control/rail.js.map +1 -1
  529. package/build-module/range-control/styles/range-control-styles.js +32 -32
  530. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  531. package/build-module/range-control/tooltip.js +1 -1
  532. package/build-module/range-control/tooltip.js.map +1 -1
  533. package/build-module/range-control/utils.js.map +1 -1
  534. package/build-module/resizable-box/index.js +1 -2
  535. package/build-module/resizable-box/index.js.map +1 -1
  536. package/build-module/resizable-box/resize-tooltip/index.js +1 -2
  537. package/build-module/resizable-box/resize-tooltip/index.js.map +1 -1
  538. package/build-module/resizable-box/resize-tooltip/label.js.map +1 -1
  539. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  540. package/build-module/responsive-wrapper/index.js.map +1 -1
  541. package/build-module/sandbox/index.js +1 -2
  542. package/build-module/sandbox/index.js.map +1 -1
  543. package/build-module/sandbox/index.native.js +1 -2
  544. package/build-module/sandbox/index.native.js.map +1 -1
  545. package/build-module/search-control/index.js +6 -0
  546. package/build-module/search-control/index.js.map +1 -1
  547. package/build-module/search-control/index.native.js +1 -2
  548. package/build-module/search-control/index.native.js.map +1 -1
  549. package/build-module/search-control/types.js.map +1 -1
  550. package/build-module/select-control/index.js.map +1 -1
  551. package/build-module/select-control/index.native.js.map +1 -1
  552. package/build-module/slot-fill/index.js +1 -3
  553. package/build-module/slot-fill/index.js.map +1 -1
  554. package/build-module/slot-fill/slot.js +1 -2
  555. package/build-module/slot-fill/slot.js.map +1 -1
  556. package/build-module/snackbar/index.js +1 -2
  557. package/build-module/snackbar/index.js.map +1 -1
  558. package/build-module/snackbar/list.js +1 -2
  559. package/build-module/snackbar/list.js.map +1 -1
  560. package/build-module/spinner/index.js +1 -2
  561. package/build-module/spinner/index.js.map +1 -1
  562. package/build-module/spinner/styles.js.map +1 -1
  563. package/build-module/style-provider/index.js +1 -0
  564. package/build-module/style-provider/index.js.map +1 -1
  565. package/build-module/surface/hook.js.map +1 -1
  566. package/build-module/surface/styles.js.map +1 -1
  567. package/build-module/tab-panel/index.js +1 -2
  568. package/build-module/tab-panel/index.js.map +1 -1
  569. package/build-module/tabs/index.js.map +1 -1
  570. package/build-module/tabs/styles.js +28 -6
  571. package/build-module/tabs/styles.js.map +1 -1
  572. package/build-module/tabs/tab.js +9 -4
  573. package/build-module/tabs/tab.js.map +1 -1
  574. package/build-module/tabs/tablist.js +47 -48
  575. package/build-module/tabs/tablist.js.map +1 -1
  576. package/build-module/tabs/tabpanel.js.map +1 -1
  577. package/build-module/text/get-line-height.js.map +1 -1
  578. package/build-module/text/styles/text-mixins.native.js.map +1 -1
  579. package/build-module/text/utils.js.map +1 -1
  580. package/build-module/text-control/index.native.js.map +1 -1
  581. package/build-module/text-highlight/index.js +1 -2
  582. package/build-module/text-highlight/index.js.map +1 -1
  583. package/build-module/textarea-control/index.js.map +1 -1
  584. package/build-module/theme/color-algorithms.js.map +1 -1
  585. package/build-module/theme/styles.js.map +1 -1
  586. package/build-module/tip/index.js +1 -2
  587. package/build-module/tip/index.js.map +1 -1
  588. package/build-module/toggle-control/index.js +1 -2
  589. package/build-module/toggle-control/index.js.map +1 -1
  590. package/build-module/toggle-control/index.native.js.map +1 -1
  591. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js +10 -2
  592. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.js.map +1 -1
  593. package/build-module/toggle-group-control/toggle-group-control/component.js +4 -65
  594. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  595. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +11 -12
  596. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  597. package/build-module/toggle-group-control/types.js.map +1 -1
  598. package/build-module/toolbar/toolbar/index.js.map +1 -1
  599. package/build-module/toolbar/toolbar-button/toolbar-button-container.native.js +2 -2
  600. package/build-module/toolbar/toolbar-button/toolbar-button-container.native.js.map +1 -1
  601. package/build-module/toolbar/toolbar-group/index.js +1 -2
  602. package/build-module/toolbar/toolbar-group/index.js.map +1 -1
  603. package/build-module/tools-panel/styles.js.map +1 -1
  604. package/build-module/tools-panel/tools-panel/component.js +1 -2
  605. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  606. package/build-module/tools-panel/tools-panel-header/component.js +1 -3
  607. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  608. package/build-module/tooltip/index.js +6 -3
  609. package/build-module/tooltip/index.js.map +1 -1
  610. package/build-module/tooltip/index.native.js +1 -3
  611. package/build-module/tooltip/index.native.js.map +1 -1
  612. package/build-module/tree-grid/cell.js +1 -2
  613. package/build-module/tree-grid/cell.js.map +1 -1
  614. package/build-module/unit-control/index.js.map +1 -1
  615. package/build-module/unit-control/index.native.js +1 -3
  616. package/build-module/unit-control/index.native.js.map +1 -1
  617. package/build-module/unit-control/utils.js.map +1 -1
  618. package/build-module/utils/breakpoint.js.map +1 -1
  619. package/build-module/utils/colors-values.js.map +1 -1
  620. package/build-module/utils/config-values.js.map +1 -1
  621. package/build-module/utils/font-size.js.map +1 -1
  622. package/build-module/utils/hooks/use-animated-offset-rect.js +74 -0
  623. package/build-module/utils/hooks/use-animated-offset-rect.js.map +1 -0
  624. package/build-module/utils/hooks/use-cx.js.map +1 -1
  625. package/build-module/utils/math.js +2 -2
  626. package/build-module/utils/math.js.map +1 -1
  627. package/build-module/utils/space.js.map +1 -1
  628. package/build-module/utils/unit-values.js.map +1 -1
  629. package/build-module/utils/use-responsive-value.js.map +1 -1
  630. package/build-style/style-rtl.css +8 -5
  631. package/build-style/style.css +8 -5
  632. package/build-types/alignment-matrix-control/types.d.ts +2 -0
  633. package/build-types/alignment-matrix-control/types.d.ts.map +1 -1
  634. package/build-types/drop-zone/index.d.ts.map +1 -1
  635. package/build-types/modal/aria-helper.d.ts.map +1 -1
  636. package/build-types/palette-edit/index.d.ts +3 -0
  637. package/build-types/palette-edit/index.d.ts.map +1 -1
  638. package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
  639. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  640. package/build-types/search-control/index.d.ts.map +1 -1
  641. package/build-types/search-control/stories/index.story.d.ts +0 -8
  642. package/build-types/search-control/stories/index.story.d.ts.map +1 -1
  643. package/build-types/search-control/types.d.ts +3 -0
  644. package/build-types/search-control/types.d.ts.map +1 -1
  645. package/build-types/tabs/styles.d.ts +7 -0
  646. package/build-types/tabs/styles.d.ts.map +1 -1
  647. package/build-types/tabs/tab.d.ts.map +1 -1
  648. package/build-types/tabs/tablist.d.ts.map +1 -1
  649. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  650. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  651. package/build-types/toggle-group-control/types.d.ts +1 -0
  652. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  653. package/build-types/tooltip/index.d.ts.map +1 -1
  654. package/build-types/utils/hooks/use-animated-offset-rect.d.ts +62 -0
  655. package/build-types/utils/hooks/use-animated-offset-rect.d.ts.map +1 -0
  656. package/package.json +20 -20
  657. package/schemas/docs-manifest.json +38 -0
  658. package/src/alignment-matrix-control/README.md +46 -36
  659. package/src/alignment-matrix-control/docs-manifest.json +12 -0
  660. package/src/alignment-matrix-control/types.ts +2 -0
  661. package/src/angle-picker-control/README.md +36 -23
  662. package/src/angle-picker-control/docs-manifest.json +5 -0
  663. package/src/button/style.scss +5 -1
  664. package/src/composite/test/index.tsx +629 -38
  665. package/src/drop-zone/index.tsx +1 -2
  666. package/src/drop-zone/style.scss +1 -1
  667. package/src/modal/aria-helper.ts +1 -0
  668. package/src/palette-edit/index.tsx +30 -5
  669. package/src/palette-edit/test/index.tsx +50 -1
  670. package/src/range-control/styles/range-control-styles.ts +19 -10
  671. package/src/range-control/tooltip.tsx +1 -1
  672. package/src/search-control/README.md +2 -0
  673. package/src/search-control/index.tsx +7 -0
  674. package/src/search-control/stories/index.story.tsx +0 -15
  675. package/src/search-control/test/index.tsx +4 -1
  676. package/src/search-control/types.ts +3 -0
  677. package/src/tabs/styles.ts +116 -47
  678. package/src/tabs/tab.tsx +8 -2
  679. package/src/tabs/tablist.tsx +48 -49
  680. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -6
  681. package/src/toggle-group-control/test/index.tsx +39 -0
  682. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +11 -1
  683. package/src/toggle-group-control/toggle-group-control/component.tsx +3 -98
  684. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +15 -15
  685. package/src/toggle-group-control/types.ts +1 -0
  686. package/src/tooltip/index.tsx +8 -1
  687. package/src/tooltip/test/index.tsx +78 -0
  688. package/src/utils/hooks/use-animated-offset-rect.ts +107 -0
  689. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["KeyboardAvoidingView","IOSKeyboardAvoidingView","Animated","Keyboard","Dimensions","View","SafeArea","useEffect","useRef","useState","useResizeObserver","useIsFloatingKeyboard","styles","jsxs","_jsxs","jsx","_jsx","AnimatedKeyboardAvoidingView","createAnimatedComponent","MIN_HEIGHT","parentHeight","style","withAnimatedHeight","otherProps","resizeObserver","sizes","isKeyboardOpen","setIsKeyboardOpen","safeAreaBottomInset","setSafeAreaBottomInset","height","floatingKeyboard","animatedHeight","Value","current","fullHeight","get","keyboardVerticalOffset","getSafeAreaInsetsForRootView","then","safeAreaInsets","bottom","safeAreaSubscription","addEventListener","onSafeAreaInsetsUpdate","keyboardShowSubscription","addListener","onKeyboardWillShow","keyboardHideSubscription","onKeyboardWillHide","remove","endCoordinates","setValue","duration","startCoordinates","keyboardIsOpenBreakpoint","animatedListenerId","value","timing","toValue","useNativeDriver","start","removeListener","enabled","behavior","marginBottom","children","top","animatedChildStyle","defaultChildStyle"],"sources":["@wordpress/components/src/mobile/keyboard-avoiding-view/index.ios.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tKeyboardAvoidingView as IOSKeyboardAvoidingView,\n\tAnimated,\n\tKeyboard,\n\tDimensions,\n\tView,\n} from 'react-native';\nimport SafeArea from 'react-native-safe-area';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useIsFloatingKeyboard from '../utils/use-is-floating-keyboard';\nimport styles from './styles.scss';\n\nconst AnimatedKeyboardAvoidingView = Animated.createAnimatedComponent(\n\tIOSKeyboardAvoidingView\n);\n\nconst MIN_HEIGHT = 44;\n\nexport const KeyboardAvoidingView = ( {\n\tparentHeight,\n\tstyle,\n\twithAnimatedHeight = false,\n\t...otherProps\n} ) => {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ isKeyboardOpen, setIsKeyboardOpen ] = useState( false );\n\tconst [ safeAreaBottomInset, setSafeAreaBottomInset ] = useState( 0 );\n\tconst { height = 0 } = sizes || {};\n\tconst floatingKeyboard = useIsFloatingKeyboard();\n\n\tconst animatedHeight = useRef( new Animated.Value( MIN_HEIGHT ) ).current;\n\n\tconst { height: fullHeight } = Dimensions.get( 'screen' );\n\tconst keyboardVerticalOffset = fullHeight - parentHeight;\n\n\tuseEffect( () => {\n\t\tSafeArea.getSafeAreaInsetsForRootView().then(\n\t\t\t( { safeAreaInsets } ) => {\n\t\t\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t\t\t}\n\t\t);\n\t\tconst safeAreaSubscription = SafeArea.addEventListener(\n\t\t\t'safeAreaInsetsForRootViewDidChange',\n\t\t\tonSafeAreaInsetsUpdate\n\t\t);\n\t\tconst keyboardShowSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillShow',\n\t\t\tonKeyboardWillShow\n\t\t);\n\t\tconst keyboardHideSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillHide',\n\t\t\tonKeyboardWillHide\n\t\t);\n\n\t\treturn () => {\n\t\t\tsafeAreaSubscription.remove();\n\t\t\tkeyboardShowSubscription.remove();\n\t\t\tkeyboardHideSubscription.remove();\n\t\t};\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSafeAreaInsetsUpdate( { safeAreaInsets } ) {\n\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t}\n\n\tfunction onKeyboardWillShow( { endCoordinates } ) {\n\t\tsetIsKeyboardOpen( true );\n\t\tanimatedHeight.setValue( endCoordinates.height + MIN_HEIGHT );\n\t}\n\n\tfunction onKeyboardWillHide( { duration, startCoordinates } ) {\n\t\t// The startCoordinates.height is set to wrong value when we use cmd + k for hide the keyboard (Have no idea why).\n\t\t// Because of that the `setIsKeyboardOpened` is not invoked and the state of keyboard is wrong.\n\t\t// The keyboardIsOpenBreakpoint use 100 as a fallback if the startCoordinates.height is too small (cmd + k case)\n\t\tconst keyboardIsOpenBreakpoint =\n\t\t\tstartCoordinates.height > 100 ? startCoordinates.height / 3 : 100;\n\t\tconst animatedListenerId = animatedHeight.addListener(\n\t\t\t( { value } ) => {\n\t\t\t\tif ( value < keyboardIsOpenBreakpoint ) {\n\t\t\t\t\tsetIsKeyboardOpen( false );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tAnimated.timing( animatedHeight, {\n\t\t\ttoValue: MIN_HEIGHT,\n\t\t\tduration,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start( () => {\n\t\t\tanimatedHeight.removeListener( animatedListenerId );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<AnimatedKeyboardAvoidingView\n\t\t\t{ ...otherProps }\n\t\t\tenabled={ ! floatingKeyboard }\n\t\t\tbehavior=\"padding\"\n\t\t\tkeyboardVerticalOffset={ keyboardVerticalOffset }\n\t\t\tstyle={\n\t\t\t\twithAnimatedHeight\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tstyle,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\theight: animatedHeight,\n\t\t\t\t\t\t\t\tmarginBottom: isKeyboardOpen\n\t\t\t\t\t\t\t\t\t? -safeAreaBottomInset\n\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: style\n\t\t\t}\n\t\t>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttop: -height + MIN_HEIGHT,\n\t\t\t\t\t},\n\t\t\t\t\tstyles.animatedChildStyle,\n\t\t\t\t\t! withAnimatedHeight && styles.defaultChildStyle,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ otherProps.children }\n\t\t\t</View>\n\t\t</AnimatedKeyboardAvoidingView>\n\t);\n};\n\nexport default KeyboardAvoidingView;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["KeyboardAvoidingView","IOSKeyboardAvoidingView","Animated","Keyboard","Dimensions","View","SafeArea","useEffect","useRef","useState","useResizeObserver","useIsFloatingKeyboard","styles","jsxs","_jsxs","jsx","_jsx","AnimatedKeyboardAvoidingView","createAnimatedComponent","MIN_HEIGHT","parentHeight","style","withAnimatedHeight","otherProps","resizeObserver","sizes","isKeyboardOpen","setIsKeyboardOpen","safeAreaBottomInset","setSafeAreaBottomInset","height","floatingKeyboard","animatedHeight","Value","current","fullHeight","get","keyboardVerticalOffset","getSafeAreaInsetsForRootView","then","safeAreaInsets","bottom","safeAreaSubscription","addEventListener","onSafeAreaInsetsUpdate","keyboardShowSubscription","addListener","onKeyboardWillShow","keyboardHideSubscription","onKeyboardWillHide","remove","endCoordinates","setValue","duration","startCoordinates","keyboardIsOpenBreakpoint","animatedListenerId","value","timing","toValue","useNativeDriver","start","removeListener","enabled","behavior","marginBottom","children","top","animatedChildStyle","defaultChildStyle"],"sources":["@wordpress/components/src/mobile/keyboard-avoiding-view/index.ios.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tKeyboardAvoidingView as IOSKeyboardAvoidingView,\n\tAnimated,\n\tKeyboard,\n\tDimensions,\n\tView,\n} from 'react-native';\nimport SafeArea from 'react-native-safe-area';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport useIsFloatingKeyboard from '../utils/use-is-floating-keyboard';\nimport styles from './styles.scss';\n\nconst AnimatedKeyboardAvoidingView = Animated.createAnimatedComponent(\n\tIOSKeyboardAvoidingView\n);\n\nconst MIN_HEIGHT = 44;\n\nexport const KeyboardAvoidingView = ( {\n\tparentHeight,\n\tstyle,\n\twithAnimatedHeight = false,\n\t...otherProps\n} ) => {\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ isKeyboardOpen, setIsKeyboardOpen ] = useState( false );\n\tconst [ safeAreaBottomInset, setSafeAreaBottomInset ] = useState( 0 );\n\tconst { height = 0 } = sizes || {};\n\tconst floatingKeyboard = useIsFloatingKeyboard();\n\n\tconst animatedHeight = useRef( new Animated.Value( MIN_HEIGHT ) ).current;\n\n\tconst { height: fullHeight } = Dimensions.get( 'screen' );\n\tconst keyboardVerticalOffset = fullHeight - parentHeight;\n\n\tuseEffect( () => {\n\t\tSafeArea.getSafeAreaInsetsForRootView().then(\n\t\t\t( { safeAreaInsets } ) => {\n\t\t\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t\t\t}\n\t\t);\n\t\tconst safeAreaSubscription = SafeArea.addEventListener(\n\t\t\t'safeAreaInsetsForRootViewDidChange',\n\t\t\tonSafeAreaInsetsUpdate\n\t\t);\n\t\tconst keyboardShowSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillShow',\n\t\t\tonKeyboardWillShow\n\t\t);\n\t\tconst keyboardHideSubscription = Keyboard.addListener(\n\t\t\t'keyboardWillHide',\n\t\t\tonKeyboardWillHide\n\t\t);\n\n\t\treturn () => {\n\t\t\tsafeAreaSubscription.remove();\n\t\t\tkeyboardShowSubscription.remove();\n\t\t\tkeyboardHideSubscription.remove();\n\t\t};\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSafeAreaInsetsUpdate( { safeAreaInsets } ) {\n\t\tsetSafeAreaBottomInset( safeAreaInsets.bottom );\n\t}\n\n\tfunction onKeyboardWillShow( { endCoordinates } ) {\n\t\tsetIsKeyboardOpen( true );\n\t\tanimatedHeight.setValue( endCoordinates.height + MIN_HEIGHT );\n\t}\n\n\tfunction onKeyboardWillHide( { duration, startCoordinates } ) {\n\t\t// The startCoordinates.height is set to wrong value when we use cmd + k for hide the keyboard (Have no idea why).\n\t\t// Because of that the `setIsKeyboardOpened` is not invoked and the state of keyboard is wrong.\n\t\t// The keyboardIsOpenBreakpoint use 100 as a fallback if the startCoordinates.height is too small (cmd + k case)\n\t\tconst keyboardIsOpenBreakpoint =\n\t\t\tstartCoordinates.height > 100 ? startCoordinates.height / 3 : 100;\n\t\tconst animatedListenerId = animatedHeight.addListener(\n\t\t\t( { value } ) => {\n\t\t\t\tif ( value < keyboardIsOpenBreakpoint ) {\n\t\t\t\t\tsetIsKeyboardOpen( false );\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tAnimated.timing( animatedHeight, {\n\t\t\ttoValue: MIN_HEIGHT,\n\t\t\tduration,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start( () => {\n\t\t\tanimatedHeight.removeListener( animatedListenerId );\n\t\t} );\n\t}\n\n\treturn (\n\t\t<AnimatedKeyboardAvoidingView\n\t\t\t{ ...otherProps }\n\t\t\tenabled={ ! floatingKeyboard }\n\t\t\tbehavior=\"padding\"\n\t\t\tkeyboardVerticalOffset={ keyboardVerticalOffset }\n\t\t\tstyle={\n\t\t\t\twithAnimatedHeight\n\t\t\t\t\t? [\n\t\t\t\t\t\t\tstyle,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\theight: animatedHeight,\n\t\t\t\t\t\t\t\tmarginBottom: isKeyboardOpen\n\t\t\t\t\t\t\t\t\t? -safeAreaBottomInset\n\t\t\t\t\t\t\t\t\t: 0,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: style\n\t\t\t}\n\t\t>\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\t{\n\t\t\t\t\t\ttop: -height + MIN_HEIGHT,\n\t\t\t\t\t},\n\t\t\t\t\tstyles.animatedChildStyle,\n\t\t\t\t\t! withAnimatedHeight && styles.defaultChildStyle,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ resizeObserver }\n\t\t\t\t{ otherProps.children }\n\t\t\t</View>\n\t\t</AnimatedKeyboardAvoidingView>\n\t);\n};\n\nexport default KeyboardAvoidingView;\n"],"mappings":"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","ignoreList":[]}
@@ -23,8 +23,7 @@ import BottomSheet from '../bottom-sheet';
23
23
  import Icon from '../../icon';
24
24
 
25
25
  // This creates a search suggestion for adding a url directly.
26
- import { jsx as _jsx } from "react/jsx-runtime";
27
- import { jsxs as _jsxs } from "react/jsx-runtime";
26
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
27
  export const createDirectEntry = value => {
29
28
  let type = 'URL';
30
29
  const protocol = getProtocol(value)?.toLowerCase() || '';
@@ -121,7 +120,7 @@ export const LinkPicker = ({
121
120
  })
122
121
  }), !!clipboardUrl && clipboardUrl !== value && /*#__PURE__*/_jsx(BottomSheet.LinkSuggestionItemCell, {
123
122
  accessible: true,
124
- accessibilityLabel: sprintf( /* translators: Copy URL from the clipboard, https://sample.url */
123
+ accessibilityLabel: sprintf(/* translators: Copy URL from the clipboard, https://sample.url */
125
124
  __('Copy URL from the clipboard, %s'), clipboardUrl),
126
125
  suggestion: {
127
126
  type: 'clipboard',
@@ -1 +1 @@
1
- {"version":3,"names":["SafeAreaView","TouchableOpacity","View","Clipboard","useEffect","useState","__","sprintf","getProtocol","isURL","prependHTTP","link","cancelCircleFilled","usePreferredColorSchemeStyle","LinkPickerResults","NavBar","styles","BottomSheet","Icon","jsx","_jsx","jsxs","_jsxs","createDirectEntry","value","type","protocol","toLowerCase","includes","startsWith","isDirectEntry","title","url","getURLFromClipboard","text","getString","LinkPicker","initialValue","onLinkPicked","onCancel","cancel","setValue","clipboardUrl","setClipboardUrl","directEntry","pickLink","onSubmit","clear","omniCellStyle","omniCell","omniCellDark","iconStyle","icon","iconDark","then","catch","style","safeArea","children","DismissButton","onPress","Heading","ApplyButton","contentContainer","Cell","valueStyle","omniInput","placeholder","autoCapitalize","autoCorrect","keyboardType","onChangeValue","autoFocus","separatorType","clearIcon","fill","color","size","LinkSuggestionItemCell","accessible","accessibilityLabel","suggestion","query"],"sources":["@wordpress/components/src/mobile/link-picker/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { SafeAreaView, TouchableOpacity, View } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { getProtocol, isURL, prependHTTP } from '@wordpress/url';\nimport { link, cancelCircleFilled } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport LinkPickerResults from './link-picker-results';\nimport NavBar from '../bottom-sheet/nav-bar';\nimport styles from './styles.scss';\nimport BottomSheet from '../bottom-sheet';\nimport Icon from '../../icon';\n\n// This creates a search suggestion for adding a url directly.\nexport const createDirectEntry = ( value ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( value )?.toLowerCase() || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( value?.startsWith( '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn {\n\t\tisDirectEntry: true,\n\t\ttitle: value,\n\t\turl: type === 'URL' ? prependHTTP( value ) : value,\n\t\ttype,\n\t};\n};\n\nconst getURLFromClipboard = async () => {\n\tconst text = await Clipboard.getString();\n\treturn !! text && isURL( text ) ? text : '';\n};\n\nexport const LinkPicker = ( {\n\tvalue: initialValue,\n\tonLinkPicked,\n\tonCancel: cancel,\n} ) => {\n\tconst [ value, setValue ] = useState( initialValue );\n\tconst [ clipboardUrl, setClipboardUrl ] = useState( '' );\n\tconst directEntry = createDirectEntry( value );\n\n\t// The title of a direct entry is displayed as the raw input value, but if we\n\t// are replacing empty text, we want to use the generated url.\n\tconst pickLink = ( { title, url, isDirectEntry } ) => {\n\t\tonLinkPicked( { title: isDirectEntry ? url : title, url } );\n\t};\n\n\tconst onSubmit = () => {\n\t\tpickLink( directEntry );\n\t};\n\n\tconst clear = () => {\n\t\tsetValue( '' );\n\t\tsetClipboardUrl( '' );\n\t};\n\n\tconst omniCellStyle = usePreferredColorSchemeStyle(\n\t\tstyles.omniCell,\n\t\tstyles.omniCellDark\n\t);\n\n\tconst iconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.icon,\n\t\tstyles.iconDark\n\t);\n\n\tuseEffect( () => {\n\t\tgetURLFromClipboard()\n\t\t\t.then( setClipboardUrl )\n\t\t\t.catch( () => setClipboardUrl( '' ) );\n\t}, [] );\n\n\t// TODO: Localize the accessibility label.\n\t// TODO: Decide on if `LinkSuggestionItemCell` with `isDirectEntry` makes sense.\n\treturn (\n\t\t<SafeAreaView style={ styles.safeArea }>\n\t\t\t<NavBar>\n\t\t\t\t<NavBar.DismissButton onPress={ cancel } />\n\t\t\t\t<NavBar.Heading>{ __( 'Link to' ) }</NavBar.Heading>\n\t\t\t\t<NavBar.ApplyButton onPress={ onSubmit } />\n\t\t\t</NavBar>\n\t\t\t<View style={ styles.contentContainer }>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ link }\n\t\t\t\t\tstyle={ omniCellStyle }\n\t\t\t\t\tvalueStyle={ styles.omniInput }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ __( 'Search or type URL' ) }\n\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\tonChangeValue={ setValue }\n\t\t\t\t\tonSubmit={ onSubmit }\n\t\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-autofocus */\n\t\t\t\t\tautoFocus\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t>\n\t\t\t\t\t{ value !== '' && (\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tonPress={ clear }\n\t\t\t\t\t\t\tstyle={ styles.clearIcon }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={ cancelCircleFilled }\n\t\t\t\t\t\t\t\tfill={ iconStyle.color }\n\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t) }\n\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t{ !! clipboardUrl && clipboardUrl !== value && (\n\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\taccessible\n\t\t\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t\t\t/* translators: Copy URL from the clipboard, https://sample.url */\n\t\t\t\t\t\t\t__( 'Copy URL from the clipboard, %s' ),\n\t\t\t\t\t\t\tclipboardUrl\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsuggestion={ {\n\t\t\t\t\t\t\ttype: 'clipboard',\n\t\t\t\t\t\t\turl: clipboardUrl,\n\t\t\t\t\t\t\tisDirectEntry: true,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! value && (\n\t\t\t\t\t<LinkPickerResults\n\t\t\t\t\t\tquery={ value }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t\tdirectEntry={ directEntry }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</SafeAreaView>\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["SafeAreaView","TouchableOpacity","View","Clipboard","useEffect","useState","__","sprintf","getProtocol","isURL","prependHTTP","link","cancelCircleFilled","usePreferredColorSchemeStyle","LinkPickerResults","NavBar","styles","BottomSheet","Icon","jsx","_jsx","jsxs","_jsxs","createDirectEntry","value","type","protocol","toLowerCase","includes","startsWith","isDirectEntry","title","url","getURLFromClipboard","text","getString","LinkPicker","initialValue","onLinkPicked","onCancel","cancel","setValue","clipboardUrl","setClipboardUrl","directEntry","pickLink","onSubmit","clear","omniCellStyle","omniCell","omniCellDark","iconStyle","icon","iconDark","then","catch","style","safeArea","children","DismissButton","onPress","Heading","ApplyButton","contentContainer","Cell","valueStyle","omniInput","placeholder","autoCapitalize","autoCorrect","keyboardType","onChangeValue","autoFocus","separatorType","clearIcon","fill","color","size","LinkSuggestionItemCell","accessible","accessibilityLabel","suggestion","query"],"sources":["@wordpress/components/src/mobile/link-picker/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { SafeAreaView, TouchableOpacity, View } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { getProtocol, isURL, prependHTTP } from '@wordpress/url';\nimport { link, cancelCircleFilled } from '@wordpress/icons';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport LinkPickerResults from './link-picker-results';\nimport NavBar from '../bottom-sheet/nav-bar';\nimport styles from './styles.scss';\nimport BottomSheet from '../bottom-sheet';\nimport Icon from '../../icon';\n\n// This creates a search suggestion for adding a url directly.\nexport const createDirectEntry = ( value ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( value )?.toLowerCase() || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( value?.startsWith( '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn {\n\t\tisDirectEntry: true,\n\t\ttitle: value,\n\t\turl: type === 'URL' ? prependHTTP( value ) : value,\n\t\ttype,\n\t};\n};\n\nconst getURLFromClipboard = async () => {\n\tconst text = await Clipboard.getString();\n\treturn !! text && isURL( text ) ? text : '';\n};\n\nexport const LinkPicker = ( {\n\tvalue: initialValue,\n\tonLinkPicked,\n\tonCancel: cancel,\n} ) => {\n\tconst [ value, setValue ] = useState( initialValue );\n\tconst [ clipboardUrl, setClipboardUrl ] = useState( '' );\n\tconst directEntry = createDirectEntry( value );\n\n\t// The title of a direct entry is displayed as the raw input value, but if we\n\t// are replacing empty text, we want to use the generated url.\n\tconst pickLink = ( { title, url, isDirectEntry } ) => {\n\t\tonLinkPicked( { title: isDirectEntry ? url : title, url } );\n\t};\n\n\tconst onSubmit = () => {\n\t\tpickLink( directEntry );\n\t};\n\n\tconst clear = () => {\n\t\tsetValue( '' );\n\t\tsetClipboardUrl( '' );\n\t};\n\n\tconst omniCellStyle = usePreferredColorSchemeStyle(\n\t\tstyles.omniCell,\n\t\tstyles.omniCellDark\n\t);\n\n\tconst iconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.icon,\n\t\tstyles.iconDark\n\t);\n\n\tuseEffect( () => {\n\t\tgetURLFromClipboard()\n\t\t\t.then( setClipboardUrl )\n\t\t\t.catch( () => setClipboardUrl( '' ) );\n\t}, [] );\n\n\t// TODO: Localize the accessibility label.\n\t// TODO: Decide on if `LinkSuggestionItemCell` with `isDirectEntry` makes sense.\n\treturn (\n\t\t<SafeAreaView style={ styles.safeArea }>\n\t\t\t<NavBar>\n\t\t\t\t<NavBar.DismissButton onPress={ cancel } />\n\t\t\t\t<NavBar.Heading>{ __( 'Link to' ) }</NavBar.Heading>\n\t\t\t\t<NavBar.ApplyButton onPress={ onSubmit } />\n\t\t\t</NavBar>\n\t\t\t<View style={ styles.contentContainer }>\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ link }\n\t\t\t\t\tstyle={ omniCellStyle }\n\t\t\t\t\tvalueStyle={ styles.omniInput }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tplaceholder={ __( 'Search or type URL' ) }\n\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\tonChangeValue={ setValue }\n\t\t\t\t\tonSubmit={ onSubmit }\n\t\t\t\t\t/* eslint-disable-next-line jsx-a11y/no-autofocus */\n\t\t\t\t\tautoFocus\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t>\n\t\t\t\t\t{ value !== '' && (\n\t\t\t\t\t\t<TouchableOpacity\n\t\t\t\t\t\t\tonPress={ clear }\n\t\t\t\t\t\t\tstyle={ styles.clearIcon }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={ cancelCircleFilled }\n\t\t\t\t\t\t\t\tfill={ iconStyle.color }\n\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableOpacity>\n\t\t\t\t\t) }\n\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t{ !! clipboardUrl && clipboardUrl !== value && (\n\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\taccessible\n\t\t\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t\t\t/* translators: Copy URL from the clipboard, https://sample.url */\n\t\t\t\t\t\t\t__( 'Copy URL from the clipboard, %s' ),\n\t\t\t\t\t\t\tclipboardUrl\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsuggestion={ {\n\t\t\t\t\t\t\ttype: 'clipboard',\n\t\t\t\t\t\t\turl: clipboardUrl,\n\t\t\t\t\t\t\tisDirectEntry: true,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! value && (\n\t\t\t\t\t<LinkPickerResults\n\t\t\t\t\t\tquery={ value }\n\t\t\t\t\t\tonLinkPicked={ pickLink }\n\t\t\t\t\t\tdirectEntry={ directEntry }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t</SafeAreaView>\n\t);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["ActivityIndicator","FlatList","View","debounce","useState","useEffect","useRef","useSelect","styles","BottomSheet","BottomSheetConsumer","jsx","_jsx","PER_PAGE","REQUEST_DEBOUNCE_DELAY","MINIMUM_QUERY_SIZE","meetsThreshold","query","length","LinkPickerResults","onLinkPicked","directEntry","links","setLinks","hasAllSuggestions","setHasAllSuggestions","nextPage","pendingRequest","clearRequest","current","fetchMoreSuggestions","select","getSettings","fetchLinkSuggestions","search","__experimentalFetchLinkSuggestions","page","type","perPage","fetchMore","currentSuggestions","request","suggestions","onEndReached","spinner","style","testID","children","animating","listProps","data","keyboardShouldPersistTaps","renderItem","item","LinkSuggestionItemCell","suggestion","keyExtractor","url","onEndReachedThreshold","initialNumToRender","ListFooterComponent","contentContainerStyle","list"],"sources":["@wordpress/components/src/mobile/link-picker/link-picker-results.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { ActivityIndicator, FlatList, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { debounce } from '@wordpress/compose';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetConsumer } from '../bottom-sheet/bottom-sheet-context';\n\nconst PER_PAGE = 20;\nconst REQUEST_DEBOUNCE_DELAY = 400;\nconst MINIMUM_QUERY_SIZE = 2;\nconst meetsThreshold = ( query ) => MINIMUM_QUERY_SIZE <= query.length;\n\nexport default function LinkPickerResults( {\n\tquery,\n\tonLinkPicked,\n\tdirectEntry,\n} ) {\n\tconst [ links, setLinks ] = useState( [ directEntry ] );\n\tconst [ hasAllSuggestions, setHasAllSuggestions ] = useState( false );\n\tconst nextPage = useRef( 1 );\n\tconst pendingRequest = useRef();\n\tconst clearRequest = () => {\n\t\tpendingRequest.current = null;\n\t};\n\n\t// A stable debounced function to fetch suggestions and append.\n\tconst { fetchMoreSuggestions } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( 'core/block-editor' );\n\t\tconst fetchLinkSuggestions = async ( { search } ) => {\n\t\t\tif ( meetsThreshold( search ) ) {\n\t\t\t\treturn await getSettings().__experimentalFetchLinkSuggestions(\n\t\t\t\t\tsearch,\n\t\t\t\t\t{ page: nextPage.current, type: 'post', perPage: PER_PAGE }\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tconst fetchMore = async ( {\n\t\t\tquery: search,\n\t\t\tlinks: currentSuggestions,\n\t\t} ) => {\n\t\t\t// Return early if we've already detected the end of data or we are\n\t\t\t// already awaiting a response.\n\t\t\tif ( hasAllSuggestions || pendingRequest.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst request = fetchLinkSuggestions( { search } );\n\t\t\tpendingRequest.current = request;\n\t\t\tconst suggestions = await request;\n\n\t\t\t// Only update links for the most recent request.\n\t\t\tif ( suggestions && request === pendingRequest.current ) {\n\t\t\t\t// Since we don't have the response header, we check if the results\n\t\t\t\t// are truncated to determine we've reached the end.\n\t\t\t\tif ( suggestions.length < PER_PAGE ) {\n\t\t\t\t\tsetHasAllSuggestions( true );\n\t\t\t\t}\n\t\t\t\tsetLinks( [ ...currentSuggestions, ...suggestions ] );\n\t\t\t\tnextPage.current++;\n\t\t\t}\n\n\t\t\tclearRequest();\n\t\t};\n\t\treturn {\n\t\t\tfetchMoreSuggestions: debounce( fetchMore, REQUEST_DEBOUNCE_DELAY ),\n\t\t};\n\t\t// Disable eslint rule for now, to avoid introducing a regression\n\t\t// (see https://github.com/WordPress/gutenberg/pull/23922#discussion_r1170634879).\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\t// Prevent setting state when unmounted.\n\tuseEffect( () => clearRequest, [] );\n\n\t// Any time the query changes, we reset pagination.\n\tuseEffect( () => {\n\t\tclearRequest();\n\t\tnextPage.current = 1;\n\t\tsetHasAllSuggestions( false );\n\t\tsetLinks( [ directEntry ] );\n\t\tfetchMoreSuggestions( { query, links: [ directEntry ] } );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ query ] );\n\n\tconst onEndReached = () => fetchMoreSuggestions( { query, links } );\n\n\tconst spinner = ! hasAllSuggestions && meetsThreshold( query ) && (\n\t\t<View style={ styles.spinner } testID=\"link-picker-loading\">\n\t\t\t<ActivityIndicator animating />\n\t\t</View>\n\t);\n\n\treturn (\n\t\t<BottomSheetConsumer>\n\t\t\t{ ( { listProps } ) => (\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ links }\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\trenderItem={ ( { item } ) => (\n\t\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\t\tsuggestion={ item }\n\t\t\t\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\tkeyExtractor={ ( { url, type } ) => `${ url }-${ type }` }\n\t\t\t\t\tonEndReached={ onEndReached }\n\t\t\t\t\tonEndReachedThreshold={ 0.1 }\n\t\t\t\t\tinitialNumToRender={ PER_PAGE }\n\t\t\t\t\tListFooterComponent={ spinner }\n\t\t\t\t\t{ ...listProps }\n\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t...listProps.contentContainerStyle,\n\t\t\t\t\t\tstyles.list,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BottomSheetConsumer>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ActivityIndicator","FlatList","View","debounce","useState","useEffect","useRef","useSelect","styles","BottomSheet","BottomSheetConsumer","jsx","_jsx","PER_PAGE","REQUEST_DEBOUNCE_DELAY","MINIMUM_QUERY_SIZE","meetsThreshold","query","length","LinkPickerResults","onLinkPicked","directEntry","links","setLinks","hasAllSuggestions","setHasAllSuggestions","nextPage","pendingRequest","clearRequest","current","fetchMoreSuggestions","select","getSettings","fetchLinkSuggestions","search","__experimentalFetchLinkSuggestions","page","type","perPage","fetchMore","currentSuggestions","request","suggestions","onEndReached","spinner","style","testID","children","animating","listProps","data","keyboardShouldPersistTaps","renderItem","item","LinkSuggestionItemCell","suggestion","keyExtractor","url","onEndReachedThreshold","initialNumToRender","ListFooterComponent","contentContainerStyle","list"],"sources":["@wordpress/components/src/mobile/link-picker/link-picker-results.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { ActivityIndicator, FlatList, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { debounce } from '@wordpress/compose';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetConsumer } from '../bottom-sheet/bottom-sheet-context';\n\nconst PER_PAGE = 20;\nconst REQUEST_DEBOUNCE_DELAY = 400;\nconst MINIMUM_QUERY_SIZE = 2;\nconst meetsThreshold = ( query ) => MINIMUM_QUERY_SIZE <= query.length;\n\nexport default function LinkPickerResults( {\n\tquery,\n\tonLinkPicked,\n\tdirectEntry,\n} ) {\n\tconst [ links, setLinks ] = useState( [ directEntry ] );\n\tconst [ hasAllSuggestions, setHasAllSuggestions ] = useState( false );\n\tconst nextPage = useRef( 1 );\n\tconst pendingRequest = useRef();\n\tconst clearRequest = () => {\n\t\tpendingRequest.current = null;\n\t};\n\n\t// A stable debounced function to fetch suggestions and append.\n\tconst { fetchMoreSuggestions } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( 'core/block-editor' );\n\t\tconst fetchLinkSuggestions = async ( { search } ) => {\n\t\t\tif ( meetsThreshold( search ) ) {\n\t\t\t\treturn await getSettings().__experimentalFetchLinkSuggestions(\n\t\t\t\t\tsearch,\n\t\t\t\t\t{ page: nextPage.current, type: 'post', perPage: PER_PAGE }\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\t\tconst fetchMore = async ( {\n\t\t\tquery: search,\n\t\t\tlinks: currentSuggestions,\n\t\t} ) => {\n\t\t\t// Return early if we've already detected the end of data or we are\n\t\t\t// already awaiting a response.\n\t\t\tif ( hasAllSuggestions || pendingRequest.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst request = fetchLinkSuggestions( { search } );\n\t\t\tpendingRequest.current = request;\n\t\t\tconst suggestions = await request;\n\n\t\t\t// Only update links for the most recent request.\n\t\t\tif ( suggestions && request === pendingRequest.current ) {\n\t\t\t\t// Since we don't have the response header, we check if the results\n\t\t\t\t// are truncated to determine we've reached the end.\n\t\t\t\tif ( suggestions.length < PER_PAGE ) {\n\t\t\t\t\tsetHasAllSuggestions( true );\n\t\t\t\t}\n\t\t\t\tsetLinks( [ ...currentSuggestions, ...suggestions ] );\n\t\t\t\tnextPage.current++;\n\t\t\t}\n\n\t\t\tclearRequest();\n\t\t};\n\t\treturn {\n\t\t\tfetchMoreSuggestions: debounce( fetchMore, REQUEST_DEBOUNCE_DELAY ),\n\t\t};\n\t\t// Disable eslint rule for now, to avoid introducing a regression\n\t\t// (see https://github.com/WordPress/gutenberg/pull/23922#discussion_r1170634879).\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\t// Prevent setting state when unmounted.\n\tuseEffect( () => clearRequest, [] );\n\n\t// Any time the query changes, we reset pagination.\n\tuseEffect( () => {\n\t\tclearRequest();\n\t\tnextPage.current = 1;\n\t\tsetHasAllSuggestions( false );\n\t\tsetLinks( [ directEntry ] );\n\t\tfetchMoreSuggestions( { query, links: [ directEntry ] } );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ query ] );\n\n\tconst onEndReached = () => fetchMoreSuggestions( { query, links } );\n\n\tconst spinner = ! hasAllSuggestions && meetsThreshold( query ) && (\n\t\t<View style={ styles.spinner } testID=\"link-picker-loading\">\n\t\t\t<ActivityIndicator animating />\n\t\t</View>\n\t);\n\n\treturn (\n\t\t<BottomSheetConsumer>\n\t\t\t{ ( { listProps } ) => (\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ links }\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\trenderItem={ ( { item } ) => (\n\t\t\t\t\t\t<BottomSheet.LinkSuggestionItemCell\n\t\t\t\t\t\t\tsuggestion={ item }\n\t\t\t\t\t\t\tonLinkPicked={ onLinkPicked }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\tkeyExtractor={ ( { url, type } ) => `${ url }-${ type }` }\n\t\t\t\t\tonEndReached={ onEndReached }\n\t\t\t\t\tonEndReachedThreshold={ 0.1 }\n\t\t\t\t\tinitialNumToRender={ PER_PAGE }\n\t\t\t\t\tListFooterComponent={ spinner }\n\t\t\t\t\t{ ...listProps }\n\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t...listProps.contentContainerStyle,\n\t\t\t\t\t\tstyles.list,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</BottomSheetConsumer>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -24,9 +24,7 @@ import FooterMessageControl from '../../footer-message-control';
24
24
  import PanelActions from '../../panel/actions';
25
25
  import LinkRelIcon from './link-rel';
26
26
  import styles from './style.scss';
27
- import { jsx as _jsx } from "react/jsx-runtime";
28
- import { Fragment as _Fragment } from "react/jsx-runtime";
29
- import { jsxs as _jsxs } from "react/jsx-runtime";
27
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
30
28
  const NEW_TAB_REL = 'noreferrer noopener';
31
29
  function LinkSettings({
32
30
  // Control link settings `BottomSheet` visibility
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","Clipboard","compose","withSelect","isURL","prependHTTP","useEffect","useState","useRef","useContext","useCallback","link","external","BottomSheet","BottomSheetContext","PanelBody","TextControl","ToggleControl","FooterMessageControl","PanelActions","LinkRelIcon","styles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","onCloseSettingsSheetConsumed","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","getString","getSettings","children","LinkCell","valueMask","onPress","icon","valuePlaceholder","placeholder","onChange","onSubmit","autoCapitalize","autoCorrect","autoFocus","OS","keyboardType","linkLabel","openInNewTab","checked","linkRel","style","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst onCloseSettingsSheetConsumed = useRef( false );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( isSettingSheetOpen ) {\n\t\t\tonCloseSettingsSheetConsumed.current = false;\n\t\t}\n\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tif ( onCloseSettingsSheetConsumed.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCloseSettingsSheetConsumed.current = true;\n\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL.\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","Clipboard","compose","withSelect","isURL","prependHTTP","useEffect","useState","useRef","useContext","useCallback","link","external","BottomSheet","BottomSheetContext","PanelBody","TextControl","ToggleControl","FooterMessageControl","PanelActions","LinkRelIcon","styles","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","onCloseSettingsSheetConsumed","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","getString","getSettings","children","LinkCell","valueMask","onPress","icon","valuePlaceholder","placeholder","onChange","onSubmit","autoCapitalize","autoCorrect","autoFocus","OS","keyboardType","linkLabel","openInNewTab","checked","linkRel","style","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst onCloseSettingsSheetConsumed = useRef( false );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( isSettingSheetOpen ) {\n\t\t\tonCloseSettingsSheetConsumed.current = false;\n\t\t}\n\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tif ( onCloseSettingsSheetConsumed.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCloseSettingsSheetConsumed.current = true;\n\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL.\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,7 @@ import { memo } from '@wordpress/element';
8
8
  import BottomSheet from '../bottom-sheet';
9
9
  import LinkSettingsScreen from './link-settings-screen';
10
10
  import LinkPickerScreen from '../link-picker/link-picker-screen';
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
- import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
12
  const linkSettingsScreens = {
14
13
  settings: 'LinkSettingsScreen',
15
14
  linkPicker: 'linkPicker'
@@ -1 +1 @@
1
- {"version":3,"names":["memo","BottomSheet","LinkSettingsScreen","LinkPickerScreen","jsx","_jsx","jsxs","_jsxs","linkSettingsScreens","settings","linkPicker","LinkSettingsNavigation","props","withBottomSheet","isVisible","onClose","onDismiss","testID","hideHeader","hasNavigation","children","NavigationContainer","animate","main","NavigationScreen","name","isScrollable","fullScreen","returnScreenName"],"sources":["@wordpress/components/src/mobile/link-settings/link-settings-navigation.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport LinkSettingsScreen from './link-settings-screen';\nimport LinkPickerScreen from '../link-picker/link-picker-screen';\n\nconst linkSettingsScreens = {\n\tsettings: 'LinkSettingsScreen',\n\tlinkPicker: 'linkPicker',\n};\n\nfunction LinkSettingsNavigation( props ) {\n\tif ( ! props.withBottomSheet ) {\n\t\treturn <LinkSettingsScreen { ...props } />;\n\t}\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ props.isVisible }\n\t\t\tonClose={ props.onClose }\n\t\t\tonDismiss={ props.onDismiss }\n\t\t\ttestID=\"link-settings-navigation\"\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.settings }\n\t\t\t\t>\n\t\t\t\t\t<LinkSettingsScreen { ...props } withBottomSheet />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.linkPicker }\n\t\t\t\t\tisScrollable\n\t\t\t\t\tfullScreen\n\t\t\t\t>\n\t\t\t\t\t<LinkPickerScreen\n\t\t\t\t\t\treturnScreenName={ linkSettingsScreens.settings }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default memo( LinkSettingsNavigation );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,oBAAoB;AACzC;AACA;AACA;AACA,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,gBAAgB,MAAM,mCAAmC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEjE,MAAMC,mBAAmB,GAAG;EAC3BC,QAAQ,EAAE,oBAAoB;EAC9BC,UAAU,EAAE;AACb,CAAC;AAED,SAASC,sBAAsBA,CAAEC,KAAK,EAAG;EACxC,IAAK,CAAEA,KAAK,CAACC,eAAe,EAAG;IAC9B,oBAAOR,IAAA,CAACH,kBAAkB;MAAA,GAAMU;IAAK,CAAI,CAAC;EAC3C;EACA,oBACCP,IAAA,CAACJ,WAAW;IACXa,SAAS,EAAGF,KAAK,CAACE,SAAW;IAC7BC,OAAO,EAAGH,KAAK,CAACG,OAAS;IACzBC,SAAS,EAAGJ,KAAK,CAACI,SAAW;IAC7BC,MAAM,EAAC,0BAA0B;IACjCC,UAAU;IACVC,aAAa;IAAAC,QAAA,eAEbb,KAAA,CAACN,WAAW,CAACoB,mBAAmB;MAACC,OAAO;MAACC,IAAI;MAAAH,QAAA,gBAC5Cf,IAAA,CAACJ,WAAW,CAACuB,gBAAgB;QAC5BC,IAAI,EAAGjB,mBAAmB,CAACC,QAAU;QAAAW,QAAA,eAErCf,IAAA,CAACH,kBAAkB;UAAA,GAAMU,KAAK;UAAGC,eAAe;QAAA,CAAE;MAAC,CACtB,CAAC,eAC/BR,IAAA,CAACJ,WAAW,CAACuB,gBAAgB;QAC5BC,IAAI,EAAGjB,mBAAmB,CAACE,UAAY;QACvCgB,YAAY;QACZC,UAAU;QAAAP,QAAA,eAEVf,IAAA,CAACF,gBAAgB;UAChByB,gBAAgB,EAAGpB,mBAAmB,CAACC;QAAU,CACjD;MAAC,CAC2B,CAAC;IAAA,CACC;EAAC,CACtB,CAAC;AAEhB;AAEA,eAAeT,IAAI,CAAEW,sBAAuB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["memo","BottomSheet","LinkSettingsScreen","LinkPickerScreen","jsx","_jsx","jsxs","_jsxs","linkSettingsScreens","settings","linkPicker","LinkSettingsNavigation","props","withBottomSheet","isVisible","onClose","onDismiss","testID","hideHeader","hasNavigation","children","NavigationContainer","animate","main","NavigationScreen","name","isScrollable","fullScreen","returnScreenName"],"sources":["@wordpress/components/src/mobile/link-settings/link-settings-navigation.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport LinkSettingsScreen from './link-settings-screen';\nimport LinkPickerScreen from '../link-picker/link-picker-screen';\n\nconst linkSettingsScreens = {\n\tsettings: 'LinkSettingsScreen',\n\tlinkPicker: 'linkPicker',\n};\n\nfunction LinkSettingsNavigation( props ) {\n\tif ( ! props.withBottomSheet ) {\n\t\treturn <LinkSettingsScreen { ...props } />;\n\t}\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ props.isVisible }\n\t\t\tonClose={ props.onClose }\n\t\t\tonDismiss={ props.onDismiss }\n\t\t\ttestID=\"link-settings-navigation\"\n\t\t\thideHeader\n\t\t\thasNavigation\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.settings }\n\t\t\t\t>\n\t\t\t\t\t<LinkSettingsScreen { ...props } withBottomSheet />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ linkSettingsScreens.linkPicker }\n\t\t\t\t\tisScrollable\n\t\t\t\t\tfullScreen\n\t\t\t\t>\n\t\t\t\t\t<LinkPickerScreen\n\t\t\t\t\t\treturnScreenName={ linkSettingsScreens.settings }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default memo( LinkSettingsNavigation );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,oBAAoB;AACzC;AACA;AACA;AACA,OAAOC,WAAW,MAAM,iBAAiB;AACzC,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,gBAAgB,MAAM,mCAAmC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjE,MAAMC,mBAAmB,GAAG;EAC3BC,QAAQ,EAAE,oBAAoB;EAC9BC,UAAU,EAAE;AACb,CAAC;AAED,SAASC,sBAAsBA,CAAEC,KAAK,EAAG;EACxC,IAAK,CAAEA,KAAK,CAACC,eAAe,EAAG;IAC9B,oBAAOR,IAAA,CAACH,kBAAkB;MAAA,GAAMU;IAAK,CAAI,CAAC;EAC3C;EACA,oBACCP,IAAA,CAACJ,WAAW;IACXa,SAAS,EAAGF,KAAK,CAACE,SAAW;IAC7BC,OAAO,EAAGH,KAAK,CAACG,OAAS;IACzBC,SAAS,EAAGJ,KAAK,CAACI,SAAW;IAC7BC,MAAM,EAAC,0BAA0B;IACjCC,UAAU;IACVC,aAAa;IAAAC,QAAA,eAEbb,KAAA,CAACN,WAAW,CAACoB,mBAAmB;MAACC,OAAO;MAACC,IAAI;MAAAH,QAAA,gBAC5Cf,IAAA,CAACJ,WAAW,CAACuB,gBAAgB;QAC5BC,IAAI,EAAGjB,mBAAmB,CAACC,QAAU;QAAAW,QAAA,eAErCf,IAAA,CAACH,kBAAkB;UAAA,GAAMU,KAAK;UAAGC,eAAe;QAAA,CAAE;MAAC,CACtB,CAAC,eAC/BR,IAAA,CAACJ,WAAW,CAACuB,gBAAgB;QAC5BC,IAAI,EAAGjB,mBAAmB,CAACE,UAAY;QACvCgB,YAAY;QACZC,UAAU;QAAAP,QAAA,eAEVf,IAAA,CAACF,gBAAgB;UAChByB,gBAAgB,EAAGpB,mBAAmB,CAACC;QAAU,CACjD;MAAC,CAC2B,CAAC;IAAA,CACC;EAAC,CACtB,CAAC;AAEhB;AAEA,eAAeT,IAAI,CAAEW,sBAAuB,CAAC","ignoreList":[]}
@@ -17,8 +17,7 @@ import BottomSheet from '../bottom-sheet';
17
17
  import styles from './styles.scss';
18
18
  import PanelBody from '../../panel/body';
19
19
  import TextControl from '../../text-control';
20
- import { jsx as _jsx } from "react/jsx-runtime";
21
- import { jsxs as _jsxs } from "react/jsx-runtime";
20
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
21
  function Separator() {
23
22
  const separatorStyle = usePreferredColorSchemeStyle(styles['components-picker__separator'], styles['components-picker__separator--dark']);
24
23
  return /*#__PURE__*/_jsx(View, {
@@ -1 +1 @@
1
- {"version":3,"names":["View","__","Component","Fragment","usePreferredColorSchemeStyle","BottomSheet","styles","PanelBody","TextControl","jsx","_jsx","jsxs","_jsxs","Separator","separatorStyle","style","Picker","constructor","arguments","onClose","bind","onCellPress","state","isVisible","presentPicker","setState","value","onChange","props","getOptions","options","leftAlign","map","option","children","length","separated","Cell","icon","label","separatorType","onPress","disabled","render","hideCancelButton","title","testID","hideHeader"],"sources":["@wordpress/components/src/mobile/picker/index.android.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport styles from './styles.scss';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\n\nfunction Separator() {\n\tconst separatorStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'components-picker__separator' ],\n\t\tstyles[ 'components-picker__separator--dark' ]\n\t);\n\n\treturn <View style={ separatorStyle } />;\n}\n\nexport default class Picker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onClose = this.onClose.bind( this );\n\t\tthis.onCellPress = this.onCellPress.bind( this );\n\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t}\n\n\tpresentPicker() {\n\t\tthis.setState( { isVisible: true } );\n\t}\n\n\tonClose() {\n\t\tthis.setState( { isVisible: false } );\n\t}\n\n\tonCellPress( value ) {\n\t\tconst { onChange } = this.props;\n\t\tonChange( value );\n\t\tthis.onClose();\n\t}\n\n\tgetOptions() {\n\t\tconst { options, leftAlign } = this.props;\n\n\t\treturn options.map( ( option ) => (\n\t\t\t<Fragment key={ `${ option.label }-${ option.value }` }>\n\t\t\t\t{ options.length > 1 && option.separated && <Separator /> }\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ option.icon }\n\t\t\t\t\tleftAlign={ leftAlign }\n\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\tonPress={ () => this.onCellPress( option.value ) }\n\t\t\t\t\tdisabled={ option.disabled }\n\t\t\t\t\tstyle={\n\t\t\t\t\t\toption.disabled &&\n\t\t\t\t\t\tstyles[ 'components-picker__button--disabled' ]\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t) );\n\t}\n\n\trender() {\n\t\tconst { hideCancelButton, title, testID } = this.props;\n\t\tconst { isVisible } = this.state;\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\tonClose={ this.onClose }\n\t\t\t\thideHeader\n\t\t\t\ttestID={ testID }\n\t\t\t>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ styles[ 'components-picker__panel' ] }\n\t\t\t\t>\n\t\t\t\t\t{ this.getOptions() }\n\t\t\t\t\t{ ! hideCancelButton && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\t\tonPress={ this.onClose }\n\t\t\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","__","Component","Fragment","usePreferredColorSchemeStyle","BottomSheet","styles","PanelBody","TextControl","jsx","_jsx","jsxs","_jsxs","Separator","separatorStyle","style","Picker","constructor","arguments","onClose","bind","onCellPress","state","isVisible","presentPicker","setState","value","onChange","props","getOptions","options","leftAlign","map","option","children","length","separated","Cell","icon","label","separatorType","onPress","disabled","render","hideCancelButton","title","testID","hideHeader"],"sources":["@wordpress/components/src/mobile/picker/index.android.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport styles from './styles.scss';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\n\nfunction Separator() {\n\tconst separatorStyle = usePreferredColorSchemeStyle(\n\t\tstyles[ 'components-picker__separator' ],\n\t\tstyles[ 'components-picker__separator--dark' ]\n\t);\n\n\treturn <View style={ separatorStyle } />;\n}\n\nexport default class Picker extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onClose = this.onClose.bind( this );\n\t\tthis.onCellPress = this.onCellPress.bind( this );\n\n\t\tthis.state = {\n\t\t\tisVisible: false,\n\t\t};\n\t}\n\n\tpresentPicker() {\n\t\tthis.setState( { isVisible: true } );\n\t}\n\n\tonClose() {\n\t\tthis.setState( { isVisible: false } );\n\t}\n\n\tonCellPress( value ) {\n\t\tconst { onChange } = this.props;\n\t\tonChange( value );\n\t\tthis.onClose();\n\t}\n\n\tgetOptions() {\n\t\tconst { options, leftAlign } = this.props;\n\n\t\treturn options.map( ( option ) => (\n\t\t\t<Fragment key={ `${ option.label }-${ option.value }` }>\n\t\t\t\t{ options.length > 1 && option.separated && <Separator /> }\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\ticon={ option.icon }\n\t\t\t\t\tleftAlign={ leftAlign }\n\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\tonPress={ () => this.onCellPress( option.value ) }\n\t\t\t\t\tdisabled={ option.disabled }\n\t\t\t\t\tstyle={\n\t\t\t\t\t\toption.disabled &&\n\t\t\t\t\t\tstyles[ 'components-picker__button--disabled' ]\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t) );\n\t}\n\n\trender() {\n\t\tconst { hideCancelButton, title, testID } = this.props;\n\t\tconst { isVisible } = this.state;\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ isVisible }\n\t\t\t\tonClose={ this.onClose }\n\t\t\t\thideHeader\n\t\t\t\ttestID={ testID }\n\t\t\t>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ styles[ 'components-picker__panel' ] }\n\t\t\t\t>\n\t\t\t\t\t{ this.getOptions() }\n\t\t\t\t\t{ ! hideCancelButton && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\t\tonPress={ this.onClose }\n\t\t\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,8 +13,7 @@ import { usePreferredColorSchemeStyle } from '@wordpress/compose';
13
13
  */
14
14
  import { performLayoutAnimation } from '../layout-animation';
15
15
  import styles from './style.scss';
16
- import { jsx as _jsx } from "react/jsx-runtime";
17
- import { jsxs as _jsxs } from "react/jsx-runtime";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
17
  const ANIMATION_DURATION = 200;
19
18
  const isIOS = Platform.OS === 'ios';
20
19
  const Segment = ({
@@ -1 +1 @@
1
- {"version":3,"names":["View","TouchableWithoutFeedback","Text","Platform","Animated","Easing","useState","useEffect","usePreferredColorSchemeStyle","performLayoutAnimation","styles","jsx","_jsx","jsxs","_jsxs","ANIMATION_DURATION","isIOS","OS","Segment","isSelected","title","onPress","onLayout","props","isSelectedIOS","segmentStyle","segment","segmentIOS","textStyle","buttonTextDefault","buttonTextDefaultDark","selectedTextStyle","buttonTextSelected","buttonTextSelectedDark","shadowStyle","shadowIOS","style","children","maxFontSizeMultiplier","SegmentedControls","segments","segmentHandler","selectedIndex","addonLeft","addonRight","selectedSegmentIndex","activeSegmentIndex","setActiveSegmentIndex","segmentsDimensions","setSegmentsDimensions","width","height","positionAnimationValue","Value","setValue","calculateEndValue","containerStyle","container","containerDark","performSwatchAnimation","index","timing","toValue","duration","easing","ease","useNativeDriver","start","paddingLeft","offset","containerIOS","widths","Object","values","map","dimension","widthsDistance","slice","widthsDistanceSum","reduce","sum","n","endValue","onHandlePress","segmentOnLayout","event","nativeEvent","layout","selectedStyle","selected","selectedDark","outlineStyle","outline","outlineIOS","row","flex","left","accessibilityState","accessibilityRole","accessibilityLabel","accessibilityHint","length"],"sources":["@wordpress/components/src/mobile/segmented-control/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tPlatform,\n\tAnimated,\n\tEasing,\n} from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { performLayoutAnimation } from '../layout-animation';\nimport styles from './style.scss';\n\nconst ANIMATION_DURATION = 200;\n\nconst isIOS = Platform.OS === 'ios';\n\nconst Segment = ( { isSelected, title, onPress, onLayout, ...props } ) => {\n\tconst isSelectedIOS = isIOS && isSelected;\n\n\tconst segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextDefault,\n\t\tstyles.buttonTextDefaultDark\n\t);\n\tconst selectedTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextSelected,\n\t\tstyles.buttonTextSelectedDark\n\t);\n\tconst shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );\n\n\treturn (\n\t\t<View style={ isSelectedIOS && shadowStyle }>\n\t\t\t<TouchableWithoutFeedback onPress={ onPress }>\n\t\t\t\t<View style={ segmentStyle } onLayout={ onLayout } { ...props }>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ [ textStyle, isSelected && selectedTextStyle ] }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nconst SegmentedControls = ( {\n\tsegments,\n\tsegmentHandler,\n\tselectedIndex,\n\taddonLeft,\n\taddonRight,\n} ) => {\n\tconst selectedSegmentIndex = selectedIndex || 0;\n\tconst [ activeSegmentIndex, setActiveSegmentIndex ] =\n\t\tuseState( selectedSegmentIndex );\n\tconst [ segmentsDimensions, setSegmentsDimensions ] = useState( {\n\t\t[ activeSegmentIndex ]: { width: 0, height: 0 },\n\t} );\n\tconst [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );\n\n\tuseEffect( () => {\n\t\tsetActiveSegmentIndex( selectedSegmentIndex );\n\t\tsegmentHandler( segments[ selectedSegmentIndex ] );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tpositionAnimationValue.setValue(\n\t\t\tcalculateEndValue( activeSegmentIndex )\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ segmentsDimensions ] );\n\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.container,\n\t\tstyles.containerDark\n\t);\n\n\tfunction performSwatchAnimation( index ) {\n\t\tAnimated.timing( positionAnimationValue, {\n\t\t\ttoValue: calculateEndValue( index ),\n\t\t\tduration: ANIMATION_DURATION,\n\t\t\teasing: Easing.ease,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start();\n\t}\n\n\tfunction calculateEndValue( index ) {\n\t\tconst { paddingLeft: offset } = isIOS\n\t\t\t? styles.containerIOS\n\t\t\t: styles.container;\n\t\tconst widths = Object.values( segmentsDimensions ).map(\n\t\t\t( dimension ) => dimension.width\n\t\t);\n\t\tconst widthsDistance = widths.slice( 0, index );\n\t\tconst widthsDistanceSum = widthsDistance.reduce(\n\t\t\t( sum, n ) => sum + n,\n\t\t\t0\n\t\t);\n\n\t\tconst endValue = index === 0 ? 0 : widthsDistanceSum;\n\t\treturn endValue + offset;\n\t}\n\n\tfunction onHandlePress( segment, index ) {\n\t\tperformLayoutAnimation( ANIMATION_DURATION );\n\t\tsetActiveSegmentIndex( index );\n\t\tsegmentHandler( segment );\n\t\tperformSwatchAnimation( index );\n\t}\n\n\tfunction segmentOnLayout( event, index ) {\n\t\tconst { width, height } = event.nativeEvent.layout;\n\n\t\tsetSegmentsDimensions( {\n\t\t\t...segmentsDimensions,\n\t\t\t[ index ]: { width, height },\n\t\t} );\n\t}\n\n\tconst selectedStyle = usePreferredColorSchemeStyle(\n\t\tstyles.selected,\n\t\tstyles.selectedDark\n\t);\n\n\tconst width = segmentsDimensions[ activeSegmentIndex ]?.width;\n\tconst height = segmentsDimensions[ activeSegmentIndex ]?.height;\n\n\tconst outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];\n\n\treturn (\n\t\t<View style={ styles.row }>\n\t\t\t<View style={ styles.flex }>{ addonLeft }</View>\n\t\t\t<View style={ [ containerStyle, isIOS && styles.containerIOS ] }>\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tleft: positionAnimationValue,\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselectedStyle,\n\t\t\t\t\t\toutlineStyle,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t{ segments.map( ( segment, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Segment\n\t\t\t\t\t\t\ttitle={ segment }\n\t\t\t\t\t\t\tonPress={ () => onHandlePress( segment, index ) }\n\t\t\t\t\t\t\tisSelected={ activeSegmentIndex === index }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tonLayout={ ( event ) =>\n\t\t\t\t\t\t\t\tsegmentOnLayout( event, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityState={ {\n\t\t\t\t\t\t\t\tselected: activeSegmentIndex === index,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taccessibilityRole=\"button\"\n\t\t\t\t\t\t\taccessibilityLabel={ segment }\n\t\t\t\t\t\t\taccessibilityHint={ `${ index + 1 } on ${\n\t\t\t\t\t\t\t\tsegments.length\n\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t\t<View style={ styles.flex }>{ addonRight }</View>\n\t\t</View>\n\t);\n};\n\nexport default SegmentedControls;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","TouchableWithoutFeedback","Text","Platform","Animated","Easing","useState","useEffect","usePreferredColorSchemeStyle","performLayoutAnimation","styles","jsx","_jsx","jsxs","_jsxs","ANIMATION_DURATION","isIOS","OS","Segment","isSelected","title","onPress","onLayout","props","isSelectedIOS","segmentStyle","segment","segmentIOS","textStyle","buttonTextDefault","buttonTextDefaultDark","selectedTextStyle","buttonTextSelected","buttonTextSelectedDark","shadowStyle","shadowIOS","style","children","maxFontSizeMultiplier","SegmentedControls","segments","segmentHandler","selectedIndex","addonLeft","addonRight","selectedSegmentIndex","activeSegmentIndex","setActiveSegmentIndex","segmentsDimensions","setSegmentsDimensions","width","height","positionAnimationValue","Value","setValue","calculateEndValue","containerStyle","container","containerDark","performSwatchAnimation","index","timing","toValue","duration","easing","ease","useNativeDriver","start","paddingLeft","offset","containerIOS","widths","Object","values","map","dimension","widthsDistance","slice","widthsDistanceSum","reduce","sum","n","endValue","onHandlePress","segmentOnLayout","event","nativeEvent","layout","selectedStyle","selected","selectedDark","outlineStyle","outline","outlineIOS","row","flex","left","accessibilityState","accessibilityRole","accessibilityLabel","accessibilityHint","length"],"sources":["@wordpress/components/src/mobile/segmented-control/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tView,\n\tTouchableWithoutFeedback,\n\tText,\n\tPlatform,\n\tAnimated,\n\tEasing,\n} from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { performLayoutAnimation } from '../layout-animation';\nimport styles from './style.scss';\n\nconst ANIMATION_DURATION = 200;\n\nconst isIOS = Platform.OS === 'ios';\n\nconst Segment = ( { isSelected, title, onPress, onLayout, ...props } ) => {\n\tconst isSelectedIOS = isIOS && isSelected;\n\n\tconst segmentStyle = [ styles.segment, isIOS && styles.segmentIOS ];\n\n\tconst textStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextDefault,\n\t\tstyles.buttonTextDefaultDark\n\t);\n\tconst selectedTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.buttonTextSelected,\n\t\tstyles.buttonTextSelectedDark\n\t);\n\tconst shadowStyle = usePreferredColorSchemeStyle( styles.shadowIOS, {} );\n\n\treturn (\n\t\t<View style={ isSelectedIOS && shadowStyle }>\n\t\t\t<TouchableWithoutFeedback onPress={ onPress }>\n\t\t\t\t<View style={ segmentStyle } onLayout={ onLayout } { ...props }>\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ [ textStyle, isSelected && selectedTextStyle ] }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</View>\n\t);\n};\n\nconst SegmentedControls = ( {\n\tsegments,\n\tsegmentHandler,\n\tselectedIndex,\n\taddonLeft,\n\taddonRight,\n} ) => {\n\tconst selectedSegmentIndex = selectedIndex || 0;\n\tconst [ activeSegmentIndex, setActiveSegmentIndex ] =\n\t\tuseState( selectedSegmentIndex );\n\tconst [ segmentsDimensions, setSegmentsDimensions ] = useState( {\n\t\t[ activeSegmentIndex ]: { width: 0, height: 0 },\n\t} );\n\tconst [ positionAnimationValue ] = useState( new Animated.Value( 0 ) );\n\n\tuseEffect( () => {\n\t\tsetActiveSegmentIndex( selectedSegmentIndex );\n\t\tsegmentHandler( segments[ selectedSegmentIndex ] );\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tpositionAnimationValue.setValue(\n\t\t\tcalculateEndValue( activeSegmentIndex )\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ segmentsDimensions ] );\n\n\tconst containerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.container,\n\t\tstyles.containerDark\n\t);\n\n\tfunction performSwatchAnimation( index ) {\n\t\tAnimated.timing( positionAnimationValue, {\n\t\t\ttoValue: calculateEndValue( index ),\n\t\t\tduration: ANIMATION_DURATION,\n\t\t\teasing: Easing.ease,\n\t\t\tuseNativeDriver: false,\n\t\t} ).start();\n\t}\n\n\tfunction calculateEndValue( index ) {\n\t\tconst { paddingLeft: offset } = isIOS\n\t\t\t? styles.containerIOS\n\t\t\t: styles.container;\n\t\tconst widths = Object.values( segmentsDimensions ).map(\n\t\t\t( dimension ) => dimension.width\n\t\t);\n\t\tconst widthsDistance = widths.slice( 0, index );\n\t\tconst widthsDistanceSum = widthsDistance.reduce(\n\t\t\t( sum, n ) => sum + n,\n\t\t\t0\n\t\t);\n\n\t\tconst endValue = index === 0 ? 0 : widthsDistanceSum;\n\t\treturn endValue + offset;\n\t}\n\n\tfunction onHandlePress( segment, index ) {\n\t\tperformLayoutAnimation( ANIMATION_DURATION );\n\t\tsetActiveSegmentIndex( index );\n\t\tsegmentHandler( segment );\n\t\tperformSwatchAnimation( index );\n\t}\n\n\tfunction segmentOnLayout( event, index ) {\n\t\tconst { width, height } = event.nativeEvent.layout;\n\n\t\tsetSegmentsDimensions( {\n\t\t\t...segmentsDimensions,\n\t\t\t[ index ]: { width, height },\n\t\t} );\n\t}\n\n\tconst selectedStyle = usePreferredColorSchemeStyle(\n\t\tstyles.selected,\n\t\tstyles.selectedDark\n\t);\n\n\tconst width = segmentsDimensions[ activeSegmentIndex ]?.width;\n\tconst height = segmentsDimensions[ activeSegmentIndex ]?.height;\n\n\tconst outlineStyle = [ styles.outline, isIOS && styles.outlineIOS ];\n\n\treturn (\n\t\t<View style={ styles.row }>\n\t\t\t<View style={ styles.flex }>{ addonLeft }</View>\n\t\t\t<View style={ [ containerStyle, isIOS && styles.containerIOS ] }>\n\t\t\t\t<Animated.View\n\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\tleft: positionAnimationValue,\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselectedStyle,\n\t\t\t\t\t\toutlineStyle,\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t\t{ segments.map( ( segment, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Segment\n\t\t\t\t\t\t\ttitle={ segment }\n\t\t\t\t\t\t\tonPress={ () => onHandlePress( segment, index ) }\n\t\t\t\t\t\t\tisSelected={ activeSegmentIndex === index }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tonLayout={ ( event ) =>\n\t\t\t\t\t\t\t\tsegmentOnLayout( event, index )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityState={ {\n\t\t\t\t\t\t\t\tselected: activeSegmentIndex === index,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taccessibilityRole=\"button\"\n\t\t\t\t\t\t\taccessibilityLabel={ segment }\n\t\t\t\t\t\t\taccessibilityHint={ `${ index + 1 } on ${\n\t\t\t\t\t\t\t\tsegments.length\n\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t\t<View style={ styles.flex }>{ addonRight }</View>\n\t\t</View>\n\t);\n};\n\nexport default SegmentedControls;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["parseUnit","cssUnit","match","trim","isNaN","parseFloat","value","unit","undefined","calculate","expression","Function","err","getFunctionUnitValue","functionUnitValue","options","functionUnit","split","filter","Boolean","units","slice","map","getPxFromCssUnit","Math","min","max","length","parseUnitFunction","currentCssUnit","regExp","matches","exec","replace","isMathExpression","i","includes","evalMathExpression","errorFound","cssUnitsBits","parsedUnit","expressionsMatches","values","currentValue","rawCurrentValue","calculatedExpression","calculatedValue","toFixed","parsedValue","calculatedResult","convertParsedUnitToPx","PIXELS_PER_INCH","ONE_PERCENT","defaultProperties","fontSize","lineHeight","width","height","type","setOptions","Object","assign","relativeUnits","em","rem","vh","vw","vmin","vmax","ch","ex","lh","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","svmin","lvmin","dvmin","svmax","lvmax","dvmax","absoluteUnits","in","cm","mm","pt","pc","px","Q","Number","isFinite","cache","memoizedGetPxFromCssUnit","hash","hashOptions","hasOwnProperty"],"sources":["@wordpress/components/src/mobile/utils/get-px-from-css-unit.native.js"],"sourcesContent":["/**\n * Converts string to object { value, unit }.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit\n */\nfunction parseUnit( cssUnit ) {\n\tconst match = cssUnit\n\t\t?.trim()\n\t\t.match(\n\t\t\t/^(0?[-.]?\\d*\\.?\\d+)(r?e[m|x]|v[h|w|min|max]+|p[x|t|c]|[c|m]m|%|in|ch|Q|lh)$/\n\t\t);\n\tif ( ! isNaN( cssUnit ) && ! isNaN( parseFloat( cssUnit ) ) ) {\n\t\treturn { value: parseFloat( cssUnit ), unit: 'px' };\n\t}\n\treturn match\n\t\t? { value: parseFloat( match[ 1 ] ) || match[ 1 ], unit: match[ 2 ] }\n\t\t: { value: cssUnit, unit: undefined };\n}\n/**\n * Evaluate a math expression.\n *\n * @param {string} expression\n * @return {number} evaluated expression.\n */\nfunction calculate( expression ) {\n\ttry {\n\t\treturn Function( `'use strict'; return (${ expression })` )();\n\t} catch ( err ) {\n\t\treturn null;\n\t}\n}\n\n/**\n * Calculates the css function value for the supported css functions such as max, min, clamp and calc.\n *\n * @param {string} functionUnitValue string should be in a particular format (for example min(12px,12px) ) no nested loops.\n * @param {Object} options\n * @return {string} unit containing the unit in PX.\n */\nfunction getFunctionUnitValue( functionUnitValue, options ) {\n\tconst functionUnit = functionUnitValue.split( /[(),]/g ).filter( Boolean );\n\n\tconst units = functionUnit\n\t\t.slice( 1 )\n\t\t.map( ( unit ) => parseUnit( getPxFromCssUnit( unit, options ) ).value )\n\t\t.filter( Boolean );\n\n\tswitch ( functionUnit[ 0 ] ) {\n\t\tcase 'min':\n\t\t\treturn Math.min( ...units ) + 'px';\n\t\tcase 'max':\n\t\t\treturn Math.max( ...units ) + 'px';\n\t\tcase 'clamp':\n\t\t\tif ( units.length !== 3 ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ( units[ 1 ] < units[ 0 ] ) {\n\t\t\t\treturn units[ 0 ] + 'px';\n\t\t\t}\n\t\t\tif ( units[ 1 ] > units[ 2 ] ) {\n\t\t\t\treturn units[ 2 ] + 'px';\n\t\t\t}\n\t\t\treturn units[ 1 ] + 'px';\n\t\tcase 'calc':\n\t\t\treturn units[ 0 ] + 'px';\n\t}\n}\n\n/**\n * Take a css function such as min, max, calc, clamp and returns parsedUnit\n *\n * How this works for the nested function is that it first replaces the inner function call.\n * Then it tackles the outer onces.\n * So for example: min( max(25px, 35px), 40px )\n * in the first pass we would replace max(25px, 35px) with 35px.\n * then we would try to evaluate min( 35px, 40px )\n * and then finally return 35px.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit object.\n */\nfunction parseUnitFunction( cssUnit ) {\n\twhile ( true ) {\n\t\tconst currentCssUnit = cssUnit;\n\t\tconst regExp = /(max|min|calc|clamp)\\(([^()]*)\\)/g;\n\t\tconst matches = regExp.exec( cssUnit ) || [];\n\t\tif ( matches[ 0 ] ) {\n\t\t\tconst functionUnitValue = getFunctionUnitValue( matches[ 0 ] );\n\t\t\tcssUnit = cssUnit.replace( matches[ 0 ], functionUnitValue );\n\t\t}\n\n\t\t// If the unit hasn't been modified or we have a single value break free.\n\t\tif ( cssUnit === currentCssUnit || parseFloat( cssUnit ) ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parseUnit( cssUnit );\n}\n/**\n * Return true if we think this is a math expression.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {boolean} Whether the cssUnit is a math expression.\n */\nfunction isMathExpression( cssUnit ) {\n\tfor ( let i = 0; i < cssUnit.length; i++ ) {\n\t\tif ( [ '+', '-', '/', '*' ].includes( cssUnit[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n/**\n * Evaluates the math expression and return a px value.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {string} return a converfted value to px.\n */\nfunction evalMathExpression( cssUnit ) {\n\tlet errorFound = false;\n\t// Convert every part of the expression to px values.\n\t// The following regex matches numbers that have a following unit\n\t// E.g. 5.25rem, 1vw\n\tconst cssUnitsBits = cssUnit.match( /\\d+\\.?\\d*[a-zA-Z]+|\\.\\d+[a-zA-Z]+/g );\n\tif ( cssUnitsBits ) {\n\t\tfor ( const unit of cssUnitsBits ) {\n\t\t\t// Standardize the unit to px and extract the value.\n\t\t\tconst parsedUnit = parseUnit( getPxFromCssUnit( unit ) );\n\t\t\tif ( ! parseFloat( parsedUnit.value ) ) {\n\t\t\t\terrorFound = true;\n\t\t\t\t// End early since we are dealing with a null value.\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcssUnit = cssUnit.replace( unit, parsedUnit.value );\n\t\t}\n\t} else {\n\t\terrorFound = true;\n\t}\n\n\t// For mixed math expressions wrapped within CSS expressions\n\tconst expressionsMatches = cssUnit.match( /(max|min|clamp)/g );\n\tif ( ! errorFound && expressionsMatches ) {\n\t\tconst values = cssUnit.split( ',' );\n\t\tfor ( const currentValue of values ) {\n\t\t\t// Check for nested calc() and remove them to calculate the value.\n\t\t\tconst rawCurrentValue = currentValue.replace( /\\s|calc/g, '' );\n\n\t\t\tif ( isMathExpression( rawCurrentValue ) ) {\n\t\t\t\tconst calculatedExpression = calculate( rawCurrentValue );\n\n\t\t\t\tif ( calculatedExpression ) {\n\t\t\t\t\tconst calculatedValue =\n\t\t\t\t\t\tcalculatedExpression.toFixed( 0 ) + 'px';\n\t\t\t\t\tcssUnit = cssUnit.replace( currentValue, calculatedValue );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst parsedValue = parseUnitFunction( cssUnit );\n\t\treturn ! parsedValue ? null : parsedValue.value + parsedValue.unit;\n\t}\n\n\tif ( errorFound ) {\n\t\treturn null;\n\t}\n\n\tconst calculatedResult = calculate( cssUnit );\n\treturn calculatedResult ? calculatedResult.toFixed( 0 ) + 'px' : null;\n}\n\n/**\n * Convert a parsedUnit object to px value.\n *\n * @param {Object} parsedUnit\n * @param {Object} options\n * @return {string} or {null} returns the converted with in a px value format.\n */\nfunction convertParsedUnitToPx( parsedUnit, options ) {\n\tconst PIXELS_PER_INCH = 96;\n\tconst ONE_PERCENT = 0.01;\n\n\tconst defaultProperties = {\n\t\tfontSize: 16,\n\t\tlineHeight: 16,\n\t\twidth: 375,\n\t\theight: 812,\n\t\ttype: 'font',\n\t};\n\n\tconst setOptions = Object.assign( {}, defaultProperties, options );\n\n\tconst relativeUnits = {\n\t\tem: setOptions.fontSize,\n\t\trem: setOptions.fontSize,\n\t\tvh: setOptions.height * ONE_PERCENT,\n\t\tvw: setOptions.width * ONE_PERCENT,\n\t\tvmin:\n\t\t\t( setOptions.width < setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\tvmax:\n\t\t\t( setOptions.width > setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\t'%':\n\t\t\t( setOptions.type === 'font'\n\t\t\t\t? setOptions.fontSize\n\t\t\t\t: setOptions.width ) * ONE_PERCENT,\n\t\tch: 8, // The advance measure (width) of the glyph \"0\" of the element's font. Approximate\n\t\tex: 7.15625, // X-height of the element's font. Approximate.\n\t\tlh: setOptions.lineHeight,\n\t};\n\trelativeUnits.svw = relativeUnits.vmin;\n\trelativeUnits.lvw = relativeUnits.vmax;\n\trelativeUnits.dvw = relativeUnits.vw;\n\trelativeUnits.svh = relativeUnits.vmin;\n\trelativeUnits.lvh = relativeUnits.vmax;\n\trelativeUnits.dvh = relativeUnits.vh;\n\trelativeUnits.vi = relativeUnits.vh;\n\trelativeUnits.svi = relativeUnits.vmin;\n\trelativeUnits.lvi = relativeUnits.vmax;\n\trelativeUnits.dvi = relativeUnits.vw;\n\trelativeUnits.vb = relativeUnits.vh;\n\trelativeUnits.svb = relativeUnits.vmin;\n\trelativeUnits.lvb = relativeUnits.vmax;\n\trelativeUnits.dvb = relativeUnits.vh;\n\trelativeUnits.svmin = relativeUnits.vmin;\n\trelativeUnits.lvmin = relativeUnits.vmin;\n\trelativeUnits.dvmin = relativeUnits.vmin;\n\trelativeUnits.svmax = relativeUnits.vmax;\n\trelativeUnits.lvmax = relativeUnits.vmax;\n\trelativeUnits.dvmax = relativeUnits.vmax;\n\n\tconst absoluteUnits = {\n\t\tin: PIXELS_PER_INCH,\n\t\tcm: PIXELS_PER_INCH / 2.54,\n\t\tmm: PIXELS_PER_INCH / 25.4,\n\t\tpt: PIXELS_PER_INCH / 72,\n\t\tpc: PIXELS_PER_INCH / 6,\n\t\tpx: 1,\n\t\tQ: PIXELS_PER_INCH / 2.54 / 40,\n\t};\n\n\tif ( relativeUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( relativeUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\tif ( absoluteUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( absoluteUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\treturn null;\n}\n\n/**\n * Returns the px value of a cssUnit.\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nexport function getPxFromCssUnit( cssUnit, options = {} ) {\n\tif ( Number.isFinite( cssUnit ) ) {\n\t\treturn cssUnit.toFixed( 0 ) + 'px';\n\t}\n\tif ( cssUnit === undefined ) {\n\t\treturn null;\n\t}\n\tlet parsedUnit = parseUnit( cssUnit );\n\n\tif ( ! parsedUnit.unit ) {\n\t\tparsedUnit = parseUnitFunction( cssUnit );\n\t}\n\n\tif ( isMathExpression( cssUnit ) && ! parsedUnit.unit ) {\n\t\treturn evalMathExpression( cssUnit );\n\t}\n\n\treturn convertParsedUnitToPx( parsedUnit, options );\n}\n\n// Use simple cache.\nconst cache = {};\n/**\n * Returns the px value of a cssUnit. The memoized version of getPxFromCssUnit;\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nfunction memoizedGetPxFromCssUnit( cssUnit, options = {} ) {\n\tconst hash = cssUnit + hashOptions( options );\n\n\tif ( ! cache[ hash ] ) {\n\t\tcache[ hash ] = getPxFromCssUnit( cssUnit, options );\n\t}\n\treturn cache[ hash ];\n}\n\nfunction hashOptions( options ) {\n\tlet hash = '';\n\tif ( options.hasOwnProperty( 'fontSize' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'lineHeight' ) ) {\n\t\thash = ':' + options.lineHeight;\n\t}\n\tif ( options.hasOwnProperty( 'width' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'height' ) ) {\n\t\thash = ':' + options.height;\n\t}\n\tif ( options.hasOwnProperty( 'type' ) ) {\n\t\thash = ':' + options.type;\n\t}\n\treturn hash;\n}\n\nexport default memoizedGetPxFromCssUnit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["parseUnit","cssUnit","match","trim","isNaN","parseFloat","value","unit","undefined","calculate","expression","Function","err","getFunctionUnitValue","functionUnitValue","options","functionUnit","split","filter","Boolean","units","slice","map","getPxFromCssUnit","Math","min","max","length","parseUnitFunction","currentCssUnit","regExp","matches","exec","replace","isMathExpression","i","includes","evalMathExpression","errorFound","cssUnitsBits","parsedUnit","expressionsMatches","values","currentValue","rawCurrentValue","calculatedExpression","calculatedValue","toFixed","parsedValue","calculatedResult","convertParsedUnitToPx","PIXELS_PER_INCH","ONE_PERCENT","defaultProperties","fontSize","lineHeight","width","height","type","setOptions","Object","assign","relativeUnits","em","rem","vh","vw","vmin","vmax","ch","ex","lh","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","svmin","lvmin","dvmin","svmax","lvmax","dvmax","absoluteUnits","in","cm","mm","pt","pc","px","Q","Number","isFinite","cache","memoizedGetPxFromCssUnit","hash","hashOptions","hasOwnProperty"],"sources":["@wordpress/components/src/mobile/utils/get-px-from-css-unit.native.js"],"sourcesContent":["/**\n * Converts string to object { value, unit }.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit\n */\nfunction parseUnit( cssUnit ) {\n\tconst match = cssUnit\n\t\t?.trim()\n\t\t.match(\n\t\t\t/^(0?[-.]?\\d*\\.?\\d+)(r?e[m|x]|v[h|w|min|max]+|p[x|t|c]|[c|m]m|%|in|ch|Q|lh)$/\n\t\t);\n\tif ( ! isNaN( cssUnit ) && ! isNaN( parseFloat( cssUnit ) ) ) {\n\t\treturn { value: parseFloat( cssUnit ), unit: 'px' };\n\t}\n\treturn match\n\t\t? { value: parseFloat( match[ 1 ] ) || match[ 1 ], unit: match[ 2 ] }\n\t\t: { value: cssUnit, unit: undefined };\n}\n/**\n * Evaluate a math expression.\n *\n * @param {string} expression\n * @return {number} evaluated expression.\n */\nfunction calculate( expression ) {\n\ttry {\n\t\treturn Function( `'use strict'; return (${ expression })` )();\n\t} catch ( err ) {\n\t\treturn null;\n\t}\n}\n\n/**\n * Calculates the css function value for the supported css functions such as max, min, clamp and calc.\n *\n * @param {string} functionUnitValue string should be in a particular format (for example min(12px,12px) ) no nested loops.\n * @param {Object} options\n * @return {string} unit containing the unit in PX.\n */\nfunction getFunctionUnitValue( functionUnitValue, options ) {\n\tconst functionUnit = functionUnitValue.split( /[(),]/g ).filter( Boolean );\n\n\tconst units = functionUnit\n\t\t.slice( 1 )\n\t\t.map( ( unit ) => parseUnit( getPxFromCssUnit( unit, options ) ).value )\n\t\t.filter( Boolean );\n\n\tswitch ( functionUnit[ 0 ] ) {\n\t\tcase 'min':\n\t\t\treturn Math.min( ...units ) + 'px';\n\t\tcase 'max':\n\t\t\treturn Math.max( ...units ) + 'px';\n\t\tcase 'clamp':\n\t\t\tif ( units.length !== 3 ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif ( units[ 1 ] < units[ 0 ] ) {\n\t\t\t\treturn units[ 0 ] + 'px';\n\t\t\t}\n\t\t\tif ( units[ 1 ] > units[ 2 ] ) {\n\t\t\t\treturn units[ 2 ] + 'px';\n\t\t\t}\n\t\t\treturn units[ 1 ] + 'px';\n\t\tcase 'calc':\n\t\t\treturn units[ 0 ] + 'px';\n\t}\n}\n\n/**\n * Take a css function such as min, max, calc, clamp and returns parsedUnit\n *\n * How this works for the nested function is that it first replaces the inner function call.\n * Then it tackles the outer onces.\n * So for example: min( max(25px, 35px), 40px )\n * in the first pass we would replace max(25px, 35px) with 35px.\n * then we would try to evaluate min( 35px, 40px )\n * and then finally return 35px.\n *\n * @param {string} cssUnit\n * @return {Object} parsedUnit object.\n */\nfunction parseUnitFunction( cssUnit ) {\n\twhile ( true ) {\n\t\tconst currentCssUnit = cssUnit;\n\t\tconst regExp = /(max|min|calc|clamp)\\(([^()]*)\\)/g;\n\t\tconst matches = regExp.exec( cssUnit ) || [];\n\t\tif ( matches[ 0 ] ) {\n\t\t\tconst functionUnitValue = getFunctionUnitValue( matches[ 0 ] );\n\t\t\tcssUnit = cssUnit.replace( matches[ 0 ], functionUnitValue );\n\t\t}\n\n\t\t// If the unit hasn't been modified or we have a single value break free.\n\t\tif ( cssUnit === currentCssUnit || parseFloat( cssUnit ) ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn parseUnit( cssUnit );\n}\n/**\n * Return true if we think this is a math expression.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {boolean} Whether the cssUnit is a math expression.\n */\nfunction isMathExpression( cssUnit ) {\n\tfor ( let i = 0; i < cssUnit.length; i++ ) {\n\t\tif ( [ '+', '-', '/', '*' ].includes( cssUnit[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n/**\n * Evaluates the math expression and return a px value.\n *\n * @param {string} cssUnit the cssUnit value being evaluted.\n * @return {string} return a converfted value to px.\n */\nfunction evalMathExpression( cssUnit ) {\n\tlet errorFound = false;\n\t// Convert every part of the expression to px values.\n\t// The following regex matches numbers that have a following unit\n\t// E.g. 5.25rem, 1vw\n\tconst cssUnitsBits = cssUnit.match( /\\d+\\.?\\d*[a-zA-Z]+|\\.\\d+[a-zA-Z]+/g );\n\tif ( cssUnitsBits ) {\n\t\tfor ( const unit of cssUnitsBits ) {\n\t\t\t// Standardize the unit to px and extract the value.\n\t\t\tconst parsedUnit = parseUnit( getPxFromCssUnit( unit ) );\n\t\t\tif ( ! parseFloat( parsedUnit.value ) ) {\n\t\t\t\terrorFound = true;\n\t\t\t\t// End early since we are dealing with a null value.\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcssUnit = cssUnit.replace( unit, parsedUnit.value );\n\t\t}\n\t} else {\n\t\terrorFound = true;\n\t}\n\n\t// For mixed math expressions wrapped within CSS expressions\n\tconst expressionsMatches = cssUnit.match( /(max|min|clamp)/g );\n\tif ( ! errorFound && expressionsMatches ) {\n\t\tconst values = cssUnit.split( ',' );\n\t\tfor ( const currentValue of values ) {\n\t\t\t// Check for nested calc() and remove them to calculate the value.\n\t\t\tconst rawCurrentValue = currentValue.replace( /\\s|calc/g, '' );\n\n\t\t\tif ( isMathExpression( rawCurrentValue ) ) {\n\t\t\t\tconst calculatedExpression = calculate( rawCurrentValue );\n\n\t\t\t\tif ( calculatedExpression ) {\n\t\t\t\t\tconst calculatedValue =\n\t\t\t\t\t\tcalculatedExpression.toFixed( 0 ) + 'px';\n\t\t\t\t\tcssUnit = cssUnit.replace( currentValue, calculatedValue );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst parsedValue = parseUnitFunction( cssUnit );\n\t\treturn ! parsedValue ? null : parsedValue.value + parsedValue.unit;\n\t}\n\n\tif ( errorFound ) {\n\t\treturn null;\n\t}\n\n\tconst calculatedResult = calculate( cssUnit );\n\treturn calculatedResult ? calculatedResult.toFixed( 0 ) + 'px' : null;\n}\n\n/**\n * Convert a parsedUnit object to px value.\n *\n * @param {Object} parsedUnit\n * @param {Object} options\n * @return {string} or {null} returns the converted with in a px value format.\n */\nfunction convertParsedUnitToPx( parsedUnit, options ) {\n\tconst PIXELS_PER_INCH = 96;\n\tconst ONE_PERCENT = 0.01;\n\n\tconst defaultProperties = {\n\t\tfontSize: 16,\n\t\tlineHeight: 16,\n\t\twidth: 375,\n\t\theight: 812,\n\t\ttype: 'font',\n\t};\n\n\tconst setOptions = Object.assign( {}, defaultProperties, options );\n\n\tconst relativeUnits = {\n\t\tem: setOptions.fontSize,\n\t\trem: setOptions.fontSize,\n\t\tvh: setOptions.height * ONE_PERCENT,\n\t\tvw: setOptions.width * ONE_PERCENT,\n\t\tvmin:\n\t\t\t( setOptions.width < setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\tvmax:\n\t\t\t( setOptions.width > setOptions.height\n\t\t\t\t? setOptions.width\n\t\t\t\t: setOptions.height ) * ONE_PERCENT,\n\t\t'%':\n\t\t\t( setOptions.type === 'font'\n\t\t\t\t? setOptions.fontSize\n\t\t\t\t: setOptions.width ) * ONE_PERCENT,\n\t\tch: 8, // The advance measure (width) of the glyph \"0\" of the element's font. Approximate\n\t\tex: 7.15625, // X-height of the element's font. Approximate.\n\t\tlh: setOptions.lineHeight,\n\t};\n\trelativeUnits.svw = relativeUnits.vmin;\n\trelativeUnits.lvw = relativeUnits.vmax;\n\trelativeUnits.dvw = relativeUnits.vw;\n\trelativeUnits.svh = relativeUnits.vmin;\n\trelativeUnits.lvh = relativeUnits.vmax;\n\trelativeUnits.dvh = relativeUnits.vh;\n\trelativeUnits.vi = relativeUnits.vh;\n\trelativeUnits.svi = relativeUnits.vmin;\n\trelativeUnits.lvi = relativeUnits.vmax;\n\trelativeUnits.dvi = relativeUnits.vw;\n\trelativeUnits.vb = relativeUnits.vh;\n\trelativeUnits.svb = relativeUnits.vmin;\n\trelativeUnits.lvb = relativeUnits.vmax;\n\trelativeUnits.dvb = relativeUnits.vh;\n\trelativeUnits.svmin = relativeUnits.vmin;\n\trelativeUnits.lvmin = relativeUnits.vmin;\n\trelativeUnits.dvmin = relativeUnits.vmin;\n\trelativeUnits.svmax = relativeUnits.vmax;\n\trelativeUnits.lvmax = relativeUnits.vmax;\n\trelativeUnits.dvmax = relativeUnits.vmax;\n\n\tconst absoluteUnits = {\n\t\tin: PIXELS_PER_INCH,\n\t\tcm: PIXELS_PER_INCH / 2.54,\n\t\tmm: PIXELS_PER_INCH / 25.4,\n\t\tpt: PIXELS_PER_INCH / 72,\n\t\tpc: PIXELS_PER_INCH / 6,\n\t\tpx: 1,\n\t\tQ: PIXELS_PER_INCH / 2.54 / 40,\n\t};\n\n\tif ( relativeUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( relativeUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\tif ( absoluteUnits[ parsedUnit.unit ] ) {\n\t\treturn (\n\t\t\t( absoluteUnits[ parsedUnit.unit ] * parsedUnit.value ).toFixed(\n\t\t\t\t0\n\t\t\t) + 'px'\n\t\t);\n\t}\n\n\treturn null;\n}\n\n/**\n * Returns the px value of a cssUnit.\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nexport function getPxFromCssUnit( cssUnit, options = {} ) {\n\tif ( Number.isFinite( cssUnit ) ) {\n\t\treturn cssUnit.toFixed( 0 ) + 'px';\n\t}\n\tif ( cssUnit === undefined ) {\n\t\treturn null;\n\t}\n\tlet parsedUnit = parseUnit( cssUnit );\n\n\tif ( ! parsedUnit.unit ) {\n\t\tparsedUnit = parseUnitFunction( cssUnit );\n\t}\n\n\tif ( isMathExpression( cssUnit ) && ! parsedUnit.unit ) {\n\t\treturn evalMathExpression( cssUnit );\n\t}\n\n\treturn convertParsedUnitToPx( parsedUnit, options );\n}\n\n// Use simple cache.\nconst cache = {};\n/**\n * Returns the px value of a cssUnit. The memoized version of getPxFromCssUnit;\n *\n * @param {string} cssUnit\n * @param {Object} options\n * @return {string} returns the cssUnit value in a simple px format.\n */\nfunction memoizedGetPxFromCssUnit( cssUnit, options = {} ) {\n\tconst hash = cssUnit + hashOptions( options );\n\n\tif ( ! cache[ hash ] ) {\n\t\tcache[ hash ] = getPxFromCssUnit( cssUnit, options );\n\t}\n\treturn cache[ hash ];\n}\n\nfunction hashOptions( options ) {\n\tlet hash = '';\n\tif ( options.hasOwnProperty( 'fontSize' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'lineHeight' ) ) {\n\t\thash = ':' + options.lineHeight;\n\t}\n\tif ( options.hasOwnProperty( 'width' ) ) {\n\t\thash = ':' + options.width;\n\t}\n\tif ( options.hasOwnProperty( 'height' ) ) {\n\t\thash = ':' + options.height;\n\t}\n\tif ( options.hasOwnProperty( 'type' ) ) {\n\t\thash = ':' + options.type;\n\t}\n\treturn hash;\n}\n\nexport default memoizedGetPxFromCssUnit;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Dimensions","useEffect","useState","useMemo","useCallback","getValueAndUnit","value","unit","regex","splitValue","match","filter","v","valueToConvert","valueUnit","undefined","convertUnitToMobile","containerSize","globalStyles","width","height","fontSize","Number","vw","Math","round","vh","useConvertUnitToMobile","styles","windowSizes","setWindowSizes","get","dimensionsChangeSubscription","addEventListener","onDimensionsChange","remove","window"],"sources":["@wordpress/components/src/mobile/utils/use-unit-converter-to-mobile.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, useCallback } from '@wordpress/element';\n\nconst getValueAndUnit = ( value, unit ) => {\n\tconst regex = /(\\d+\\.?\\d*)(.*)/;\n\n\tconst splitValue = `${ value }`\n\t\t?.match( regex )\n\t\t?.filter( ( v ) => v !== '' );\n\n\tif ( splitValue ) {\n\t\treturn {\n\t\t\tvalueToConvert: splitValue[ 1 ],\n\t\t\tvalueUnit: unit || splitValue[ 2 ],\n\t\t};\n\t}\n\treturn undefined;\n};\n\nconst convertUnitToMobile = ( containerSize, globalStyles, value, unit ) => {\n\tconst { width, height } = containerSize;\n\tconst { valueToConvert, valueUnit } = getValueAndUnit( value, unit ) || {};\n\tconst { fontSize = 16 } = globalStyles || {};\n\n\tif ( valueToConvert === undefined ) {\n\t\treturn undefined;\n\t}\n\n\tswitch ( valueUnit ) {\n\t\tcase 'rem':\n\t\tcase 'em':\n\t\t\treturn valueToConvert * fontSize;\n\t\tcase '%':\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t\tcase 'px':\n\t\t\treturn Number( valueToConvert );\n\t\tcase 'vw':\n\t\t\tconst vw = width / 100;\n\t\t\treturn Math.round( valueToConvert * vw );\n\t\tcase 'vh':\n\t\t\tconst vh = height / 100;\n\t\t\treturn Math.round( valueToConvert * vh );\n\t\tdefault:\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t}\n};\n\nconst useConvertUnitToMobile = ( value, unit, styles ) => {\n\tconst [ windowSizes, setWindowSizes ] = useState(\n\t\tDimensions.get( 'window' )\n\t);\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonDimensionsChange\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst onDimensionsChange = useCallback( ( { window } ) => {\n\t\tsetWindowSizes( window );\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst { valueToConvert, valueUnit } =\n\t\t\tgetValueAndUnit( value, unit ) || {};\n\n\t\treturn convertUnitToMobile(\n\t\t\twindowSizes,\n\t\t\tstyles,\n\t\t\tvalueToConvert,\n\t\t\tvalueUnit\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ windowSizes, value, unit ] );\n};\n\nexport { convertUnitToMobile, useConvertUnitToMobile, getValueAndUnit };\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA,SAASC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,WAAW,QAAQ,oBAAoB;AAE9E,MAAMC,eAAe,GAAGA,CAAEC,KAAK,EAAEC,IAAI,KAAM;EAC1C,MAAMC,KAAK,GAAG,iBAAiB;EAE/B,MAAMC,UAAU,GAAI,GAAGH,KAAO,EAAC,EAC5BI,KAAK,CAAEF,KAAM,CAAC,EACdG,MAAM,CAAIC,CAAC,IAAMA,CAAC,KAAK,EAAG,CAAC;EAE9B,IAAKH,UAAU,EAAG;IACjB,OAAO;MACNI,cAAc,EAAEJ,UAAU,CAAE,CAAC,CAAE;MAC/BK,SAAS,EAAEP,IAAI,IAAIE,UAAU,CAAE,CAAC;IACjC,CAAC;EACF;EACA,OAAOM,SAAS;AACjB,CAAC;AAED,MAAMC,mBAAmB,GAAGA,CAAEC,aAAa,EAAEC,YAAY,EAAEZ,KAAK,EAAEC,IAAI,KAAM;EAC3E,MAAM;IAAEY,KAAK;IAAEC;EAAO,CAAC,GAAGH,aAAa;EACvC,MAAM;IAAEJ,cAAc;IAAEC;EAAU,CAAC,GAAGT,eAAe,CAAEC,KAAK,EAAEC,IAAK,CAAC,IAAI,CAAC,CAAC;EAC1E,MAAM;IAAEc,QAAQ,GAAG;EAAG,CAAC,GAAGH,YAAY,IAAI,CAAC,CAAC;EAE5C,IAAKL,cAAc,KAAKE,SAAS,EAAG;IACnC,OAAOA,SAAS;EACjB;EAEA,QAASD,SAAS;IACjB,KAAK,KAAK;IACV,KAAK,IAAI;MACR,OAAOD,cAAc,GAAGQ,QAAQ;IACjC,KAAK,GAAG;MACP,OAAOC,MAAM,CAAET,cAAc,GAAG,GAAI,CAAC,GAAGM,KAAK;IAC9C,KAAK,IAAI;MACR,OAAOG,MAAM,CAAET,cAAe,CAAC;IAChC,KAAK,IAAI;MACR,MAAMU,EAAE,GAAGJ,KAAK,GAAG,GAAG;MACtB,OAAOK,IAAI,CAACC,KAAK,CAAEZ,cAAc,GAAGU,EAAG,CAAC;IACzC,KAAK,IAAI;MACR,MAAMG,EAAE,GAAGN,MAAM,GAAG,GAAG;MACvB,OAAOI,IAAI,CAACC,KAAK,CAAEZ,cAAc,GAAGa,EAAG,CAAC;IACzC;MACC,OAAOJ,MAAM,CAAET,cAAc,GAAG,GAAI,CAAC,GAAGM,KAAK;EAC/C;AACD,CAAC;AAED,MAAMQ,sBAAsB,GAAGA,CAAErB,KAAK,EAAEC,IAAI,EAAEqB,MAAM,KAAM;EACzD,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG5B,QAAQ,CAC/CF,UAAU,CAAC+B,GAAG,CAAE,QAAS,CAC1B,CAAC;EAED9B,SAAS,CAAE,MAAM;IAChB,MAAM+B,4BAA4B,GAAGhC,UAAU,CAACiC,gBAAgB,CAC/D,QAAQ,EACRC,kBACD,CAAC;IAED,OAAO,MAAM;MACZF,4BAA4B,CAACG,MAAM,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;EACD,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMD,kBAAkB,GAAG9B,WAAW,CAAE,CAAE;IAAEgC;EAAO,CAAC,KAAM;IACzDN,cAAc,CAAEM,MAAO,CAAC;EACzB,CAAC,EAAE,EAAG,CAAC;EAEP,OAAOjC,OAAO,CAAE,MAAM;IACrB,MAAM;MAAEU,cAAc;MAAEC;IAAU,CAAC,GAClCT,eAAe,CAAEC,KAAK,EAAEC,IAAK,CAAC,IAAI,CAAC,CAAC;IAErC,OAAOS,mBAAmB,CACzBa,WAAW,EACXD,MAAM,EACNf,cAAc,EACdC,SACD,CAAC;IACD;IACA;IACA;EACD,CAAC,EAAE,CAAEe,WAAW,EAAEvB,KAAK,EAAEC,IAAI,CAAG,CAAC;AAClC,CAAC;AAED,SAASS,mBAAmB,EAAEW,sBAAsB,EAAEtB,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["Dimensions","useEffect","useState","useMemo","useCallback","getValueAndUnit","value","unit","regex","splitValue","match","filter","v","valueToConvert","valueUnit","undefined","convertUnitToMobile","containerSize","globalStyles","width","height","fontSize","Number","vw","Math","round","vh","useConvertUnitToMobile","styles","windowSizes","setWindowSizes","get","dimensionsChangeSubscription","addEventListener","onDimensionsChange","remove","window"],"sources":["@wordpress/components/src/mobile/utils/use-unit-converter-to-mobile.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useMemo, useCallback } from '@wordpress/element';\n\nconst getValueAndUnit = ( value, unit ) => {\n\tconst regex = /(\\d+\\.?\\d*)(.*)/;\n\n\tconst splitValue = `${ value }`\n\t\t?.match( regex )\n\t\t?.filter( ( v ) => v !== '' );\n\n\tif ( splitValue ) {\n\t\treturn {\n\t\t\tvalueToConvert: splitValue[ 1 ],\n\t\t\tvalueUnit: unit || splitValue[ 2 ],\n\t\t};\n\t}\n\treturn undefined;\n};\n\nconst convertUnitToMobile = ( containerSize, globalStyles, value, unit ) => {\n\tconst { width, height } = containerSize;\n\tconst { valueToConvert, valueUnit } = getValueAndUnit( value, unit ) || {};\n\tconst { fontSize = 16 } = globalStyles || {};\n\n\tif ( valueToConvert === undefined ) {\n\t\treturn undefined;\n\t}\n\n\tswitch ( valueUnit ) {\n\t\tcase 'rem':\n\t\tcase 'em':\n\t\t\treturn valueToConvert * fontSize;\n\t\tcase '%':\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t\tcase 'px':\n\t\t\treturn Number( valueToConvert );\n\t\tcase 'vw':\n\t\t\tconst vw = width / 100;\n\t\t\treturn Math.round( valueToConvert * vw );\n\t\tcase 'vh':\n\t\t\tconst vh = height / 100;\n\t\t\treturn Math.round( valueToConvert * vh );\n\t\tdefault:\n\t\t\treturn Number( valueToConvert / 100 ) * width;\n\t}\n};\n\nconst useConvertUnitToMobile = ( value, unit, styles ) => {\n\tconst [ windowSizes, setWindowSizes ] = useState(\n\t\tDimensions.get( 'window' )\n\t);\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonDimensionsChange\n\t\t);\n\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tconst onDimensionsChange = useCallback( ( { window } ) => {\n\t\tsetWindowSizes( window );\n\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst { valueToConvert, valueUnit } =\n\t\t\tgetValueAndUnit( value, unit ) || {};\n\n\t\treturn convertUnitToMobile(\n\t\t\twindowSizes,\n\t\t\tstyles,\n\t\t\tvalueToConvert,\n\t\t\tvalueUnit\n\t\t);\n\t\t// Disable reason: deferring this refactor to the native team.\n\t\t// see https://github.com/WordPress/gutenberg/pull/41166\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ windowSizes, value, unit ] );\n};\n\nexport { convertUnitToMobile, useConvertUnitToMobile, getValueAndUnit };\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ /* wp:polyfill */
1
2
  const LIVE_REGION_ARIA_ROLES = new Set(['alert', 'status', 'log', 'marquee', 'timer']);
2
3
  const hiddenElementsByDepth = [];
3
4
 
@@ -37,7 +38,7 @@ export function modalize(modalElement) {
37
38
  */
38
39
  export function elementShouldBeHidden(element) {
39
40
  const role = element.getAttribute('role');
40
- return !(element.tagName === 'SCRIPT' || element.hasAttribute('aria-hidden') || element.hasAttribute('aria-live') || role && LIVE_REGION_ARIA_ROLES.has(role));
41
+ return !(element.tagName === 'SCRIPT' || element.hasAttribute('hidden') || element.hasAttribute('aria-hidden') || element.hasAttribute('aria-live') || role && LIVE_REGION_ARIA_ROLES.has(role));
41
42
  }
42
43
 
43
44
  /**