@atlaskit/link-picker 1.48.3 → 1.49.1

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 (240) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/common/generic-error-svg/index.compiled.css +2 -0
  3. package/dist/cjs/common/generic-error-svg/index.js +34 -25
  4. package/dist/cjs/common/generic-error-svg/old/index.js +66 -0
  5. package/dist/cjs/common/ui/empty-state/index.compiled.css +3 -0
  6. package/dist/cjs/common/ui/empty-state/index.js +26 -14
  7. package/dist/cjs/common/ui/empty-state/old/index.js +38 -0
  8. package/dist/cjs/common/ui/min-height-container/index.compiled.css +4 -0
  9. package/dist/cjs/common/ui/min-height-container/index.js +24 -14
  10. package/dist/cjs/common/ui/min-height-container/old/index.js +34 -0
  11. package/dist/cjs/ui/error-boundary/error-boundary-fallback/index.compiled.css +2 -0
  12. package/dist/cjs/ui/error-boundary/error-boundary-fallback/index.js +24 -18
  13. package/dist/cjs/ui/error-boundary/error-boundary-fallback/old/index.js +50 -0
  14. package/dist/cjs/ui/link-picker/form-footer/index.compiled.css +3 -0
  15. package/dist/cjs/ui/link-picker/form-footer/index.js +30 -35
  16. package/dist/cjs/ui/link-picker/form-footer/link-picker-submit-button/index.js +2 -8
  17. package/dist/cjs/ui/link-picker/form-footer/old/index.js +116 -0
  18. package/dist/cjs/ui/link-picker/index.compiled.css +10 -0
  19. package/dist/cjs/ui/link-picker/index.js +45 -59
  20. package/dist/cjs/ui/link-picker/old/index.js +435 -0
  21. package/dist/cjs/ui/link-picker/search-results/index.compiled.css +7 -0
  22. package/dist/cjs/ui/link-picker/search-results/index.js +33 -32
  23. package/dist/cjs/ui/link-picker/search-results/link-search-error/index.js +5 -11
  24. package/dist/cjs/ui/link-picker/search-results/link-search-list/index.compiled.css +24 -0
  25. package/dist/cjs/ui/link-picker/search-results/link-search-list/index.js +55 -43
  26. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.compiled.css +2 -0
  27. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.js +36 -28
  28. package/dist/cjs/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/old/index.js +70 -0
  29. package/dist/cjs/ui/link-picker/search-results/link-search-list/list-item/index.compiled.css +34 -0
  30. package/dist/cjs/ui/link-picker/search-results/link-search-list/list-item/index.js +99 -76
  31. package/dist/cjs/ui/link-picker/search-results/link-search-list/list-item/old/index.js +145 -0
  32. package/dist/cjs/ui/link-picker/search-results/link-search-list/old/index.js +188 -0
  33. package/dist/cjs/ui/link-picker/search-results/old/index.js +105 -0
  34. package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/index.compiled.css +29 -0
  35. package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/index.js +54 -42
  36. package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/old/index.js +163 -0
  37. package/dist/cjs/ui/link-picker/search-results/search-results-container/index.compiled.css +4 -0
  38. package/dist/cjs/ui/link-picker/search-results/search-results-container/index.js +21 -19
  39. package/dist/cjs/ui/link-picker/search-results/search-results-container/old/index.js +43 -0
  40. package/dist/cjs/ui/link-picker/text-input/index.compiled.css +11 -0
  41. package/dist/cjs/ui/link-picker/text-input/index.js +36 -39
  42. package/dist/cjs/ui/link-picker/text-input/old/index.js +125 -0
  43. package/dist/cjs/ui/loader-fallback/index.compiled.css +1 -0
  44. package/dist/cjs/ui/loader-fallback/index.js +21 -15
  45. package/dist/cjs/ui/loader-fallback/old/index.js +67 -0
  46. package/dist/cjs/ui/main.compiled.css +1 -0
  47. package/dist/cjs/ui/main.js +25 -24
  48. package/dist/cjs/ui/old/main.js +75 -0
  49. package/dist/es2019/common/generic-error-svg/index.compiled.css +2 -0
  50. package/dist/es2019/common/generic-error-svg/index.js +27 -23
  51. package/dist/es2019/common/generic-error-svg/old/index.js +58 -0
  52. package/dist/es2019/common/ui/empty-state/index.compiled.css +3 -0
  53. package/dist/es2019/common/ui/empty-state/index.js +18 -9
  54. package/dist/es2019/common/ui/empty-state/old/index.js +32 -0
  55. package/dist/es2019/common/ui/min-height-container/index.compiled.css +4 -0
  56. package/dist/es2019/common/ui/min-height-container/index.js +21 -12
  57. package/dist/es2019/common/ui/min-height-container/old/index.js +25 -0
  58. package/dist/es2019/ui/error-boundary/error-boundary-fallback/index.compiled.css +2 -0
  59. package/dist/es2019/ui/error-boundary/error-boundary-fallback/index.js +20 -16
  60. package/dist/es2019/ui/error-boundary/error-boundary-fallback/old/index.js +41 -0
  61. package/dist/es2019/ui/link-picker/form-footer/index.compiled.css +3 -0
  62. package/dist/es2019/ui/link-picker/form-footer/index.js +27 -32
  63. package/dist/es2019/ui/link-picker/form-footer/link-picker-submit-button/index.js +2 -7
  64. package/dist/es2019/ui/link-picker/form-footer/old/index.js +104 -0
  65. package/dist/es2019/ui/link-picker/index.compiled.css +10 -0
  66. package/dist/es2019/ui/link-picker/index.js +38 -58
  67. package/dist/es2019/ui/link-picker/old/index.js +436 -0
  68. package/dist/es2019/ui/link-picker/search-results/index.compiled.css +7 -0
  69. package/dist/es2019/ui/link-picker/search-results/index.js +29 -31
  70. package/dist/es2019/ui/link-picker/search-results/link-search-error/index.js +5 -10
  71. package/dist/es2019/ui/link-picker/search-results/link-search-list/index.compiled.css +24 -0
  72. package/dist/es2019/ui/link-picker/search-results/link-search-list/index.js +48 -42
  73. package/dist/es2019/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.compiled.css +2 -0
  74. package/dist/es2019/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.js +29 -26
  75. package/dist/es2019/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/old/index.js +63 -0
  76. package/dist/es2019/ui/link-picker/search-results/link-search-list/list-item/index.compiled.css +34 -0
  77. package/dist/es2019/ui/link-picker/search-results/link-search-list/list-item/index.js +77 -72
  78. package/dist/es2019/ui/link-picker/search-results/link-search-list/list-item/old/index.js +132 -0
  79. package/dist/es2019/ui/link-picker/search-results/link-search-list/old/index.js +178 -0
  80. package/dist/es2019/ui/link-picker/search-results/old/index.js +98 -0
  81. package/dist/es2019/ui/link-picker/search-results/scrolling-tabs/index.compiled.css +29 -0
  82. package/dist/es2019/ui/link-picker/search-results/scrolling-tabs/index.js +39 -39
  83. package/dist/es2019/ui/link-picker/search-results/scrolling-tabs/old/index.js +130 -0
  84. package/dist/es2019/ui/link-picker/search-results/search-results-container/index.compiled.css +4 -0
  85. package/dist/es2019/ui/link-picker/search-results/search-results-container/index.js +16 -16
  86. package/dist/es2019/ui/link-picker/search-results/search-results-container/old/index.js +37 -0
  87. package/dist/es2019/ui/link-picker/text-input/index.compiled.css +11 -0
  88. package/dist/es2019/ui/link-picker/text-input/index.js +30 -38
  89. package/dist/es2019/ui/link-picker/text-input/old/index.js +121 -0
  90. package/dist/es2019/ui/loader-fallback/index.compiled.css +1 -0
  91. package/dist/es2019/ui/loader-fallback/index.js +17 -13
  92. package/dist/es2019/ui/loader-fallback/old/index.js +60 -0
  93. package/dist/es2019/ui/main.compiled.css +1 -0
  94. package/dist/es2019/ui/main.js +24 -22
  95. package/dist/es2019/ui/old/main.js +73 -0
  96. package/dist/esm/common/generic-error-svg/index.compiled.css +2 -0
  97. package/dist/esm/common/generic-error-svg/index.js +30 -23
  98. package/dist/esm/common/generic-error-svg/old/index.js +58 -0
  99. package/dist/esm/common/ui/empty-state/index.compiled.css +3 -0
  100. package/dist/esm/common/ui/empty-state/index.js +18 -9
  101. package/dist/esm/common/ui/empty-state/old/index.js +31 -0
  102. package/dist/esm/common/ui/min-height-container/index.compiled.css +4 -0
  103. package/dist/esm/common/ui/min-height-container/index.js +23 -14
  104. package/dist/esm/common/ui/min-height-container/old/index.js +25 -0
  105. package/dist/esm/ui/error-boundary/error-boundary-fallback/index.compiled.css +2 -0
  106. package/dist/esm/ui/error-boundary/error-boundary-fallback/index.js +20 -16
  107. package/dist/esm/ui/error-boundary/error-boundary-fallback/old/index.js +43 -0
  108. package/dist/esm/ui/link-picker/form-footer/index.compiled.css +3 -0
  109. package/dist/esm/ui/link-picker/form-footer/index.js +28 -34
  110. package/dist/esm/ui/link-picker/form-footer/link-picker-submit-button/index.js +2 -7
  111. package/dist/esm/ui/link-picker/form-footer/old/index.js +108 -0
  112. package/dist/esm/ui/link-picker/index.compiled.css +10 -0
  113. package/dist/esm/ui/link-picker/index.js +39 -59
  114. package/dist/esm/ui/link-picker/old/index.js +432 -0
  115. package/dist/esm/ui/link-picker/search-results/index.compiled.css +7 -0
  116. package/dist/esm/ui/link-picker/search-results/index.js +30 -32
  117. package/dist/esm/ui/link-picker/search-results/link-search-error/index.js +5 -10
  118. package/dist/esm/ui/link-picker/search-results/link-search-list/index.compiled.css +24 -0
  119. package/dist/esm/ui/link-picker/search-results/link-search-list/index.js +49 -43
  120. package/dist/esm/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.compiled.css +2 -0
  121. package/dist/esm/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.js +32 -26
  122. package/dist/esm/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/old/index.js +63 -0
  123. package/dist/esm/ui/link-picker/search-results/link-search-list/list-item/index.compiled.css +34 -0
  124. package/dist/esm/ui/link-picker/search-results/link-search-list/list-item/index.js +94 -72
  125. package/dist/esm/ui/link-picker/search-results/link-search-list/list-item/old/index.js +136 -0
  126. package/dist/esm/ui/link-picker/search-results/link-search-list/old/index.js +186 -0
  127. package/dist/esm/ui/link-picker/search-results/old/index.js +100 -0
  128. package/dist/esm/ui/link-picker/search-results/scrolling-tabs/index.compiled.css +29 -0
  129. package/dist/esm/ui/link-picker/search-results/scrolling-tabs/index.js +52 -43
  130. package/dist/esm/ui/link-picker/search-results/scrolling-tabs/old/index.js +158 -0
  131. package/dist/esm/ui/link-picker/search-results/search-results-container/index.compiled.css +4 -0
  132. package/dist/esm/ui/link-picker/search-results/search-results-container/index.js +16 -16
  133. package/dist/esm/ui/link-picker/search-results/search-results-container/old/index.js +36 -0
  134. package/dist/esm/ui/link-picker/text-input/index.compiled.css +11 -0
  135. package/dist/esm/ui/link-picker/text-input/index.js +30 -38
  136. package/dist/esm/ui/link-picker/text-input/old/index.js +121 -0
  137. package/dist/esm/ui/loader-fallback/index.compiled.css +1 -0
  138. package/dist/esm/ui/loader-fallback/index.js +17 -13
  139. package/dist/esm/ui/loader-fallback/old/index.js +59 -0
  140. package/dist/esm/ui/main.compiled.css +1 -0
  141. package/dist/esm/ui/main.js +24 -22
  142. package/dist/esm/ui/old/main.js +64 -0
  143. package/dist/types/common/generic-error-svg/index.d.ts +3 -6
  144. package/dist/types/common/generic-error-svg/old/index.d.ts +6 -0
  145. package/dist/types/common/types.d.ts +0 -1
  146. package/dist/types/common/ui/empty-state/index.d.ts +3 -2
  147. package/dist/types/common/ui/empty-state/old/index.d.ts +9 -0
  148. package/dist/types/common/ui/min-height-container/index.d.ts +3 -0
  149. package/dist/types/common/ui/min-height-container/old/index.d.ts +8 -0
  150. package/dist/types/ui/error-boundary/error-boundary-fallback/index.d.ts +3 -6
  151. package/dist/types/ui/error-boundary/error-boundary-fallback/old/index.d.ts +6 -0
  152. package/dist/types/ui/link-picker/form-footer/index.d.ts +2 -5
  153. package/dist/types/ui/link-picker/form-footer/link-picker-submit-button/index.d.ts +2 -6
  154. package/dist/types/ui/link-picker/form-footer/old/index.d.ts +42 -0
  155. package/dist/types/ui/link-picker/index.d.ts +2 -2
  156. package/dist/types/ui/link-picker/old/index.d.ts +25 -0
  157. package/dist/types/ui/link-picker/search-results/index.d.ts +2 -2
  158. package/dist/types/ui/link-picker/search-results/link-search-error/index.d.ts +2 -6
  159. package/dist/types/ui/link-picker/search-results/link-search-list/index.d.ts +1 -0
  160. package/dist/types/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.d.ts +3 -6
  161. package/dist/types/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/old/index.d.ts +6 -0
  162. package/dist/types/ui/link-picker/search-results/link-search-list/list-item/index.d.ts +3 -2
  163. package/dist/types/ui/link-picker/search-results/link-search-list/list-item/old/index.d.ts +23 -0
  164. package/dist/types/ui/link-picker/search-results/link-search-list/old/index.d.ts +52 -0
  165. package/dist/types/ui/link-picker/search-results/old/index.d.ts +45 -0
  166. package/dist/types/ui/link-picker/search-results/scrolling-tabs/index.d.ts +4 -4
  167. package/dist/types/ui/link-picker/search-results/scrolling-tabs/old/index.d.ts +7 -0
  168. package/dist/types/ui/link-picker/search-results/search-results-container/index.d.ts +2 -2
  169. package/dist/types/ui/link-picker/search-results/search-results-container/old/index.d.ts +10 -0
  170. package/dist/types/ui/link-picker/text-input/index.d.ts +3 -2
  171. package/dist/types/ui/link-picker/text-input/old/index.d.ts +18 -0
  172. package/dist/types/ui/loader-fallback/index.d.ts +3 -6
  173. package/dist/types/ui/loader-fallback/old/index.d.ts +17 -0
  174. package/dist/types/ui/main.d.ts +2 -2
  175. package/dist/types/ui/old/main.d.ts +13 -0
  176. package/dist/types-ts4.5/common/generic-error-svg/index.d.ts +3 -6
  177. package/dist/types-ts4.5/common/generic-error-svg/old/index.d.ts +6 -0
  178. package/dist/types-ts4.5/common/types.d.ts +0 -1
  179. package/dist/types-ts4.5/common/ui/empty-state/index.d.ts +3 -2
  180. package/dist/types-ts4.5/common/ui/empty-state/old/index.d.ts +9 -0
  181. package/dist/types-ts4.5/common/ui/min-height-container/index.d.ts +3 -0
  182. package/dist/types-ts4.5/common/ui/min-height-container/old/index.d.ts +8 -0
  183. package/dist/types-ts4.5/ui/error-boundary/error-boundary-fallback/index.d.ts +3 -6
  184. package/dist/types-ts4.5/ui/error-boundary/error-boundary-fallback/old/index.d.ts +6 -0
  185. package/dist/types-ts4.5/ui/link-picker/form-footer/index.d.ts +2 -5
  186. package/dist/types-ts4.5/ui/link-picker/form-footer/link-picker-submit-button/index.d.ts +2 -6
  187. package/dist/types-ts4.5/ui/link-picker/form-footer/old/index.d.ts +42 -0
  188. package/dist/types-ts4.5/ui/link-picker/index.d.ts +2 -2
  189. package/dist/types-ts4.5/ui/link-picker/old/index.d.ts +25 -0
  190. package/dist/types-ts4.5/ui/link-picker/search-results/index.d.ts +2 -2
  191. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-error/index.d.ts +2 -6
  192. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/index.d.ts +1 -0
  193. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/index.d.ts +3 -6
  194. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/link-search-no-results/no-results-svg/old/index.d.ts +6 -0
  195. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/list-item/index.d.ts +3 -2
  196. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/list-item/old/index.d.ts +23 -0
  197. package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/old/index.d.ts +52 -0
  198. package/dist/types-ts4.5/ui/link-picker/search-results/old/index.d.ts +45 -0
  199. package/dist/types-ts4.5/ui/link-picker/search-results/scrolling-tabs/index.d.ts +4 -4
  200. package/dist/types-ts4.5/ui/link-picker/search-results/scrolling-tabs/old/index.d.ts +7 -0
  201. package/dist/types-ts4.5/ui/link-picker/search-results/search-results-container/index.d.ts +2 -2
  202. package/dist/types-ts4.5/ui/link-picker/search-results/search-results-container/old/index.d.ts +10 -0
  203. package/dist/types-ts4.5/ui/link-picker/text-input/index.d.ts +3 -2
  204. package/dist/types-ts4.5/ui/link-picker/text-input/old/index.d.ts +18 -0
  205. package/dist/types-ts4.5/ui/loader-fallback/index.d.ts +3 -6
  206. package/dist/types-ts4.5/ui/loader-fallback/old/index.d.ts +17 -0
  207. package/dist/types-ts4.5/ui/main.d.ts +2 -2
  208. package/dist/types-ts4.5/ui/old/main.d.ts +13 -0
  209. package/lazy/package.json +3 -1
  210. package/package.json +14 -4
  211. package/dist/cjs/ui/link-picker/form-footer/feature-discovery/index.js +0 -69
  212. package/dist/cjs/ui/link-picker/form-footer/feature-discovery/styled.js +0 -25
  213. package/dist/es2019/ui/link-picker/form-footer/feature-discovery/index.js +0 -61
  214. package/dist/es2019/ui/link-picker/form-footer/feature-discovery/styled.js +0 -18
  215. package/dist/esm/ui/link-picker/form-footer/feature-discovery/index.js +0 -62
  216. package/dist/esm/ui/link-picker/form-footer/feature-discovery/styled.js +0 -18
  217. package/dist/types/ui/link-picker/form-footer/feature-discovery/index.d.ts +0 -15
  218. package/dist/types/ui/link-picker/form-footer/feature-discovery/styled.d.ts +0 -1
  219. package/dist/types-ts4.5/ui/link-picker/form-footer/feature-discovery/index.d.ts +0 -15
  220. package/dist/types-ts4.5/ui/link-picker/form-footer/feature-discovery/styled.d.ts +0 -1
  221. /package/dist/cjs/common/ui/min-height-container/{styled.js → old/styled.js} +0 -0
  222. /package/dist/cjs/ui/link-picker/search-results/link-search-list/list-item/{styled.js → old/styled.js} +0 -0
  223. /package/dist/cjs/ui/link-picker/search-results/link-search-list/{styled.js → old/styled.js} +0 -0
  224. /package/dist/cjs/ui/link-picker/search-results/scrolling-tabs/{styles.js → old/styles.js} +0 -0
  225. /package/dist/es2019/common/ui/min-height-container/{styled.js → old/styled.js} +0 -0
  226. /package/dist/es2019/ui/link-picker/search-results/link-search-list/list-item/{styled.js → old/styled.js} +0 -0
  227. /package/dist/es2019/ui/link-picker/search-results/link-search-list/{styled.js → old/styled.js} +0 -0
  228. /package/dist/es2019/ui/link-picker/search-results/scrolling-tabs/{styles.js → old/styles.js} +0 -0
  229. /package/dist/esm/common/ui/min-height-container/{styled.js → old/styled.js} +0 -0
  230. /package/dist/esm/ui/link-picker/search-results/link-search-list/list-item/{styled.js → old/styled.js} +0 -0
  231. /package/dist/esm/ui/link-picker/search-results/link-search-list/{styled.js → old/styled.js} +0 -0
  232. /package/dist/esm/ui/link-picker/search-results/scrolling-tabs/{styles.js → old/styles.js} +0 -0
  233. /package/dist/types/common/ui/min-height-container/{styled.d.ts → old/styled.d.ts} +0 -0
  234. /package/dist/types/ui/link-picker/search-results/link-search-list/list-item/{styled.d.ts → old/styled.d.ts} +0 -0
  235. /package/dist/types/ui/link-picker/search-results/link-search-list/{styled.d.ts → old/styled.d.ts} +0 -0
  236. /package/dist/types/ui/link-picker/search-results/scrolling-tabs/{styles.d.ts → old/styles.d.ts} +0 -0
  237. /package/dist/types-ts4.5/common/ui/min-height-container/{styled.d.ts → old/styled.d.ts} +0 -0
  238. /package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/list-item/{styled.d.ts → old/styled.d.ts} +0 -0
  239. /package/dist/types-ts4.5/ui/link-picker/search-results/link-search-list/{styled.d.ts → old/styled.d.ts} +0 -0
  240. /package/dist/types-ts4.5/ui/link-picker/search-results/scrolling-tabs/{styles.d.ts → old/styles.d.ts} +0 -0
