@wordpress/components 19.4.1-next.f435e9e01b.0 → 19.6.1-next.a55ed9455a.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 (938) hide show
  1. package/CHANGELOG.md +35 -4
  2. package/CONTRIBUTING.md +69 -2
  3. package/build/alignment-matrix-control/utils.js +1 -1
  4. package/build/alignment-matrix-control/utils.js.map +1 -1
  5. package/build/angle-picker-control/angle-circle.js +1 -1
  6. package/build/angle-picker-control/angle-circle.js.map +1 -1
  7. package/build/animation/index.js +0 -6
  8. package/build/animation/index.js.map +1 -1
  9. package/build/autocomplete/get-default-use-items.js +3 -3
  10. package/build/autocomplete/get-default-use-items.js.map +1 -1
  11. package/build/base-field/hook.js +1 -1
  12. package/build/base-field/hook.js.map +1 -1
  13. package/build/box-control/icon.js +1 -1
  14. package/build/box-control/icon.js.map +1 -1
  15. package/build/box-control/index.js +4 -4
  16. package/build/box-control/index.js.map +1 -1
  17. package/build/box-control/unit-control.js +2 -2
  18. package/build/box-control/unit-control.js.map +1 -1
  19. package/build/box-control/utils.js +12 -8
  20. package/build/box-control/utils.js.map +1 -1
  21. package/build/button/index.js +5 -5
  22. package/build/button/index.js.map +1 -1
  23. package/build/button/index.native.js +7 -7
  24. package/build/button/index.native.js.map +1 -1
  25. package/build/card/card/component.js +2 -2
  26. package/build/card/card/component.js.map +1 -1
  27. package/build/card/card-body/component.js +1 -1
  28. package/build/card/card-body/component.js.map +1 -1
  29. package/build/card/card-divider/component.js +1 -1
  30. package/build/card/card-divider/component.js.map +1 -1
  31. package/build/card/card-footer/component.js +1 -1
  32. package/build/card/card-footer/component.js.map +1 -1
  33. package/build/card/card-header/component.js +1 -1
  34. package/build/card/card-header/component.js.map +1 -1
  35. package/build/card/card-media/component.js +1 -1
  36. package/build/card/card-media/component.js.map +1 -1
  37. package/build/color-palette/index.native.js +35 -30
  38. package/build/color-palette/index.native.js.map +1 -1
  39. package/build/color-picker/color-display.js +1 -1
  40. package/build/color-picker/color-display.js.map +1 -1
  41. package/build/color-picker/component.js.map +1 -1
  42. package/build/color-picker/hex-input.js +6 -9
  43. package/build/color-picker/hex-input.js.map +1 -1
  44. package/build/color-picker/styles.js +8 -8
  45. package/build/color-picker/styles.js.map +1 -1
  46. package/build/combobox-control/index.js +1 -1
  47. package/build/combobox-control/index.js.map +1 -1
  48. package/build/confirm-dialog/component.js +4 -2
  49. package/build/confirm-dialog/component.js.map +1 -1
  50. package/build/date-time/time.js +7 -4
  51. package/build/date-time/time.js.map +1 -1
  52. package/build/divider/component.js +5 -4
  53. package/build/divider/component.js.map +1 -1
  54. package/build/draggable/index.js +3 -3
  55. package/build/draggable/index.js.map +1 -1
  56. package/build/elevation/component.js +1 -1
  57. package/build/elevation/component.js.map +1 -1
  58. package/build/flex/flex/component.js +1 -1
  59. package/build/flex/flex/component.js.map +1 -1
  60. package/build/flex/flex-block/component.js +1 -1
  61. package/build/flex/flex-block/component.js.map +1 -1
  62. package/build/flex/flex-item/component.js +1 -1
  63. package/build/flex/flex-item/component.js.map +1 -1
  64. package/build/flyout/flyout/component.js +1 -1
  65. package/build/flyout/flyout/component.js.map +1 -1
  66. package/build/flyout/flyout-content/component.js +1 -1
  67. package/build/flyout/flyout-content/component.js.map +1 -1
  68. package/build/focal-point-picker/index.js +18 -12
  69. package/build/focal-point-picker/index.js.map +1 -1
  70. package/build/focal-point-picker/index.native.js +7 -7
  71. package/build/focal-point-picker/index.native.js.map +1 -1
  72. package/build/focal-point-picker/tooltip/index.native.js +1 -1
  73. package/build/focal-point-picker/tooltip/index.native.js.map +1 -1
  74. package/build/font-size-picker/index.js +1 -2
  75. package/build/font-size-picker/index.js.map +1 -1
  76. package/build/form-token-field/index.js +6 -6
  77. package/build/form-token-field/index.js.map +1 -1
  78. package/build/form-token-field/suggestions-list.js +2 -2
  79. package/build/form-token-field/suggestions-list.js.map +1 -1
  80. package/build/grid/component.js +1 -1
  81. package/build/grid/component.js.map +1 -1
  82. package/build/h-stack/component.js +1 -1
  83. package/build/h-stack/component.js.map +1 -1
  84. package/build/heading/component.js +6 -5
  85. package/build/heading/component.js.map +1 -1
  86. package/build/heading/hook.js +1 -1
  87. package/build/heading/hook.js.map +1 -1
  88. package/build/higher-order/with-notices/index.js +1 -1
  89. package/build/higher-order/with-notices/index.js.map +1 -1
  90. package/build/index.js +14 -2
  91. package/build/index.js.map +1 -1
  92. package/build/index.native.js +15 -1
  93. package/build/index.native.js.map +1 -1
  94. package/build/input-control/index.js.map +1 -1
  95. package/build/input-control/input-base.js +1 -1
  96. package/build/input-control/input-base.js.map +1 -1
  97. package/build/input-control/input-field.js +19 -17
  98. package/build/input-control/input-field.js.map +1 -1
  99. package/build/input-control/reducer/reducer.js +3 -0
  100. package/build/input-control/reducer/reducer.js.map +1 -1
  101. package/build/input-control/styles/input-control-styles.js +25 -25
  102. package/build/input-control/styles/input-control-styles.js.map +1 -1
  103. package/build/isolated-event-container/index.js +1 -1
  104. package/build/isolated-event-container/index.js.map +1 -1
  105. package/build/item-group/item/component.js.map +1 -1
  106. package/build/item-group/item-group/component.js.map +1 -1
  107. package/build/mobile/bottom-sheet/bottom-sheet-context.native.js +4 -4
  108. package/build/mobile/bottom-sheet/bottom-sheet-context.native.js.map +1 -1
  109. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +1 -1
  110. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  111. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  112. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  113. package/build/mobile/bottom-sheet/cell.native.js +1 -1
  114. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  115. package/build/mobile/bottom-sheet/index.native.js +11 -11
  116. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  117. package/build/mobile/bottom-sheet/link-cell.native.js +1 -1
  118. package/build/mobile/bottom-sheet/link-cell.native.js.map +1 -1
  119. package/build/mobile/bottom-sheet/link-suggestion-item-cell.native.js +1 -1
  120. package/build/mobile/bottom-sheet/link-suggestion-item-cell.native.js.map +1 -1
  121. package/build/mobile/bottom-sheet/nav-bar/back-button.native.js +1 -1
  122. package/build/mobile/bottom-sheet/nav-bar/back-button.native.js.map +1 -1
  123. package/build/mobile/color-settings/palette.screen.native.js +26 -9
  124. package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
  125. package/build/mobile/global-styles-context/utils.native.js +73 -19
  126. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  127. package/build/mobile/gradient/index.native.js +2 -2
  128. package/build/mobile/gradient/index.native.js.map +1 -1
  129. package/build/mobile/html-text-input/container.ios.js +3 -3
  130. package/build/mobile/html-text-input/container.ios.js.map +1 -1
  131. package/build/mobile/html-text-input/index.native.js +1 -1
  132. package/build/mobile/html-text-input/index.native.js.map +1 -1
  133. package/build/mobile/image/index.native.js +1 -1
  134. package/build/mobile/image/index.native.js.map +1 -1
  135. package/build/mobile/inserter-button/index.native.js +3 -3
  136. package/build/mobile/inserter-button/index.native.js.map +1 -1
  137. package/build/mobile/inserter-button/sparkles.js +25 -0
  138. package/build/mobile/inserter-button/sparkles.js.map +1 -0
  139. package/build/mobile/keyboard-aware-flat-list/index.android.js +1 -1
  140. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  141. package/build/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  142. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  143. package/build/mobile/link-picker/index.native.js +3 -3
  144. package/build/mobile/link-picker/index.native.js.map +1 -1
  145. package/build/mobile/link-picker/link-picker-results.native.js +8 -8
  146. package/build/mobile/link-picker/link-picker-results.native.js.map +1 -1
  147. package/build/mobile/link-settings/image-link-destinations-screen.native.js +2 -2
  148. package/build/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -1
  149. package/build/mobile/link-settings/index.native.js +1 -1
  150. package/build/mobile/link-settings/index.native.js.map +1 -1
  151. package/build/modal/aria-helper.js +1 -1
  152. package/build/modal/aria-helper.js.map +1 -1
  153. package/build/modal/index.js +2 -2
  154. package/build/modal/index.js.map +1 -1
  155. package/build/navigable-container/container.js +2 -2
  156. package/build/navigable-container/container.js.map +1 -1
  157. package/build/navigable-container/tabbable.js +1 -1
  158. package/build/navigable-container/tabbable.js.map +1 -1
  159. package/build/navigation/item/index.js +1 -1
  160. package/build/navigation/item/index.js.map +1 -1
  161. package/build/navigation/menu/index.js +1 -1
  162. package/build/navigation/menu/index.js.map +1 -1
  163. package/build/navigator/index.js +16 -0
  164. package/build/navigator/index.js.map +1 -1
  165. package/build/navigator/navigator-back-button/component.js +72 -0
  166. package/build/navigator/navigator-back-button/component.js.map +1 -0
  167. package/build/navigator/navigator-back-button/hook.js +49 -0
  168. package/build/navigator/navigator-back-button/hook.js.map +1 -0
  169. package/build/navigator/navigator-back-button/index.js +16 -0
  170. package/build/navigator/navigator-back-button/index.js.map +1 -0
  171. package/build/navigator/navigator-button/component.js +71 -0
  172. package/build/navigator/navigator-button/component.js.map +1 -0
  173. package/build/navigator/navigator-button/hook.js +59 -0
  174. package/build/navigator/navigator-button/hook.js.map +1 -0
  175. package/build/navigator/navigator-button/index.js +16 -0
  176. package/build/navigator/navigator-button/index.js.map +1 -0
  177. package/build/navigator/navigator-provider/component.js +12 -22
  178. package/build/navigator/navigator-provider/component.js.map +1 -1
  179. package/build/navigator/navigator-screen/component.js +14 -22
  180. package/build/navigator/navigator-screen/component.js.map +1 -1
  181. package/build/number-control/index.js +1 -1
  182. package/build/number-control/index.js.map +1 -1
  183. package/build/panel/body.js +2 -2
  184. package/build/panel/body.js.map +1 -1
  185. package/build/popover/index.js +3 -3
  186. package/build/popover/index.js.map +1 -1
  187. package/build/popover/utils.js +6 -6
  188. package/build/popover/utils.js.map +1 -1
  189. package/build/radio-group/index.js +1 -1
  190. package/build/radio-group/index.js.map +1 -1
  191. package/build/range-control/styles/range-control-styles.js +29 -29
  192. package/build/range-control/styles/range-control-styles.js.map +1 -1
  193. package/build/resizable-box/index.js.map +1 -1
  194. package/build/resizable-box/resize-tooltip/index.js.map +1 -1
  195. package/build/resizable-box/resize-tooltip/label.js.map +1 -1
  196. package/build/sandbox/index.js +5 -5
  197. package/build/sandbox/index.js.map +1 -1
  198. package/build/sandbox/index.native.js +1 -1
  199. package/build/sandbox/index.native.js.map +1 -1
  200. package/build/scrollable/component.js +1 -1
  201. package/build/scrollable/component.js.map +1 -1
  202. package/build/select-control/index.js +1 -1
  203. package/build/select-control/index.js.map +1 -1
  204. package/build/select-control/styles/select-control-styles.js +5 -5
  205. package/build/select-control/styles/select-control-styles.js.map +1 -1
  206. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
  207. package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  208. package/build/slot-fill/bubbles-virtually/slot.js +1 -1
  209. package/build/slot-fill/bubbles-virtually/slot.js.map +1 -1
  210. package/build/slot-fill/fill.js +1 -1
  211. package/build/slot-fill/fill.js.map +1 -1
  212. package/build/slot-fill/provider.js +1 -1
  213. package/build/slot-fill/provider.js.map +1 -1
  214. package/build/snackbar/index.js +1 -1
  215. package/build/snackbar/index.js.map +1 -1
  216. package/build/snackbar/list.js +1 -1
  217. package/build/snackbar/list.js.map +1 -1
  218. package/build/spacer/component.js.map +1 -1
  219. package/build/style-provider/index.js +2 -2
  220. package/build/style-provider/index.js.map +1 -1
  221. package/build/surface/component.js +1 -1
  222. package/build/surface/component.js.map +1 -1
  223. package/build/text/component.js +1 -1
  224. package/build/text/component.js.map +1 -1
  225. package/build/text-control/index.js +2 -2
  226. package/build/text-control/index.js.map +1 -1
  227. package/build/toggle-group-control/toggle-group-control/component.js +2 -2
  228. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  229. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  230. package/build/toggle-group-control/toggle-group-control-option/styles.js +8 -8
  231. package/build/toggle-group-control/toggle-group-control-option/styles.js.map +1 -1
  232. package/build/toolbar/index.js +1 -1
  233. package/build/toolbar/index.js.map +1 -1
  234. package/build/tools-panel/tools-panel/component.js.map +1 -1
  235. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  236. package/build/tools-panel/tools-panel-item/component.js.map +1 -1
  237. package/build/tooltip/index.js +3 -3
  238. package/build/tooltip/index.js.map +1 -1
  239. package/build/tooltip/index.native.js +7 -7
  240. package/build/tooltip/index.native.js.map +1 -1
  241. package/build/tree-grid/index.js +50 -6
  242. package/build/tree-grid/index.js.map +1 -1
  243. package/build/truncate/component.js +1 -1
  244. package/build/truncate/component.js.map +1 -1
  245. package/build/truncate/utils.js +1 -1
  246. package/build/truncate/utils.js.map +1 -1
  247. package/build/ui/context/context-connect.js +8 -15
  248. package/build/ui/context/context-connect.js.map +1 -1
  249. package/build/ui/context/context-system-provider.js +2 -2
  250. package/build/ui/context/context-system-provider.js.map +1 -1
  251. package/build/ui/context/index.js.map +1 -1
  252. package/build/ui/control-group/component.js +1 -1
  253. package/build/ui/control-group/component.js.map +1 -1
  254. package/build/ui/control-label/component.js +1 -1
  255. package/build/ui/control-label/component.js.map +1 -1
  256. package/build/ui/form-group/form-group.js +1 -1
  257. package/build/ui/form-group/form-group.js.map +1 -1
  258. package/build/ui/shortcut/component.js.map +1 -1
  259. package/build/ui/spinner/component.js +1 -1
  260. package/build/ui/spinner/component.js.map +1 -1
  261. package/build/ui/tooltip/component.js +1 -1
  262. package/build/ui/tooltip/component.js.map +1 -1
  263. package/build/ui/tooltip/content.js +1 -1
  264. package/build/ui/tooltip/content.js.map +1 -1
  265. package/build/ui/utils/colors.js +2 -2
  266. package/build/ui/utils/colors.js.map +1 -1
  267. package/build/ui/utils/space.js +2 -2
  268. package/build/ui/utils/space.js.map +1 -1
  269. package/build/unit-control/index.js +38 -29
  270. package/build/unit-control/index.js.map +1 -1
  271. package/build/unit-control/index.native.js +4 -2
  272. package/build/unit-control/index.native.js.map +1 -1
  273. package/build/unit-control/unit-select-control.js +1 -1
  274. package/build/unit-control/unit-select-control.js.map +1 -1
  275. package/build/unit-control/utils.js +96 -104
  276. package/build/unit-control/utils.js.map +1 -1
  277. package/build/utils/breakpoint-values.js +1 -1
  278. package/build/utils/breakpoint-values.js.map +1 -1
  279. package/build/utils/colors-values.js +1 -1
  280. package/build/utils/colors-values.js.map +1 -1
  281. package/build/v-stack/component.js +1 -1
  282. package/build/v-stack/component.js.map +1 -1
  283. package/build/visually-hidden/component.js +1 -1
  284. package/build/visually-hidden/component.js.map +1 -1
  285. package/build/z-stack/component.js.map +1 -1
  286. package/build-module/alignment-matrix-control/utils.js +1 -1
  287. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  288. package/build-module/angle-picker-control/angle-circle.js +1 -1
  289. package/build-module/angle-picker-control/angle-circle.js.map +1 -1
  290. package/build-module/animation/index.js +1 -1
  291. package/build-module/animation/index.js.map +1 -1
  292. package/build-module/autocomplete/get-default-use-items.js +3 -3
  293. package/build-module/autocomplete/get-default-use-items.js.map +1 -1
  294. package/build-module/base-field/hook.js +1 -1
  295. package/build-module/base-field/hook.js.map +1 -1
  296. package/build-module/box-control/icon.js +1 -1
  297. package/build-module/box-control/icon.js.map +1 -1
  298. package/build-module/box-control/index.js +5 -5
  299. package/build-module/box-control/index.js.map +1 -1
  300. package/build-module/box-control/unit-control.js +1 -1
  301. package/build-module/box-control/unit-control.js.map +1 -1
  302. package/build-module/box-control/utils.js +13 -9
  303. package/build-module/box-control/utils.js.map +1 -1
  304. package/build-module/button/index.js +5 -5
  305. package/build-module/button/index.js.map +1 -1
  306. package/build-module/button/index.native.js +7 -7
  307. package/build-module/button/index.native.js.map +1 -1
  308. package/build-module/card/card/component.js +2 -2
  309. package/build-module/card/card/component.js.map +1 -1
  310. package/build-module/card/card-body/component.js +1 -1
  311. package/build-module/card/card-body/component.js.map +1 -1
  312. package/build-module/card/card-divider/component.js +1 -1
  313. package/build-module/card/card-divider/component.js.map +1 -1
  314. package/build-module/card/card-footer/component.js +1 -1
  315. package/build-module/card/card-footer/component.js.map +1 -1
  316. package/build-module/card/card-header/component.js +1 -1
  317. package/build-module/card/card-header/component.js.map +1 -1
  318. package/build-module/card/card-media/component.js +1 -1
  319. package/build-module/card/card-media/component.js.map +1 -1
  320. package/build-module/color-palette/index.native.js +36 -31
  321. package/build-module/color-palette/index.native.js.map +1 -1
  322. package/build-module/color-picker/color-display.js +1 -1
  323. package/build-module/color-picker/color-display.js.map +1 -1
  324. package/build-module/color-picker/component.js.map +1 -1
  325. package/build-module/color-picker/hex-input.js +6 -9
  326. package/build-module/color-picker/hex-input.js.map +1 -1
  327. package/build-module/color-picker/styles.js +8 -8
  328. package/build-module/color-picker/styles.js.map +1 -1
  329. package/build-module/combobox-control/index.js +1 -1
  330. package/build-module/combobox-control/index.js.map +1 -1
  331. package/build-module/confirm-dialog/component.js +4 -5
  332. package/build-module/confirm-dialog/component.js.map +1 -1
  333. package/build-module/date-time/time.js +7 -4
  334. package/build-module/date-time/time.js.map +1 -1
  335. package/build-module/divider/component.js +3 -3
  336. package/build-module/divider/component.js.map +1 -1
  337. package/build-module/draggable/index.js +3 -3
  338. package/build-module/draggable/index.js.map +1 -1
  339. package/build-module/elevation/component.js +1 -1
  340. package/build-module/elevation/component.js.map +1 -1
  341. package/build-module/flex/flex/component.js +1 -1
  342. package/build-module/flex/flex/component.js.map +1 -1
  343. package/build-module/flex/flex-block/component.js +1 -1
  344. package/build-module/flex/flex-block/component.js.map +1 -1
  345. package/build-module/flex/flex-item/component.js +1 -1
  346. package/build-module/flex/flex-item/component.js.map +1 -1
  347. package/build-module/flyout/flyout/component.js +1 -1
  348. package/build-module/flyout/flyout/component.js.map +1 -1
  349. package/build-module/flyout/flyout-content/component.js +1 -1
  350. package/build-module/flyout/flyout-content/component.js.map +1 -1
  351. package/build-module/focal-point-picker/index.js +18 -12
  352. package/build-module/focal-point-picker/index.js.map +1 -1
  353. package/build-module/focal-point-picker/index.native.js +7 -7
  354. package/build-module/focal-point-picker/index.native.js.map +1 -1
  355. package/build-module/focal-point-picker/tooltip/index.native.js +1 -1
  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/form-token-field/index.js +6 -6
  360. package/build-module/form-token-field/index.js.map +1 -1
  361. package/build-module/form-token-field/suggestions-list.js +2 -2
  362. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  363. package/build-module/grid/component.js +1 -1
  364. package/build-module/grid/component.js.map +1 -1
  365. package/build-module/h-stack/component.js +1 -1
  366. package/build-module/h-stack/component.js.map +1 -1
  367. package/build-module/heading/component.js +4 -4
  368. package/build-module/heading/component.js.map +1 -1
  369. package/build-module/heading/hook.js +1 -1
  370. package/build-module/heading/hook.js.map +1 -1
  371. package/build-module/higher-order/with-notices/index.js +1 -1
  372. package/build-module/higher-order/with-notices/index.js.map +1 -1
  373. package/build-module/index.js +5 -5
  374. package/build-module/index.js.map +1 -1
  375. package/build-module/index.native.js +5 -5
  376. package/build-module/index.native.js.map +1 -1
  377. package/build-module/input-control/index.js.map +1 -1
  378. package/build-module/input-control/input-base.js +1 -1
  379. package/build-module/input-control/input-base.js.map +1 -1
  380. package/build-module/input-control/input-field.js +19 -16
  381. package/build-module/input-control/input-field.js.map +1 -1
  382. package/build-module/input-control/reducer/reducer.js +3 -0
  383. package/build-module/input-control/reducer/reducer.js.map +1 -1
  384. package/build-module/input-control/styles/input-control-styles.js +25 -25
  385. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  386. package/build-module/isolated-event-container/index.js +1 -1
  387. package/build-module/isolated-event-container/index.js.map +1 -1
  388. package/build-module/item-group/item/component.js.map +1 -1
  389. package/build-module/item-group/item-group/component.js.map +1 -1
  390. package/build-module/mobile/bottom-sheet/bottom-sheet-context.native.js +4 -4
  391. package/build-module/mobile/bottom-sheet/bottom-sheet-context.native.js.map +1 -1
  392. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +1 -1
  393. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js.map +1 -1
  394. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  395. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  396. package/build-module/mobile/bottom-sheet/cell.native.js +1 -1
  397. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  398. package/build-module/mobile/bottom-sheet/index.native.js +11 -11
  399. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  400. package/build-module/mobile/bottom-sheet/link-cell.native.js +1 -1
  401. package/build-module/mobile/bottom-sheet/link-cell.native.js.map +1 -1
  402. package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js +1 -1
  403. package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js.map +1 -1
  404. package/build-module/mobile/bottom-sheet/nav-bar/back-button.native.js +1 -1
  405. package/build-module/mobile/bottom-sheet/nav-bar/back-button.native.js.map +1 -1
  406. package/build-module/mobile/color-settings/palette.screen.native.js +27 -10
  407. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  408. package/build-module/mobile/global-styles-context/utils.native.js +70 -20
  409. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  410. package/build-module/mobile/gradient/index.native.js +2 -2
  411. package/build-module/mobile/gradient/index.native.js.map +1 -1
  412. package/build-module/mobile/html-text-input/container.ios.js +3 -3
  413. package/build-module/mobile/html-text-input/container.ios.js.map +1 -1
  414. package/build-module/mobile/html-text-input/index.native.js +1 -1
  415. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  416. package/build-module/mobile/image/index.native.js +1 -1
  417. package/build-module/mobile/image/index.native.js.map +1 -1
  418. package/build-module/mobile/inserter-button/index.native.js +1 -1
  419. package/build-module/mobile/inserter-button/index.native.js.map +1 -1
  420. package/build-module/mobile/inserter-button/sparkles.js +16 -0
  421. package/build-module/mobile/inserter-button/sparkles.js.map +1 -0
  422. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +1 -1
  423. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  424. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  425. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  426. package/build-module/mobile/link-picker/index.native.js +3 -3
  427. package/build-module/mobile/link-picker/index.native.js.map +1 -1
  428. package/build-module/mobile/link-picker/link-picker-results.native.js +8 -8
  429. package/build-module/mobile/link-picker/link-picker-results.native.js.map +1 -1
  430. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js +2 -2
  431. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -1
  432. package/build-module/mobile/link-settings/index.native.js +1 -1
  433. package/build-module/mobile/link-settings/index.native.js.map +1 -1
  434. package/build-module/modal/aria-helper.js +1 -1
  435. package/build-module/modal/aria-helper.js.map +1 -1
  436. package/build-module/modal/index.js +2 -2
  437. package/build-module/modal/index.js.map +1 -1
  438. package/build-module/navigable-container/container.js +2 -2
  439. package/build-module/navigable-container/container.js.map +1 -1
  440. package/build-module/navigable-container/tabbable.js +1 -1
  441. package/build-module/navigable-container/tabbable.js.map +1 -1
  442. package/build-module/navigation/item/index.js +1 -1
  443. package/build-module/navigation/item/index.js.map +1 -1
  444. package/build-module/navigation/menu/index.js +1 -1
  445. package/build-module/navigation/menu/index.js.map +1 -1
  446. package/build-module/navigator/index.js +2 -0
  447. package/build-module/navigator/index.js.map +1 -1
  448. package/build-module/navigator/navigator-back-button/component.js +59 -0
  449. package/build-module/navigator/navigator-back-button/component.js.map +1 -0
  450. package/build-module/navigator/navigator-back-button/hook.js +36 -0
  451. package/build-module/navigator/navigator-back-button/hook.js.map +1 -0
  452. package/build-module/navigator/navigator-back-button/index.js +2 -0
  453. package/build-module/navigator/navigator-back-button/index.js.map +1 -0
  454. package/build-module/navigator/navigator-button/component.js +58 -0
  455. package/build-module/navigator/navigator-button/component.js.map +1 -0
  456. package/build-module/navigator/navigator-button/hook.js +46 -0
  457. package/build-module/navigator/navigator-button/hook.js.map +1 -0
  458. package/build-module/navigator/navigator-button/index.js +2 -0
  459. package/build-module/navigator/navigator-button/index.js.map +1 -0
  460. package/build-module/navigator/navigator-provider/component.js +12 -22
  461. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  462. package/build-module/navigator/navigator-screen/component.js +13 -22
  463. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  464. package/build-module/number-control/index.js +1 -1
  465. package/build-module/number-control/index.js.map +1 -1
  466. package/build-module/panel/body.js +2 -2
  467. package/build-module/panel/body.js.map +1 -1
  468. package/build-module/popover/index.js +3 -3
  469. package/build-module/popover/index.js.map +1 -1
  470. package/build-module/popover/utils.js +6 -6
  471. package/build-module/popover/utils.js.map +1 -1
  472. package/build-module/radio-group/index.js +1 -1
  473. package/build-module/radio-group/index.js.map +1 -1
  474. package/build-module/range-control/styles/range-control-styles.js +29 -29
  475. package/build-module/range-control/styles/range-control-styles.js.map +1 -1
  476. package/build-module/resizable-box/index.js.map +1 -1
  477. package/build-module/resizable-box/resize-tooltip/index.js.map +1 -1
  478. package/build-module/resizable-box/resize-tooltip/label.js.map +1 -1
  479. package/build-module/sandbox/index.js +5 -5
  480. package/build-module/sandbox/index.js.map +1 -1
  481. package/build-module/sandbox/index.native.js +1 -1
  482. package/build-module/sandbox/index.native.js.map +1 -1
  483. package/build-module/scrollable/component.js +1 -1
  484. package/build-module/scrollable/component.js.map +1 -1
  485. package/build-module/select-control/index.js +2 -2
  486. package/build-module/select-control/index.js.map +1 -1
  487. package/build-module/select-control/styles/select-control-styles.js +5 -5
  488. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  489. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
  490. package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
  491. package/build-module/slot-fill/bubbles-virtually/slot.js +1 -1
  492. package/build-module/slot-fill/bubbles-virtually/slot.js.map +1 -1
  493. package/build-module/slot-fill/fill.js +1 -1
  494. package/build-module/slot-fill/fill.js.map +1 -1
  495. package/build-module/slot-fill/provider.js +1 -1
  496. package/build-module/slot-fill/provider.js.map +1 -1
  497. package/build-module/snackbar/index.js +1 -1
  498. package/build-module/snackbar/index.js.map +1 -1
  499. package/build-module/snackbar/list.js +1 -1
  500. package/build-module/snackbar/list.js.map +1 -1
  501. package/build-module/spacer/component.js.map +1 -1
  502. package/build-module/style-provider/index.js +2 -2
  503. package/build-module/style-provider/index.js.map +1 -1
  504. package/build-module/surface/component.js +1 -1
  505. package/build-module/surface/component.js.map +1 -1
  506. package/build-module/text/component.js +1 -1
  507. package/build-module/text/component.js.map +1 -1
  508. package/build-module/text-control/index.js +2 -2
  509. package/build-module/text-control/index.js.map +1 -1
  510. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -2
  511. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  512. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  513. package/build-module/toggle-group-control/toggle-group-control-option/styles.js +8 -8
  514. package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +1 -1
  515. package/build-module/toolbar/index.js +1 -1
  516. package/build-module/toolbar/index.js.map +1 -1
  517. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  518. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  519. package/build-module/tools-panel/tools-panel-item/component.js.map +1 -1
  520. package/build-module/tooltip/index.js +3 -3
  521. package/build-module/tooltip/index.js.map +1 -1
  522. package/build-module/tooltip/index.native.js +7 -7
  523. package/build-module/tooltip/index.native.js.map +1 -1
  524. package/build-module/tree-grid/index.js +51 -7
  525. package/build-module/tree-grid/index.js.map +1 -1
  526. package/build-module/truncate/component.js +1 -1
  527. package/build-module/truncate/component.js.map +1 -1
  528. package/build-module/truncate/utils.js +1 -1
  529. package/build-module/truncate/utils.js.map +1 -1
  530. package/build-module/ui/context/context-connect.js +9 -16
  531. package/build-module/ui/context/context-connect.js.map +1 -1
  532. package/build-module/ui/context/context-system-provider.js +2 -2
  533. package/build-module/ui/context/context-system-provider.js.map +1 -1
  534. package/build-module/ui/context/index.js.map +1 -1
  535. package/build-module/ui/control-group/component.js +1 -1
  536. package/build-module/ui/control-group/component.js.map +1 -1
  537. package/build-module/ui/control-label/component.js +1 -1
  538. package/build-module/ui/control-label/component.js.map +1 -1
  539. package/build-module/ui/form-group/form-group.js +1 -1
  540. package/build-module/ui/form-group/form-group.js.map +1 -1
  541. package/build-module/ui/shortcut/component.js.map +1 -1
  542. package/build-module/ui/spinner/component.js +1 -1
  543. package/build-module/ui/spinner/component.js.map +1 -1
  544. package/build-module/ui/tooltip/component.js +1 -1
  545. package/build-module/ui/tooltip/component.js.map +1 -1
  546. package/build-module/ui/tooltip/content.js +1 -1
  547. package/build-module/ui/tooltip/content.js.map +1 -1
  548. package/build-module/ui/utils/colors.js +2 -2
  549. package/build-module/ui/utils/colors.js.map +1 -1
  550. package/build-module/ui/utils/space.js +2 -2
  551. package/build-module/ui/utils/space.js.map +1 -1
  552. package/build-module/unit-control/index.js +39 -30
  553. package/build-module/unit-control/index.js.map +1 -1
  554. package/build-module/unit-control/index.native.js +5 -3
  555. package/build-module/unit-control/index.native.js.map +1 -1
  556. package/build-module/unit-control/unit-select-control.js +1 -1
  557. package/build-module/unit-control/unit-select-control.js.map +1 -1
  558. package/build-module/unit-control/utils.js +92 -100
  559. package/build-module/unit-control/utils.js.map +1 -1
  560. package/build-module/utils/breakpoint-values.js +1 -1
  561. package/build-module/utils/breakpoint-values.js.map +1 -1
  562. package/build-module/utils/colors-values.js +1 -1
  563. package/build-module/utils/colors-values.js.map +1 -1
  564. package/build-module/v-stack/component.js +1 -1
  565. package/build-module/v-stack/component.js.map +1 -1
  566. package/build-module/visually-hidden/component.js +1 -1
  567. package/build-module/visually-hidden/component.js.map +1 -1
  568. package/build-module/z-stack/component.js.map +1 -1
  569. package/build-style/style-rtl.css +8 -0
  570. package/build-style/style.css +8 -0
  571. package/build-types/base-field/hook.d.ts +2 -1
  572. package/build-types/base-field/hook.d.ts.map +1 -1
  573. package/build-types/card/card/hook.d.ts +2 -1
  574. package/build-types/card/card/hook.d.ts.map +1 -1
  575. package/build-types/card/card-body/hook.d.ts +2 -1
  576. package/build-types/card/card-body/hook.d.ts.map +1 -1
  577. package/build-types/card/card-divider/hook.d.ts +2 -3
  578. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  579. package/build-types/card/card-footer/hook.d.ts +2 -1
  580. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  581. package/build-types/card/card-header/hook.d.ts +2 -1
  582. package/build-types/card/card-header/hook.d.ts.map +1 -1
  583. package/build-types/card/card-media/hook.d.ts +2 -1
  584. package/build-types/card/card-media/hook.d.ts.map +1 -1
  585. package/build-types/color-picker/styles.d.ts +2 -4
  586. package/build-types/color-picker/styles.d.ts.map +1 -1
  587. package/build-types/confirm-dialog/component.d.ts +10 -6
  588. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  589. package/build-types/confirm-dialog/types.d.ts +2 -0
  590. package/build-types/confirm-dialog/types.d.ts.map +1 -1
  591. package/build-types/divider/component.d.ts +2 -2
  592. package/build-types/divider/component.d.ts.map +1 -1
  593. package/build-types/divider/stories/index.d.ts +10 -0
  594. package/build-types/divider/stories/index.d.ts.map +1 -0
  595. package/build-types/divider/types.d.ts +1 -1
  596. package/build-types/divider/types.d.ts.map +1 -1
  597. package/build-types/elevation/hook.d.ts +2 -1
  598. package/build-types/elevation/hook.d.ts.map +1 -1
  599. package/build-types/flex/flex/hook.d.ts +2 -1
  600. package/build-types/flex/flex/hook.d.ts.map +1 -1
  601. package/build-types/flex/flex-block/hook.d.ts +2 -1
  602. package/build-types/flex/flex-block/hook.d.ts.map +1 -1
  603. package/build-types/flex/flex-item/hook.d.ts +2 -1
  604. package/build-types/flex/flex-item/hook.d.ts.map +1 -1
  605. package/build-types/flyout/flyout/hook.d.ts +2 -2
  606. package/build-types/grid/hook.d.ts +2 -1
  607. package/build-types/grid/hook.d.ts.map +1 -1
  608. package/build-types/h-stack/hook.d.ts +3 -2
  609. package/build-types/h-stack/hook.d.ts.map +1 -1
  610. package/build-types/heading/component.d.ts +3 -3
  611. package/build-types/heading/component.d.ts.map +1 -1
  612. package/build-types/heading/hook.d.ts +2 -1
  613. package/build-types/heading/hook.d.ts.map +1 -1
  614. package/build-types/heading/stories/index.d.ts +12 -0
  615. package/build-types/heading/stories/index.d.ts.map +1 -0
  616. package/build-types/input-control/index.d.ts +3 -3
  617. package/build-types/input-control/index.d.ts.map +1 -1
  618. package/build-types/input-control/input-base.d.ts +2 -2
  619. package/build-types/input-control/input-base.d.ts.map +1 -1
  620. package/build-types/input-control/input-field.d.ts +1 -3
  621. package/build-types/input-control/input-field.d.ts.map +1 -1
  622. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  623. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  624. package/build-types/input-control/types.d.ts +1 -1
  625. package/build-types/input-control/types.d.ts.map +1 -1
  626. package/build-types/item-group/item/hook.d.ts +2 -1
  627. package/build-types/item-group/item/hook.d.ts.map +1 -1
  628. package/build-types/item-group/item-group/hook.d.ts +2 -1
  629. package/build-types/item-group/item-group/hook.d.ts.map +1 -1
  630. package/build-types/navigator/index.d.ts +2 -0
  631. package/build-types/navigator/index.d.ts.map +1 -1
  632. package/build-types/navigator/navigator-back-button/component.d.ts +38 -0
  633. package/build-types/navigator/navigator-back-button/component.d.ts.map +1 -0
  634. package/build-types/navigator/navigator-back-button/hook.d.ts +283 -0
  635. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -0
  636. package/build-types/navigator/navigator-back-button/index.d.ts +2 -0
  637. package/build-types/navigator/navigator-back-button/index.d.ts.map +1 -0
  638. package/build-types/navigator/navigator-button/component.d.ts +37 -0
  639. package/build-types/navigator/navigator-button/component.d.ts.map +1 -0
  640. package/build-types/navigator/navigator-button/hook.d.ts +283 -0
  641. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -0
  642. package/build-types/navigator/navigator-button/index.d.ts +2 -0
  643. package/build-types/navigator/navigator-button/index.d.ts.map +1 -0
  644. package/build-types/navigator/navigator-provider/component.d.ts +10 -20
  645. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  646. package/build-types/navigator/navigator-screen/component.d.ts +10 -20
  647. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  648. package/build-types/navigator/types.d.ts +21 -0
  649. package/build-types/navigator/types.d.ts.map +1 -1
  650. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  651. package/build-types/resizable-box/index.d.ts +2 -2
  652. package/build-types/resizable-box/index.d.ts.map +1 -1
  653. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  654. package/build-types/scrollable/hook.d.ts +2 -1
  655. package/build-types/scrollable/hook.d.ts.map +1 -1
  656. package/build-types/select-control/index.d.ts +1 -3
  657. package/build-types/select-control/index.d.ts.map +1 -1
  658. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  659. package/build-types/spacer/hook.d.ts +2 -1
  660. package/build-types/spacer/hook.d.ts.map +1 -1
  661. package/build-types/surface/hook.d.ts +2 -1
  662. package/build-types/surface/hook.d.ts.map +1 -1
  663. package/build-types/text/hook.d.ts +2 -1
  664. package/build-types/text/hook.d.ts.map +1 -1
  665. package/build-types/text/types.d.ts +1 -2
  666. package/build-types/text/types.d.ts.map +1 -1
  667. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +1 -1
  668. package/build-types/tools-panel/tools-panel/hook.d.ts +2 -1
  669. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  670. package/build-types/tools-panel/tools-panel-header/hook.d.ts +2 -1
  671. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  672. package/build-types/tools-panel/tools-panel-item/hook.d.ts +2 -1
  673. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  674. package/build-types/truncate/hook.d.ts +2 -1
  675. package/build-types/truncate/hook.d.ts.map +1 -1
  676. package/build-types/ui/context/context-connect.d.ts +18 -16
  677. package/build-types/ui/context/context-connect.d.ts.map +1 -1
  678. package/build-types/ui/context/index.d.ts +4 -4
  679. package/build-types/ui/context/index.d.ts.map +1 -1
  680. package/build-types/ui/context/wordpress-component.d.ts +3 -6
  681. package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
  682. package/build-types/ui/control-group/hook.d.ts +2 -1
  683. package/build-types/ui/control-group/hook.d.ts.map +1 -1
  684. package/build-types/ui/control-label/hook.d.ts +2 -1
  685. package/build-types/ui/control-label/hook.d.ts.map +1 -1
  686. package/build-types/ui/form-group/use-form-group.d.ts +6 -4
  687. package/build-types/ui/form-group/use-form-group.d.ts.map +1 -1
  688. package/build-types/unit-control/index.d.ts +3 -5
  689. package/build-types/unit-control/index.d.ts.map +1 -1
  690. package/build-types/unit-control/types.d.ts +4 -6
  691. package/build-types/unit-control/types.d.ts.map +1 -1
  692. package/build-types/unit-control/utils.d.ts +47 -38
  693. package/build-types/unit-control/utils.d.ts.map +1 -1
  694. package/build-types/v-stack/hook.d.ts +2 -1
  695. package/build-types/v-stack/hook.d.ts.map +1 -1
  696. package/build-types/z-stack/component.d.ts.map +1 -1
  697. package/package.json +19 -18
  698. package/src/alignment-matrix-control/README.md +4 -0
  699. package/src/alignment-matrix-control/stories/index.js +1 -1
  700. package/src/alignment-matrix-control/utils.js +1 -1
  701. package/src/angle-picker-control/angle-circle.js +1 -1
  702. package/src/animation/index.js +0 -1
  703. package/src/autocomplete/get-default-use-items.js +3 -3
  704. package/src/base-control/stories/index.js +65 -22
  705. package/src/base-field/hook.js +1 -1
  706. package/src/box-control/icon.js +1 -1
  707. package/src/box-control/index.js +5 -5
  708. package/src/box-control/stories/index.js +4 -1
  709. package/src/box-control/test/index.js +27 -7
  710. package/src/box-control/unit-control.js +1 -1
  711. package/src/box-control/utils.js +13 -9
  712. package/src/button/index.js +5 -5
  713. package/src/button/index.native.js +7 -7
  714. package/src/button/style.scss +1 -0
  715. package/src/card/card/component.js +1 -1
  716. package/src/card/card-body/component.js +1 -1
  717. package/src/card/card-divider/component.js +1 -1
  718. package/src/card/card-footer/component.js +1 -1
  719. package/src/card/card-header/component.js +1 -1
  720. package/src/card/card-media/component.js +1 -1
  721. package/src/color-palette/index.native.js +92 -75
  722. package/src/color-palette/style.native.scss +10 -5
  723. package/src/color-palette/style.scss +1 -0
  724. package/src/color-picker/color-display.tsx +1 -1
  725. package/src/color-picker/component.tsx +2 -2
  726. package/src/color-picker/hex-input.tsx +9 -9
  727. package/src/color-picker/styles.ts +1 -1
  728. package/src/color-picker/test/index.js +1 -1
  729. package/src/combobox-control/index.js +1 -1
  730. package/src/combobox-control/style.scss +1 -0
  731. package/src/confirm-dialog/README.md +56 -45
  732. package/src/confirm-dialog/component.tsx +6 -4
  733. package/src/confirm-dialog/stories/index.js +19 -0
  734. package/src/confirm-dialog/test/index.js +28 -0
  735. package/src/confirm-dialog/types.ts +2 -0
  736. package/src/date-time/style.scss +4 -0
  737. package/src/date-time/time.js +16 -5
  738. package/src/dimension-control/test/index.test.js +1 -1
  739. package/src/disabled/test/index.js +1 -1
  740. package/src/divider/component.tsx +5 -5
  741. package/src/divider/stories/index.tsx +70 -0
  742. package/src/divider/types.ts +3 -1
  743. package/src/draggable/index.js +3 -3
  744. package/src/draggable/stories/index.js +1 -1
  745. package/src/elevation/component.js +1 -1
  746. package/src/flex/flex/component.js +1 -1
  747. package/src/flex/flex-block/component.js +1 -1
  748. package/src/flex/flex-item/component.js +1 -1
  749. package/src/flyout/flyout/README.md +1 -1
  750. package/src/flyout/flyout/component.js +1 -1
  751. package/src/flyout/flyout-content/component.js +1 -1
  752. package/src/flyout/test/index.js +1 -1
  753. package/src/focal-point-picker/README.md +7 -0
  754. package/src/focal-point-picker/index.js +12 -7
  755. package/src/focal-point-picker/index.native.js +7 -7
  756. package/src/focal-point-picker/stories/index.js +30 -0
  757. package/src/focal-point-picker/test/index.js +44 -0
  758. package/src/focal-point-picker/tooltip/index.native.js +1 -1
  759. package/src/font-size-picker/README.md +1 -2
  760. package/src/font-size-picker/index.js +1 -2
  761. package/src/font-size-picker/stories/index.js +87 -108
  762. package/src/form-file-upload/README.md +1 -1
  763. package/src/form-file-upload/stories/index.js +51 -0
  764. package/src/form-token-field/index.js +6 -6
  765. package/src/form-token-field/style.scss +1 -0
  766. package/src/form-token-field/suggestions-list.js +2 -2
  767. package/src/form-token-field/test/index.js +6 -6
  768. package/src/grid/component.js +1 -1
  769. package/src/h-stack/component.js +1 -1
  770. package/src/heading/component.tsx +6 -6
  771. package/src/heading/hook.ts +1 -1
  772. package/src/heading/stories/index.tsx +37 -0
  773. package/src/higher-order/with-filters/test/index.js +1 -1
  774. package/src/higher-order/with-focus-outside/test/index.js +1 -1
  775. package/src/higher-order/with-notices/index.js +1 -1
  776. package/src/higher-order/with-notices/test/index.js +3 -3
  777. package/src/index.js +6 -4
  778. package/src/index.native.js +9 -5
  779. package/src/input-control/index.tsx +2 -2
  780. package/src/input-control/input-base.tsx +3 -3
  781. package/src/input-control/input-field.tsx +16 -15
  782. package/src/input-control/reducer/reducer.ts +3 -0
  783. package/src/input-control/stories/index.js +1 -1
  784. package/src/input-control/styles/input-control-styles.tsx +1 -0
  785. package/src/input-control/test/index.js +4 -4
  786. package/src/input-control/types.ts +1 -1
  787. package/src/isolated-event-container/index.js +1 -1
  788. package/src/item-group/item/component.tsx +2 -2
  789. package/src/item-group/item-group/component.tsx +2 -2
  790. package/src/item-group/test/index.js +0 -1
  791. package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +4 -4
  792. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +1 -1
  793. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +10 -1
  794. package/src/mobile/bottom-sheet/cell.native.js +1 -1
  795. package/src/mobile/bottom-sheet/index.native.js +11 -11
  796. package/src/mobile/bottom-sheet/link-cell.native.js +1 -1
  797. package/src/mobile/bottom-sheet/link-suggestion-item-cell.native.js +1 -1
  798. package/src/mobile/bottom-sheet/nav-bar/back-button.native.js +1 -1
  799. package/src/mobile/color-settings/palette.screen.native.js +39 -9
  800. package/src/mobile/color-settings/style.native.scss +4 -0
  801. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +27 -0
  802. package/src/mobile/global-styles-context/test/utils.native.js +2 -2
  803. package/src/mobile/global-styles-context/utils.native.js +85 -16
  804. package/src/mobile/gradient/index.native.js +2 -2
  805. package/src/mobile/html-text-input/container.ios.js +3 -3
  806. package/src/mobile/html-text-input/index.native.js +1 -1
  807. package/src/mobile/html-text-input/test/index.native.js +14 -14
  808. package/src/mobile/image/index.native.js +1 -1
  809. package/src/mobile/inserter-button/index.native.js +1 -2
  810. package/src/mobile/inserter-button/sparkles.js +15 -0
  811. package/src/mobile/keyboard-aware-flat-list/index.android.js +1 -1
  812. package/src/mobile/keyboard-aware-flat-list/index.ios.js +2 -2
  813. package/src/mobile/link-picker/index.native.js +3 -3
  814. package/src/mobile/link-picker/link-picker-results.native.js +8 -8
  815. package/src/mobile/link-settings/image-link-destinations-screen.native.js +2 -2
  816. package/src/mobile/link-settings/index.native.js +1 -2
  817. package/src/mobile/link-settings/test/edit.native.js +15 -15
  818. package/src/modal/aria-helper.js +1 -1
  819. package/src/modal/index.js +2 -2
  820. package/src/navigable-container/container.js +2 -2
  821. package/src/navigable-container/tabbable.js +1 -1
  822. package/src/navigable-container/test/menu.js +5 -5
  823. package/src/navigable-container/test/tabbable.js +2 -2
  824. package/src/navigation/item/index.js +1 -1
  825. package/src/navigation/menu/index.js +1 -1
  826. package/src/navigation/stories/controlled-state.js +2 -2
  827. package/src/navigation/stories/index.js +1 -1
  828. package/src/navigator/index.ts +2 -0
  829. package/src/navigator/navigator-back-button/README.md +31 -0
  830. package/src/navigator/navigator-back-button/component.tsx +62 -0
  831. package/src/navigator/navigator-back-button/hook.ts +40 -0
  832. package/src/navigator/navigator-back-button/index.ts +1 -0
  833. package/src/navigator/navigator-button/README.md +38 -0
  834. package/src/navigator/navigator-button/component.tsx +61 -0
  835. package/src/navigator/navigator-button/hook.ts +55 -0
  836. package/src/navigator/navigator-button/index.ts +1 -0
  837. package/src/navigator/navigator-provider/README.md +20 -33
  838. package/src/navigator/navigator-provider/component.tsx +13 -23
  839. package/src/navigator/navigator-screen/README.md +1 -1
  840. package/src/navigator/navigator-screen/component.tsx +16 -25
  841. package/src/navigator/stories/index.js +24 -37
  842. package/src/navigator/test/index.js +105 -51
  843. package/src/navigator/types.ts +27 -1
  844. package/src/number-control/index.js +1 -1
  845. package/src/number-control/stories/index.js +1 -1
  846. package/src/panel/body.js +2 -2
  847. package/src/popover/index.js +3 -3
  848. package/src/popover/utils.js +6 -6
  849. package/src/radio/stories/index.js +1 -1
  850. package/src/radio-group/index.js +1 -1
  851. package/src/radio-group/stories/index.js +4 -1
  852. package/src/range-control/stories/index.js +1 -1
  853. package/src/range-control/styles/range-control-styles.js +1 -1
  854. package/src/range-control/test/index.js +2 -2
  855. package/src/resizable-box/index.tsx +2 -2
  856. package/src/resizable-box/resize-tooltip/index.tsx +2 -2
  857. package/src/resizable-box/resize-tooltip/label.tsx +2 -2
  858. package/src/sandbox/index.js +5 -5
  859. package/src/sandbox/index.native.js +1 -1
  860. package/src/scrollable/component.js +1 -1
  861. package/src/select-control/index.tsx +3 -4
  862. package/src/select-control/styles/select-control-styles.ts +1 -0
  863. package/src/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
  864. package/src/slot-fill/bubbles-virtually/slot.js +1 -2
  865. package/src/slot-fill/fill.js +1 -1
  866. package/src/slot-fill/provider.js +1 -1
  867. package/src/snackbar/index.js +1 -1
  868. package/src/snackbar/list.js +1 -1
  869. package/src/spacer/component.tsx +2 -2
  870. package/src/style-provider/index.js +2 -2
  871. package/src/surface/component.js +1 -1
  872. package/src/tab-panel/test/index.js +1 -1
  873. package/src/text/component.js +1 -1
  874. package/src/text/test/index.js +2 -2
  875. package/src/text/types.ts +6 -8
  876. package/src/text-control/index.js +2 -2
  877. package/src/text-highlight/test/index.js +4 -4
  878. package/src/toggle-control/test/index.js +3 -3
  879. package/src/toggle-group-control/stories/index.js +1 -1
  880. package/src/toggle-group-control/test/__snapshots__/index.js.snap +1 -0
  881. package/src/toggle-group-control/toggle-group-control/component.tsx +4 -4
  882. package/src/toggle-group-control/toggle-group-control-option/component.tsx +2 -2
  883. package/src/toggle-group-control/toggle-group-control-option/styles.ts +1 -0
  884. package/src/toolbar/index.js +1 -1
  885. package/src/toolbar-group/test/index.js +2 -2
  886. package/src/tools-panel/stories/index.js +0 -1
  887. package/src/tools-panel/tools-panel/component.tsx +2 -2
  888. package/src/tools-panel/tools-panel-header/component.tsx +2 -2
  889. package/src/tools-panel/tools-panel-item/component.tsx +2 -2
  890. package/src/tooltip/index.js +3 -3
  891. package/src/tooltip/index.native.js +7 -7
  892. package/src/tooltip/test/index.js +2 -2
  893. package/src/tooltip/test/index.native.js +2 -2
  894. package/src/tree-grid/README.md +24 -1
  895. package/src/tree-grid/index.js +66 -7
  896. package/src/tree-grid/stories/index.js +4 -1
  897. package/src/tree-grid/test/__snapshots__/index.js.snap +1 -14
  898. package/src/tree-grid/test/index.js +259 -8
  899. package/src/truncate/component.js +1 -1
  900. package/src/truncate/utils.js +1 -1
  901. package/src/ui/context/{context-connect.js → context-connect.ts} +27 -16
  902. package/src/ui/context/context-system-provider.js +2 -2
  903. package/src/ui/context/{index.js → index.ts} +0 -0
  904. package/src/ui/context/wordpress-component.ts +3 -2
  905. package/src/ui/control-group/component.js +1 -1
  906. package/src/ui/control-label/component.js +1 -1
  907. package/src/ui/form-group/form-group.js +1 -1
  908. package/src/ui/shortcut/component.tsx +2 -2
  909. package/src/ui/spinner/component.js +1 -1
  910. package/src/ui/tooltip/component.js +1 -1
  911. package/src/ui/tooltip/content.js +1 -1
  912. package/src/ui/tooltip/test/index.js +4 -4
  913. package/src/ui/utils/colors.js +2 -2
  914. package/src/ui/utils/space.ts +2 -2
  915. package/src/unit-control/README.md +1 -1
  916. package/src/unit-control/index.native.js +5 -3
  917. package/src/unit-control/index.tsx +66 -37
  918. package/src/unit-control/stories/index.js +1 -1
  919. package/src/unit-control/test/index.js +102 -3
  920. package/src/unit-control/test/utils.js +56 -15
  921. package/src/unit-control/types.ts +5 -8
  922. package/src/unit-control/unit-select-control.tsx +1 -1
  923. package/src/unit-control/utils.ts +128 -125
  924. package/src/utils/breakpoint-values.js +1 -1
  925. package/src/utils/colors-values.js +1 -1
  926. package/src/utils/hooks/test/use-controlled-state.js +1 -1
  927. package/src/utils/hooks/test/use-controlled-value.js +3 -3
  928. package/src/utils/hooks/test/use-latest-ref.js +1 -1
  929. package/src/utils/test/math.js +2 -2
  930. package/src/utils/test/rtl.js +12 -12
  931. package/src/v-stack/component.js +1 -1
  932. package/src/visually-hidden/component.js +1 -1
  933. package/src/z-stack/component.tsx +2 -2
  934. package/tsconfig.json +1 -1
  935. package/tsconfig.tsbuildinfo +1 -1
  936. package/src/divider/stories/index.js +0 -64
  937. package/src/heading/stories/index.js +0 -24
  938. package/src/tools-panel/stories/typography-panel.js +0 -215
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/focal-point-picker/index.native.js"],"names":["MIN_POSITION_VALUE","MAX_POSITION_VALUE","FOCAL_POINT_UNITS","default","label","value","FocalPointPicker","props","focalPoint","onChange","shouldEnableBottomSheetScroll","url","isVideo","containerSize","setContainerSize","sliderKey","setSliderKey","displayPlaceholder","setDisplayPlaceholder","videoNaturalSize","setVideoNaturalSize","tooltipVisible","setTooltipVisible","locationPageOffsetX","current","locationPageOffsetY","videoRef","tooltipShown","pan","Animated","ValueXY","setValue","x","width","y","height","panResponder","PanResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","event","locationX","locationY","pageX","pageY","nativeEvent","extractOffset","onPanResponderMove","dx","dy","useNativeDriver","onPanResponderRelease","flattenOffset","toFixed","prevState","mediaBackground","styles","mediaBackgroundDark","imagePreviewStyles","mediaPlaceholder","image","videoPreviewStyles","aspectRatio","opacity","video","focalPointGroupStyles","focalPointGroup","transform","translateX","interpolate","inputRange","outputRange","extrapolate","translateY","FOCAL_POINT_SIZE","focalPointStyles","marginLeft","marginTop","onTooltipPress","onMediaLayout","layout","onImageDataLoad","onVideoLoad","naturalSize","seek","onXCoordinateChange","onYCoordinateChange","container","media","panHandlers","mediaContainer","uri","Math","round"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Animated, PanResponder, View } from 'react-native';\nimport Video from 'react-native-video';\nimport { clamp } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestFocalPointPickerTooltipShown,\n\tsetFocalPointPickerTooltipShown,\n} from '@wordpress/react-native-bridge';\nimport { __ } from '@wordpress/i18n';\nimport { Image, UnitControl } from '@wordpress/components';\nimport { useRef, useState, useMemo, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport FocalPoint from './focal-point';\nimport Tooltip from './tooltip';\nimport styles from './style.scss';\nimport { isVideoType } from './utils';\n\nconst MIN_POSITION_VALUE = 0;\nconst MAX_POSITION_VALUE = 100;\nconst FOCAL_POINT_UNITS = [ { default: '50', label: '%', value: '%' } ];\n\nfunction FocalPointPicker( props ) {\n\tconst { focalPoint, onChange, shouldEnableBottomSheetScroll, url } = props;\n\n\tconst isVideo = isVideoType( url );\n\n\tconst [ containerSize, setContainerSize ] = useState( null );\n\tconst [ sliderKey, setSliderKey ] = useState( 0 );\n\tconst [ displayPlaceholder, setDisplayPlaceholder ] = useState( true );\n\tconst [ videoNaturalSize, setVideoNaturalSize ] = useState( null );\n\tconst [ tooltipVisible, setTooltipVisible ] = useState( false );\n\n\tlet locationPageOffsetX = useRef().current;\n\tlet locationPageOffsetY = useRef().current;\n\tconst videoRef = useRef( null );\n\n\tuseEffect( () => {\n\t\trequestFocalPointPickerTooltipShown( ( tooltipShown ) => {\n\t\t\tif ( ! tooltipShown ) {\n\t\t\t\tsetTooltipVisible( true );\n\t\t\t\tsetFocalPointPickerTooltipShown( true );\n\t\t\t}\n\t\t} );\n\t}, [] );\n\n\t// Animated coordinates for drag handle\n\tconst pan = useRef( new Animated.ValueXY() ).current;\n\n\t/**\n\t * Set drag handle position anytime focal point coordinates change.\n\t * E.g. initial render, dragging range sliders.\n\t */\n\tuseEffect( () => {\n\t\tif ( containerSize ) {\n\t\t\tpan.setValue( {\n\t\t\t\tx: focalPoint.x * containerSize.width,\n\t\t\t\ty: focalPoint.y * containerSize.height,\n\t\t\t} );\n\t\t}\n\t}, [ focalPoint, containerSize ] );\n\n\t// Pan responder to manage drag handle interactivity\n\tconst panResponder = useMemo(\n\t\t() =>\n\t\t\tPanResponder.create( {\n\t\t\t\tonStartShouldSetPanResponder: () => true,\n\t\t\t\tonStartShouldSetPanResponderCapture: () => true,\n\t\t\t\tonMoveShouldSetPanResponder: () => true,\n\t\t\t\tonMoveShouldSetPanResponderCapture: () => true,\n\n\t\t\t\tonPanResponderGrant: ( event ) => {\n\t\t\t\t\tshouldEnableBottomSheetScroll( false );\n\t\t\t\t\tconst {\n\t\t\t\t\t\tlocationX: x,\n\t\t\t\t\t\tlocationY: y,\n\t\t\t\t\t\tpageX,\n\t\t\t\t\t\tpageY,\n\t\t\t\t\t} = event.nativeEvent;\n\t\t\t\t\tlocationPageOffsetX = pageX - x;\n\t\t\t\t\tlocationPageOffsetY = pageY - y;\n\t\t\t\t\tpan.setValue( { x, y } ); // Set cursor to tap location\n\t\t\t\t\tpan.extractOffset(); // Set offset to current value\n\t\t\t\t},\n\t\t\t\t// Move cursor to match delta drag\n\t\t\t\tonPanResponderMove: Animated.event(\n\t\t\t\t\t[ null, { dx: pan.x, dy: pan.y } ],\n\t\t\t\t\t{ useNativeDriver: false }\n\t\t\t\t),\n\t\t\t\tonPanResponderRelease: ( event ) => {\n\t\t\t\t\tshouldEnableBottomSheetScroll( true );\n\t\t\t\t\tpan.flattenOffset(); // Flatten offset into value\n\t\t\t\t\tconst { pageX, pageY } = event.nativeEvent;\n\t\t\t\t\t// Ideally, x and y below are merely locationX and locationY from the\n\t\t\t\t\t// nativeEvent. However, we are required to compute these relative\n\t\t\t\t\t// coordinates to workaround a bug affecting Android's PanResponder.\n\t\t\t\t\t// Specifically, dragging the handle outside the bounds of the image\n\t\t\t\t\t// results in inaccurate locationX and locationY coordinates to be\n\t\t\t\t\t// reported. https://git.io/JtWmi\n\t\t\t\t\tconst x = pageX - locationPageOffsetX;\n\t\t\t\t\tconst y = pageY - locationPageOffsetY;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tx: clamp( x / containerSize?.width, 0, 1 ).toFixed( 2 ),\n\t\t\t\t\t\ty: clamp( y / containerSize?.height, 0, 1 ).toFixed(\n\t\t\t\t\t\t\t2\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t\t// Slider (child of RangeCell) is uncontrolled, so we must increment a\n\t\t\t\t\t// key to re-mount and sync the pan gesture values to the sliders\n\t\t\t\t\t// https://git.io/JTe4A\n\t\t\t\t\tsetSliderKey( ( prevState ) => prevState + 1 );\n\t\t\t\t},\n\t\t\t} ),\n\t\t[ containerSize ]\n\t);\n\n\tconst mediaBackground = usePreferredColorSchemeStyle(\n\t\tstyles.mediaBackground,\n\t\tstyles.mediaBackgroundDark\n\t);\n\tconst imagePreviewStyles = [\n\t\tdisplayPlaceholder && styles.mediaPlaceholder,\n\t\tstyles.image,\n\t];\n\tconst videoPreviewStyles = [\n\t\t{\n\t\t\taspectRatio:\n\t\t\t\tvideoNaturalSize &&\n\t\t\t\tvideoNaturalSize.width / videoNaturalSize.height,\n\t\t\t// Hide Video component since it has black background while loading the source\n\t\t\topacity: displayPlaceholder ? 0 : 1,\n\t\t},\n\t\tstyles.video,\n\t\tdisplayPlaceholder && styles.mediaPlaceholder,\n\t];\n\tconst focalPointGroupStyles = [\n\t\tstyles.focalPointGroup,\n\t\t{\n\t\t\ttransform: [\n\t\t\t\t{\n\t\t\t\t\ttranslateX: pan.x.interpolate( {\n\t\t\t\t\t\tinputRange: [ 0, containerSize?.width || 0 ],\n\t\t\t\t\t\toutputRange: [ 0, containerSize?.width || 0 ],\n\t\t\t\t\t\textrapolate: 'clamp',\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttranslateY: pan.y.interpolate( {\n\t\t\t\t\t\tinputRange: [ 0, containerSize?.height || 0 ],\n\t\t\t\t\t\toutputRange: [ 0, containerSize?.height || 0 ],\n\t\t\t\t\t\textrapolate: 'clamp',\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t];\n\tconst FOCAL_POINT_SIZE = 50;\n\tconst focalPointStyles = [\n\t\tstyles.focalPoint,\n\t\t{\n\t\t\theight: FOCAL_POINT_SIZE,\n\t\t\tmarginLeft: -( FOCAL_POINT_SIZE / 2 ),\n\t\t\tmarginTop: -( FOCAL_POINT_SIZE / 2 ),\n\t\t\twidth: FOCAL_POINT_SIZE,\n\t\t},\n\t];\n\n\tconst onTooltipPress = () => setTooltipVisible( false );\n\tconst onMediaLayout = ( event ) => {\n\t\tconst { height, width } = event.nativeEvent.layout;\n\n\t\tif (\n\t\t\twidth !== 0 &&\n\t\t\theight !== 0 &&\n\t\t\t( containerSize?.width !== width ||\n\t\t\t\tcontainerSize?.height !== height )\n\t\t) {\n\t\t\tsetContainerSize( { width, height } );\n\t\t}\n\t};\n\tconst onImageDataLoad = () => setDisplayPlaceholder( false );\n\tconst onVideoLoad = ( event ) => {\n\t\tconst { height, width } = event.naturalSize;\n\t\tsetVideoNaturalSize( { height, width } );\n\t\tsetDisplayPlaceholder( false );\n\t\t// Avoid invisible, paused video on Android, presumably related to\n\t\t// https://git.io/Jt6Dr\n\t\tvideoRef?.current.seek( 0 );\n\t};\n\tconst onXCoordinateChange = ( x ) =>\n\t\tonChange( { x: ( x / 100 ).toFixed( 2 ) } );\n\tconst onYCoordinateChange = ( y ) =>\n\t\tonChange( { y: ( y / 100 ).toFixed( 2 ) } );\n\n\treturn (\n\t\t<View style={ styles.container }>\n\t\t\t<Tooltip onPress={ onTooltipPress } visible={ tooltipVisible }>\n\t\t\t\t<View style={ [ styles.media, mediaBackground ] }>\n\t\t\t\t\t<View\n\t\t\t\t\t\t{ ...panResponder.panHandlers }\n\t\t\t\t\t\tonLayout={ onMediaLayout }\n\t\t\t\t\t\tstyle={ styles.mediaContainer }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isVideo && (\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\teditButton={ false }\n\t\t\t\t\t\t\t\thighlightSelected={ false }\n\t\t\t\t\t\t\t\tisSelected={ ! displayPlaceholder }\n\t\t\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tstyle={ imagePreviewStyles }\n\t\t\t\t\t\t\t\tonImageDataLoad={ onImageDataLoad }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isVideo && (\n\t\t\t\t\t\t\t<Video\n\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\tpaused\n\t\t\t\t\t\t\t\tdisableFocus\n\t\t\t\t\t\t\t\tonLoad={ onVideoLoad }\n\t\t\t\t\t\t\t\tref={ videoRef }\n\t\t\t\t\t\t\t\tresizeMode=\"contain\"\n\t\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t\tstyle={ videoPreviewStyles }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! displayPlaceholder && (\n\t\t\t\t\t\t\t<Animated.View\n\t\t\t\t\t\t\t\tpointerEvents=\"none\"\n\t\t\t\t\t\t\t\tstyle={ focalPointGroupStyles }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Tooltip.Label\n\t\t\t\t\t\t\t\t\ttext={ __( 'Drag to adjust focal point' ) }\n\t\t\t\t\t\t\t\t\tyOffset={ -( FOCAL_POINT_SIZE / 2 ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<FocalPoint\n\t\t\t\t\t\t\t\t\theight={ styles.focalPoint?.height }\n\t\t\t\t\t\t\t\t\tstyle={ focalPointStyles }\n\t\t\t\t\t\t\t\t\twidth={ styles.focalPoint?.width }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Animated.View>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t\t<UnitControl\n\t\t\t\t\tkey={ `xAxis-${ sliderKey }` }\n\t\t\t\t\tlabel={ __( 'X-Axis Position' ) }\n\t\t\t\t\tmax={ MAX_POSITION_VALUE }\n\t\t\t\t\tmin={ MIN_POSITION_VALUE }\n\t\t\t\t\tonChange={ onXCoordinateChange }\n\t\t\t\t\tunit=\"%\"\n\t\t\t\t\tunits={ FOCAL_POINT_UNITS }\n\t\t\t\t\tvalue={ Math.round( focalPoint.x * 100 ) }\n\t\t\t\t/>\n\t\t\t\t<UnitControl\n\t\t\t\t\tkey={ `yAxis-${ sliderKey }` }\n\t\t\t\t\tlabel={ __( 'Y-Axis Position' ) }\n\t\t\t\t\tmax={ MAX_POSITION_VALUE }\n\t\t\t\t\tmin={ MIN_POSITION_VALUE }\n\t\t\t\t\tonChange={ onYCoordinateChange }\n\t\t\t\t\tunit=\"%\"\n\t\t\t\t\tunits={ FOCAL_POINT_UNITS }\n\t\t\t\t\tvalue={ Math.round( focalPoint.y * 100 ) }\n\t\t\t\t/>\n\t\t\t</Tooltip>\n\t\t</View>\n\t);\n}\n\nexport default FocalPointPicker;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/focal-point-picker/index.native.js"],"names":["MIN_POSITION_VALUE","MAX_POSITION_VALUE","FOCAL_POINT_UNITS","default","label","value","FocalPointPicker","props","focalPoint","onChange","shouldEnableBottomSheetScroll","url","isVideo","containerSize","setContainerSize","sliderKey","setSliderKey","displayPlaceholder","setDisplayPlaceholder","videoNaturalSize","setVideoNaturalSize","tooltipVisible","setTooltipVisible","locationPageOffsetX","current","locationPageOffsetY","videoRef","tooltipShown","pan","Animated","ValueXY","setValue","x","width","y","height","panResponder","PanResponder","create","onStartShouldSetPanResponder","onStartShouldSetPanResponderCapture","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","event","locationX","locationY","pageX","pageY","nativeEvent","extractOffset","onPanResponderMove","dx","dy","useNativeDriver","onPanResponderRelease","flattenOffset","toFixed","prevState","mediaBackground","styles","mediaBackgroundDark","imagePreviewStyles","mediaPlaceholder","image","videoPreviewStyles","aspectRatio","opacity","video","focalPointGroupStyles","focalPointGroup","transform","translateX","interpolate","inputRange","outputRange","extrapolate","translateY","FOCAL_POINT_SIZE","focalPointStyles","marginLeft","marginTop","onTooltipPress","onMediaLayout","layout","onImageDataLoad","onVideoLoad","naturalSize","seek","onXCoordinateChange","onYCoordinateChange","container","media","panHandlers","mediaContainer","uri","Math","round"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Animated, PanResponder, View } from 'react-native';\nimport Video from 'react-native-video';\nimport { clamp } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestFocalPointPickerTooltipShown,\n\tsetFocalPointPickerTooltipShown,\n} from '@wordpress/react-native-bridge';\nimport { __ } from '@wordpress/i18n';\nimport { Image, UnitControl } from '@wordpress/components';\nimport { useRef, useState, useMemo, useEffect } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport FocalPoint from './focal-point';\nimport Tooltip from './tooltip';\nimport styles from './style.scss';\nimport { isVideoType } from './utils';\n\nconst MIN_POSITION_VALUE = 0;\nconst MAX_POSITION_VALUE = 100;\nconst FOCAL_POINT_UNITS = [ { default: 50, label: '%', value: '%' } ];\n\nfunction FocalPointPicker( props ) {\n\tconst { focalPoint, onChange, shouldEnableBottomSheetScroll, url } = props;\n\n\tconst isVideo = isVideoType( url );\n\n\tconst [ containerSize, setContainerSize ] = useState( null );\n\tconst [ sliderKey, setSliderKey ] = useState( 0 );\n\tconst [ displayPlaceholder, setDisplayPlaceholder ] = useState( true );\n\tconst [ videoNaturalSize, setVideoNaturalSize ] = useState( null );\n\tconst [ tooltipVisible, setTooltipVisible ] = useState( false );\n\n\tlet locationPageOffsetX = useRef().current;\n\tlet locationPageOffsetY = useRef().current;\n\tconst videoRef = useRef( null );\n\n\tuseEffect( () => {\n\t\trequestFocalPointPickerTooltipShown( ( tooltipShown ) => {\n\t\t\tif ( ! tooltipShown ) {\n\t\t\t\tsetTooltipVisible( true );\n\t\t\t\tsetFocalPointPickerTooltipShown( true );\n\t\t\t}\n\t\t} );\n\t}, [] );\n\n\t// Animated coordinates for drag handle.\n\tconst pan = useRef( new Animated.ValueXY() ).current;\n\n\t/**\n\t * Set drag handle position anytime focal point coordinates change.\n\t * E.g. initial render, dragging range sliders.\n\t */\n\tuseEffect( () => {\n\t\tif ( containerSize ) {\n\t\t\tpan.setValue( {\n\t\t\t\tx: focalPoint.x * containerSize.width,\n\t\t\t\ty: focalPoint.y * containerSize.height,\n\t\t\t} );\n\t\t}\n\t}, [ focalPoint, containerSize ] );\n\n\t// Pan responder to manage drag handle interactivity.\n\tconst panResponder = useMemo(\n\t\t() =>\n\t\t\tPanResponder.create( {\n\t\t\t\tonStartShouldSetPanResponder: () => true,\n\t\t\t\tonStartShouldSetPanResponderCapture: () => true,\n\t\t\t\tonMoveShouldSetPanResponder: () => true,\n\t\t\t\tonMoveShouldSetPanResponderCapture: () => true,\n\n\t\t\t\tonPanResponderGrant: ( event ) => {\n\t\t\t\t\tshouldEnableBottomSheetScroll( false );\n\t\t\t\t\tconst {\n\t\t\t\t\t\tlocationX: x,\n\t\t\t\t\t\tlocationY: y,\n\t\t\t\t\t\tpageX,\n\t\t\t\t\t\tpageY,\n\t\t\t\t\t} = event.nativeEvent;\n\t\t\t\t\tlocationPageOffsetX = pageX - x;\n\t\t\t\t\tlocationPageOffsetY = pageY - y;\n\t\t\t\t\tpan.setValue( { x, y } ); // Set cursor to tap location.\n\t\t\t\t\tpan.extractOffset(); // Set offset to current value.\n\t\t\t\t},\n\t\t\t\t// Move cursor to match delta drag.\n\t\t\t\tonPanResponderMove: Animated.event(\n\t\t\t\t\t[ null, { dx: pan.x, dy: pan.y } ],\n\t\t\t\t\t{ useNativeDriver: false }\n\t\t\t\t),\n\t\t\t\tonPanResponderRelease: ( event ) => {\n\t\t\t\t\tshouldEnableBottomSheetScroll( true );\n\t\t\t\t\tpan.flattenOffset(); // Flatten offset into value.\n\t\t\t\t\tconst { pageX, pageY } = event.nativeEvent;\n\t\t\t\t\t// Ideally, x and y below are merely locationX and locationY from the\n\t\t\t\t\t// nativeEvent. However, we are required to compute these relative\n\t\t\t\t\t// coordinates to workaround a bug affecting Android's PanResponder.\n\t\t\t\t\t// Specifically, dragging the handle outside the bounds of the image\n\t\t\t\t\t// results in inaccurate locationX and locationY coordinates to be\n\t\t\t\t\t// reported. https://git.io/JtWmi\n\t\t\t\t\tconst x = pageX - locationPageOffsetX;\n\t\t\t\t\tconst y = pageY - locationPageOffsetY;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\tx: clamp( x / containerSize?.width, 0, 1 ).toFixed( 2 ),\n\t\t\t\t\t\ty: clamp( y / containerSize?.height, 0, 1 ).toFixed(\n\t\t\t\t\t\t\t2\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t\t// Slider (child of RangeCell) is uncontrolled, so we must increment a\n\t\t\t\t\t// key to re-mount and sync the pan gesture values to the sliders\n\t\t\t\t\t// https://git.io/JTe4A\n\t\t\t\t\tsetSliderKey( ( prevState ) => prevState + 1 );\n\t\t\t\t},\n\t\t\t} ),\n\t\t[ containerSize ]\n\t);\n\n\tconst mediaBackground = usePreferredColorSchemeStyle(\n\t\tstyles.mediaBackground,\n\t\tstyles.mediaBackgroundDark\n\t);\n\tconst imagePreviewStyles = [\n\t\tdisplayPlaceholder && styles.mediaPlaceholder,\n\t\tstyles.image,\n\t];\n\tconst videoPreviewStyles = [\n\t\t{\n\t\t\taspectRatio:\n\t\t\t\tvideoNaturalSize &&\n\t\t\t\tvideoNaturalSize.width / videoNaturalSize.height,\n\t\t\t// Hide Video component since it has black background while loading the source\n\t\t\topacity: displayPlaceholder ? 0 : 1,\n\t\t},\n\t\tstyles.video,\n\t\tdisplayPlaceholder && styles.mediaPlaceholder,\n\t];\n\tconst focalPointGroupStyles = [\n\t\tstyles.focalPointGroup,\n\t\t{\n\t\t\ttransform: [\n\t\t\t\t{\n\t\t\t\t\ttranslateX: pan.x.interpolate( {\n\t\t\t\t\t\tinputRange: [ 0, containerSize?.width || 0 ],\n\t\t\t\t\t\toutputRange: [ 0, containerSize?.width || 0 ],\n\t\t\t\t\t\textrapolate: 'clamp',\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttranslateY: pan.y.interpolate( {\n\t\t\t\t\t\tinputRange: [ 0, containerSize?.height || 0 ],\n\t\t\t\t\t\toutputRange: [ 0, containerSize?.height || 0 ],\n\t\t\t\t\t\textrapolate: 'clamp',\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t];\n\tconst FOCAL_POINT_SIZE = 50;\n\tconst focalPointStyles = [\n\t\tstyles.focalPoint,\n\t\t{\n\t\t\theight: FOCAL_POINT_SIZE,\n\t\t\tmarginLeft: -( FOCAL_POINT_SIZE / 2 ),\n\t\t\tmarginTop: -( FOCAL_POINT_SIZE / 2 ),\n\t\t\twidth: FOCAL_POINT_SIZE,\n\t\t},\n\t];\n\n\tconst onTooltipPress = () => setTooltipVisible( false );\n\tconst onMediaLayout = ( event ) => {\n\t\tconst { height, width } = event.nativeEvent.layout;\n\n\t\tif (\n\t\t\twidth !== 0 &&\n\t\t\theight !== 0 &&\n\t\t\t( containerSize?.width !== width ||\n\t\t\t\tcontainerSize?.height !== height )\n\t\t) {\n\t\t\tsetContainerSize( { width, height } );\n\t\t}\n\t};\n\tconst onImageDataLoad = () => setDisplayPlaceholder( false );\n\tconst onVideoLoad = ( event ) => {\n\t\tconst { height, width } = event.naturalSize;\n\t\tsetVideoNaturalSize( { height, width } );\n\t\tsetDisplayPlaceholder( false );\n\t\t// Avoid invisible, paused video on Android, presumably related to\n\t\t// https://git.io/Jt6Dr\n\t\tvideoRef?.current.seek( 0 );\n\t};\n\tconst onXCoordinateChange = ( x ) =>\n\t\tonChange( { x: ( x / 100 ).toFixed( 2 ) } );\n\tconst onYCoordinateChange = ( y ) =>\n\t\tonChange( { y: ( y / 100 ).toFixed( 2 ) } );\n\n\treturn (\n\t\t<View style={ styles.container }>\n\t\t\t<Tooltip onPress={ onTooltipPress } visible={ tooltipVisible }>\n\t\t\t\t<View style={ [ styles.media, mediaBackground ] }>\n\t\t\t\t\t<View\n\t\t\t\t\t\t{ ...panResponder.panHandlers }\n\t\t\t\t\t\tonLayout={ onMediaLayout }\n\t\t\t\t\t\tstyle={ styles.mediaContainer }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! isVideo && (\n\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\teditButton={ false }\n\t\t\t\t\t\t\t\thighlightSelected={ false }\n\t\t\t\t\t\t\t\tisSelected={ ! displayPlaceholder }\n\t\t\t\t\t\t\t\theight=\"100%\"\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\tstyle={ imagePreviewStyles }\n\t\t\t\t\t\t\t\tonImageDataLoad={ onImageDataLoad }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isVideo && (\n\t\t\t\t\t\t\t<Video\n\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\tpaused\n\t\t\t\t\t\t\t\tdisableFocus\n\t\t\t\t\t\t\t\tonLoad={ onVideoLoad }\n\t\t\t\t\t\t\t\tref={ videoRef }\n\t\t\t\t\t\t\t\tresizeMode=\"contain\"\n\t\t\t\t\t\t\t\tsource={ { uri: url } }\n\t\t\t\t\t\t\t\tstyle={ videoPreviewStyles }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! displayPlaceholder && (\n\t\t\t\t\t\t\t<Animated.View\n\t\t\t\t\t\t\t\tpointerEvents=\"none\"\n\t\t\t\t\t\t\t\tstyle={ focalPointGroupStyles }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Tooltip.Label\n\t\t\t\t\t\t\t\t\ttext={ __( 'Drag to adjust focal point' ) }\n\t\t\t\t\t\t\t\t\tyOffset={ -( FOCAL_POINT_SIZE / 2 ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<FocalPoint\n\t\t\t\t\t\t\t\t\theight={ styles.focalPoint?.height }\n\t\t\t\t\t\t\t\t\tstyle={ focalPointStyles }\n\t\t\t\t\t\t\t\t\twidth={ styles.focalPoint?.width }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Animated.View>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t\t<UnitControl\n\t\t\t\t\tkey={ `xAxis-${ sliderKey }` }\n\t\t\t\t\tlabel={ __( 'X-Axis Position' ) }\n\t\t\t\t\tmax={ MAX_POSITION_VALUE }\n\t\t\t\t\tmin={ MIN_POSITION_VALUE }\n\t\t\t\t\tonChange={ onXCoordinateChange }\n\t\t\t\t\tunit=\"%\"\n\t\t\t\t\tunits={ FOCAL_POINT_UNITS }\n\t\t\t\t\tvalue={ Math.round( focalPoint.x * 100 ) }\n\t\t\t\t/>\n\t\t\t\t<UnitControl\n\t\t\t\t\tkey={ `yAxis-${ sliderKey }` }\n\t\t\t\t\tlabel={ __( 'Y-Axis Position' ) }\n\t\t\t\t\tmax={ MAX_POSITION_VALUE }\n\t\t\t\t\tmin={ MIN_POSITION_VALUE }\n\t\t\t\t\tonChange={ onYCoordinateChange }\n\t\t\t\t\tunit=\"%\"\n\t\t\t\t\tunits={ FOCAL_POINT_UNITS }\n\t\t\t\t\tvalue={ Math.round( focalPoint.y * 100 ) }\n\t\t\t\t/>\n\t\t\t</Tooltip>\n\t\t</View>\n\t);\n}\n\nexport default FocalPointPicker;\n"]}
@@ -89,7 +89,7 @@ function Label(_ref2) {
89
89
  delay: visible ? 500 : 0,
90
90
  easing: _reactNative.Easing.out(_reactNative.Easing.quad)
91
91
  }).start();