@@ -1,19 +1,16 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.36.0 */
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- /**
3
- * @jsxRuntime classic
4
- * @jsx jsx
5
- */
3
+ import "./index.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
6
6
  import { Fragment, memo, useCallback, useLayoutEffect, useMemo, useReducer } from 'react';
7
-
8
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
- import { css, jsx } from '@emotion/react';
10
7
  import { FormattedMessage, useIntl } from 'react-intl-next';
11
8
  import uuid from 'uuid';
12
9
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
13
10
  import { isSafeUrl, normalizeUrl } from '@atlaskit/linking-common/url';
14
11
  import { browser } from '@atlaskit/linking-common/user-agent';
15
12
  import { fg } from '@atlaskit/platform-feature-flags';
16
- import { Box, xcss } from '@atlaskit/primitives';
13
+ import { Box } from '@atlaskit/primitives/compiled';
17
14
  import VisuallyHidden from '@atlaskit/visually-hidden';
18
15
  import { useLinkPickerAnalytics, withInputFieldTracking, withLinkPickerAnalyticsContext } from '../../common/analytics';
19
16
  import { ANALYTICS_CHANNEL } from '../../common/constants';
@@ -25,24 +22,18 @@ import { Announcer } from './announcer';
25
22
  import { FormFooter, testIds as formFooterTestIds } from './form-footer';
26
23
  import { LinkPickerSubmitButton } from './form-footer/link-picker-submit-button';
27
24
  import { formMessages, linkMessages, linkTextMessages, searchMessages } from './messages';
25
+ import { LinkPickerOld } from './old';
28
26
  import { SearchResults, testIds as searchTestIds } from './search-results';
29
27
  import { testIds as textFieldTestIds, TextInput } from './text-input';
30
28
  import { TrackMount } from './track-mount';
31
29
  import { getDataSource, getScreenReaderText } from './utils';
32
- const rootContainerStyles = css({
33
- paddingLeft: 'var(--link-picker-padding-left)',
34
- paddingRight: 'var(--link-picker-padding-right)',
35
- paddingTop: 'var(--link-picker-padding-top)',
36
- paddingBottom: 'var(--link-picker-padding-bottom)',
37
- boxSizing: 'border-box',
38
- // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
39
- lineHeight: 'initial',
40
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles
41
- display: 'block !important'
42
- });
43
- const formFooterMargin = css({
44
- marginTop: "var(--ds-space-200, 16px)"
45
- });
30
+ const styles = {
31
+ fullWidthSubmitButton: "_19pkpxbi _1e0c1txw _2lx21bp4"
32
+ };
33
+ const baseRootContainerStyles = null;
34
+ // To be removed when platform-linking-visual-refresh-v1 is removed
35
+ const oldRootContainerStyles = null;
36
+ const formFooterMargin = null;
46
37
  export const testIds = {
47
38
  linkPickerRoot: 'link-picker-root',
48
39
  linkPicker: 'link-picker',
@@ -59,23 +50,14 @@ const initState = {
59
50
  selectedIndex: -1,
60
51
  invalidUrl: false,
61
52
  activeTab: 0,
62
- preventHidingRecents: false,
63
- /** This only allows the feature discovery pulse - to be shown the ff must be on and active tab be Jira */
64
- allowCreateFeatureDiscovery: true
53
+ preventHidingRecents: false
65
54
  };
66
- const FullWidthSubmitButtonStyles = xcss({
67
- marginTop: 'space.200',
68
- display: 'flex',
69
- flexDirection: 'column'
70
- });
71
55
  function reducer(state, payload) {
72
56
  if (payload.url && state.url !== payload.url) {
73
57
  return {
74
58
  ...state,
75
59
  invalidUrl: false,
76
60
  selectedIndex: isSafeUrl(payload.url) && payload.url.length ? -1 : state.selectedIndex,
77
- /** When the user starts entering a url, stop pulsing the create button */
78
- allowCreateFeatureDiscovery: false,
79
61
  ...payload
80
62
  };
81
63
  }
@@ -88,7 +70,6 @@ function reducer(state, payload) {
88
70
  /**
89
71
  * Bind input fields to analytics tracking
90
72
  */
91
-
92
73
  const getLinkFieldContent = value => {
93
74
  if (!Boolean(value)) {
94
75
  return null;
@@ -100,7 +81,7 @@ const LinkInputField = withInputFieldTracking(TextInput, 'link', (event, attribu
100
81
  linkFieldContent: getLinkFieldContent(event.currentTarget.value)
101
82
  }));
102
83
  const DisplayTextInputField = withInputFieldTracking(TextInput, 'displayText');
103
- export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
84
+ export const LinkPickerNew = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
104
85
  onSubmit,
105
86
  onCancel,
106
87
  onContentResize,
@@ -129,8 +110,7 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
129
110
  url,
130
111
  displayText,
131
112
  invalidUrl,
132
- activeTab,
133
- allowCreateFeatureDiscovery
113
+ activeTab
134
114
  } = state;
135
115
  const intl = useIntl();
136
116
  const queryState = useSearchQuery(state);
@@ -347,20 +327,19 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
347
327
  // for details: https://a11y-internal.atlassian.net/browse/AK-740
348
328
  const screenReaderText = browser().safari && getScreenReaderText(items !== null && items !== void 0 ? items : [], selectedIndex, intl);
349
329
  const customSubmitButtonLabel = customMessages !== null && customMessages !== void 0 && customMessages.submitButtonLabel ? customMessages.submitButtonLabel : undefined;
350
- return jsx("form", {
330
+ return /*#__PURE__*/React.createElement("form", {
351
331
  "data-testid": testIds.linkPicker,
352
- css: rootContainerStyles
353
332
  // Use onSubmitCapture instead of onSubmit so that any possible parent form isn't submitted
354
- ,
355
- onSubmitCapture: handleSubmit
356
- }, jsx(TrackMount, null), isActivePlugin && jsx(Fragment, null, screenReaderText && jsx(Announcer, {
333
+ onSubmitCapture: handleSubmit,
334
+ className: ax(["_19bv164s _u5f31pah _ca0q1k79 _n3td1t3k _vchhusvi _1e0ctcjq", !fg('platform-linking-visual-refresh-v1') && "_vwz44jg8"])
335
+ }, /*#__PURE__*/React.createElement(TrackMount, null), isActivePlugin && /*#__PURE__*/React.createElement(Fragment, null, screenReaderText && /*#__PURE__*/React.createElement(Announcer, {
357
336
  ariaLive: "assertive",
358
337
  text: screenReaderText,
359
338
  ariaRelevant: "additions",
360
339
  delay: 250
361
- }), jsx(VisuallyHidden, {
340
+ }), /*#__PURE__*/React.createElement(VisuallyHidden, {
362
341
  id: screenReaderDescriptionId
363
- }, customMessages !== null && customMessages !== void 0 && customMessages.linkAriaLabel ? jsx(FormattedMessage, customMessages.linkAriaLabel) : jsx(FormattedMessage, messages.linkAriaLabel))), jsx(LinkInputField, _extends({
342
+ }, customMessages !== null && customMessages !== void 0 && customMessages.linkAriaLabel ? /*#__PURE__*/React.createElement(FormattedMessage, customMessages.linkAriaLabel) : /*#__PURE__*/React.createElement(FormattedMessage, messages.linkAriaLabel))), /*#__PURE__*/React.createElement(LinkInputField, _extends({
364
343
  name: "url",
365
344
  autoComplete: "off",
366
345
  testId: testIds.urlInputField,
@@ -376,7 +355,7 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
376
355
  onClear: handleUrlClear,
377
356
  onKeyDown: handleKeyDown,
378
357
  onChange: handleChangeUrl
379
- })), !hideDisplayText && jsx(DisplayTextInputField, {
358
+ })), !hideDisplayText && /*#__PURE__*/React.createElement(DisplayTextInputField, {
380
359
  autoComplete: "off",
381
360
  name: "displayText",
382
361
  testId: testIds.textInputField,
@@ -387,9 +366,9 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
387
366
  readOnly: isSubmitting,
388
367
  onClear: handleClear,
389
368
  onChange: handleChangeText
390
- }), UNSAFE_moveSubmitButton && jsx(Box, {
391
- xcss: FullWidthSubmitButtonStyles
392
- }, jsx(LinkPickerSubmitButton, {
369
+ }), UNSAFE_moveSubmitButton && /*#__PURE__*/React.createElement(Box, {
370
+ xcss: styles.fullWidthSubmitButton
371
+ }, /*#__PURE__*/React.createElement(LinkPickerSubmitButton, {
393
372
  isEditing: isEditing,
394
373
  isLoading: isLoadingResults || !!isLoadingPlugins,
395
374
  isSubmitting: isSubmitting,
@@ -400,7 +379,7 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
400
379
  submitMessageId: submitMessageId,
401
380
  testId: testIds.insertButton,
402
381
  url: url
403
- })), !!queryState && (isLoadingPlugins || isActivePlugin) && jsx(SearchResults, {
382
+ })), !!queryState && (isLoadingPlugins || isActivePlugin) && /*#__PURE__*/React.createElement(SearchResults, {
404
383
  activeTab: activeTab,
405
384
  tabs: tabs,
406
385
  activePlugin: activePlugin,
@@ -420,7 +399,7 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
420
399
  handleSearchListOnChange: handleSearchListOnChange,
421
400
  adaptiveHeight: adaptiveHeight,
422
401
  retry: retry
423
- }), jsx(FormFooter, {
402
+ }), /*#__PURE__*/React.createElement(FormFooter, {
424
403
  error: error,
425
404
  items: items
426
405
  /** If the results section appears to be loading, impact whether the submit button is disabled */,
@@ -430,15 +409,16 @@ export const LinkPicker = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
430
409
  url: url,
431
410
  isEditing: isEditing,
432
411
  onCancel: onCancel,
433
- action: pluginAction
434
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
435
- ,
436
- css: !queryState || !(plugins !== null && plugins !== void 0 && plugins.length) ? formFooterMargin : undefined
437
- /* Show the feature discovery pulse when we're on the Jira tab, we haven't started typing a url and
438
- the feature flag is enabled */,
439
- createFeatureDiscovery: (activePlugin === null || activePlugin === void 0 ? void 0 : activePlugin.tabKey) === 'jira' && allowCreateFeatureDiscovery && fg('platform.linking-platform.link-picker.enable-jira-create'),
412
+ action: pluginAction,
440
413
  customSubmitButtonLabel: customSubmitButtonLabel,
441
414
  submitMessageId: submitMessageId,
442
- hideSubmitButton: UNSAFE_moveSubmitButton
415
+ hideSubmitButton: UNSAFE_moveSubmitButton,
416
+ className: ax([(!queryState || !(plugins !== null && plugins !== void 0 && plugins.length)) && "_19pkpxbi"])
443
417
  }));
444
- }));
418
+ }));
419
+ export const LinkPicker = props => {
420
+ if (fg('platform_bandicoots-link-picker-css')) {
421
+ return /*#__PURE__*/React.createElement(LinkPickerNew, props);
422
+ }
423
+ return /*#__PURE__*/React.createElement(LinkPickerOld, props);
424
+ };
@@ -0,0 +1,436 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /* eslint-disable @atlassian/tangerine/import/no-parent-imports */
3
+ /**
4
+ * @jsxRuntime classic
5
+ * @jsx jsx
6
+ */
7
+ import { Fragment, memo, useCallback, useLayoutEffect, useMemo, useReducer } from 'react';
8
+
9
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
10
+ import { css, jsx } from '@emotion/react';
11
+ import { FormattedMessage, useIntl } from 'react-intl-next';
12
+ import uuid from 'uuid';
13
+ import { useAnalyticsEvents } from '@atlaskit/analytics-next';
14
+ import { isSafeUrl, normalizeUrl } from '@atlaskit/linking-common/url';
15
+ import { browser } from '@atlaskit/linking-common/user-agent';
16
+ import { Box, xcss } from '@atlaskit/primitives';
17
+ import VisuallyHidden from '@atlaskit/visually-hidden';
18
+ import { useLinkPickerAnalytics, withInputFieldTracking, withLinkPickerAnalyticsContext } from '../../../common/analytics';
19
+ import { ANALYTICS_CHANNEL } from '../../../common/constants';
20
+ import createEventPayload from '../../../common/utils/analytics/analytics.codegen';
21
+ import { handleNavKeyDown } from '../../../common/utils/handleNavKeyDown';
22
+ import { usePlugins } from '../../../services/use-plugins';
23
+ import { useSearchQuery } from '../../../services/use-search-query';
24
+ import { Announcer } from '../announcer';
25
+ import { FormFooter, testIds as formFooterTestIds } from '../form-footer';
26
+ import { LinkPickerSubmitButton } from '../form-footer/link-picker-submit-button';
27
+ import { formMessages, linkMessages, linkTextMessages, searchMessages } from '../messages';
28
+ import { SearchResults, testIds as searchTestIds } from '../search-results';
29
+ import { testIds as textFieldTestIds, TextInput } from '../text-input';
30
+ import { TrackMount } from '../track-mount';
31
+ import { getDataSource, getScreenReaderText } from '../utils';
32
+ const rootContainerStyles = css({
33
+ paddingLeft: 'var(--link-picker-padding-left)',
34
+ paddingRight: 'var(--link-picker-padding-right)',
35
+ paddingTop: 'var(--link-picker-padding-top)',
36
+ paddingBottom: 'var(--link-picker-padding-bottom)',
37
+ boxSizing: 'border-box',
38
+ // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
39
+ lineHeight: 'initial',
40
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-important-styles
41
+ display: 'block !important'
42
+ });
43
+ const formFooterMargin = css({
44
+ marginTop: "var(--ds-space-200, 16px)"
45
+ });
46
+ export const testIds = {
47
+ linkPickerRoot: 'link-picker-root',
48
+ linkPicker: 'link-picker',
49
+ urlInputField: 'link-url',
50
+ textInputField: 'link-text',
51
+ ...searchTestIds,
52
+ ...formFooterTestIds,
53
+ ...textFieldTestIds
54
+ };
55
+ const initState = {
56
+ url: '',
57
+ displayText: '',
58
+ activeIndex: -1,
59
+ selectedIndex: -1,
60
+ invalidUrl: false,
61
+ activeTab: 0,
62
+ preventHidingRecents: false
63
+ };
64
+ const FullWidthSubmitButtonStyles = xcss({
65
+ marginTop: 'space.200',
66
+ display: 'flex',
67
+ flexDirection: 'column'
68
+ });
69
+ function reducer(state, payload) {
70
+ if (payload.url && state.url !== payload.url) {
71
+ return {
72
+ ...state,
73
+ invalidUrl: false,
74
+ selectedIndex: isSafeUrl(payload.url) && payload.url.length ? -1 : state.selectedIndex,
75
+ ...payload
76
+ };
77
+ }
78
+ return {
79
+ ...state,
80
+ ...payload
81
+ };
82
+ }
83
+
84
+ /**
85
+ * Bind input fields to analytics tracking
86
+ */
87
+
88
+ const getLinkFieldContent = value => {
89
+ if (!Boolean(value)) {
90
+ return null;
91
+ }
92
+ return isSafeUrl(value) ? 'url' : 'text_string';
93
+ };
94
+ const LinkInputField = withInputFieldTracking(TextInput, 'link', (event, attributes) => ({
95
+ ...attributes,
96
+ linkFieldContent: getLinkFieldContent(event.currentTarget.value)
97
+ }));
98
+ const DisplayTextInputField = withInputFieldTracking(TextInput, 'displayText');
99
+ export const LinkPickerOld = withLinkPickerAnalyticsContext( /*#__PURE__*/memo(({
100
+ onSubmit,
101
+ onCancel,
102
+ onContentResize,
103
+ plugins,
104
+ isLoadingPlugins,
105
+ url: initUrl,
106
+ displayText: initDisplayText,
107
+ hideDisplayText,
108
+ featureFlags,
109
+ customMessages,
110
+ isSubmitting = false,
111
+ adaptiveHeight = false,
112
+ UNSAFE_moveSubmitButton = false
113
+ }) => {
114
+ const {
115
+ createAnalyticsEvent
116
+ } = useAnalyticsEvents();
117
+ const [state, dispatch] = useReducer(reducer, {
118
+ ...initState,
119
+ url: normalizeUrl(initUrl) || '',
120
+ displayText: initDisplayText || ''
121
+ });
122
+ const {
123
+ activeIndex,
124
+ selectedIndex,
125
+ url,
126
+ displayText,
127
+ invalidUrl,
128
+ activeTab
129
+ } = state;
130
+ const intl = useIntl();
131
+ const queryState = useSearchQuery(state);
132
+ const {
133
+ items,
134
+ isLoading: isLoadingResults,
135
+ isActivePlugin,
136
+ activePlugin,
137
+ tabs,
138
+ error,
139
+ retry,
140
+ pluginAction
141
+ } = usePlugins(queryState, activeTab, plugins);
142
+ const isEditing = !!initUrl;
143
+ const selectedItem = items === null || items === void 0 ? void 0 : items[selectedIndex];
144
+ const isSelectedItem = (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.url) === url;
145
+ const {
146
+ trackAttribute,
147
+ getAttributes
148
+ } = useLinkPickerAnalytics();
149
+ const submitMessageId = useMemo(() => uuid(), []);
150
+ useLayoutEffect(() => {
151
+ if (onContentResize) {
152
+ onContentResize();
153
+ }
154
+ }, [onContentResize, items, isLoadingResults, isActivePlugin, tabs]);
155
+ const handleChangeUrl = useCallback(e => {
156
+ if (isSubmitting) {
157
+ // Prevent changing url while submitting
158
+ return;
159
+ }
160
+
161
+ /** Any on change event is triggered by manual input or paste, so source is null */
162
+ trackAttribute('linkFieldContentInputSource', null);
163
+ dispatch({
164
+ url: e.currentTarget.value,
165
+ // If the last action was changing tabs, make sure we're now allowing recents to be hidden
166
+ preventHidingRecents: false
167
+ });
168
+ }, [dispatch, trackAttribute, isSubmitting]);
169
+ const handleChangeText = useCallback(e => {
170
+ dispatch({
171
+ displayText: e.currentTarget.value
172
+ });
173
+ }, [dispatch]);
174
+ const handleClear = useCallback(field => {
175
+ dispatch({
176
+ activeIndex: -1,
177
+ selectedIndex: -1,
178
+ [field]: ''
179
+ });
180
+ }, [dispatch]);
181
+ const handleUrlClear = useCallback(() => {
182
+ if (isSubmitting) {
183
+ // Prevent clearing url while submitting
184
+ return;
185
+ }
186
+ trackAttribute('linkFieldContentInputSource', null);
187
+ handleClear('url');
188
+ }, [trackAttribute, handleClear, isSubmitting]);
189
+ const handleInsert = useCallback((url, title, inputType, data) => {
190
+ const event = createAnalyticsEvent(createEventPayload('ui.form.submitted.linkPicker', {}));
191
+
192
+ // Clone the event so that it can be emitted for consumer usage
193
+ // This must happen BEFORE the original event is fired!
194
+ const consumerEvent = event.clone();
195
+ // Cloned event doesnt have the attributes that are added by
196
+ // the analytics listener in the LinkPickerAnalyticsContext, add them here
197
+ consumerEvent === null || consumerEvent === void 0 ? void 0 : consumerEvent.update({
198
+ attributes: getAttributes()
199
+ });
200
+ // Dispatch the original event to our channel
201
+ event.fire(ANALYTICS_CHANNEL);
202
+ onSubmit({
203
+ url,
204
+ displayText: displayText || null,
205
+ title: title || null,
206
+ meta: {
207
+ inputMethod: inputType
208
+ },
209
+ data,
210
+ ...(inputType === 'manual' ? {
211
+ rawUrl: state.url
212
+ } : {})
213
+ }, consumerEvent);
214
+ }, [displayText, onSubmit, state.url, createAnalyticsEvent, getAttributes]);
215
+ const handleSelected = useCallback(objectId => {
216
+ if (isSubmitting) {
217
+ // Prevent changing selection while submitting
218
+ return;
219
+ }
220
+ const selectedItem = items === null || items === void 0 ? void 0 : items.find(item => item.objectId === objectId);
221
+ if (selectedItem) {
222
+ const {
223
+ url,
224
+ name
225
+ } = selectedItem;
226
+ /**
227
+ * Manually track that the url has been updated using searchResult method
228
+ */
229
+ dispatchEvent(new Event('submit'));
230
+ trackAttribute('linkFieldContent', getLinkFieldContent(url));
231
+ trackAttribute('linkFieldContentInputMethod', 'searchResult');
232
+ trackAttribute('linkFieldContentInputSource', getDataSource(selectedItem, activePlugin));
233
+ handleInsert(url, name, 'typeAhead', {
234
+ ...selectedItem
235
+ });
236
+ }
237
+ }, [handleInsert, trackAttribute, items, activePlugin, isSubmitting]);
238
+ const handleSubmit = useCallback(event => {
239
+ event === null || event === void 0 ? void 0 : event.preventDefault();
240
+ if (isSubmitting) {
241
+ // Prevent submit while submitting
242
+ return;
243
+ }
244
+ if (isSelectedItem && selectedItem) {
245
+ return handleInsert(selectedItem.url, selectedItem.name, 'typeAhead');
246
+ }
247
+ const normalized = normalizeUrl(url);
248
+ if (normalized) {
249
+ return handleInsert(normalized, null, 'manual');
250
+ }
251
+ return dispatch({
252
+ invalidUrl: true
253
+ });
254
+ }, [dispatch, handleInsert, isSelectedItem, selectedItem, url, isSubmitting]);
255
+ const handleTabChange = useCallback(activeTab => {
256
+ var _plugins$activeTab$ta, _plugins$activeTab;
257
+ dispatch({
258
+ // We don't want any selection to exist after changing tab, as the selection
259
+ // wouldn't mean anything.
260
+ activeIndex: -1,
261
+ selectedIndex: -1,
262
+ // We don't want recents to be hidden, even though we don't have a selection
263
+ preventHidingRecents: true,
264
+ invalidUrl: false,
265
+ activeTab
266
+ });
267
+ trackAttribute('tab', (_plugins$activeTab$ta = plugins === null || plugins === void 0 ? void 0 : (_plugins$activeTab = plugins[activeTab]) === null || _plugins$activeTab === void 0 ? void 0 : _plugins$activeTab.tabKey) !== null && _plugins$activeTab$ta !== void 0 ? _plugins$activeTab$ta : null);
268
+ }, [dispatch, plugins, trackAttribute]);
269
+ const handleSearchListOnChange = id => {
270
+ if (isSubmitting) {
271
+ // Prevent changing item while submitting
272
+ return;
273
+ }
274
+ const index = items === null || items === void 0 ? void 0 : items.findIndex(item => item.objectId === id);
275
+ if (typeof index === 'number') {
276
+ const item = items === null || items === void 0 ? void 0 : items[index];
277
+ if (item) {
278
+ /**
279
+ * Manually track that the url has been updated using searchResult method
280
+ */
281
+ trackAttribute('linkFieldContent', getLinkFieldContent(item.url));
282
+ trackAttribute('linkFieldContentInputMethod', 'searchResult');
283
+ trackAttribute('linkFieldContentInputSource', getDataSource(item, activePlugin));
284
+ dispatch({
285
+ activeIndex: index,
286
+ selectedIndex: index,
287
+ url: item.url,
288
+ invalidUrl: false
289
+ });
290
+ }
291
+ }
292
+ };
293
+ const handleKeyDown = useCallback(event => {
294
+ if (!(items !== null && items !== void 0 && items.length)) {
295
+ return;
296
+ }
297
+ let updatedIndex = activeIndex;
298
+ if (event.key === 'Enter') {
299
+ event.preventDefault();
300
+ if (selectedItem) {
301
+ handleSelected(selectedItem.objectId);
302
+ } else {
303
+ // triggers validation error message
304
+ handleSubmit();
305
+ }
306
+ } else {
307
+ updatedIndex = handleNavKeyDown(event, items.length, activeIndex);
308
+ }
309
+ const item = items[updatedIndex];
310
+ if (['Enter', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key) && item) {
311
+ /**
312
+ * Manually track that the url has been updated using searchResult method
313
+ */
314
+ trackAttribute('linkFieldContent', getLinkFieldContent(item.url));
315
+ trackAttribute('linkFieldContentInputMethod', 'searchResult');
316
+ trackAttribute('linkFieldContentInputSource', getDataSource(item, activePlugin));
317
+ dispatch({
318
+ activeIndex: updatedIndex,
319
+ selectedIndex: updatedIndex,
320
+ url: item.url,
321
+ invalidUrl: false
322
+ });
323
+ }
324
+ }, [items, activeIndex, selectedItem, handleSelected, handleSubmit, trackAttribute, activePlugin]);
325
+ const messages = isActivePlugin ? searchMessages : linkMessages;
326
+ const screenReaderDescriptionId = 'search-recent-links-field-description';
327
+ const linkSearchListId = 'link-picker-search-list';
328
+ const ariaActiveDescendant = selectedIndex > -1 ? `link-search-list-item-${selectedIndex}` : '';
329
+ const a11yList = isActivePlugin || isLoadingPlugins ? {
330
+ role: 'combobox',
331
+ // When a combobox popup is not visible, the element with role combobox has aria-expanded set to false
332
+ // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded#combobox
333
+ 'aria-expanded': !!(items !== null && items !== void 0 && items.length),
334
+ 'aria-autocomplete': 'list',
335
+ 'aria-controls': linkSearchListId,
336
+ 'aria-activedescendant': ariaActiveDescendant,
337
+ 'aria-describedby': screenReaderDescriptionId
338
+ } : undefined;
339
+
340
+ // Added workaround with a screen reader Announcer specifically for VoiceOver + Safari
341
+ // as the Aria design pattern for combobox does not work in this case
342
+ // for details: https://a11y-internal.atlassian.net/browse/AK-740
343
+ const screenReaderText = browser().safari && getScreenReaderText(items !== null && items !== void 0 ? items : [], selectedIndex, intl);
344
+ const customSubmitButtonLabel = customMessages !== null && customMessages !== void 0 && customMessages.submitButtonLabel ? customMessages.submitButtonLabel : undefined;
345
+ return jsx("form", {
346
+ "data-testid": testIds.linkPicker,
347
+ css: rootContainerStyles
348
+ // Use onSubmitCapture instead of onSubmit so that any possible parent form isn't submitted
349
+ ,
350
+ onSubmitCapture: handleSubmit
351
+ }, jsx(TrackMount, null), isActivePlugin && jsx(Fragment, null, screenReaderText && jsx(Announcer, {
352
+ ariaLive: "assertive",
353
+ text: screenReaderText,
354
+ ariaRelevant: "additions",
355
+ delay: 250
356
+ }), jsx(VisuallyHidden, {
357
+ id: screenReaderDescriptionId
358
+ }, customMessages !== null && customMessages !== void 0 && customMessages.linkAriaLabel ? jsx(FormattedMessage, customMessages.linkAriaLabel) : jsx(FormattedMessage, messages.linkAriaLabel))), jsx(LinkInputField, _extends({
359
+ name: "url",
360
+ autoComplete: "off",
361
+ testId: testIds.urlInputField,
362
+ label: customMessages !== null && customMessages !== void 0 && customMessages.linkLabel ? intl.formatMessage(customMessages.linkLabel) : intl.formatMessage(messages.linkLabel),
363
+ placeholder: customMessages !== null && customMessages !== void 0 && customMessages.linkPlaceholder ? intl.formatMessage(customMessages === null || customMessages === void 0 ? void 0 : customMessages.linkPlaceholder) : intl.formatMessage(messages.linkPlaceholder),
364
+ value: url,
365
+ autoFocus: true,
366
+ clearLabel: intl.formatMessage(formMessages.clearLink),
367
+ error: invalidUrl ? intl.formatMessage(formMessages.linkInvalid) : null,
368
+ spotlightTargetName: "link-picker-search-field-spotlight-target",
369
+ "aria-readonly": isSubmitting
370
+ }, a11yList, {
371
+ onClear: handleUrlClear,
372
+ onKeyDown: handleKeyDown,
373
+ onChange: handleChangeUrl
374
+ })), !hideDisplayText && jsx(DisplayTextInputField, {
375
+ autoComplete: "off",
376
+ name: "displayText",
377
+ testId: testIds.textInputField,
378
+ value: displayText,
379
+ label: customMessages !== null && customMessages !== void 0 && customMessages.linkTextLabel ? intl.formatMessage(customMessages.linkTextLabel) : intl.formatMessage(linkTextMessages.linkTextLabel),
380
+ placeholder: customMessages !== null && customMessages !== void 0 && customMessages.linkTextPlaceholder ? intl.formatMessage(customMessages === null || customMessages === void 0 ? void 0 : customMessages.linkTextPlaceholder) : intl.formatMessage(linkTextMessages.linkTextPlaceholder),
381
+ clearLabel: intl.formatMessage(linkTextMessages.clearLinkText),
382
+ readOnly: isSubmitting,
383
+ onClear: handleClear,
384
+ onChange: handleChangeText
385
+ }), UNSAFE_moveSubmitButton && jsx(Box, {
386
+ xcss: FullWidthSubmitButtonStyles
387
+ }, jsx(LinkPickerSubmitButton, {
388
+ isEditing: isEditing,
389
+ isLoading: isLoadingResults || !!isLoadingPlugins,
390
+ isSubmitting: isSubmitting,
391
+ customSubmitButtonLabel: customSubmitButtonLabel,
392
+ error: error,
393
+ items: items,
394
+ queryState: queryState,
395
+ submitMessageId: submitMessageId,
396
+ testId: testIds.insertButton,
397
+ url: url
398
+ })), !!queryState && (isLoadingPlugins || isActivePlugin) && jsx(SearchResults, {
399
+ activeTab: activeTab,
400
+ tabs: tabs,
401
+ activePlugin: activePlugin,
402
+ isLoadingResults: isLoadingResults,
403
+ isLoadingPlugins: isLoadingPlugins,
404
+ isSubmitting: isSubmitting,
405
+ linkSearchListId: linkSearchListId,
406
+ error: error,
407
+ featureFlags: featureFlags,
408
+ activeIndex: activeIndex,
409
+ selectedIndex: selectedIndex,
410
+ items: items,
411
+ queryState: queryState,
412
+ handleKeyDown: handleKeyDown,
413
+ handleSelected: handleSelected,
414
+ handleTabChange: handleTabChange,
415
+ handleSearchListOnChange: handleSearchListOnChange,
416
+ adaptiveHeight: adaptiveHeight,
417
+ retry: retry
418
+ }), jsx(FormFooter, {
419
+ error: error,
420
+ items: items
421
+ /** If the results section appears to be loading, impact whether the submit button is disabled */,
422
+ isLoading: isLoadingResults || !!isLoadingPlugins,
423
+ isSubmitting: isSubmitting,
424
+ queryState: queryState,
425
+ url: url,
426
+ isEditing: isEditing,
427
+ onCancel: onCancel,
428
+ action: pluginAction
429
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
430
+ ,
431
+ css: !queryState || !(plugins !== null && plugins !== void 0 && plugins.length) ? formFooterMargin : undefined,
432
+ customSubmitButtonLabel: customSubmitButtonLabel,
433
+ submitMessageId: submitMessageId,
434
+ hideSubmitButton: UNSAFE_moveSubmitButton
435
+ }));
436
+ }));
@@ -0,0 +1,7 @@
1
+ ._16jlkb7n{flex-grow:1}
2
+ ._19pkutpp{margin-top:var(--ds-space-150,9pt)}
3
+ ._1bah1h6o{justify-content:center}
4
+ ._1e0c1txw{display:flex}
5
+ ._1tkeys9h{min-height:5pc}
6
+ ._1wpz1h6o{align-self:center}
7
+ ._4cvr1h6o{align-items:center}