92
- }; // Transforms rely upon onLayout to enable custom offsets additions
92
+ }; // Transforms rely upon onLayout to enable custom offsets additions.
93
93
 
94
94
 
95
95
  let tooltipTransforms;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/focal-point-picker/tooltip/index.native.js"],"names":["TooltipContext","Tooltip","children","onPress","style","visible","panResponder","PanResponder","create","onStartShouldSetPanResponderCapture","current","panHandlers","Label","align","text","xOffset","yOffset","animationValue","Animated","Value","dimensions","setDimensions","Error","startAnimation","timing","toValue","duration","useNativeDriver","delay","easing","Easing","out","quad","start","tooltipTransforms","translateX","width","translateY","height","tooltipStyles","styles","tooltip","shadowColor","tooltipShadow","color","shadowOffset","shadowOpacity","shadowRadius","elevation","transform","tooltipLeftAlign","arrowStyles","arrow","arrowLeftAlign","opacity","interpolate","inputRange","outputRange","nativeEvent","layout","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Animated, Easing, PanResponder, Text, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseContext,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst TooltipContext = createContext();\n\nfunction Tooltip( { children, onPress, style, visible } ) {\n\tconst panResponder = useRef(\n\t\tPanResponder.create( {\n\t\t\t/**\n\t\t\t * To allow dimissing the tooltip on press while also avoiding blocking\n\t\t\t * interactivity within the child context, we place this `onPress` side\n\t\t\t * effect within the `onStartShouldSetPanResponderCapture` callback.\n\t\t\t *\n\t\t\t * This is a bit unorthodox, but may be the simplest approach to achieving\n\t\t\t * this outcome. This is effectively a gesture responder that never\n\t\t\t * becomes the controlling responder. https://bit.ly/2J3ugKF\n\t\t\t */\n\t\t\tonStartShouldSetPanResponderCapture: () => {\n\t\t\t\tif ( onPress ) {\n\t\t\t\t\tonPress();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t} )\n\t).current;\n\n\treturn (\n\t\t<TooltipContext.Provider value={ visible }>\n\t\t\t<View\n\t\t\t\t{ ...( visible ? panResponder.panHandlers : {} ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t</TooltipContext.Provider>\n\t);\n}\n\nfunction Label( { align, text, xOffset, yOffset } ) {\n\tconst animationValue = useRef( new Animated.Value( 0 ) ).current;\n\tconst [ dimensions, setDimensions ] = useState( null );\n\tconst visible = useContext( TooltipContext );\n\n\tif ( typeof visible === 'undefined' ) {\n\t\tthrow new Error(\n\t\t\t'Tooltip.Label cannot be rendered outside of the Tooltip component'\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tstartAnimation();\n\t}, [ visible ] );\n\n\tconst startAnimation = () => {\n\t\tAnimated.timing( animationValue, {\n\t\t\ttoValue: visible ? 1 : 0,\n\t\t\tduration: visible ? 300 : 150,\n\t\t\tuseNativeDriver: true,\n\t\t\tdelay: visible ? 500 : 0,\n\t\t\teasing: Easing.out( Easing.quad ),\n\t\t} ).start();\n\t};\n\n\t// Transforms rely upon onLayout to enable custom offsets additions\n\tlet tooltipTransforms;\n\tif ( dimensions ) {\n\t\ttooltipTransforms = [\n\t\t\t{\n\t\t\t\ttranslateX:\n\t\t\t\t\t( align === 'center' ? -dimensions.width / 2 : 0 ) +\n\t\t\t\t\txOffset,\n\t\t\t},\n\t\t\t{ translateY: -dimensions.height + yOffset },\n\t\t];\n\t}\n\n\tconst tooltipStyles = [\n\t\tstyles.tooltip,\n\t\t{\n\t\t\tshadowColor: styles.tooltipShadow?.color,\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 2,\n\t\t\t},\n\t\t\tshadowOpacity: 0.25,\n\t\t\tshadowRadius: 2,\n\t\t\televation: 2,\n\t\t\ttransform: tooltipTransforms,\n\t\t},\n\t\talign === 'left' && styles.tooltipLeftAlign,\n\t];\n\tconst arrowStyles = [\n\t\tstyles.arrow,\n\t\talign === 'left' && styles.arrowLeftAlign,\n\t];\n\n\treturn (\n\t\t<Animated.View\n\t\t\tstyle={ {\n\t\t\t\topacity: animationValue,\n\t\t\t\ttransform: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttranslateY: animationValue.interpolate( {\n\t\t\t\t\t\t\tinputRange: [ 0, 1 ],\n\t\t\t\t\t\t\toutputRange: [ visible ? 4 : -8, -8 ],\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\t\t<View\n\t\t\t\tonLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst { height, width } = nativeEvent.layout;\n\t\t\t\t\tsetDimensions( { height, width } );\n\t\t\t\t} }\n\t\t\t\tstyle={ tooltipStyles }\n\t\t\t>\n\t\t\t\t<Text style={ styles.text }>{ text }</Text>\n\t\t\t\t<View style={ arrowStyles } />\n\t\t\t</View>\n\t\t</Animated.View>\n\t);\n}\n\nLabel.defaultProps = {\n\talign: 'center',\n\txOffset: 0,\n\tyOffset: 0,\n};\n\nTooltip.Label = Label;\n\nexport default Tooltip;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/focal-point-picker/tooltip/index.native.js"],"names":["TooltipContext","Tooltip","children","onPress","style","visible","panResponder","PanResponder","create","onStartShouldSetPanResponderCapture","current","panHandlers","Label","align","text","xOffset","yOffset","animationValue","Animated","Value","dimensions","setDimensions","Error","startAnimation","timing","toValue","duration","useNativeDriver","delay","easing","Easing","out","quad","start","tooltipTransforms","translateX","width","translateY","height","tooltipStyles","styles","tooltip","shadowColor","tooltipShadow","color","shadowOffset","shadowOpacity","shadowRadius","elevation","transform","tooltipLeftAlign","arrowStyles","arrow","arrowLeftAlign","opacity","interpolate","inputRange","outputRange","nativeEvent","layout","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Animated, Easing, PanResponder, Text, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tuseContext,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst TooltipContext = createContext();\n\nfunction Tooltip( { children, onPress, style, visible } ) {\n\tconst panResponder = useRef(\n\t\tPanResponder.create( {\n\t\t\t/**\n\t\t\t * To allow dimissing the tooltip on press while also avoiding blocking\n\t\t\t * interactivity within the child context, we place this `onPress` side\n\t\t\t * effect within the `onStartShouldSetPanResponderCapture` callback.\n\t\t\t *\n\t\t\t * This is a bit unorthodox, but may be the simplest approach to achieving\n\t\t\t * this outcome. This is effectively a gesture responder that never\n\t\t\t * becomes the controlling responder. https://bit.ly/2J3ugKF\n\t\t\t */\n\t\t\tonStartShouldSetPanResponderCapture: () => {\n\t\t\t\tif ( onPress ) {\n\t\t\t\t\tonPress();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t} )\n\t).current;\n\n\treturn (\n\t\t<TooltipContext.Provider value={ visible }>\n\t\t\t<View\n\t\t\t\t{ ...( visible ? panResponder.panHandlers : {} ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</View>\n\t\t</TooltipContext.Provider>\n\t);\n}\n\nfunction Label( { align, text, xOffset, yOffset } ) {\n\tconst animationValue = useRef( new Animated.Value( 0 ) ).current;\n\tconst [ dimensions, setDimensions ] = useState( null );\n\tconst visible = useContext( TooltipContext );\n\n\tif ( typeof visible === 'undefined' ) {\n\t\tthrow new Error(\n\t\t\t'Tooltip.Label cannot be rendered outside of the Tooltip component'\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tstartAnimation();\n\t}, [ visible ] );\n\n\tconst startAnimation = () => {\n\t\tAnimated.timing( animationValue, {\n\t\t\ttoValue: visible ? 1 : 0,\n\t\t\tduration: visible ? 300 : 150,\n\t\t\tuseNativeDriver: true,\n\t\t\tdelay: visible ? 500 : 0,\n\t\t\teasing: Easing.out( Easing.quad ),\n\t\t} ).start();\n\t};\n\n\t// Transforms rely upon onLayout to enable custom offsets additions.\n\tlet tooltipTransforms;\n\tif ( dimensions ) {\n\t\ttooltipTransforms = [\n\t\t\t{\n\t\t\t\ttranslateX:\n\t\t\t\t\t( align === 'center' ? -dimensions.width / 2 : 0 ) +\n\t\t\t\t\txOffset,\n\t\t\t},\n\t\t\t{ translateY: -dimensions.height + yOffset },\n\t\t];\n\t}\n\n\tconst tooltipStyles = [\n\t\tstyles.tooltip,\n\t\t{\n\t\t\tshadowColor: styles.tooltipShadow?.color,\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 2,\n\t\t\t},\n\t\t\tshadowOpacity: 0.25,\n\t\t\tshadowRadius: 2,\n\t\t\televation: 2,\n\t\t\ttransform: tooltipTransforms,\n\t\t},\n\t\talign === 'left' && styles.tooltipLeftAlign,\n\t];\n\tconst arrowStyles = [\n\t\tstyles.arrow,\n\t\talign === 'left' && styles.arrowLeftAlign,\n\t];\n\n\treturn (\n\t\t<Animated.View\n\t\t\tstyle={ {\n\t\t\t\topacity: animationValue,\n\t\t\t\ttransform: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttranslateY: animationValue.interpolate( {\n\t\t\t\t\t\t\tinputRange: [ 0, 1 ],\n\t\t\t\t\t\t\toutputRange: [ visible ? 4 : -8, -8 ],\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\t\t<View\n\t\t\t\tonLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst { height, width } = nativeEvent.layout;\n\t\t\t\t\tsetDimensions( { height, width } );\n\t\t\t\t} }\n\t\t\t\tstyle={ tooltipStyles }\n\t\t\t>\n\t\t\t\t<Text style={ styles.text }>{ text }</Text>\n\t\t\t\t<View style={ arrowStyles } />\n\t\t\t</View>\n\t\t</Animated.View>\n\t);\n}\n\nLabel.defaultProps = {\n\talign: 'center',\n\txOffset: 0,\n\tyOffset: 0,\n};\n\nTooltip.Label = Label;\n\nexport default Tooltip;\n"]}
@@ -124,7 +124,6 @@ function FontSizePicker(_ref, ref) {
124
124
  className: `${baseClassName}__header__hint`
125
125
  }, headerHint)), !disableCustomFontSizes && (0, _element.createElement)(_flex.FlexItem, null, (0, _element.createElement)(_button.default, {
126
126
  label: showCustomValueControl ? (0, _i18n.__)('Use size preset') : (0, _i18n.__)('Set custom size'),
127
- showTooltip: false,
128
127
  icon: _icons.settings,
129
128
  onClick: () => {
130
129
  setShowCustomValueControl(!showCustomValueControl);
@@ -181,7 +180,7 @@ function FontSizePicker(_ref, ref) {
181
180
  onChange(hasUnits ? nextSize : parseInt(nextSize, 10));
182
181
  }
183
182
  },
184
- units: hasUnits ? units : false
183
+ units: hasUnits ? units : []
185
184
  })), withReset && (0, _element.createElement)(_flex.FlexItem, {
186
185
  isBlock: true
187
186
  }, (0, _element.createElement)(_button.default, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/font-size-picker/index.js"],"names":["FontSizePicker","ref","fallbackFontSize","fontSizes","disableCustomFontSizes","onChange","value","withSlider","withReset","hasUnits","size","includes","noUnitsValue","parseInt","isPixelValue","endsWith","units","availableUnits","fontSizesContainComplexValues","some","shouldUseSelectControl","length","options","selectedOption","isCustomValue","slug","CUSTOM_FONT_SIZE","showCustomValueControl","setShowCustomValueControl","headerHint","hint","name","unit","currentFontSizeSR","baseClassName","settings","find","option","key","selectedItem","Number","newValue","map","label","nextSize","parseFloat","undefined"],"mappings":";;;;;;;;;AAKA;;;;AAFA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;;;;;AApBA;AACA;AACA;;AAKA;AACA;AACA;AAmBA,SAASA,cAAT,OAUCC,GAVD,EAWE;AAAA;;AAAA,MAVD;AACCC,IAAAA,gBADD;AAECC,IAAAA,SAAS,GAAG,EAFb;AAGCC,IAAAA,sBAAsB,GAAG,KAH1B;AAICC,IAAAA,QAJD;AAKCC,IAAAA,KALD;AAMCC,IAAAA,UAAU,GAAG,KANd;AAOCC,IAAAA,SAAS,GAAG;AAPb,GAUC;AACD,QAAMC,QAAQ,GAAG,CAAE,OAAOH,KAAT,EAAgB,QAAOH,SAAP,aAAOA,SAAP,sCAAOA,SAAS,CAAI,CAAJ,CAAhB,gDAAO,YAAkBO,IAAzB,CAAhB,EAAgDC,QAAhD,CAChB,QADgB,CAAjB;AAGA,QAAMC,YAAY,GAAG,CAAEH,QAAF,GAAaH,KAAb,GAAqBO,QAAQ,CAAEP,KAAF,CAAlD;AACA,QAAMQ,YAAY,GAAG,OAAOR,KAAP,KAAiB,QAAjB,KAA6BA,KAA7B,aAA6BA,KAA7B,0CAA6BA,KAAK,CAAES,QAApC,oDAA6B,qBAAAT,KAAK,EAAc,IAAd,CAAlC,CAArB;AACA,QAAMU,KAAK,GAAG,iCAAgB;AAC7BC,IAAAA,cAAc,EAAE,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADa,GAAhB,CAAd;AAIA;AACD;AACA;AACA;;AACC,QAAMC,6BAA6B,GAAGf,SAAS,CAACgB,IAAV,CACrC;AAAA,QAAE;AAAET,MAAAA;AAAF,KAAF;AAAA,WAAgB,CAAE,6BAAkBA,IAAlB,CAAlB;AAAA,GADqC,CAAtC;AAGA,QAAMU,sBAAsB,GAAGjB,SAAS,CAACkB,MAAV,GAAmB,CAAlD;AACA,QAAMC,OAAO,GAAG,sBACf,MACC,+BACCF,sBADD,EAECjB,SAFD,EAGCC,sBAHD,EAICc,6BAJD,CAFc,EAQf,CACCE,sBADD,EAECjB,SAFD,EAGCC,sBAHD,EAICc,6BAJD,CARe,CAAhB;AAeA,QAAMK,cAAc,GAAG,8BAAmBpB,SAAnB,EAA8BG,KAA9B,CAAvB;AACA,QAAMkB,aAAa,GAAGD,cAAc,CAACE,IAAf,KAAwBC,uBAA9C;AACA,QAAM,CAAEC,sBAAF,EAA0BC,yBAA1B,IAAwD,uBAC7D,CAAExB,sBAAF,IAA4BoB,aADiC,CAA9D;AAGA,QAAMK,UAAU,GAAG,sBAAS,MAAM;AACjC,QAAKF,sBAAL,EAA8B;AAC7B,aAAQ,IAAI,cAAI,QAAJ,CAAgB,GAA5B;AACA,KAHgC,CAKjC;AACA;;;AACA,QAAKH,aAAL,EAAqB;AACpB,aAAO,6BAAkBlB,KAAlB,KAA8B,IAAIA,KAAO,GAAhD;AACA;;AACD,QAAKc,sBAAL,EAA8B;AAC7B,aACC,6BAAkBG,cAAlB,aAAkBA,cAAlB,uBAAkBA,cAAc,CAAEb,IAAlC,KACC,IAAIa,cAAL,aAAKA,cAAL,uBAAKA,cAAc,CAAEb,IAAM,GAF5B;AAIA,KAfgC,CAgBjC;;;AACA,QAAIoB,IAAI,GAAGP,cAAc,CAACQ,IAA1B;;AACA,QACC,CAAEb,6BAAF,IACA,OAAOK,cAAc,CAACb,IAAtB,KAA+B,QAFhC,EAGE;AACD,YAAM,GAAIsB,IAAJ,IAAa,sCAA2BT,cAAc,CAACb,IAA1C,CAAnB;AACAoB,MAAAA,IAAI,IAAK,IAAIE,IAAM,GAAnB;AACA;;AACD,WAAOF,IAAP;AACA,GA1BkB,EA0BhB,CACFH,sBADE,EAEFJ,cAFE,aAEFA,cAFE,uBAEFA,cAAc,CAAEE,IAFd,EAGFnB,KAHE,EAIFkB,aAJE,EAKFN,6BALE,CA1BgB,CAAnB;;AAkCA,MAAK,CAAEI,OAAP,EAAiB;AAChB,WAAO,IAAP;AACA,GA1EA,CA4ED;AACA;;;AACA,QAAMW,iBAAiB,GAAG,oBACzB;AACA,gBAAI,kCAAJ,CAFyB,EAGzBV,cAAc,CAACQ,IAHU,CAA1B;AAKA,QAAMG,aAAa,GAAG,6BAAtB;AACA,SACC;AAAU,IAAA,SAAS,EAAGA;AAAtB,KAA6CjC,GAAG,GAAG,EAAH,GAAQ;AAAEA,IAAAA;AAAF,GAAxD,GACC,4BAAC,8BAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KAA8B,cAAI,WAAJ,CAA9B,CADD,EAEC,4BAAC,UAAD;AACC,IAAA,OAAO,EAAC,eADT;AAEC,IAAA,SAAS,EAAI,GAAGiC,aAAe;AAFhC,KAIC,4BAAC,cAAD,QACG,cAAI,MAAJ,CADH,EAEGL,UAAU,IACX;AAAM,IAAA,SAAS,EAAI,GAAGK,aAAe;AAArC,KACGL,UADH,CAHF,CAJD,EAYG,CAAEzB,sBAAF,IACD,4BAAC,cAAD,QACC,4BAAC,eAAD;AACC,IAAA,KAAK,EACJuB,sBAAsB,GACnB,cAAI,iBAAJ,CADmB,GAEnB,cAAI,iBAAJ,CAJL;AAMC,IAAA,WAAW,EAAG,KANf;AAOC,IAAA,IAAI,EAAGQ,eAPR;AAQC,IAAA,OAAO,EAAG,MAAM;AACfP,MAAAA,yBAAyB,CACxB,CAAED,sBADsB,CAAzB;AAGA,KAZF;AAaC,IAAA,SAAS,EAAGA,sBAbb;AAcC,IAAA,OAAO;AAdR,IADD,CAbF,CAFD,EAmCC;AAAK,IAAA,SAAS,EAAI,GAAGO,aAAe;AAApC,KACG,CAAC,CAAE/B,SAAS,CAACkB,MAAb,IACDD,sBADC,IAED,CAAEO,sBAFD,IAGA,4BAAC,4BAAD;AACC,IAAA,SAAS,EAAI,GAAGO,aAAe,UADhC;AAEC,IAAA,KAAK,EAAG,cAAI,WAAJ,CAFT;AAGC,IAAA,mBAAmB,MAHpB;AAIC,IAAA,WAAW,EAAGD,iBAJf;AAKC,IAAA,OAAO,EAAGX,OALX;AAMC,IAAA,KAAK,EAAGA,OAAO,CAACc,IAAR,CACLC,MAAF,IAAcA,MAAM,CAACC,GAAP,KAAef,cAAc,CAACE,IADrC,CANT;AASC,IAAA,QAAQ,EAAG,SAAwB;AAAA,UAAtB;AAAEc,QAAAA;AAAF,OAAsB;AAClClC,MAAAA,QAAQ,CACPI,QAAQ,GACL8B,YAAY,CAAC7B,IADR,GAEL8B,MAAM,CAAED,YAAY,CAAC7B,IAAf,CAHF,CAAR;;AAKA,UAAK6B,YAAY,CAACD,GAAb,KAAqBZ,uBAA1B,EAA6C;AAC5CE,QAAAA,yBAAyB,CAAE,IAAF,CAAzB;AACA;AACD;AAlBF,IAJH,EAyBG,CAAER,sBAAF,IAA4B,CAAEO,sBAA9B,IACD,4BAAC,sCAAD;AACC,IAAA,KAAK,EAAG,cAAI,WAAJ,CADT;AAEC,IAAA,mBAAmB,MAFpB;AAGC,IAAA,KAAK,EAAGrB,KAHT;AAIC,IAAA,QAAQ,EAAKmC,QAAF,IAAgB;AAC1BpC,MAAAA,QAAQ,CACPI,QAAQ,GAAGgC,QAAH,GAAcD,MAAM,CAAEC,QAAF,CADrB,CAAR;AAGA,KARF;AASC,IAAA,OAAO;AATR,KAWGnB,OAAO,CAACoB,GAAR,CAAeL,MAAF,IACd,4BAAC,4CAAD;AACC,IAAA,GAAG,EAAGA,MAAM,CAACC,GADd;AAEC,IAAA,KAAK,EAAGD,MAAM,CAAC/B,KAFhB;AAGC,IAAA,KAAK,EAAG+B,MAAM,CAACM,KAHhB;AAIC,kBAAaN,MAAM,CAACN,IAJrB;AAKC,IAAA,WAAW,EAAG;AALf,IADC,CAXH,CA1BF,EAgDG,CAAExB,UAAF,IACD,CAAEH,sBADD,IAEDuB,sBAFC,IAGA,4BAAC,UAAD;AACC,IAAA,OAAO,EAAC,eADT;AAEC,IAAA,SAAS,EAAI,GAAGO,aAAe;AAFhC,KAIC,4BAAC,cAAD;AAAU,IAAA,OAAO;AAAjB,KACC,4BAAC,oBAAD;AACC,IAAA,KAAK,EAAG,cAAI,QAAJ,CADT;AAEC,IAAA,aAAa,EAAC,KAFf;AAGC,IAAA,mBAAmB,MAHpB;AAIC,IAAA,KAAK,EAAG5B,KAJT;AAKC,IAAA,QAAQ,EAAKsC,QAAF,IAAgB;AAC1B,UACC,MAAMC,UAAU,CAAED,QAAF,CAAhB,IACA,CAAEA,QAFH,EAGE;AACDvC,QAAAA,QAAQ,CAAEyC,SAAF,CAAR;AACA,OALD,MAKO;AACNzC,QAAAA,QAAQ,CACPI,QAAQ,GACLmC,QADK,GAEL/B,QAAQ,CAAE+B,QAAF,EAAY,EAAZ,CAHJ,CAAR;AAKA;AACD,KAlBF;AAmBC,IAAA,KAAK,EAAGnC,QAAQ,GAAGO,KAAH,GAAW;AAnB5B,IADD,CAJD,EA2BGR,SAAS,IACV,4BAAC,cAAD;AAAU,IAAA,OAAO;AAAjB,KACC,4BAAC,eAAD;AACC,IAAA,SAAS,EAAC,iCADX;AAEC,IAAA,QAAQ,EAAGF,KAAK,KAAKwC,SAFtB;AAGC,IAAA,OAAO,EAAG,MAAM;AACfzC,MAAAA,QAAQ,CAAEyC,SAAF,CAAR;AACA,KALF;AAMC,IAAA,OAAO,MANR;AAOC,IAAA,OAAO,EAAC;AAPT,KASG,cAAI,OAAJ,CATH,CADD,CA5BF,CAnDH,CAnCD,EAmIGvC,UAAU,IACX,4BAAC,qBAAD;AACC,IAAA,SAAS,EAAI,GAAG2B,aAAe,gBADhC;AAEC,IAAA,KAAK,EAAG,cAAI,aAAJ,CAFT;AAGC,IAAA,KAAK,EAAKpB,YAAY,IAAIF,YAAlB,IAAoC,EAH7C;AAIC,IAAA,eAAe,EAAGV,gBAJnB;AAKC,IAAA,QAAQ,EAAKuC,QAAF,IAAgB;AAC1BpC,MAAAA,QAAQ,CAAEI,QAAQ,GAAGgC,QAAQ,GAAG,IAAd,GAAqBA,QAA/B,CAAR;AACA,KAPF;AAQC,IAAA,GAAG,EAAG,EARP;AASC,IAAA,GAAG,EAAG;AATP,IApIF,CADD;AAmJA;;eAEc,yBAAYzC,cAAZ,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\nimport { useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport RangeControl from '../range-control';\nimport { Flex, FlexItem } from '../flex';\nimport { default as UnitControl, useCustomUnits } from '../unit-control';\nimport CustomSelectControl from '../custom-select-control';\nimport { VisuallyHidden } from '../visually-hidden';\nimport {\n\tToggleGroupControl,\n\tToggleGroupControlOption,\n} from '../toggle-group-control';\nimport {\n\tgetFontSizeOptions,\n\tgetSelectedOption,\n\tsplitValueAndUnitFromSize,\n\tisSimpleCssValue,\n\tCUSTOM_FONT_SIZE,\n} from './utils';\n\nfunction FontSizePicker(\n\t{\n\t\tfallbackFontSize,\n\t\tfontSizes = [],\n\t\tdisableCustomFontSizes = false,\n\t\tonChange,\n\t\tvalue,\n\t\twithSlider = false,\n\t\twithReset = true,\n\t},\n\tref\n) {\n\tconst hasUnits = [ typeof value, typeof fontSizes?.[ 0 ]?.size ].includes(\n\t\t'string'\n\t);\n\tconst noUnitsValue = ! hasUnits ? value : parseInt( value );\n\tconst isPixelValue = typeof value === 'number' || value?.endsWith?.( 'px' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ 'px', 'em', 'rem' ],\n\t} );\n\n\t/**\n\t * The main font size UI displays a toggle group when the presets are less\n\t * than six and a select control when they are more.\n\t */\n\tconst fontSizesContainComplexValues = fontSizes.some(\n\t\t( { size } ) => ! isSimpleCssValue( size )\n\t);\n\tconst shouldUseSelectControl = fontSizes.length > 5;\n\tconst options = useMemo(\n\t\t() =>\n\t\t\tgetFontSizeOptions(\n\t\t\t\tshouldUseSelectControl,\n\t\t\t\tfontSizes,\n\t\t\t\tdisableCustomFontSizes,\n\t\t\t\tfontSizesContainComplexValues\n\t\t\t),\n\t\t[\n\t\t\tshouldUseSelectControl,\n\t\t\tfontSizes,\n\t\t\tdisableCustomFontSizes,\n\t\t\tfontSizesContainComplexValues,\n\t\t]\n\t);\n\tconst selectedOption = getSelectedOption( fontSizes, value );\n\tconst isCustomValue = selectedOption.slug === CUSTOM_FONT_SIZE;\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomFontSizes && isCustomValue\n\t);\n\tconst headerHint = useMemo( () => {\n\t\tif ( showCustomValueControl ) {\n\t\t\treturn `(${ __( 'Custom' ) })`;\n\t\t}\n\n\t\t// If we have a custom value that is not available in the font sizes,\n\t\t// show it as a hint as long as it's a simple CSS value.\n\t\tif ( isCustomValue ) {\n\t\t\treturn isSimpleCssValue( value ) && `(${ value })`;\n\t\t}\n\t\tif ( shouldUseSelectControl ) {\n\t\t\treturn (\n\t\t\t\tisSimpleCssValue( selectedOption?.size ) &&\n\t\t\t\t`(${ selectedOption?.size })`\n\t\t\t);\n\t\t}\n\t\t// Calculate the `hint` for toggle group control.\n\t\tlet hint = selectedOption.name;\n\t\tif (\n\t\t\t! fontSizesContainComplexValues &&\n\t\t\ttypeof selectedOption.size === 'string'\n\t\t) {\n\t\t\tconst [ , unit ] = splitValueAndUnitFromSize( selectedOption.size );\n\t\t\thint += `(${ unit })`;\n\t\t}\n\t\treturn hint;\n\t}, [\n\t\tshowCustomValueControl,\n\t\tselectedOption?.slug,\n\t\tvalue,\n\t\tisCustomValue,\n\t\tfontSizesContainComplexValues,\n\t] );\n\n\tif ( ! options ) {\n\t\treturn null;\n\t}\n\n\t// This is used for select control only. We need to add support\n\t// for ToggleGroupControl.\n\tconst currentFontSizeSR = sprintf(\n\t\t// translators: %s: Currently selected font size.\n\t\t__( 'Currently selected font size: %s' ),\n\t\tselectedOption.name\n\t);\n\tconst baseClassName = 'components-font-size-picker';\n\treturn (\n\t\t<fieldset className={ baseClassName } { ...( ref ? {} : { ref } ) }>\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Font size' ) }</VisuallyHidden>\n\t\t\t<Flex\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName={ `${ baseClassName }__header` }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ __( 'Size' ) }\n\t\t\t\t\t{ headerHint && (\n\t\t\t\t\t\t<span className={ `${ baseClassName }__header__hint` }>\n\t\t\t\t\t\t\t{ headerHint }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ ! disableCustomFontSizes && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\ticon={ settings }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowCustomValueControl(\n\t\t\t\t\t\t\t\t\t! showCustomValueControl\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t<div className={ `${ baseClassName }__controls` }>\n\t\t\t\t{ !! fontSizes.length &&\n\t\t\t\t\tshouldUseSelectControl &&\n\t\t\t\t\t! showCustomValueControl && (\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\tclassName={ `${ baseClassName }__select` }\n\t\t\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ currentFontSizeSR }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ options.find(\n\t\t\t\t\t\t\t\t( option ) => option.key === selectedOption.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t? selectedItem.size\n\t\t\t\t\t\t\t\t\t\t: Number( selectedItem.size )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( selectedItem.key === CUSTOM_FONT_SIZE ) {\n\t\t\t\t\t\t\t\t\tsetShowCustomValueControl( true );\n\t\t\t\t\t\t\t\t}\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{ ! shouldUseSelectControl && ! showCustomValueControl && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\thasUnits ? newValue : Number( newValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ options.map( ( option ) => (\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tkey={ option.key }\n\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\taria-label={ option.name }\n\t\t\t\t\t\t\t\tshowTooltip={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t\t{ ! withSlider &&\n\t\t\t\t\t! disableCustomFontSizes &&\n\t\t\t\t\tshowCustomValueControl && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t\t\tclassName={ `${ baseClassName }__custom-size-control` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextSize ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t0 === parseFloat( nextSize ) ||\n\t\t\t\t\t\t\t\t\t\t\t! nextSize\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t\t\t\t? nextSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t: parseInt( nextSize, 10 )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tunits={ hasUnits ? units : false }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t{ withReset && (\n\t\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-color-palette__clear\"\n\t\t\t\t\t\t\t\t\t\tdisabled={ value === undefined }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ withSlider && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName={ `${ baseClassName }__custom-input` }\n\t\t\t\t\tlabel={ __( 'Custom Size' ) }\n\t\t\t\t\tvalue={ ( isPixelValue && noUnitsValue ) || '' }\n\t\t\t\t\tinitialPosition={ fallbackFontSize }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tonChange( hasUnits ? newValue + 'px' : newValue );\n\t\t\t\t\t} }\n\t\t\t\t\tmin={ 12 }\n\t\t\t\t\tmax={ 100 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nexport default forwardRef( FontSizePicker );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/font-size-picker/index.js"],"names":["FontSizePicker","ref","fallbackFontSize","fontSizes","disableCustomFontSizes","onChange","value","withSlider","withReset","hasUnits","size","includes","noUnitsValue","parseInt","isPixelValue","endsWith","units","availableUnits","fontSizesContainComplexValues","some","shouldUseSelectControl","length","options","selectedOption","isCustomValue","slug","CUSTOM_FONT_SIZE","showCustomValueControl","setShowCustomValueControl","headerHint","hint","name","unit","currentFontSizeSR","baseClassName","settings","find","option","key","selectedItem","Number","newValue","map","label","nextSize","parseFloat","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\nimport { useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport RangeControl from '../range-control';\nimport { Flex, FlexItem } from '../flex';\nimport { default as UnitControl, useCustomUnits } from '../unit-control';\nimport CustomSelectControl from '../custom-select-control';\nimport { VisuallyHidden } from '../visually-hidden';\nimport {\n\tToggleGroupControl,\n\tToggleGroupControlOption,\n} from '../toggle-group-control';\nimport {\n\tgetFontSizeOptions,\n\tgetSelectedOption,\n\tsplitValueAndUnitFromSize,\n\tisSimpleCssValue,\n\tCUSTOM_FONT_SIZE,\n} from './utils';\n\nfunction FontSizePicker(\n\t{\n\t\tfallbackFontSize,\n\t\tfontSizes = [],\n\t\tdisableCustomFontSizes = false,\n\t\tonChange,\n\t\tvalue,\n\t\twithSlider = false,\n\t\twithReset = true,\n\t},\n\tref\n) {\n\tconst hasUnits = [ typeof value, typeof fontSizes?.[ 0 ]?.size ].includes(\n\t\t'string'\n\t);\n\tconst noUnitsValue = ! hasUnits ? value : parseInt( value );\n\tconst isPixelValue = typeof value === 'number' || value?.endsWith?.( 'px' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ 'px', 'em', 'rem' ],\n\t} );\n\n\t/**\n\t * The main font size UI displays a toggle group when the presets are less\n\t * than six and a select control when they are more.\n\t */\n\tconst fontSizesContainComplexValues = fontSizes.some(\n\t\t( { size } ) => ! isSimpleCssValue( size )\n\t);\n\tconst shouldUseSelectControl = fontSizes.length > 5;\n\tconst options = useMemo(\n\t\t() =>\n\t\t\tgetFontSizeOptions(\n\t\t\t\tshouldUseSelectControl,\n\t\t\t\tfontSizes,\n\t\t\t\tdisableCustomFontSizes,\n\t\t\t\tfontSizesContainComplexValues\n\t\t\t),\n\t\t[\n\t\t\tshouldUseSelectControl,\n\t\t\tfontSizes,\n\t\t\tdisableCustomFontSizes,\n\t\t\tfontSizesContainComplexValues,\n\t\t]\n\t);\n\tconst selectedOption = getSelectedOption( fontSizes, value );\n\tconst isCustomValue = selectedOption.slug === CUSTOM_FONT_SIZE;\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomFontSizes && isCustomValue\n\t);\n\tconst headerHint = useMemo( () => {\n\t\tif ( showCustomValueControl ) {\n\t\t\treturn `(${ __( 'Custom' ) })`;\n\t\t}\n\n\t\t// If we have a custom value that is not available in the font sizes,\n\t\t// show it as a hint as long as it's a simple CSS value.\n\t\tif ( isCustomValue ) {\n\t\t\treturn isSimpleCssValue( value ) && `(${ value })`;\n\t\t}\n\t\tif ( shouldUseSelectControl ) {\n\t\t\treturn (\n\t\t\t\tisSimpleCssValue( selectedOption?.size ) &&\n\t\t\t\t`(${ selectedOption?.size })`\n\t\t\t);\n\t\t}\n\t\t// Calculate the `hint` for toggle group control.\n\t\tlet hint = selectedOption.name;\n\t\tif (\n\t\t\t! fontSizesContainComplexValues &&\n\t\t\ttypeof selectedOption.size === 'string'\n\t\t) {\n\t\t\tconst [ , unit ] = splitValueAndUnitFromSize( selectedOption.size );\n\t\t\thint += `(${ unit })`;\n\t\t}\n\t\treturn hint;\n\t}, [\n\t\tshowCustomValueControl,\n\t\tselectedOption?.slug,\n\t\tvalue,\n\t\tisCustomValue,\n\t\tfontSizesContainComplexValues,\n\t] );\n\n\tif ( ! options ) {\n\t\treturn null;\n\t}\n\n\t// This is used for select control only. We need to add support\n\t// for ToggleGroupControl.\n\tconst currentFontSizeSR = sprintf(\n\t\t// translators: %s: Currently selected font size.\n\t\t__( 'Currently selected font size: %s' ),\n\t\tselectedOption.name\n\t);\n\tconst baseClassName = 'components-font-size-picker';\n\treturn (\n\t\t<fieldset className={ baseClassName } { ...( ref ? {} : { ref } ) }>\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Font size' ) }</VisuallyHidden>\n\t\t\t<Flex\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName={ `${ baseClassName }__header` }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ __( 'Size' ) }\n\t\t\t\t\t{ headerHint && (\n\t\t\t\t\t\t<span className={ `${ baseClassName }__header__hint` }>\n\t\t\t\t\t\t\t{ headerHint }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ ! disableCustomFontSizes && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ settings }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowCustomValueControl(\n\t\t\t\t\t\t\t\t\t! showCustomValueControl\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t\t<div className={ `${ baseClassName }__controls` }>\n\t\t\t\t{ !! fontSizes.length &&\n\t\t\t\t\tshouldUseSelectControl &&\n\t\t\t\t\t! showCustomValueControl && (\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\tclassName={ `${ baseClassName }__select` }\n\t\t\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ currentFontSizeSR }\n\t\t\t\t\t\t\toptions={ options }\n\t\t\t\t\t\t\tvalue={ options.find(\n\t\t\t\t\t\t\t\t( option ) => option.key === selectedOption.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t? selectedItem.size\n\t\t\t\t\t\t\t\t\t\t: Number( selectedItem.size )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( selectedItem.key === CUSTOM_FONT_SIZE ) {\n\t\t\t\t\t\t\t\t\tsetShowCustomValueControl( true );\n\t\t\t\t\t\t\t\t}\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{ ! shouldUseSelectControl && ! showCustomValueControl && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\thasUnits ? newValue : Number( newValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t>\n\t\t\t\t\t\t{ options.map( ( option ) => (\n\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\tkey={ option.key }\n\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\taria-label={ option.name }\n\t\t\t\t\t\t\t\tshowTooltip={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t\t{ ! withSlider &&\n\t\t\t\t\t! disableCustomFontSizes &&\n\t\t\t\t\tshowCustomValueControl && (\n\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\t\t\tclassName={ `${ baseClassName }__custom-size-control` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextSize ) => {\n\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t0 === parseFloat( nextSize ) ||\n\t\t\t\t\t\t\t\t\t\t\t! nextSize\n\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t\t\t\t? nextSize\n\t\t\t\t\t\t\t\t\t\t\t\t\t: parseInt( nextSize, 10 )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tunits={ hasUnits ? units : [] }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t{ withReset && (\n\t\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-color-palette__clear\"\n\t\t\t\t\t\t\t\t\t\tdisabled={ value === undefined }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChange( undefined );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ withSlider && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tclassName={ `${ baseClassName }__custom-input` }\n\t\t\t\t\tlabel={ __( 'Custom Size' ) }\n\t\t\t\t\tvalue={ ( isPixelValue && noUnitsValue ) || '' }\n\t\t\t\t\tinitialPosition={ fallbackFontSize }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tonChange( hasUnits ? newValue + 'px' : newValue );\n\t\t\t\t\t} }\n\t\t\t\t\tmin={ 12 }\n\t\t\t\t\tmax={ 100 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nexport default forwardRef( FontSizePicker );\n"]}
@@ -204,7 +204,7 @@ class FormTokenField extends _element.Component {
204
204
 
205
205
  switch (event.charCode) {
206
206
  case 44:
207
- // comma
207
+ // Comma.
208
208
  preventDefault = this.handleCommaKey();
209
209
  break;
210
210
 
@@ -299,7 +299,7 @@ class FormTokenField extends _element.Component {
299
299
  selectedSuggestionIndex: (state.selectedSuggestionIndex === 0 ? this.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length : state.selectedSuggestionIndex) - 1,
300
300
  selectedSuggestionScroll: true
301
301
  }));
302
- return true; // preventDefault
302
+ return true; // PreventDefault.
303
303
  }
304
304
 
305
305
  handleDownArrowKey() {
@@ -307,7 +307,7 @@ class FormTokenField extends _element.Component {
307
307
  selectedSuggestionIndex: (state.selectedSuggestionIndex + 1) % this.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length,
308
308
  selectedSuggestionScroll: true
309
309
  }));
310
- return true; // preventDefault
310
+ return true; // PreventDefault.
311
311
  }
312
312
 
313
313
  handleEscapeKey(event) {
@@ -317,7 +317,7 @@ class FormTokenField extends _element.Component {
317
317
  selectedSuggestionIndex: -1,
318
318
  selectedSuggestionScroll: false
319
319
  });
320
- return true; // preventDefault
320
+ return true; // PreventDefault.
321
321
  }
322
322
 
323
323
  handleCommaKey() {
@@ -325,7 +325,7 @@ class FormTokenField extends _element.Component {
325
325
  this.addNewToken(this.state.incompleteTokenValue);
326
326
  }
327
327
 
328
- return true; // preventDefault
328
+ return true; // PreventDefault.
329
329
  }
330
330
 
331
331
  moveInputToIndex(index) {
@@ -358,7 +358,7 @@ class FormTokenField extends _element.Component {
358
358
  const index = this.getIndexOfInput();
359
359
 
360
360
  if (index < this.props.value.length) {
361
- this.deleteToken(this.props.value[index]); // update input offset since it's the offset from the last token
361
+ this.deleteToken(this.props.value[index]); // Update input offset since it's the offset from the last token.
362
362
 
363
363
  this.moveInputToIndex(index);
364
364
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/form-token-field/index.js"],"names":["initialState","incompleteTokenValue","inputOffsetFromEnd","isActive","isExpanded","selectedSuggestionIndex","selectedSuggestionScroll","FormTokenField","Component","constructor","arguments","state","onKeyDown","bind","onKeyPress","onFocus","onBlur","deleteTokenBeforeInput","deleteTokenAfterInput","addCurrentToken","onContainerTouched","renderToken","onTokenClickRemove","onSuggestionHovered","onSuggestionSelected","onInputChange","bindInput","bindTokensAndInput","updateSuggestions","componentDidUpdate","prevProps","input","hasFocus","focus","suggestions","value","props","suggestionsDidUpdate","getDerivedStateFromProps","disabled","ref","tokensAndInput","event","__experimentalExpandOnFocus","target","setState","inputHasValidValue","preventDefault","defaultPrevented","keyCode","BACKSPACE","handleDeleteKey","ENTER","LEFT","handleLeftArrowKey","UP","handleUpArrowKey","RIGHT","handleRightArrowKey","DOWN","handleDownArrowKey","DELETE","SPACE","tokenizeOnSpace","ESCAPE","handleEscapeKey","charCode","handleCommaKey","deleteToken","suggestion","index","getMatchingSuggestions","indexOf","addNewToken","text","separator","items","split","tokenValue","length","addNewTokens","slice","isInputEmpty","moveInputBeforePreviousToken","moveInputAfterNextToken","maxSuggestions","saveTransform","moveInputToIndex","Math","max","min","getIndexOfInput","selectedSuggestion","getSelectedSuggestion","tokens","tokensToAdd","map","filter","Boolean","token","valueContainsToken","newValue","splice","apply","concat","onChange","__experimentalValidateInput","speak","messages","__experimentalInvalid","added","newTokens","item","getTokenValue","removed","searchValue","match","startsWithMatch","containsMatch","toLocaleLowerCase","push","resetSelectedSuggestion","inputHasMinimumChars","trim","matchingSuggestions","hasMatchingSuggestions","newState","debouncedSpeak","message","renderTokensAndInput","components","renderInput","status","undefined","termPosition","termsCount","title","displayTransform","isBorderless","onMouseEnter","onMouseLeave","autoCapitalize","autoComplete","maxLength","placeholder","instanceId","key","render","label","className","__experimentalShowHowTo","classes","tokenFieldProps","tabIndex","Object","assign","defaultProps","freeze","identity","remove"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tlast,\n\ttake,\n\tclone,\n\tuniq,\n\tmap,\n\tdifference,\n\teach,\n\tidentity,\n\tsome,\n} from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\nimport {\n\tBACKSPACE,\n\tENTER,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tSPACE,\n\tDELETE,\n\tESCAPE,\n} from '@wordpress/keycodes';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport SuggestionsList from './suggestions-list';\nimport withSpokenMessages from '../higher-order/with-spoken-messages';\n\nconst initialState = {\n\tincompleteTokenValue: '',\n\tinputOffsetFromEnd: 0,\n\tisActive: false,\n\tisExpanded: false,\n\tselectedSuggestionIndex: -1,\n\tselectedSuggestionScroll: false,\n};\n\nclass FormTokenField extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = initialState;\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.onKeyPress = this.onKeyPress.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onBlur = this.onBlur.bind( this );\n\t\tthis.deleteTokenBeforeInput = this.deleteTokenBeforeInput.bind( this );\n\t\tthis.deleteTokenAfterInput = this.deleteTokenAfterInput.bind( this );\n\t\tthis.addCurrentToken = this.addCurrentToken.bind( this );\n\t\tthis.onContainerTouched = this.onContainerTouched.bind( this );\n\t\tthis.renderToken = this.renderToken.bind( this );\n\t\tthis.onTokenClickRemove = this.onTokenClickRemove.bind( this );\n\t\tthis.onSuggestionHovered = this.onSuggestionHovered.bind( this );\n\t\tthis.onSuggestionSelected = this.onSuggestionSelected.bind( this );\n\t\tthis.onInputChange = this.onInputChange.bind( this );\n\t\tthis.bindInput = this.bindInput.bind( this );\n\t\tthis.bindTokensAndInput = this.bindTokensAndInput.bind( this );\n\t\tthis.updateSuggestions = this.updateSuggestions.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Make sure to focus the input when the isActive state is true.\n\t\tif ( this.state.isActive && ! this.input.hasFocus() ) {\n\t\t\tthis.input.focus();\n\t\t}\n\n\t\tconst { suggestions, value } = this.props;\n\t\tconst suggestionsDidUpdate = ! isShallowEqual(\n\t\t\tsuggestions,\n\t\t\tprevProps.suggestions\n\t\t);\n\t\tif ( suggestionsDidUpdate || value !== prevProps.value ) {\n\t\t\tthis.updateSuggestions( suggestionsDidUpdate );\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\tif ( ! props.disabled || ! state.isActive ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\tisActive: false,\n\t\t\tincompleteTokenValue: '',\n\t\t};\n\t}\n\n\tbindInput( ref ) {\n\t\tthis.input = ref;\n\t}\n\n\tbindTokensAndInput( ref ) {\n\t\tthis.tokensAndInput = ref;\n\t}\n\n\tonFocus( event ) {\n\t\tconst { __experimentalExpandOnFocus } = this.props;\n\t\t// If focus is on the input or on the container, set the isActive state to true.\n\t\tif ( this.input.hasFocus() || event.target === this.tokensAndInput ) {\n\t\t\tthis.setState( {\n\t\t\t\tisActive: true,\n\t\t\t\tisExpanded:\n\t\t\t\t\t!! __experimentalExpandOnFocus || this.state.isExpanded,\n\t\t\t} );\n\t\t} else {\n\t\t\t/*\n\t\t\t * Otherwise, focus is on one of the token \"remove\" buttons and we\n\t\t\t * set the isActive state to false to prevent the input to be\n\t\t\t * re-focused, see componentDidUpdate().\n\t\t\t */\n\t\t\tthis.setState( { isActive: false } );\n\t\t}\n\n\t\tif ( 'function' === typeof this.props.onFocus ) {\n\t\t\tthis.props.onFocus( event );\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tif ( this.inputHasValidValue() ) {\n\t\t\tthis.setState( { isActive: false } );\n\t\t} else {\n\t\t\tthis.setState( initialState );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tlet preventDefault = false;\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase BACKSPACE:\n\t\t\t\tpreventDefault = this.handleDeleteKey(\n\t\t\t\t\tthis.deleteTokenBeforeInput\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase ENTER:\n\t\t\t\tpreventDefault = this.addCurrentToken();\n\t\t\t\tbreak;\n\t\t\tcase LEFT:\n\t\t\t\tpreventDefault = this.handleLeftArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase UP:\n\t\t\t\tpreventDefault = this.handleUpArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase RIGHT:\n\t\t\t\tpreventDefault = this.handleRightArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase DOWN:\n\t\t\t\tpreventDefault = this.handleDownArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase DELETE:\n\t\t\t\tpreventDefault = this.handleDeleteKey(\n\t\t\t\t\tthis.deleteTokenAfterInput\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase SPACE:\n\t\t\t\tif ( this.props.tokenizeOnSpace ) {\n\t\t\t\t\tpreventDefault = this.addCurrentToken();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ESCAPE:\n\t\t\t\tpreventDefault = this.handleEscapeKey( event );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonKeyPress( event ) {\n\t\tlet preventDefault = false;\n\t\tswitch ( event.charCode ) {\n\t\t\tcase 44: // comma\n\t\t\t\tpreventDefault = this.handleCommaKey();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonContainerTouched( event ) {\n\t\t// Prevent clicking/touching the tokensAndInput container from blurring\n\t\t// the input and adding the current token.\n\t\tif ( event.target === this.tokensAndInput && this.state.isActive ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonTokenClickRemove( event ) {\n\t\tthis.deleteToken( event.value );\n\t\tthis.input.focus();\n\t}\n\n\tonSuggestionHovered( suggestion ) {\n\t\tconst index = this.getMatchingSuggestions().indexOf( suggestion );\n\n\t\tif ( index >= 0 ) {\n\t\t\tthis.setState( {\n\t\t\t\tselectedSuggestionIndex: index,\n\t\t\t\tselectedSuggestionScroll: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSuggestionSelected( suggestion ) {\n\t\tthis.addNewToken( suggestion );\n\t}\n\n\tonInputChange( event ) {\n\t\tconst text = event.value;\n\t\tconst separator = this.props.tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n\t\tconst items = text.split( separator );\n\t\tconst tokenValue = last( items ) || '';\n\n\t\tif ( items.length > 1 ) {\n\t\t\tthis.addNewTokens( items.slice( 0, -1 ) );\n\t\t}\n\n\t\tthis.setState(\n\t\t\t{ incompleteTokenValue: tokenValue },\n\t\t\tthis.updateSuggestions\n\t\t);\n\n\t\tthis.props.onInputChange( tokenValue );\n\t}\n\n\thandleDeleteKey( deleteToken ) {\n\t\tlet preventDefault = false;\n\t\tif ( this.input.hasFocus() && this.isInputEmpty() ) {\n\t\t\tdeleteToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleLeftArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( this.isInputEmpty() ) {\n\t\t\tthis.moveInputBeforePreviousToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleRightArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( this.isInputEmpty() ) {\n\t\t\tthis.moveInputAfterNextToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleUpArrowKey() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tselectedSuggestionIndex:\n\t\t\t\t( state.selectedSuggestionIndex === 0\n\t\t\t\t\t? this.getMatchingSuggestions(\n\t\t\t\t\t\t\tstate.incompleteTokenValue,\n\t\t\t\t\t\t\tprops.suggestions,\n\t\t\t\t\t\t\tprops.value,\n\t\t\t\t\t\t\tprops.maxSuggestions,\n\t\t\t\t\t\t\tprops.saveTransform\n\t\t\t\t\t ).length\n\t\t\t\t\t: state.selectedSuggestionIndex ) - 1,\n\t\t\tselectedSuggestionScroll: true,\n\t\t} ) );\n\n\t\treturn true; // preventDefault\n\t}\n\n\thandleDownArrowKey() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tselectedSuggestionIndex:\n\t\t\t\t( state.selectedSuggestionIndex + 1 ) %\n\t\t\t\tthis.getMatchingSuggestions(\n\t\t\t\t\tstate.incompleteTokenValue,\n\t\t\t\t\tprops.suggestions,\n\t\t\t\t\tprops.value,\n\t\t\t\t\tprops.maxSuggestions,\n\t\t\t\t\tprops.saveTransform\n\t\t\t\t).length,\n\t\t\tselectedSuggestionScroll: true,\n\t\t} ) );\n\n\t\treturn true; // preventDefault\n\t}\n\n\thandleEscapeKey( event ) {\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: event.target.value,\n\t\t\tisExpanded: false,\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t} );\n\t\treturn true; // preventDefault\n\t}\n\n\thandleCommaKey() {\n\t\tif ( this.inputHasValidValue() ) {\n\t\t\tthis.addNewToken( this.state.incompleteTokenValue );\n\t\t}\n\n\t\treturn true; // preventDefault\n\t}\n\n\tmoveInputToIndex( index ) {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tinputOffsetFromEnd: props.value.length - Math.max( index, -1 ) - 1,\n\t\t} ) );\n\t}\n\n\tmoveInputBeforePreviousToken() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tinputOffsetFromEnd: Math.min(\n\t\t\t\tstate.inputOffsetFromEnd + 1,\n\t\t\t\tprops.value.length\n\t\t\t),\n\t\t} ) );\n\t}\n\n\tmoveInputAfterNextToken() {\n\t\tthis.setState( ( state ) => ( {\n\t\t\tinputOffsetFromEnd: Math.max( state.inputOffsetFromEnd - 1, 0 ),\n\t\t} ) );\n\t}\n\n\tdeleteTokenBeforeInput() {\n\t\tconst index = this.getIndexOfInput() - 1;\n\n\t\tif ( index > -1 ) {\n\t\t\tthis.deleteToken( this.props.value[ index ] );\n\t\t}\n\t}\n\n\tdeleteTokenAfterInput() {\n\t\tconst index = this.getIndexOfInput();\n\n\t\tif ( index < this.props.value.length ) {\n\t\t\tthis.deleteToken( this.props.value[ index ] );\n\t\t\t// update input offset since it's the offset from the last token\n\t\t\tthis.moveInputToIndex( index );\n\t\t}\n\t}\n\n\taddCurrentToken() {\n\t\tlet preventDefault = false;\n\t\tconst selectedSuggestion = this.getSelectedSuggestion();\n\n\t\tif ( selectedSuggestion ) {\n\t\t\tthis.addNewToken( selectedSuggestion );\n\t\t\tpreventDefault = true;\n\t\t} else if ( this.inputHasValidValue() ) {\n\t\t\tthis.addNewToken( this.state.incompleteTokenValue );\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\taddNewTokens( tokens ) {\n\t\tconst tokensToAdd = uniq(\n\t\t\ttokens\n\t\t\t\t.map( this.props.saveTransform )\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.filter( ( token ) => ! this.valueContainsToken( token ) )\n\t\t);\n\n\t\tif ( tokensToAdd.length > 0 ) {\n\t\t\tconst newValue = clone( this.props.value );\n\t\t\tnewValue.splice.apply(\n\t\t\t\tnewValue,\n\t\t\t\t[ this.getIndexOfInput(), 0 ].concat( tokensToAdd )\n\t\t\t);\n\t\t\tthis.props.onChange( newValue );\n\t\t}\n\t}\n\n\taddNewToken( token ) {\n\t\tconst {\n\t\t\t__experimentalExpandOnFocus,\n\t\t\t__experimentalValidateInput,\n\t\t} = this.props;\n\t\tif ( ! __experimentalValidateInput( token ) ) {\n\t\t\tthis.props.speak(\n\t\t\t\tthis.props.messages.__experimentalInvalid,\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tthis.addNewTokens( [ token ] );\n\t\tthis.props.speak( this.props.messages.added, 'assertive' );\n\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: '',\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t\tisExpanded: ! __experimentalExpandOnFocus,\n\t\t} );\n\n\t\tif ( this.state.isActive ) {\n\t\t\tthis.input.focus();\n\t\t}\n\t}\n\n\tdeleteToken( token ) {\n\t\tconst newTokens = this.props.value.filter( ( item ) => {\n\t\t\treturn this.getTokenValue( item ) !== this.getTokenValue( token );\n\t\t} );\n\t\tthis.props.onChange( newTokens );\n\t\tthis.props.speak( this.props.messages.removed, 'assertive' );\n\t}\n\n\tgetTokenValue( token ) {\n\t\tif ( 'object' === typeof token ) {\n\t\t\treturn token.value;\n\t\t}\n\n\t\treturn token;\n\t}\n\n\tgetMatchingSuggestions(\n\t\tsearchValue = this.state.incompleteTokenValue,\n\t\tsuggestions = this.props.suggestions,\n\t\tvalue = this.props.value,\n\t\tmaxSuggestions = this.props.maxSuggestions,\n\t\tsaveTransform = this.props.saveTransform\n\t) {\n\t\tlet match = saveTransform( searchValue );\n\t\tconst startsWithMatch = [];\n\t\tconst containsMatch = [];\n\n\t\tif ( match.length === 0 ) {\n\t\t\tsuggestions = difference( suggestions, value );\n\t\t} else {\n\t\t\tmatch = match.toLocaleLowerCase();\n\n\t\t\teach( suggestions, ( suggestion ) => {\n\t\t\t\tconst index = suggestion.toLocaleLowerCase().indexOf( match );\n\t\t\t\tif ( value.indexOf( suggestion ) === -1 ) {\n\t\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\t\tstartsWithMatch.push( suggestion );\n\t\t\t\t\t} else if ( index > 0 ) {\n\t\t\t\t\t\tcontainsMatch.push( suggestion );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tsuggestions = startsWithMatch.concat( containsMatch );\n\t\t}\n\n\t\treturn take( suggestions, maxSuggestions );\n\t}\n\n\tgetSelectedSuggestion() {\n\t\tif ( this.state.selectedSuggestionIndex !== -1 ) {\n\t\t\treturn this.getMatchingSuggestions()[\n\t\t\t\tthis.state.selectedSuggestionIndex\n\t\t\t];\n\t\t}\n\t}\n\n\tvalueContainsToken( token ) {\n\t\treturn some( this.props.value, ( item ) => {\n\t\t\treturn this.getTokenValue( token ) === this.getTokenValue( item );\n\t\t} );\n\t}\n\n\tgetIndexOfInput() {\n\t\treturn this.props.value.length - this.state.inputOffsetFromEnd;\n\t}\n\n\tisInputEmpty() {\n\t\treturn this.state.incompleteTokenValue.length === 0;\n\t}\n\n\tinputHasValidValue() {\n\t\treturn (\n\t\t\tthis.props.saveTransform( this.state.incompleteTokenValue ).length >\n\t\t\t0\n\t\t);\n\t}\n\n\tupdateSuggestions( resetSelectedSuggestion = true ) {\n\t\tconst { __experimentalExpandOnFocus } = this.props;\n\t\tconst { incompleteTokenValue } = this.state;\n\n\t\tconst inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n\t\tconst matchingSuggestions = this.getMatchingSuggestions(\n\t\t\tincompleteTokenValue\n\t\t);\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\n\t\tconst newState = {\n\t\t\tisExpanded:\n\t\t\t\t__experimentalExpandOnFocus ||\n\t\t\t\t( inputHasMinimumChars && hasMatchingSuggestions ),\n\t\t};\n\t\tif ( resetSelectedSuggestion ) {\n\t\t\tnewState.selectedSuggestionIndex = -1;\n\t\t\tnewState.selectedSuggestionScroll = false;\n\t\t}\n\n\t\tthis.setState( newState );\n\n\t\tif ( inputHasMinimumChars ) {\n\t\t\tconst { debouncedSpeak } = this.props;\n\n\t\t\tconst message = hasMatchingSuggestions\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t )\n\t\t\t\t: __( 'No results.' );\n\n\t\t\tdebouncedSpeak( message, 'assertive' );\n\t\t}\n\t}\n\n\trenderTokensAndInput() {\n\t\tconst components = map( this.props.value, this.renderToken );\n\t\tcomponents.splice( this.getIndexOfInput(), 0, this.renderInput() );\n\n\t\treturn components;\n\t}\n\n\trenderToken( token, index, tokens ) {\n\t\tconst value = this.getTokenValue( token );\n\t\tconst status = token.status ? token.status : undefined;\n\t\tconst termPosition = index + 1;\n\t\tconst termsCount = tokens.length;\n\n\t\treturn (\n\t\t\t<Token\n\t\t\t\tkey={ 'token-' + value }\n\t\t\t\tvalue={ value }\n\t\t\t\tstatus={ status }\n\t\t\t\ttitle={ token.title }\n\t\t\t\tdisplayTransform={ this.props.displayTransform }\n\t\t\t\tonClickRemove={ this.onTokenClickRemove }\n\t\t\t\tisBorderless={ token.isBorderless || this.props.isBorderless }\n\t\t\t\tonMouseEnter={ token.onMouseEnter }\n\t\t\t\tonMouseLeave={ token.onMouseLeave }\n\t\t\t\tdisabled={ 'error' !== status && this.props.disabled }\n\t\t\t\tmessages={ this.props.messages }\n\t\t\t\ttermsCount={ termsCount }\n\t\t\t\ttermPosition={ termPosition }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderInput() {\n\t\tconst {\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tmaxLength,\n\t\t\tplaceholder,\n\t\t\tvalue,\n\t\t\tinstanceId,\n\t\t} = this.props;\n\n\t\tlet props = {\n\t\t\tinstanceId,\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tplaceholder: value.length === 0 ? placeholder : '',\n\t\t\tref: this.bindInput,\n\t\t\tkey: 'input',\n\t\t\tdisabled: this.props.disabled,\n\t\t\tvalue: this.state.incompleteTokenValue,\n\t\t\tonBlur: this.onBlur,\n\t\t\tisExpanded: this.state.isExpanded,\n\t\t\tselectedSuggestionIndex: this.state.selectedSuggestionIndex,\n\t\t};\n\n\t\tif ( ! ( maxLength && value.length >= maxLength ) ) {\n\t\t\tprops = { ...props, onChange: this.onInputChange };\n\t\t}\n\n\t\treturn <TokenInput { ...props } />;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tlabel = __( 'Add item' ),\n\t\t\tinstanceId,\n\t\t\tclassName,\n\t\t\t__experimentalShowHowTo,\n\t\t} = this.props;\n\t\tconst { isExpanded } = this.state;\n\t\tconst classes = classnames(\n\t\t\tclassName,\n\t\t\t'components-form-token-field__input-container',\n\t\t\t{\n\t\t\t\t'is-active': this.state.isActive,\n\t\t\t\t'is-disabled': disabled,\n\t\t\t}\n\t\t);\n\n\t\tlet tokenFieldProps = {\n\t\t\tclassName: 'components-form-token-field',\n\t\t\ttabIndex: '-1',\n\t\t};\n\t\tconst matchingSuggestions = this.getMatchingSuggestions();\n\n\t\tif ( ! disabled ) {\n\t\t\ttokenFieldProps = Object.assign( {}, tokenFieldProps, {\n\t\t\t\tonKeyDown: this.onKeyDown,\n\t\t\t\tonKeyPress: this.onKeyPress,\n\t\t\t\tonFocus: this.onFocus,\n\t\t\t} );\n\t\t}\n\n\t\t// Disable reason: There is no appropriate role which describes the\n\t\t// input container intended accessible usability.\n\t\t// TODO: Refactor click detection to use blur to stop propagation.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn (\n\t\t\t<div { ...tokenFieldProps }>\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={ `components-form-token-input-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__label\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</label>\n\t\t\t\t<div\n\t\t\t\t\tref={ this.bindTokensAndInput }\n\t\t\t\t\tclassName={ classes }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\tonMouseDown={ this.onContainerTouched }\n\t\t\t\t\tonTouchStart={ this.onContainerTouched }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderTokensAndInput() }\n\t\t\t\t\t{ isExpanded && (\n\t\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\tmatch={ this.props.saveTransform(\n\t\t\t\t\t\t\t\tthis.state.incompleteTokenValue\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tdisplayTransform={ this.props.displayTransform }\n\t\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\t\tselectedIndex={ this.state.selectedSuggestionIndex }\n\t\t\t\t\t\t\tscrollIntoView={\n\t\t\t\t\t\t\t\tthis.state.selectedSuggestionScroll\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover={ this.onSuggestionHovered }\n\t\t\t\t\t\t\tonSelect={ this.onSuggestionSelected }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t{ __experimentalShowHowTo && (\n\t\t\t\t\t<p\n\t\t\t\t\t\tid={ `components-form-token-suggestions-howto-${ instanceId }` }\n\t\t\t\t\t\tclassName=\"components-form-token-field__help\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ this.props.tokenizeOnSpace\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Separate with commas, spaces, or the Enter key.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Separate with commas or the Enter key.' ) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n}\n\nFormTokenField.defaultProps = {\n\tsuggestions: Object.freeze( [] ),\n\tmaxSuggestions: 100,\n\tvalue: Object.freeze( [] ),\n\tdisplayTransform: identity,\n\tsaveTransform: ( token ) => token.trim(),\n\tonChange: () => {},\n\tonInputChange: () => {},\n\tisBorderless: false,\n\tdisabled: false,\n\ttokenizeOnSpace: false,\n\tmessages: {\n\t\tadded: __( 'Item added.' ),\n\t\tremoved: __( 'Item removed.' ),\n\t\tremove: __( 'Remove item' ),\n\t\t__experimentalInvalid: __( 'Invalid item' ),\n\t},\n\t__experimentalExpandOnFocus: false,\n\t__experimentalValidateInput: () => true,\n\t__experimentalShowHowTo: true,\n};\n\nexport default withSpokenMessages( withInstanceId( FormTokenField ) );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/form-token-field/index.js"],"names":["initialState","incompleteTokenValue","inputOffsetFromEnd","isActive","isExpanded","selectedSuggestionIndex","selectedSuggestionScroll","FormTokenField","Component","constructor","arguments","state","onKeyDown","bind","onKeyPress","onFocus","onBlur","deleteTokenBeforeInput","deleteTokenAfterInput","addCurrentToken","onContainerTouched","renderToken","onTokenClickRemove","onSuggestionHovered","onSuggestionSelected","onInputChange","bindInput","bindTokensAndInput","updateSuggestions","componentDidUpdate","prevProps","input","hasFocus","focus","suggestions","value","props","suggestionsDidUpdate","getDerivedStateFromProps","disabled","ref","tokensAndInput","event","__experimentalExpandOnFocus","target","setState","inputHasValidValue","preventDefault","defaultPrevented","keyCode","BACKSPACE","handleDeleteKey","ENTER","LEFT","handleLeftArrowKey","UP","handleUpArrowKey","RIGHT","handleRightArrowKey","DOWN","handleDownArrowKey","DELETE","SPACE","tokenizeOnSpace","ESCAPE","handleEscapeKey","charCode","handleCommaKey","deleteToken","suggestion","index","getMatchingSuggestions","indexOf","addNewToken","text","separator","items","split","tokenValue","length","addNewTokens","slice","isInputEmpty","moveInputBeforePreviousToken","moveInputAfterNextToken","maxSuggestions","saveTransform","moveInputToIndex","Math","max","min","getIndexOfInput","selectedSuggestion","getSelectedSuggestion","tokens","tokensToAdd","map","filter","Boolean","token","valueContainsToken","newValue","splice","apply","concat","onChange","__experimentalValidateInput","speak","messages","__experimentalInvalid","added","newTokens","item","getTokenValue","removed","searchValue","match","startsWithMatch","containsMatch","toLocaleLowerCase","push","resetSelectedSuggestion","inputHasMinimumChars","trim","matchingSuggestions","hasMatchingSuggestions","newState","debouncedSpeak","message","renderTokensAndInput","components","renderInput","status","undefined","termPosition","termsCount","title","displayTransform","isBorderless","onMouseEnter","onMouseLeave","autoCapitalize","autoComplete","maxLength","placeholder","instanceId","key","render","label","className","__experimentalShowHowTo","classes","tokenFieldProps","tabIndex","Object","assign","defaultProps","freeze","identity","remove"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tlast,\n\ttake,\n\tclone,\n\tuniq,\n\tmap,\n\tdifference,\n\teach,\n\tidentity,\n\tsome,\n} from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, sprintf } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { withInstanceId } from '@wordpress/compose';\nimport {\n\tBACKSPACE,\n\tENTER,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tSPACE,\n\tDELETE,\n\tESCAPE,\n} from '@wordpress/keycodes';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport Token from './token';\nimport TokenInput from './token-input';\nimport SuggestionsList from './suggestions-list';\nimport withSpokenMessages from '../higher-order/with-spoken-messages';\n\nconst initialState = {\n\tincompleteTokenValue: '',\n\tinputOffsetFromEnd: 0,\n\tisActive: false,\n\tisExpanded: false,\n\tselectedSuggestionIndex: -1,\n\tselectedSuggestionScroll: false,\n};\n\nclass FormTokenField extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = initialState;\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.onKeyPress = this.onKeyPress.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.onBlur = this.onBlur.bind( this );\n\t\tthis.deleteTokenBeforeInput = this.deleteTokenBeforeInput.bind( this );\n\t\tthis.deleteTokenAfterInput = this.deleteTokenAfterInput.bind( this );\n\t\tthis.addCurrentToken = this.addCurrentToken.bind( this );\n\t\tthis.onContainerTouched = this.onContainerTouched.bind( this );\n\t\tthis.renderToken = this.renderToken.bind( this );\n\t\tthis.onTokenClickRemove = this.onTokenClickRemove.bind( this );\n\t\tthis.onSuggestionHovered = this.onSuggestionHovered.bind( this );\n\t\tthis.onSuggestionSelected = this.onSuggestionSelected.bind( this );\n\t\tthis.onInputChange = this.onInputChange.bind( this );\n\t\tthis.bindInput = this.bindInput.bind( this );\n\t\tthis.bindTokensAndInput = this.bindTokensAndInput.bind( this );\n\t\tthis.updateSuggestions = this.updateSuggestions.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Make sure to focus the input when the isActive state is true.\n\t\tif ( this.state.isActive && ! this.input.hasFocus() ) {\n\t\t\tthis.input.focus();\n\t\t}\n\n\t\tconst { suggestions, value } = this.props;\n\t\tconst suggestionsDidUpdate = ! isShallowEqual(\n\t\t\tsuggestions,\n\t\t\tprevProps.suggestions\n\t\t);\n\t\tif ( suggestionsDidUpdate || value !== prevProps.value ) {\n\t\t\tthis.updateSuggestions( suggestionsDidUpdate );\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\tif ( ! props.disabled || ! state.isActive ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\tisActive: false,\n\t\t\tincompleteTokenValue: '',\n\t\t};\n\t}\n\n\tbindInput( ref ) {\n\t\tthis.input = ref;\n\t}\n\n\tbindTokensAndInput( ref ) {\n\t\tthis.tokensAndInput = ref;\n\t}\n\n\tonFocus( event ) {\n\t\tconst { __experimentalExpandOnFocus } = this.props;\n\t\t// If focus is on the input or on the container, set the isActive state to true.\n\t\tif ( this.input.hasFocus() || event.target === this.tokensAndInput ) {\n\t\t\tthis.setState( {\n\t\t\t\tisActive: true,\n\t\t\t\tisExpanded:\n\t\t\t\t\t!! __experimentalExpandOnFocus || this.state.isExpanded,\n\t\t\t} );\n\t\t} else {\n\t\t\t/*\n\t\t\t * Otherwise, focus is on one of the token \"remove\" buttons and we\n\t\t\t * set the isActive state to false to prevent the input to be\n\t\t\t * re-focused, see componentDidUpdate().\n\t\t\t */\n\t\t\tthis.setState( { isActive: false } );\n\t\t}\n\n\t\tif ( 'function' === typeof this.props.onFocus ) {\n\t\t\tthis.props.onFocus( event );\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tif ( this.inputHasValidValue() ) {\n\t\t\tthis.setState( { isActive: false } );\n\t\t} else {\n\t\t\tthis.setState( initialState );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tlet preventDefault = false;\n\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( event.keyCode ) {\n\t\t\tcase BACKSPACE:\n\t\t\t\tpreventDefault = this.handleDeleteKey(\n\t\t\t\t\tthis.deleteTokenBeforeInput\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase ENTER:\n\t\t\t\tpreventDefault = this.addCurrentToken();\n\t\t\t\tbreak;\n\t\t\tcase LEFT:\n\t\t\t\tpreventDefault = this.handleLeftArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase UP:\n\t\t\t\tpreventDefault = this.handleUpArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase RIGHT:\n\t\t\t\tpreventDefault = this.handleRightArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase DOWN:\n\t\t\t\tpreventDefault = this.handleDownArrowKey();\n\t\t\t\tbreak;\n\t\t\tcase DELETE:\n\t\t\t\tpreventDefault = this.handleDeleteKey(\n\t\t\t\t\tthis.deleteTokenAfterInput\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase SPACE:\n\t\t\t\tif ( this.props.tokenizeOnSpace ) {\n\t\t\t\t\tpreventDefault = this.addCurrentToken();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ESCAPE:\n\t\t\t\tpreventDefault = this.handleEscapeKey( event );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonKeyPress( event ) {\n\t\tlet preventDefault = false;\n\t\tswitch ( event.charCode ) {\n\t\t\tcase 44: // Comma.\n\t\t\t\tpreventDefault = this.handleCommaKey();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif ( preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonContainerTouched( event ) {\n\t\t// Prevent clicking/touching the tokensAndInput container from blurring\n\t\t// the input and adding the current token.\n\t\tif ( event.target === this.tokensAndInput && this.state.isActive ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tonTokenClickRemove( event ) {\n\t\tthis.deleteToken( event.value );\n\t\tthis.input.focus();\n\t}\n\n\tonSuggestionHovered( suggestion ) {\n\t\tconst index = this.getMatchingSuggestions().indexOf( suggestion );\n\n\t\tif ( index >= 0 ) {\n\t\t\tthis.setState( {\n\t\t\t\tselectedSuggestionIndex: index,\n\t\t\t\tselectedSuggestionScroll: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSuggestionSelected( suggestion ) {\n\t\tthis.addNewToken( suggestion );\n\t}\n\n\tonInputChange( event ) {\n\t\tconst text = event.value;\n\t\tconst separator = this.props.tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n\t\tconst items = text.split( separator );\n\t\tconst tokenValue = last( items ) || '';\n\n\t\tif ( items.length > 1 ) {\n\t\t\tthis.addNewTokens( items.slice( 0, -1 ) );\n\t\t}\n\n\t\tthis.setState(\n\t\t\t{ incompleteTokenValue: tokenValue },\n\t\t\tthis.updateSuggestions\n\t\t);\n\n\t\tthis.props.onInputChange( tokenValue );\n\t}\n\n\thandleDeleteKey( deleteToken ) {\n\t\tlet preventDefault = false;\n\t\tif ( this.input.hasFocus() && this.isInputEmpty() ) {\n\t\t\tdeleteToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleLeftArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( this.isInputEmpty() ) {\n\t\t\tthis.moveInputBeforePreviousToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleRightArrowKey() {\n\t\tlet preventDefault = false;\n\t\tif ( this.isInputEmpty() ) {\n\t\t\tthis.moveInputAfterNextToken();\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\thandleUpArrowKey() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tselectedSuggestionIndex:\n\t\t\t\t( state.selectedSuggestionIndex === 0\n\t\t\t\t\t? this.getMatchingSuggestions(\n\t\t\t\t\t\t\tstate.incompleteTokenValue,\n\t\t\t\t\t\t\tprops.suggestions,\n\t\t\t\t\t\t\tprops.value,\n\t\t\t\t\t\t\tprops.maxSuggestions,\n\t\t\t\t\t\t\tprops.saveTransform\n\t\t\t\t\t ).length\n\t\t\t\t\t: state.selectedSuggestionIndex ) - 1,\n\t\t\tselectedSuggestionScroll: true,\n\t\t} ) );\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\thandleDownArrowKey() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tselectedSuggestionIndex:\n\t\t\t\t( state.selectedSuggestionIndex + 1 ) %\n\t\t\t\tthis.getMatchingSuggestions(\n\t\t\t\t\tstate.incompleteTokenValue,\n\t\t\t\t\tprops.suggestions,\n\t\t\t\t\tprops.value,\n\t\t\t\t\tprops.maxSuggestions,\n\t\t\t\t\tprops.saveTransform\n\t\t\t\t).length,\n\t\t\tselectedSuggestionScroll: true,\n\t\t} ) );\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\thandleEscapeKey( event ) {\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: event.target.value,\n\t\t\tisExpanded: false,\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t} );\n\t\treturn true; // PreventDefault.\n\t}\n\n\thandleCommaKey() {\n\t\tif ( this.inputHasValidValue() ) {\n\t\t\tthis.addNewToken( this.state.incompleteTokenValue );\n\t\t}\n\n\t\treturn true; // PreventDefault.\n\t}\n\n\tmoveInputToIndex( index ) {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tinputOffsetFromEnd: props.value.length - Math.max( index, -1 ) - 1,\n\t\t} ) );\n\t}\n\n\tmoveInputBeforePreviousToken() {\n\t\tthis.setState( ( state, props ) => ( {\n\t\t\tinputOffsetFromEnd: Math.min(\n\t\t\t\tstate.inputOffsetFromEnd + 1,\n\t\t\t\tprops.value.length\n\t\t\t),\n\t\t} ) );\n\t}\n\n\tmoveInputAfterNextToken() {\n\t\tthis.setState( ( state ) => ( {\n\t\t\tinputOffsetFromEnd: Math.max( state.inputOffsetFromEnd - 1, 0 ),\n\t\t} ) );\n\t}\n\n\tdeleteTokenBeforeInput() {\n\t\tconst index = this.getIndexOfInput() - 1;\n\n\t\tif ( index > -1 ) {\n\t\t\tthis.deleteToken( this.props.value[ index ] );\n\t\t}\n\t}\n\n\tdeleteTokenAfterInput() {\n\t\tconst index = this.getIndexOfInput();\n\n\t\tif ( index < this.props.value.length ) {\n\t\t\tthis.deleteToken( this.props.value[ index ] );\n\t\t\t// Update input offset since it's the offset from the last token.\n\t\t\tthis.moveInputToIndex( index );\n\t\t}\n\t}\n\n\taddCurrentToken() {\n\t\tlet preventDefault = false;\n\t\tconst selectedSuggestion = this.getSelectedSuggestion();\n\n\t\tif ( selectedSuggestion ) {\n\t\t\tthis.addNewToken( selectedSuggestion );\n\t\t\tpreventDefault = true;\n\t\t} else if ( this.inputHasValidValue() ) {\n\t\t\tthis.addNewToken( this.state.incompleteTokenValue );\n\t\t\tpreventDefault = true;\n\t\t}\n\n\t\treturn preventDefault;\n\t}\n\n\taddNewTokens( tokens ) {\n\t\tconst tokensToAdd = uniq(\n\t\t\ttokens\n\t\t\t\t.map( this.props.saveTransform )\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.filter( ( token ) => ! this.valueContainsToken( token ) )\n\t\t);\n\n\t\tif ( tokensToAdd.length > 0 ) {\n\t\t\tconst newValue = clone( this.props.value );\n\t\t\tnewValue.splice.apply(\n\t\t\t\tnewValue,\n\t\t\t\t[ this.getIndexOfInput(), 0 ].concat( tokensToAdd )\n\t\t\t);\n\t\t\tthis.props.onChange( newValue );\n\t\t}\n\t}\n\n\taddNewToken( token ) {\n\t\tconst {\n\t\t\t__experimentalExpandOnFocus,\n\t\t\t__experimentalValidateInput,\n\t\t} = this.props;\n\t\tif ( ! __experimentalValidateInput( token ) ) {\n\t\t\tthis.props.speak(\n\t\t\t\tthis.props.messages.__experimentalInvalid,\n\t\t\t\t'assertive'\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tthis.addNewTokens( [ token ] );\n\t\tthis.props.speak( this.props.messages.added, 'assertive' );\n\n\t\tthis.setState( {\n\t\t\tincompleteTokenValue: '',\n\t\t\tselectedSuggestionIndex: -1,\n\t\t\tselectedSuggestionScroll: false,\n\t\t\tisExpanded: ! __experimentalExpandOnFocus,\n\t\t} );\n\n\t\tif ( this.state.isActive ) {\n\t\t\tthis.input.focus();\n\t\t}\n\t}\n\n\tdeleteToken( token ) {\n\t\tconst newTokens = this.props.value.filter( ( item ) => {\n\t\t\treturn this.getTokenValue( item ) !== this.getTokenValue( token );\n\t\t} );\n\t\tthis.props.onChange( newTokens );\n\t\tthis.props.speak( this.props.messages.removed, 'assertive' );\n\t}\n\n\tgetTokenValue( token ) {\n\t\tif ( 'object' === typeof token ) {\n\t\t\treturn token.value;\n\t\t}\n\n\t\treturn token;\n\t}\n\n\tgetMatchingSuggestions(\n\t\tsearchValue = this.state.incompleteTokenValue,\n\t\tsuggestions = this.props.suggestions,\n\t\tvalue = this.props.value,\n\t\tmaxSuggestions = this.props.maxSuggestions,\n\t\tsaveTransform = this.props.saveTransform\n\t) {\n\t\tlet match = saveTransform( searchValue );\n\t\tconst startsWithMatch = [];\n\t\tconst containsMatch = [];\n\n\t\tif ( match.length === 0 ) {\n\t\t\tsuggestions = difference( suggestions, value );\n\t\t} else {\n\t\t\tmatch = match.toLocaleLowerCase();\n\n\t\t\teach( suggestions, ( suggestion ) => {\n\t\t\t\tconst index = suggestion.toLocaleLowerCase().indexOf( match );\n\t\t\t\tif ( value.indexOf( suggestion ) === -1 ) {\n\t\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\t\tstartsWithMatch.push( suggestion );\n\t\t\t\t\t} else if ( index > 0 ) {\n\t\t\t\t\t\tcontainsMatch.push( suggestion );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tsuggestions = startsWithMatch.concat( containsMatch );\n\t\t}\n\n\t\treturn take( suggestions, maxSuggestions );\n\t}\n\n\tgetSelectedSuggestion() {\n\t\tif ( this.state.selectedSuggestionIndex !== -1 ) {\n\t\t\treturn this.getMatchingSuggestions()[\n\t\t\t\tthis.state.selectedSuggestionIndex\n\t\t\t];\n\t\t}\n\t}\n\n\tvalueContainsToken( token ) {\n\t\treturn some( this.props.value, ( item ) => {\n\t\t\treturn this.getTokenValue( token ) === this.getTokenValue( item );\n\t\t} );\n\t}\n\n\tgetIndexOfInput() {\n\t\treturn this.props.value.length - this.state.inputOffsetFromEnd;\n\t}\n\n\tisInputEmpty() {\n\t\treturn this.state.incompleteTokenValue.length === 0;\n\t}\n\n\tinputHasValidValue() {\n\t\treturn (\n\t\t\tthis.props.saveTransform( this.state.incompleteTokenValue ).length >\n\t\t\t0\n\t\t);\n\t}\n\n\tupdateSuggestions( resetSelectedSuggestion = true ) {\n\t\tconst { __experimentalExpandOnFocus } = this.props;\n\t\tconst { incompleteTokenValue } = this.state;\n\n\t\tconst inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n\t\tconst matchingSuggestions = this.getMatchingSuggestions(\n\t\t\tincompleteTokenValue\n\t\t);\n\t\tconst hasMatchingSuggestions = matchingSuggestions.length > 0;\n\n\t\tconst newState = {\n\t\t\tisExpanded:\n\t\t\t\t__experimentalExpandOnFocus ||\n\t\t\t\t( inputHasMinimumChars && hasMatchingSuggestions ),\n\t\t};\n\t\tif ( resetSelectedSuggestion ) {\n\t\t\tnewState.selectedSuggestionIndex = -1;\n\t\t\tnewState.selectedSuggestionScroll = false;\n\t\t}\n\n\t\tthis.setState( newState );\n\n\t\tif ( inputHasMinimumChars ) {\n\t\t\tconst { debouncedSpeak } = this.props;\n\n\t\t\tconst message = hasMatchingSuggestions\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %d: number of results. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'%d result found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\t'%d results found, use up and down arrow keys to navigate.',\n\t\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmatchingSuggestions.length\n\t\t\t\t )\n\t\t\t\t: __( 'No results.' );\n\n\t\t\tdebouncedSpeak( message, 'assertive' );\n\t\t}\n\t}\n\n\trenderTokensAndInput() {\n\t\tconst components = map( this.props.value, this.renderToken );\n\t\tcomponents.splice( this.getIndexOfInput(), 0, this.renderInput() );\n\n\t\treturn components;\n\t}\n\n\trenderToken( token, index, tokens ) {\n\t\tconst value = this.getTokenValue( token );\n\t\tconst status = token.status ? token.status : undefined;\n\t\tconst termPosition = index + 1;\n\t\tconst termsCount = tokens.length;\n\n\t\treturn (\n\t\t\t<Token\n\t\t\t\tkey={ 'token-' + value }\n\t\t\t\tvalue={ value }\n\t\t\t\tstatus={ status }\n\t\t\t\ttitle={ token.title }\n\t\t\t\tdisplayTransform={ this.props.displayTransform }\n\t\t\t\tonClickRemove={ this.onTokenClickRemove }\n\t\t\t\tisBorderless={ token.isBorderless || this.props.isBorderless }\n\t\t\t\tonMouseEnter={ token.onMouseEnter }\n\t\t\t\tonMouseLeave={ token.onMouseLeave }\n\t\t\t\tdisabled={ 'error' !== status && this.props.disabled }\n\t\t\t\tmessages={ this.props.messages }\n\t\t\t\ttermsCount={ termsCount }\n\t\t\t\ttermPosition={ termPosition }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderInput() {\n\t\tconst {\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tmaxLength,\n\t\t\tplaceholder,\n\t\t\tvalue,\n\t\t\tinstanceId,\n\t\t} = this.props;\n\n\t\tlet props = {\n\t\t\tinstanceId,\n\t\t\tautoCapitalize,\n\t\t\tautoComplete,\n\t\t\tplaceholder: value.length === 0 ? placeholder : '',\n\t\t\tref: this.bindInput,\n\t\t\tkey: 'input',\n\t\t\tdisabled: this.props.disabled,\n\t\t\tvalue: this.state.incompleteTokenValue,\n\t\t\tonBlur: this.onBlur,\n\t\t\tisExpanded: this.state.isExpanded,\n\t\t\tselectedSuggestionIndex: this.state.selectedSuggestionIndex,\n\t\t};\n\n\t\tif ( ! ( maxLength && value.length >= maxLength ) ) {\n\t\t\tprops = { ...props, onChange: this.onInputChange };\n\t\t}\n\n\t\treturn <TokenInput { ...props } />;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tlabel = __( 'Add item' ),\n\t\t\tinstanceId,\n\t\t\tclassName,\n\t\t\t__experimentalShowHowTo,\n\t\t} = this.props;\n\t\tconst { isExpanded } = this.state;\n\t\tconst classes = classnames(\n\t\t\tclassName,\n\t\t\t'components-form-token-field__input-container',\n\t\t\t{\n\t\t\t\t'is-active': this.state.isActive,\n\t\t\t\t'is-disabled': disabled,\n\t\t\t}\n\t\t);\n\n\t\tlet tokenFieldProps = {\n\t\t\tclassName: 'components-form-token-field',\n\t\t\ttabIndex: '-1',\n\t\t};\n\t\tconst matchingSuggestions = this.getMatchingSuggestions();\n\n\t\tif ( ! disabled ) {\n\t\t\ttokenFieldProps = Object.assign( {}, tokenFieldProps, {\n\t\t\t\tonKeyDown: this.onKeyDown,\n\t\t\t\tonKeyPress: this.onKeyPress,\n\t\t\t\tonFocus: this.onFocus,\n\t\t\t} );\n\t\t}\n\n\t\t// Disable reason: There is no appropriate role which describes the\n\t\t// input container intended accessible usability.\n\t\t// TODO: Refactor click detection to use blur to stop propagation.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn (\n\t\t\t<div { ...tokenFieldProps }>\n\t\t\t\t<label\n\t\t\t\t\thtmlFor={ `components-form-token-input-${ instanceId }` }\n\t\t\t\t\tclassName=\"components-form-token-field__label\"\n\t\t\t\t>\n\t\t\t\t\t{ label }\n\t\t\t\t</label>\n\t\t\t\t<div\n\t\t\t\t\tref={ this.bindTokensAndInput }\n\t\t\t\t\tclassName={ classes }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\tonMouseDown={ this.onContainerTouched }\n\t\t\t\t\tonTouchStart={ this.onContainerTouched }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderTokensAndInput() }\n\t\t\t\t\t{ isExpanded && (\n\t\t\t\t\t\t<SuggestionsList\n\t\t\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\t\t\tmatch={ this.props.saveTransform(\n\t\t\t\t\t\t\t\tthis.state.incompleteTokenValue\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tdisplayTransform={ this.props.displayTransform }\n\t\t\t\t\t\t\tsuggestions={ matchingSuggestions }\n\t\t\t\t\t\t\tselectedIndex={ this.state.selectedSuggestionIndex }\n\t\t\t\t\t\t\tscrollIntoView={\n\t\t\t\t\t\t\t\tthis.state.selectedSuggestionScroll\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover={ this.onSuggestionHovered }\n\t\t\t\t\t\t\tonSelect={ this.onSuggestionSelected }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t{ __experimentalShowHowTo && (\n\t\t\t\t\t<p\n\t\t\t\t\t\tid={ `components-form-token-suggestions-howto-${ instanceId }` }\n\t\t\t\t\t\tclassName=\"components-form-token-field__help\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ this.props.tokenizeOnSpace\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Separate with commas, spaces, or the Enter key.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'Separate with commas or the Enter key.' ) }\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n}\n\nFormTokenField.defaultProps = {\n\tsuggestions: Object.freeze( [] ),\n\tmaxSuggestions: 100,\n\tvalue: Object.freeze( [] ),\n\tdisplayTransform: identity,\n\tsaveTransform: ( token ) => token.trim(),\n\tonChange: () => {},\n\tonInputChange: () => {},\n\tisBorderless: false,\n\tdisabled: false,\n\ttokenizeOnSpace: false,\n\tmessages: {\n\t\tadded: __( 'Item added.' ),\n\t\tremoved: __( 'Item removed.' ),\n\t\tremove: __( 'Remove item' ),\n\t\t__experimentalInvalid: __( 'Invalid item' ),\n\t},\n\t__experimentalExpandOnFocus: false,\n\t__experimentalValidateInput: () => true,\n\t__experimentalShowHowTo: true,\n};\n\nexport default withSpokenMessages( withInstanceId( FormTokenField ) );\n"]}
@@ -27,7 +27,7 @@ var _compose = require("@wordpress/compose");
27
27
  const emptyList = Object.freeze([]);
28
28
 
29
29
  const handleMouseDown = e => {
30
- // By preventing default here, we will not lose focus of <input> when clicking a suggestion
30
+ // By preventing default here, we will not lose focus of <input> when clicking a suggestion.
31
31
  e.preventDefault();
32
32
  };
33
33
 
@@ -46,7 +46,7 @@ function SuggestionsList(_ref) {
46
46
  const [scrollingIntoView, setScrollingIntoView] = (0, _element.useState)(false);
47
47
  const listRef = (0, _compose.useRefEffect)(listNode => {
48
48
  // only have to worry about scrolling selected suggestion into view
49
- // when already expanded
49
+ // when already expanded.
50
50
  if (selectedIndex > -1 && scrollIntoView && listNode.children[selectedIndex]) {
51
51
  setScrollingIntoView(true);
52
52
  (0, _domScrollIntoView.default)(listNode.children[selectedIndex], listNode, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/form-token-field/suggestions-list.js"],"names":["emptyList","Object","freeze","handleMouseDown","e","preventDefault","SuggestionsList","selectedIndex","scrollIntoView","match","onHover","onSelect","suggestions","displayTransform","instanceId","setTimeout","scrollingIntoView","setScrollingIntoView","listRef","listNode","children","onlyScrollIfNeeded","handleHover","suggestion","handleClick","computeSuggestionMatch","matchText","toLocaleLowerCase","length","indexOfMatch","indexOf","suggestionBeforeMatch","substring","suggestionMatch","suggestionAfterMatch","index","className","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\nimport scrollView from 'dom-scroll-into-view';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { withSafeTimeout, useRefEffect } from '@wordpress/compose';\n\nconst emptyList = Object.freeze( [] );\n\nconst handleMouseDown = ( e ) => {\n\t// By preventing default here, we will not lose focus of <input> when clicking a suggestion\n\te.preventDefault();\n};\n\nfunction SuggestionsList( {\n\tselectedIndex,\n\tscrollIntoView,\n\tmatch = '',\n\tonHover,\n\tonSelect,\n\tsuggestions = emptyList,\n\tdisplayTransform,\n\tinstanceId,\n\tsetTimeout,\n} ) {\n\tconst [ scrollingIntoView, setScrollingIntoView ] = useState( false );\n\n\tconst listRef = useRefEffect(\n\t\t( listNode ) => {\n\t\t\t// only have to worry about scrolling selected suggestion into view\n\t\t\t// when already expanded\n\t\t\tif (\n\t\t\t\tselectedIndex > -1 &&\n\t\t\t\tscrollIntoView &&\n\t\t\t\tlistNode.children[ selectedIndex ]\n\t\t\t) {\n\t\t\t\tsetScrollingIntoView( true );\n\t\t\t\tscrollView( listNode.children[ selectedIndex ], listNode, {\n\t\t\t\t\tonlyScrollIfNeeded: true,\n\t\t\t\t} );\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tsetScrollingIntoView( false );\n\t\t\t\t}, 100 );\n\t\t\t}\n\t\t},\n\t\t[ selectedIndex, scrollIntoView ]\n\t);\n\n\tconst handleHover = ( suggestion ) => {\n\t\treturn () => {\n\t\t\tif ( ! scrollingIntoView ) {\n\t\t\t\tonHover?.( suggestion );\n\t\t\t}\n\t\t};\n\t};\n\n\tconst handleClick = ( suggestion ) => {\n\t\treturn () => {\n\t\t\tonSelect?.( suggestion );\n\t\t};\n\t};\n\n\tconst computeSuggestionMatch = ( suggestion ) => {\n\t\tconst matchText = displayTransform( match || '' ).toLocaleLowerCase();\n\t\tif ( matchText.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsuggestion = displayTransform( suggestion );\n\t\tconst indexOfMatch = suggestion\n\t\t\t.toLocaleLowerCase()\n\t\t\t.indexOf( matchText );\n\n\t\treturn {\n\t\t\tsuggestionBeforeMatch: suggestion.substring( 0, indexOfMatch ),\n\t\t\tsuggestionMatch: suggestion.substring(\n\t\t\t\tindexOfMatch,\n\t\t\t\tindexOfMatch + matchText.length\n\t\t\t),\n\t\t\tsuggestionAfterMatch: suggestion.substring(\n\t\t\t\tindexOfMatch + matchText.length\n\t\t\t),\n\t\t};\n\t};\n\n\t// We set `tabIndex` here because otherwise Firefox sets focus on this\n\t// div when tabbing off of the input in `TokenField` -- not really sure\n\t// why, since usually a div isn't focusable by default\n\t// TODO does this still apply now that it's a <ul> and not a <div>?\n\treturn (\n\t\t<ul\n\t\t\tref={ listRef }\n\t\t\tclassName=\"components-form-token-field__suggestions-list\"\n\t\t\tid={ `components-form-token-suggestions-${ instanceId }` }\n\t\t\trole=\"listbox\"\n\t\t>\n\t\t\t{ map( suggestions, ( suggestion, index ) => {\n\t\t\t\tconst matchText = computeSuggestionMatch( suggestion );\n\t\t\t\tconst className = classnames(\n\t\t\t\t\t'components-form-token-field__suggestion',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-selected': index === selectedIndex,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t/* eslint-disable jsx-a11y/click-events-have-key-events */\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tid={ `components-form-token-suggestions-${ instanceId }-${ index }` }\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\tsuggestion?.value\n\t\t\t\t\t\t\t\t? suggestion.value\n\t\t\t\t\t\t\t\t: displayTransform( suggestion )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMouseDown={ handleMouseDown }\n\t\t\t\t\t\tonClick={ handleClick( suggestion ) }\n\t\t\t\t\t\tonMouseEnter={ handleHover( suggestion ) }\n\t\t\t\t\t\taria-selected={ index === selectedIndex }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ matchText ? (\n\t\t\t\t\t\t\t<span aria-label={ displayTransform( suggestion ) }>\n\t\t\t\t\t\t\t\t{ matchText.suggestionBeforeMatch }\n\t\t\t\t\t\t\t\t<strong className=\"components-form-token-field__suggestion-match\">\n\t\t\t\t\t\t\t\t\t{ matchText.suggestionMatch }\n\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t{ matchText.suggestionAfterMatch }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tdisplayTransform( suggestion )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t\t/* eslint-enable jsx-a11y/click-events-have-key-events */\n\t\t\t} ) }\n\t\t</ul>\n\t);\n}\n\nexport default withSafeTimeout( SuggestionsList );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/form-token-field/suggestions-list.js"],"names":["emptyList","Object","freeze","handleMouseDown","e","preventDefault","SuggestionsList","selectedIndex","scrollIntoView","match","onHover","onSelect","suggestions","displayTransform","instanceId","setTimeout","scrollingIntoView","setScrollingIntoView","listRef","listNode","children","onlyScrollIfNeeded","handleHover","suggestion","handleClick","computeSuggestionMatch","matchText","toLocaleLowerCase","length","indexOfMatch","indexOf","suggestionBeforeMatch","substring","suggestionMatch","suggestionAfterMatch","index","className","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\nimport scrollView from 'dom-scroll-into-view';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { withSafeTimeout, useRefEffect } from '@wordpress/compose';\n\nconst emptyList = Object.freeze( [] );\n\nconst handleMouseDown = ( e ) => {\n\t// By preventing default here, we will not lose focus of <input> when clicking a suggestion.\n\te.preventDefault();\n};\n\nfunction SuggestionsList( {\n\tselectedIndex,\n\tscrollIntoView,\n\tmatch = '',\n\tonHover,\n\tonSelect,\n\tsuggestions = emptyList,\n\tdisplayTransform,\n\tinstanceId,\n\tsetTimeout,\n} ) {\n\tconst [ scrollingIntoView, setScrollingIntoView ] = useState( false );\n\n\tconst listRef = useRefEffect(\n\t\t( listNode ) => {\n\t\t\t// only have to worry about scrolling selected suggestion into view\n\t\t\t// when already expanded.\n\t\t\tif (\n\t\t\t\tselectedIndex > -1 &&\n\t\t\t\tscrollIntoView &&\n\t\t\t\tlistNode.children[ selectedIndex ]\n\t\t\t) {\n\t\t\t\tsetScrollingIntoView( true );\n\t\t\t\tscrollView( listNode.children[ selectedIndex ], listNode, {\n\t\t\t\t\tonlyScrollIfNeeded: true,\n\t\t\t\t} );\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tsetScrollingIntoView( false );\n\t\t\t\t}, 100 );\n\t\t\t}\n\t\t},\n\t\t[ selectedIndex, scrollIntoView ]\n\t);\n\n\tconst handleHover = ( suggestion ) => {\n\t\treturn () => {\n\t\t\tif ( ! scrollingIntoView ) {\n\t\t\t\tonHover?.( suggestion );\n\t\t\t}\n\t\t};\n\t};\n\n\tconst handleClick = ( suggestion ) => {\n\t\treturn () => {\n\t\t\tonSelect?.( suggestion );\n\t\t};\n\t};\n\n\tconst computeSuggestionMatch = ( suggestion ) => {\n\t\tconst matchText = displayTransform( match || '' ).toLocaleLowerCase();\n\t\tif ( matchText.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsuggestion = displayTransform( suggestion );\n\t\tconst indexOfMatch = suggestion\n\t\t\t.toLocaleLowerCase()\n\t\t\t.indexOf( matchText );\n\n\t\treturn {\n\t\t\tsuggestionBeforeMatch: suggestion.substring( 0, indexOfMatch ),\n\t\t\tsuggestionMatch: suggestion.substring(\n\t\t\t\tindexOfMatch,\n\t\t\t\tindexOfMatch + matchText.length\n\t\t\t),\n\t\t\tsuggestionAfterMatch: suggestion.substring(\n\t\t\t\tindexOfMatch + matchText.length\n\t\t\t),\n\t\t};\n\t};\n\n\t// We set `tabIndex` here because otherwise Firefox sets focus on this\n\t// div when tabbing off of the input in `TokenField` -- not really sure\n\t// why, since usually a div isn't focusable by default\n\t// TODO does this still apply now that it's a <ul> and not a <div>?\n\treturn (\n\t\t<ul\n\t\t\tref={ listRef }\n\t\t\tclassName=\"components-form-token-field__suggestions-list\"\n\t\t\tid={ `components-form-token-suggestions-${ instanceId }` }\n\t\t\trole=\"listbox\"\n\t\t>\n\t\t\t{ map( suggestions, ( suggestion, index ) => {\n\t\t\t\tconst matchText = computeSuggestionMatch( suggestion );\n\t\t\t\tconst className = classnames(\n\t\t\t\t\t'components-form-token-field__suggestion',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-selected': index === selectedIndex,\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t/* eslint-disable jsx-a11y/click-events-have-key-events */\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tid={ `components-form-token-suggestions-${ instanceId }-${ index }` }\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tkey={\n\t\t\t\t\t\t\tsuggestion?.value\n\t\t\t\t\t\t\t\t? suggestion.value\n\t\t\t\t\t\t\t\t: displayTransform( suggestion )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMouseDown={ handleMouseDown }\n\t\t\t\t\t\tonClick={ handleClick( suggestion ) }\n\t\t\t\t\t\tonMouseEnter={ handleHover( suggestion ) }\n\t\t\t\t\t\taria-selected={ index === selectedIndex }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ matchText ? (\n\t\t\t\t\t\t\t<span aria-label={ displayTransform( suggestion ) }>\n\t\t\t\t\t\t\t\t{ matchText.suggestionBeforeMatch }\n\t\t\t\t\t\t\t\t<strong className=\"components-form-token-field__suggestion-match\">\n\t\t\t\t\t\t\t\t\t{ matchText.suggestionMatch }\n\t\t\t\t\t\t\t\t</strong>\n\t\t\t\t\t\t\t\t{ matchText.suggestionAfterMatch }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tdisplayTransform( suggestion )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t\t/* eslint-enable jsx-a11y/click-events-have-key-events */\n\t\t\t} ) }\n\t\t</ul>\n\t);\n}\n\nexport default withSafeTimeout( SuggestionsList );\n"]}
@@ -23,7 +23,7 @@ var _hook = _interopRequireDefault(require("./hook"));
23
23
 
24
24
  /**
25
25
  * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
26
- * @param {import('react').Ref<any>} forwardedRef
26
+ * @param {import('react').ForwardedRef<any>} forwardedRef
27
27
  */
28
28
  function Grid(props, forwardedRef) {
29
29
  const gridProps = (0, _hook.default)(props);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/grid/component.js"],"names":["Grid","props","forwardedRef","gridProps","ConnectedGrid"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,SAASA,IAAT,CAAeC,KAAf,EAAsBC,YAAtB,EAAqC;AACpC,QAAMC,SAAS,GAAG,mBAASF,KAAT,CAAlB;AAEA,SAAO,4BAAC,UAAD,6BAAWE,SAAX;AAAuB,IAAA,GAAG,EAAGD;AAA7B,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,aAAa,GAAG,6BAAgBJ,IAAhB,EAAsB,MAAtB,CAAtB;eAEeI,a","sourcesContent":["/**\n * Internal dependencies\n */\nimport { contextConnect } from '../ui/context';\nimport { View } from '../view';\nimport useGrid from './hook';\n\n/**\n * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props\n * @param {import('react').Ref<any>} forwardedRef\n */\nfunction Grid( props, forwardedRef ) {\n\tconst gridProps = useGrid( props );\n\n\treturn <View { ...gridProps } ref={ forwardedRef } />;\n}\n\n/**\n * `Grid` is a primitive layout component that can arrange content in a grid configuration.\n *\n * @example\n * ```jsx\n * import {\n * \t__experimentalGrid as Grid,\n * \t__experimentalText as Text\n * } from `@wordpress/components`;\n *\n * function Example() {\n * \treturn (\n * \t\t<Grid columns={ 3 }>\n * \t\t\t<Text>Code</Text>\n * \t\t\t<Text>is</Text>\n * \t\t\t<Text>Poetry</Text>\n * \t\t</Grid>\n * \t);\n * }\n * ```\n */\nconst ConnectedGrid = contextConnect( Grid, 'Grid' );\n\nexport default ConnectedGrid;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/grid/component.js"],"names":["Grid","props","forwardedRef","gridProps","ConnectedGrid"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,SAASA,IAAT,CAAeC,KAAf,EAAsBC,YAAtB,EAAqC;AACpC,QAAMC,SAAS,GAAG,mBAASF,KAAT,CAAlB;AAEA,SAAO,4BAAC,UAAD,6BAAWE,SAAX;AAAuB,IAAA,GAAG,EAAGD;AAA7B,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,aAAa,GAAG,6BAAgBJ,IAAhB,EAAsB,MAAtB,CAAtB;eAEeI,a","sourcesContent":["/**\n * Internal dependencies\n */\nimport { contextConnect } from '../ui/context';\nimport { View } from '../view';\nimport useGrid from './hook';\n\n/**\n * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props\n * @param {import('react').ForwardedRef<any>} forwardedRef\n */\nfunction Grid( props, forwardedRef ) {\n\tconst gridProps = useGrid( props );\n\n\treturn <View { ...gridProps } ref={ forwardedRef } />;\n}\n\n/**\n * `Grid` is a primitive layout component that can arrange content in a grid configuration.\n *\n * @example\n * ```jsx\n * import {\n * \t__experimentalGrid as Grid,\n * \t__experimentalText as Text\n * } from `@wordpress/components`;\n *\n * function Example() {\n * \treturn (\n * \t\t<Grid columns={ 3 }>\n * \t\t\t<Text>Code</Text>\n * \t\t\t<Text>is</Text>\n * \t\t\t<Text>Poetry</Text>\n * \t\t</Grid>\n * \t);\n * }\n * ```\n */\nconst ConnectedGrid = contextConnect( Grid, 'Grid' );\n\nexport default ConnectedGrid;\n"]}
@@ -23,7 +23,7 @@ var _hook = require("./hook");
23
23
 
24
24
  /**
25
25
  * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props
26
- * @param {import('react').Ref<any>} forwardedRef
26
+ * @param {import('react').ForwardedRef<any>} forwardedRef
27
27
  */
28
28
  function HStack(props, forwardedRef) {
29
29
  const hStackProps = (0, _hook.useHStack)(props);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/h-stack/component.js"],"names":["HStack","props","forwardedRef","hStackProps","ConnectedHStack"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,SAASA,MAAT,CAAiBC,KAAjB,EAAwBC,YAAxB,EAAuC;AACtC,QAAMC,WAAW,GAAG,qBAAWF,KAAX,CAApB;AAEA,SAAO,4BAAC,UAAD,6BAAWE,WAAX;AAAyB,IAAA,GAAG,EAAGD;AAA/B,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,eAAe,GAAG,6BAAgBJ,MAAhB,EAAwB,QAAxB,CAAxB;eAEeI,e","sourcesContent":["/**\n * Internal dependencies\n */\nimport { contextConnect } from '../ui/context';\nimport { View } from '../view';\nimport { useHStack } from './hook';\n\n/**\n * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props\n * @param {import('react').Ref<any>} forwardedRef\n */\nfunction HStack( props, forwardedRef ) {\n\tconst hStackProps = useHStack( props );\n\n\treturn <View { ...hStackProps } ref={ forwardedRef } />;\n}\n\n/**\n * `HStack` (Horizontal Stack) arranges child elements in a horizontal line.\n *\n * `HStack` can render anything inside.\n *\n * @example\n * ```jsx\n * import {\n * \t__experimentalHStack as HStack,\n * \t__experimentalText as Text,\n * } from `@wordpress/components`;\n *\n * function Example() {\n * \treturn (\n * \t\t<HStack>\n * \t\t\t<Text>Code</Text>\n * \t\t\t<Text>is</Text>\n * \t\t\t<Text>Poetry</Text>\n * \t\t</HStack>\n * \t);\n * }\n * ```\n */\nconst ConnectedHStack = contextConnect( HStack, 'HStack' );\n\nexport default ConnectedHStack;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/h-stack/component.js"],"names":["HStack","props","forwardedRef","hStackProps","ConnectedHStack"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AACA;;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA,SAASA,MAAT,CAAiBC,KAAjB,EAAwBC,YAAxB,EAAuC;AACtC,QAAMC,WAAW,GAAG,qBAAWF,KAAX,CAApB;AAEA,SAAO,4BAAC,UAAD,6BAAWE,WAAX;AAAyB,IAAA,GAAG,EAAGD;AAA/B,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,eAAe,GAAG,6BAAgBJ,MAAhB,EAAwB,QAAxB,CAAxB;eAEeI,e","sourcesContent":["/**\n * Internal dependencies\n */\nimport { contextConnect } from '../ui/context';\nimport { View } from '../view';\nimport { useHStack } from './hook';\n\n/**\n * @param {import('../ui/context').WordPressComponentProps<import('./types').Props, 'div'>} props\n * @param {import('react').ForwardedRef<any>} forwardedRef\n */\nfunction HStack( props, forwardedRef ) {\n\tconst hStackProps = useHStack( props );\n\n\treturn <View { ...hStackProps } ref={ forwardedRef } />;\n}\n\n/**\n * `HStack` (Horizontal Stack) arranges child elements in a horizontal line.\n *\n * `HStack` can render anything inside.\n *\n * @example\n * ```jsx\n * import {\n * \t__experimentalHStack as HStack,\n * \t__experimentalText as Text,\n * } from `@wordpress/components`;\n *\n * function Example() {\n * \treturn (\n * \t\t<HStack>\n * \t\t\t<Text>Code</Text>\n * \t\t\t<Text>is</Text>\n * \t\t\t<Text>Poetry</Text>\n * \t\t</HStack>\n * \t);\n * }\n * ```\n */\nconst ConnectedHStack = contextConnect( HStack, 'HStack' );\n\nexport default ConnectedHStack;\n"]}