@wordpress/block-editor 14.10.1 → 14.12.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 (295) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/build/components/background-image-control/index.js +0 -1
  3. package/build/components/background-image-control/index.js.map +1 -1
  4. package/build/components/block-actions/index.js +0 -3
  5. package/build/components/block-actions/index.js.map +1 -1
  6. package/build/components/block-inspector/index.js +6 -11
  7. package/build/components/block-inspector/index.js.map +1 -1
  8. package/build/components/block-list/use-block-props/use-focus-handler.js +1 -1
  9. package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  10. package/build/components/block-rename/modal.js +36 -11
  11. package/build/components/block-rename/modal.js.map +1 -1
  12. package/build/components/block-rename/rename-control.js +2 -43
  13. package/build/components/block-rename/rename-control.js.map +1 -1
  14. package/build/components/block-settings-menu/block-settings-dropdown.js +12 -3
  15. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  16. package/build/components/block-styles/preview.native.js +1 -1
  17. package/build/components/block-styles/preview.native.js.map +1 -1
  18. package/build/components/block-switcher/block-transformations-menu.js +7 -7
  19. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  20. package/build/components/block-switcher/block-variation-transformations.js +2 -2
  21. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  22. package/build/components/block-switcher/index.js +1 -1
  23. package/build/components/block-switcher/index.js.map +1 -1
  24. package/build/components/block-switcher/use-transformed-patterns.js +1 -1
  25. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  26. package/build/components/block-toolbar/index.native.js +2 -2
  27. package/build/components/block-toolbar/index.native.js.map +1 -1
  28. package/build/components/date-format-picker/index.js +1 -1
  29. package/build/components/date-format-picker/index.js.map +1 -1
  30. package/build/components/global-styles/filters-panel.js +2 -2
  31. package/build/components/global-styles/filters-panel.js.map +1 -1
  32. package/build/components/global-styles/image-settings-panel.js +2 -2
  33. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  34. package/build/components/global-styles/use-global-styles-output.js +3 -3
  35. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  36. package/build/components/grid/grid-visualizer.js +11 -19
  37. package/build/components/grid/grid-visualizer.js.map +1 -1
  38. package/build/components/grid/utils.js +6 -4
  39. package/build/components/grid/utils.js.map +1 -1
  40. package/build/components/iframe/get-compatibility-styles.js +1 -1
  41. package/build/components/iframe/get-compatibility-styles.js.map +1 -1
  42. package/build/components/iframe/index.js +1 -1
  43. package/build/components/iframe/index.js.map +1 -1
  44. package/build/components/image-size-control/index.js +2 -1
  45. package/build/components/image-size-control/index.js.map +1 -1
  46. package/build/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  47. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  48. package/build/components/inserter/menu.js +13 -2
  49. package/build/components/inserter/menu.js.map +1 -1
  50. package/build/components/inserter/reusable-blocks-tab.native.js +1 -1
  51. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  52. package/build/components/inspector-controls-tabs/position-controls-panel.js +49 -21
  53. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  54. package/build/components/line-height-control/index.native.js +1 -1
  55. package/build/components/line-height-control/index.native.js.map +1 -1
  56. package/build/components/link-control/index.js +1 -1
  57. package/build/components/link-control/index.js.map +1 -1
  58. package/build/components/link-control/use-search-handler.js +1 -1
  59. package/build/components/link-control/use-search-handler.js.map +1 -1
  60. package/build/components/list-view/block-select-button.js +5 -2
  61. package/build/components/list-view/block-select-button.js.map +1 -1
  62. package/build/components/media-placeholder/index.js +1 -0
  63. package/build/components/media-placeholder/index.js.map +1 -1
  64. package/build/components/observe-typing/index.js +1 -1
  65. package/build/components/observe-typing/index.js.map +1 -1
  66. package/build/components/provider/index.js +0 -2
  67. package/build/components/provider/index.js.map +1 -1
  68. package/build/components/provider/use-block-sync.js +2 -2
  69. package/build/components/provider/use-block-sync.js.map +1 -1
  70. package/build/components/rich-text/event-listeners/input-rules.js +3 -3
  71. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
  72. package/build/components/rich-text/native/use-format-types.js +1 -1
  73. package/build/components/rich-text/native/use-format-types.js.map +1 -1
  74. package/build/components/rich-text/use-format-types.js +1 -1
  75. package/build/components/rich-text/use-format-types.js.map +1 -1
  76. package/build/components/spacing-sizes-control/index.js +44 -2
  77. package/build/components/spacing-sizes-control/index.js.map +1 -1
  78. package/build/components/spacing-sizes-control/linked-button.js +6 -9
  79. package/build/components/spacing-sizes-control/linked-button.js.map +1 -1
  80. package/build/components/spacing-sizes-control/utils.js +0 -108
  81. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  82. package/build/components/tabbed-sidebar/index.js +39 -0
  83. package/build/components/tabbed-sidebar/index.js.map +1 -1
  84. package/build/components/typewriter/index.js +1 -1
  85. package/build/components/typewriter/index.js.map +1 -1
  86. package/build/components/url-popover/image-url-input-ui.js +3 -3
  87. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  88. package/build/components/use-block-commands/index.js +1 -1
  89. package/build/components/use-block-commands/index.js.map +1 -1
  90. package/build/components/use-moving-animation/index.js +1 -1
  91. package/build/components/use-moving-animation/index.js.map +1 -1
  92. package/build/hooks/contrast-checker.js +41 -22
  93. package/build/hooks/contrast-checker.js.map +1 -1
  94. package/build/hooks/custom-class-name.js +2 -1
  95. package/build/hooks/custom-class-name.js.map +1 -1
  96. package/build/store/actions.js +1 -1
  97. package/build/store/actions.js.map +1 -1
  98. package/build/store/selectors.js +18 -7
  99. package/build/store/selectors.js.map +1 -1
  100. package/build/utils/transform-styles/index.js +1 -1
  101. package/build/utils/transform-styles/index.js.map +1 -1
  102. package/build/utils/use-notify-copy.js +19 -11
  103. package/build/utils/use-notify-copy.js.map +1 -1
  104. package/build-module/components/background-image-control/index.js +0 -1
  105. package/build-module/components/background-image-control/index.js.map +1 -1
  106. package/build-module/components/block-actions/index.js +0 -3
  107. package/build-module/components/block-actions/index.js.map +1 -1
  108. package/build-module/components/block-inspector/index.js +6 -11
  109. package/build-module/components/block-inspector/index.js.map +1 -1
  110. package/build-module/components/block-list/use-block-props/use-focus-handler.js +1 -1
  111. package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  112. package/build-module/components/block-rename/modal.js +36 -11
  113. package/build-module/components/block-rename/modal.js.map +1 -1
  114. package/build-module/components/block-rename/rename-control.js +2 -43
  115. package/build-module/components/block-rename/rename-control.js.map +1 -1
  116. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -3
  117. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  118. package/build-module/components/block-styles/preview.native.js +1 -1
  119. package/build-module/components/block-styles/preview.native.js.map +1 -1
  120. package/build-module/components/block-switcher/block-transformations-menu.js +7 -7
  121. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  122. package/build-module/components/block-switcher/block-variation-transformations.js +2 -2
  123. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  124. package/build-module/components/block-switcher/index.js +1 -1
  125. package/build-module/components/block-switcher/index.js.map +1 -1
  126. package/build-module/components/block-switcher/use-transformed-patterns.js +1 -1
  127. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  128. package/build-module/components/block-toolbar/index.native.js +2 -2
  129. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  130. package/build-module/components/date-format-picker/index.js +1 -1
  131. package/build-module/components/date-format-picker/index.js.map +1 -1
  132. package/build-module/components/global-styles/filters-panel.js +2 -2
  133. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  134. package/build-module/components/global-styles/image-settings-panel.js +2 -2
  135. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  136. package/build-module/components/global-styles/use-global-styles-output.js +3 -3
  137. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  138. package/build-module/components/grid/grid-visualizer.js +11 -19
  139. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  140. package/build-module/components/grid/utils.js +6 -4
  141. package/build-module/components/grid/utils.js.map +1 -1
  142. package/build-module/components/iframe/get-compatibility-styles.js +1 -1
  143. package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
  144. package/build-module/components/iframe/index.js +1 -1
  145. package/build-module/components/iframe/index.js.map +1 -1
  146. package/build-module/components/image-size-control/index.js +3 -2
  147. package/build-module/components/image-size-control/index.js.map +1 -1
  148. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  149. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  150. package/build-module/components/inserter/menu.js +13 -2
  151. package/build-module/components/inserter/menu.js.map +1 -1
  152. package/build-module/components/inserter/reusable-blocks-tab.native.js +1 -1
  153. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  154. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +51 -23
  155. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  156. package/build-module/components/line-height-control/index.native.js +1 -1
  157. package/build-module/components/line-height-control/index.native.js.map +1 -1
  158. package/build-module/components/link-control/index.js +1 -1
  159. package/build-module/components/link-control/index.js.map +1 -1
  160. package/build-module/components/link-control/use-search-handler.js +1 -1
  161. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  162. package/build-module/components/list-view/block-select-button.js +6 -3
  163. package/build-module/components/list-view/block-select-button.js.map +1 -1
  164. package/build-module/components/media-placeholder/index.js +1 -0
  165. package/build-module/components/media-placeholder/index.js.map +1 -1
  166. package/build-module/components/observe-typing/index.js +1 -1
  167. package/build-module/components/observe-typing/index.js.map +1 -1
  168. package/build-module/components/provider/index.js +0 -1
  169. package/build-module/components/provider/index.js.map +1 -1
  170. package/build-module/components/provider/use-block-sync.js +2 -2
  171. package/build-module/components/provider/use-block-sync.js.map +1 -1
  172. package/build-module/components/rich-text/event-listeners/input-rules.js +3 -3
  173. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
  174. package/build-module/components/rich-text/native/use-format-types.js +1 -1
  175. package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
  176. package/build-module/components/rich-text/use-format-types.js +1 -1
  177. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  178. package/build-module/components/spacing-sizes-control/index.js +45 -1
  179. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  180. package/build-module/components/spacing-sizes-control/linked-button.js +7 -10
  181. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -1
  182. package/build-module/components/spacing-sizes-control/utils.js +0 -104
  183. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  184. package/build-module/components/tabbed-sidebar/index.js +39 -0
  185. package/build-module/components/tabbed-sidebar/index.js.map +1 -1
  186. package/build-module/components/typewriter/index.js +1 -1
  187. package/build-module/components/typewriter/index.js.map +1 -1
  188. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  189. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  190. package/build-module/components/use-block-commands/index.js +1 -1
  191. package/build-module/components/use-block-commands/index.js.map +1 -1
  192. package/build-module/components/use-moving-animation/index.js +1 -1
  193. package/build-module/components/use-moving-animation/index.js.map +1 -1
  194. package/build-module/hooks/contrast-checker.js +42 -23
  195. package/build-module/hooks/contrast-checker.js.map +1 -1
  196. package/build-module/hooks/custom-class-name.js +2 -1
  197. package/build-module/hooks/custom-class-name.js.map +1 -1
  198. package/build-module/store/actions.js +1 -1
  199. package/build-module/store/actions.js.map +1 -1
  200. package/build-module/store/selectors.js +18 -7
  201. package/build-module/store/selectors.js.map +1 -1
  202. package/build-module/utils/transform-styles/index.js +1 -1
  203. package/build-module/utils/transform-styles/index.js.map +1 -1
  204. package/build-module/utils/use-notify-copy.js +19 -11
  205. package/build-module/utils/use-notify-copy.js.map +1 -1
  206. package/build-style/content-rtl.css +0 -9
  207. package/build-style/content.css +0 -9
  208. package/build-style/style-rtl.css +19 -21
  209. package/build-style/style.css +19 -21
  210. package/package.json +34 -33
  211. package/src/components/background-image-control/index.js +0 -1
  212. package/src/components/block-actions/index.js +0 -3
  213. package/src/components/block-icon/content.scss +1 -1
  214. package/src/components/{block-card → block-icon}/stories/index.story.js +16 -26
  215. package/src/components/block-icon/style.scss +1 -1
  216. package/src/components/block-inspector/index.js +7 -10
  217. package/src/components/block-list/use-block-props/use-focus-handler.js +1 -1
  218. package/src/components/block-preview/style.scss +1 -1
  219. package/src/components/block-rename/modal.js +40 -12
  220. package/src/components/block-rename/rename-control.js +1 -53
  221. package/src/components/block-settings-menu/block-settings-dropdown.js +16 -2
  222. package/src/components/block-styles/preview.native.js +1 -1
  223. package/src/components/block-switcher/block-transformations-menu.js +9 -9
  224. package/src/components/block-switcher/block-variation-transformations.js +2 -2
  225. package/src/components/block-switcher/index.js +1 -1
  226. package/src/components/block-switcher/use-transformed-patterns.js +1 -1
  227. package/src/components/block-toolbar/index.native.js +2 -2
  228. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  229. package/src/components/colors-gradients/style.scss +1 -0
  230. package/src/components/colors-gradients/test/control.js +2 -2
  231. package/src/components/date-format-picker/index.js +1 -1
  232. package/src/components/duotone-control/style.scss +2 -2
  233. package/src/components/global-styles/filters-panel.js +4 -2
  234. package/src/components/global-styles/image-settings-panel.js +2 -2
  235. package/src/components/global-styles/test/typography-utils.js +1 -1
  236. package/src/components/global-styles/use-global-styles-output.js +3 -3
  237. package/src/components/grid/grid-visualizer.js +10 -21
  238. package/src/components/grid/style.scss +1 -0
  239. package/src/components/grid/utils.js +6 -4
  240. package/src/components/iframe/get-compatibility-styles.js +1 -1
  241. package/src/components/iframe/index.js +1 -1
  242. package/src/components/image-size-control/index.js +6 -2
  243. package/src/components/inner-blocks/README.md +1 -1
  244. package/src/components/inserter/block-patterns-tab/patterns-filter.js +1 -1
  245. package/src/components/inserter/menu.js +11 -9
  246. package/src/components/inserter/reusable-blocks-tab.native.js +1 -1
  247. package/src/components/inspector-controls-tabs/position-controls-panel.js +62 -27
  248. package/src/components/line-height-control/index.native.js +1 -1
  249. package/src/components/link-control/README.md +2 -2
  250. package/src/components/link-control/index.js +1 -1
  251. package/src/components/link-control/test/index.js +3 -3
  252. package/src/components/link-control/use-search-handler.js +1 -1
  253. package/src/components/list-view/README.md +1 -1
  254. package/src/components/list-view/block-select-button.js +5 -5
  255. package/src/components/list-view/style.scss +3 -7
  256. package/src/components/media-placeholder/content.scss +0 -8
  257. package/src/components/media-placeholder/index.js +1 -0
  258. package/src/components/media-placeholder/style.scss +7 -0
  259. package/src/components/observe-typing/index.js +1 -1
  260. package/src/components/provider/index.js +0 -1
  261. package/src/components/provider/use-block-sync.js +2 -2
  262. package/src/components/resolution-tool/stories/index.story.js +52 -2
  263. package/src/components/rich-text/README.md +1 -1
  264. package/src/components/rich-text/event-listeners/input-rules.js +3 -3
  265. package/src/components/rich-text/native/use-format-types.js +1 -1
  266. package/src/components/rich-text/use-format-types.js +1 -1
  267. package/src/components/spacing-sizes-control/README.md +93 -0
  268. package/src/components/spacing-sizes-control/index.js +44 -1
  269. package/src/components/spacing-sizes-control/linked-button.js +8 -10
  270. package/src/components/spacing-sizes-control/test/utils.js +0 -151
  271. package/src/components/spacing-sizes-control/utils.js +0 -106
  272. package/src/components/tabbed-sidebar/README.md +24 -13
  273. package/src/components/tabbed-sidebar/index.js +38 -0
  274. package/src/components/tabbed-sidebar/stories/index.story.js +104 -0
  275. package/src/components/typewriter/index.js +1 -1
  276. package/src/components/unit-control/README.md +1 -1
  277. package/src/components/unit-control/stories/index.story.js +124 -0
  278. package/src/components/url-popover/image-url-input-ui.js +3 -3
  279. package/src/components/use-block-commands/index.js +1 -1
  280. package/src/components/use-moving-animation/index.js +1 -1
  281. package/src/components/use-settings/README.md +1 -1
  282. package/src/components/warning/content.scss +1 -1
  283. package/src/components/writing-flow/test/index.js +1 -1
  284. package/src/hooks/color.scss +0 -7
  285. package/src/hooks/contrast-checker.js +64 -30
  286. package/src/hooks/custom-class-name.js +2 -1
  287. package/src/store/actions.js +1 -1
  288. package/src/store/selectors.js +20 -12
  289. package/src/store/test/private-selectors.js +1 -1
  290. package/src/store/test/selectors.js +3 -3
  291. package/src/style.scss +1 -0
  292. package/src/utils/test/sorting.js +1 -1
  293. package/src/utils/transform-styles/index.js +1 -1
  294. package/src/utils/use-notify-copy.js +51 -43
  295. package/tsconfig.json +1 -0
@@ -1,4 +1,3 @@
1
- /* wp:polyfill */
2
1
  "use strict";
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -8,11 +7,12 @@ Object.defineProperty(exports, "__esModule", {
8
7
  exports.default = void 0;
9
8
  var _components = require("@wordpress/components");
10
9
  var _data = require("@wordpress/data");
11
- var _element = require("@wordpress/element");
12
10
  var _i18n = require("@wordpress/i18n");
13
11
  var _groups = _interopRequireDefault(require("../inspector-controls/groups"));
14
12
  var _inspectorControls = _interopRequireDefault(require("../inspector-controls"));
15
13
  var _store = require("../../store");
14
+ var _utils = require("../global-styles/utils");
15
+ var _utils2 = require("../../hooks/utils");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  /**
18
18
  * WordPress dependencies
@@ -23,36 +23,64 @@ var _jsxRuntime = require("react/jsx-runtime");
23
23
  */
24
24
 
25
25
  const PositionControlsPanel = () => {
26
- const [initialOpen, setInitialOpen] = (0, _element.useState)();
27
-
28
- // Determine whether the panel should be expanded.
29
26
  const {
30
- multiSelectedBlocks
27
+ selectedClientIds,
28
+ selectedBlocks,
29
+ hasPositionAttribute
31
30
  } = (0, _data.useSelect)(select => {
32
31
  const {
33
32
  getBlocksByClientId,
34
33
  getSelectedBlockClientIds
35
34
  } = select(_store.store);
36
- const clientIds = getSelectedBlockClientIds();
35
+ const selectedBlockClientIds = getSelectedBlockClientIds();
36
+ const _selectedBlocks = getBlocksByClientId(selectedBlockClientIds);
37
37
  return {
38
- multiSelectedBlocks: getBlocksByClientId(clientIds)
38
+ selectedClientIds: selectedBlockClientIds,
39
+ selectedBlocks: _selectedBlocks,
40
+ hasPositionAttribute: _selectedBlocks?.some(({
41
+ attributes
42
+ }) => !!attributes?.style?.position?.type)
39
43
  };
40
44
  }, []);
41
- (0, _element.useLayoutEffect)(() => {
42
- // If any selected block has a position set, open the panel by default.
43
- // The first block's value will still be used within the control though.
44
- if (initialOpen === undefined) {
45
- setInitialOpen(multiSelectedBlocks.some(({
46
- attributes
47
- }) => !!attributes?.style?.position?.type));
45
+ const {
46
+ updateBlockAttributes
47
+ } = (0, _data.useDispatch)(_store.store);
48
+ const dropdownMenuProps = (0, _utils.useToolsPanelDropdownMenuProps)();
49
+ function resetPosition() {
50
+ if (!selectedClientIds?.length || !selectedBlocks?.length) {
51
+ return;
48
52
  }
49
- }, [initialOpen, multiSelectedBlocks, setInitialOpen]);
50
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.PanelBody, {
53
+ const attributesByClientId = Object.fromEntries(selectedBlocks?.map(({
54
+ clientId,
55
+ attributes
56
+ }) => [clientId, {
57
+ style: (0, _utils2.cleanEmptyObject)({
58
+ ...attributes?.style,
59
+ position: {
60
+ ...attributes?.style?.position,
61
+ type: undefined,
62
+ top: undefined,
63
+ right: undefined,
64
+ bottom: undefined,
65
+ left: undefined
66
+ }
67
+ })
68
+ }]));
69
+ updateBlockAttributes(selectedClientIds, attributesByClientId, true);
70
+ }
71
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanel, {
51
72
  className: "block-editor-block-inspector__position",
52
- title: (0, _i18n.__)('Position'),
53
- initialOpen: initialOpen !== null && initialOpen !== void 0 ? initialOpen : false,
54
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_inspectorControls.default.Slot, {
55
- group: "position"
73
+ label: (0, _i18n.__)('Position'),
74
+ resetAll: resetPosition,
75
+ dropdownMenuProps: dropdownMenuProps,
76
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
77
+ isShownByDefault: hasPositionAttribute,
78
+ label: (0, _i18n.__)('Position'),
79
+ hasValue: () => hasPositionAttribute,
80
+ onDeselect: resetPosition,
81
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_inspectorControls.default.Slot, {
82
+ group: "position"
83
+ })
56
84
  })
57
85
  });
58
86
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_data","_element","_i18n","_groups","_interopRequireDefault","_inspectorControls","_store","_jsxRuntime","PositionControlsPanel","initialOpen","setInitialOpen","useState","multiSelectedBlocks","useSelect","select","getBlocksByClientId","getSelectedBlockClientIds","blockEditorStore","clientIds","useLayoutEffect","undefined","some","attributes","style","position","type","jsx","PanelBody","className","title","__","children","default","Slot","group","PositionControls","fills","useSlotFills","InspectorControlsGroups","name","hasFills","Boolean","length","_default","exports"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/position-controls-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\t__experimentalUseSlotFills as useSlotFills,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useLayoutEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { store as blockEditorStore } from '../../store';\n\nconst PositionControlsPanel = () => {\n\tconst [ initialOpen, setInitialOpen ] = useState();\n\n\t// Determine whether the panel should be expanded.\n\tconst { multiSelectedBlocks } = useSelect( ( select ) => {\n\t\tconst { getBlocksByClientId, getSelectedBlockClientIds } =\n\t\t\tselect( blockEditorStore );\n\t\tconst clientIds = getSelectedBlockClientIds();\n\t\treturn {\n\t\t\tmultiSelectedBlocks: getBlocksByClientId( clientIds ),\n\t\t};\n\t}, [] );\n\n\tuseLayoutEffect( () => {\n\t\t// If any selected block has a position set, open the panel by default.\n\t\t// The first block's value will still be used within the control though.\n\t\tif ( initialOpen === undefined ) {\n\t\t\tsetInitialOpen(\n\t\t\t\tmultiSelectedBlocks.some(\n\t\t\t\t\t( { attributes } ) => !! attributes?.style?.position?.type\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ initialOpen, multiSelectedBlocks, setInitialOpen ] );\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__position\"\n\t\t\ttitle={ __( 'Position' ) }\n\t\t\tinitialOpen={ initialOpen ?? false }\n\t\t>\n\t\t\t<InspectorControls.Slot group=\"position\" />\n\t\t</PanelBody>\n\t);\n};\n\nconst PositionControls = () => {\n\tconst fills = useSlotFills( InspectorControlsGroups.position.name );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn <PositionControlsPanel />;\n};\n\nexport default PositionControls;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,OAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAD,sBAAA,CAAAL,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAAwD,IAAAQ,WAAA,GAAAR,OAAA;AAhBxD;AACA;AACA;;AASA;AACA;AACA;;AAKA,MAAMS,qBAAqB,GAAGA,CAAA,KAAM;EACnC,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAC,CAAC;;EAElD;EACA,MAAM;IAAEC;EAAoB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxD,MAAM;MAAEC,mBAAmB;MAAEC;IAA0B,CAAC,GACvDF,MAAM,CAAEG,YAAiB,CAAC;IAC3B,MAAMC,SAAS,GAAGF,yBAAyB,CAAC,CAAC;IAC7C,OAAO;MACNJ,mBAAmB,EAAEG,mBAAmB,CAAEG,SAAU;IACrD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAAC,wBAAe,EAAE,MAAM;IACtB;IACA;IACA,IAAKV,WAAW,KAAKW,SAAS,EAAG;MAChCV,cAAc,CACbE,mBAAmB,CAACS,IAAI,CACvB,CAAE;QAAEC;MAAW,CAAC,KAAM,CAAC,CAAEA,UAAU,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IACvD,CACD,CAAC;IACF;EACD,CAAC,EAAE,CAAEhB,WAAW,EAAEG,mBAAmB,EAAEF,cAAc,CAAG,CAAC;EAEzD,oBACC,IAAAH,WAAA,CAAAmB,GAAA,EAAC5B,WAAA,CAAA6B,SAAS;IACTC,SAAS,EAAC,wCAAwC;IAClDC,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW,CAAG;IAC1BrB,WAAW,EAAGA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,KAAO;IAAAsB,QAAA,eAEpC,IAAAxB,WAAA,CAAAmB,GAAA,EAACrB,kBAAA,CAAA2B,OAAiB,CAACC,IAAI;MAACC,KAAK,EAAC;IAAU,CAAE;EAAC,CACjC,CAAC;AAEd,CAAC;AAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC9B,MAAMC,KAAK,GAAG,IAAAC,sCAAY,EAAEC,eAAuB,CAACd,QAAQ,CAACe,IAAK,CAAC;EACnE,MAAMC,QAAQ,GAAGC,OAAO,CAAEL,KAAK,IAAIA,KAAK,CAACM,MAAO,CAAC;EAEjD,IAAK,CAAEF,QAAQ,EAAG;IACjB,OAAO,IAAI;EACZ;EAEA,oBAAO,IAAAjC,WAAA,CAAAmB,GAAA,EAAClB,qBAAqB,IAAE,CAAC;AACjC,CAAC;AAAC,IAAAmC,QAAA,GAAAC,OAAA,CAAAZ,OAAA,GAEaG,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_data","_i18n","_groups","_interopRequireDefault","_inspectorControls","_store","_utils","_utils2","_jsxRuntime","PositionControlsPanel","selectedClientIds","selectedBlocks","hasPositionAttribute","useSelect","select","getBlocksByClientId","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","_selectedBlocks","some","attributes","style","position","type","updateBlockAttributes","useDispatch","dropdownMenuProps","useToolsPanelDropdownMenuProps","resetPosition","length","attributesByClientId","Object","fromEntries","map","clientId","cleanEmptyObject","undefined","top","right","bottom","left","jsx","__experimentalToolsPanel","className","label","__","resetAll","children","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","default","Slot","group","PositionControls","fills","useSlotFills","InspectorControlsGroups","name","hasFills","Boolean","_default","exports"],"sources":["@wordpress/block-editor/src/components/inspector-controls-tabs/position-controls-panel.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseSlotFills as useSlotFills,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControlsGroups from '../inspector-controls/groups';\nimport { default as InspectorControls } from '../inspector-controls';\nimport { store as blockEditorStore } from '../../store';\nimport { useToolsPanelDropdownMenuProps } from '../global-styles/utils';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nconst PositionControlsPanel = () => {\n\tconst { selectedClientIds, selectedBlocks, hasPositionAttribute } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getBlocksByClientId, getSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst _selectedBlocks = getBlocksByClientId(\n\t\t\t\tselectedBlockClientIds\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tselectedClientIds: selectedBlockClientIds,\n\t\t\t\tselectedBlocks: _selectedBlocks,\n\t\t\t\thasPositionAttribute: _selectedBlocks?.some(\n\t\t\t\t\t( { attributes } ) => !! attributes?.style?.position?.type\n\t\t\t\t),\n\t\t\t};\n\t\t}, [] );\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tfunction resetPosition() {\n\t\tif ( ! selectedClientIds?.length || ! selectedBlocks?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tselectedBlocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.style,\n\t\t\t\t\t\tposition: {\n\t\t\t\t\t\t\t...attributes?.style?.position,\n\t\t\t\t\t\t\ttype: undefined,\n\t\t\t\t\t\t\ttop: undefined,\n\t\t\t\t\t\t\tright: undefined,\n\t\t\t\t\t\t\tbottom: undefined,\n\t\t\t\t\t\t\tleft: undefined,\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\n\t\tupdateBlockAttributes( selectedClientIds, attributesByClientId, true );\n\t}\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName=\"block-editor-block-inspector__position\"\n\t\t\tlabel={ __( 'Position' ) }\n\t\t\tresetAll={ resetPosition }\n\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t>\n\t\t\t<ToolsPanelItem\n\t\t\t\tisShownByDefault={ hasPositionAttribute }\n\t\t\t\tlabel={ __( 'Position' ) }\n\t\t\t\thasValue={ () => hasPositionAttribute }\n\t\t\t\tonDeselect={ resetPosition }\n\t\t\t>\n\t\t\t\t<InspectorControls.Slot group=\"position\" />\n\t\t\t</ToolsPanelItem>\n\t\t</ToolsPanel>\n\t);\n};\n\nconst PositionControls = () => {\n\tconst fills = useSlotFills( InspectorControlsGroups.position.name );\n\tconst hasFills = Boolean( fills && fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn <PositionControlsPanel />;\n};\n\nexport default PositionControls;\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ function LineHeightControl({
24
24
  const value = isDefined ? lineHeight : _utils.BASE_DEFAULT_VALUE;
25
25
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.UnitControl, {
26
26
  label: (0, _i18n.__)('Line Height')
27
- // Set minimun value of 1 since lower values break on Android
27
+ // Set minimum value of 1 since lower values break on Android
28
28
  ,
29
29
  min: 1,
30
30
  max: 5,
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_components","_utils","_jsxRuntime","LineHeightControl","value","lineHeight","onChange","isDefined","isLineHeightDefined","BASE_DEFAULT_VALUE","jsx","UnitControl","label","__","min","max","step","STEP","units"],"sources":["@wordpress/block-editor/src/components/line-height-control/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { UnitControl } from '@wordpress/components';\n/**\n * Internal dependencies\n */\nimport { BASE_DEFAULT_VALUE, STEP, isLineHeightDefined } from './utils';\n\nexport default function LineHeightControl( { value: lineHeight, onChange } ) {\n\tconst isDefined = isLineHeightDefined( lineHeight );\n\tconst value = isDefined ? lineHeight : BASE_DEFAULT_VALUE;\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Line Height' ) }\n\t\t\t// Set minimun value of 1 since lower values break on Android\n\t\t\tmin={ 1 }\n\t\t\tmax={ 5 }\n\t\t\tstep={ STEP }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t// TODO: should be updated to avoid using `false`, in order to\n\t\t\t// align with the web version of `UnitControl`\n\t\t\tunits={ false }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAAwE,IAAAG,WAAA,GAAAH,OAAA;AARxE;AACA;AACA;;AAGA;AACA;AACA;;AAGe,SAASI,iBAAiBA,CAAE;EAAEC,KAAK,EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EAC5E,MAAMC,SAAS,GAAG,IAAAC,0BAAmB,EAAEH,UAAW,CAAC;EACnD,MAAMD,KAAK,GAAGG,SAAS,GAAGF,UAAU,GAAGI,yBAAkB;EACzD,oBACC,IAAAP,WAAA,CAAAQ,GAAA,EAACV,WAAA,CAAAW,WAAW;IACXC,KAAK,EAAG,IAAAC,QAAE,EAAE,aAAc;IAC1B;IAAA;IACAC,GAAG,EAAG,CAAG;IACTC,GAAG,EAAG,CAAG;IACTC,IAAI,EAAGC,WAAM;IACbb,KAAK,EAAGA,KAAO;IACfE,QAAQ,EAAGA;IACX;IACA;IAAA;IACAY,KAAK,EAAG;EAAO,CACf,CAAC;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_components","_utils","_jsxRuntime","LineHeightControl","value","lineHeight","onChange","isDefined","isLineHeightDefined","BASE_DEFAULT_VALUE","jsx","UnitControl","label","__","min","max","step","STEP","units"],"sources":["@wordpress/block-editor/src/components/line-height-control/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { UnitControl } from '@wordpress/components';\n/**\n * Internal dependencies\n */\nimport { BASE_DEFAULT_VALUE, STEP, isLineHeightDefined } from './utils';\n\nexport default function LineHeightControl( { value: lineHeight, onChange } ) {\n\tconst isDefined = isLineHeightDefined( lineHeight );\n\tconst value = isDefined ? lineHeight : BASE_DEFAULT_VALUE;\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Line Height' ) }\n\t\t\t// Set minimum value of 1 since lower values break on Android\n\t\t\tmin={ 1 }\n\t\t\tmax={ 5 }\n\t\t\tstep={ STEP }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\t// TODO: should be updated to avoid using `false`, in order to\n\t\t\t// align with the web version of `UnitControl`\n\t\t\tunits={ false }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAAwE,IAAAG,WAAA,GAAAH,OAAA;AARxE;AACA;AACA;;AAGA;AACA;AACA;;AAGe,SAASI,iBAAiBA,CAAE;EAAEC,KAAK,EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EAC5E,MAAMC,SAAS,GAAG,IAAAC,0BAAmB,EAAEH,UAAW,CAAC;EACnD,MAAMD,KAAK,GAAGG,SAAS,GAAGF,UAAU,GAAGI,yBAAkB;EACzD,oBACC,IAAAP,WAAA,CAAAQ,GAAA,EAACV,WAAA,CAAAW,WAAW;IACXC,KAAK,EAAG,IAAAC,QAAE,EAAE,aAAc;IAC1B;IAAA;IACAC,GAAG,EAAG,CAAG;IACTC,GAAG,EAAG,CAAG;IACTC,IAAI,EAAGC,WAAM;IACbb,KAAK,EAAGA,KAAO;IACfE,QAAQ,EAAGA;IACX;IACA;IAAA;IACAY,KAAK,EAAG;EAAO,CACf,CAAC;AAEJ","ignoreList":[]}
@@ -239,7 +239,7 @@ function LinkControl({
239
239
  };
240
240
  const handleSelectSuggestion = updatedValue => {
241
241
  // Suggestions may contains "settings" values (e.g. `opensInNewTab`)
242
- // which should not overide any existing settings values set by the
242
+ // which should not override any existing settings values set by the
243
243
  // user. This filters out any settings values from the suggestion.
244
244
  const nonSettingsChanges = Object.keys(updatedValue).reduce((acc, key) => {
245
245
  if (!settingsKeys.includes(key)) {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_dom","_keycodes","_isShallowEqual","_data","_preferences","_icons","_settingsDrawer","_searchInput","_linkPreview","_settings","_useCreatePage","_useInternalValue","_viewerSlot","_constants","_deprecated","_jsxRuntime","noop","PREFERENCE_SCOPE","PREFERENCE_KEY","LinkControl","searchInputPlaceholder","value","settings","DEFAULT_LINK_SETTINGS","onChange","onRemove","onCancel","noDirectEntry","showSuggestions","showInitialSuggestions","forceIsEditingLink","createSuggestion","withCreateSuggestion","inputValue","propInputValue","suggestionsQuery","noURLSuggestion","createSuggestionButtonText","hasRichPreviews","hasTextControl","renderControlBottom","undefined","settingsOpen","setSettingsOpen","useState","advancedSettingsPreference","useSelect","select","_prefsStore$get","prefsStore","preferencesStore","get","set","setPreference","useDispatch","setSettingsOpenWithPreference","prefVal","isSettingsOpen","isMountingRef","useRef","wrapperNode","textInputRef","isEndingEditWithFocusRef","settingsKeys","map","id","internalControlValue","setInternalControlValue","setInternalURLInputValue","setInternalTextInputValue","createSetInternalSettingValueHandler","useInternalValue","valueHasChanges","isShallowEqualObjects","isEditingLink","setIsEditingLink","url","createPage","isCreatingPage","errorMessage","useCreatePage","useEffect","current","nextFocusTarget","focus","focusable","find","hasLinkValue","trim","length","stopEditing","contains","ownerDocument","activeElement","handleSelectSuggestion","updatedValue","nonSettingsChanges","Object","keys","reduce","acc","key","includes","title","handleSubmit","currentUrlInputValue","handleSubmitWithEnter","event","keyCode","ENTER","currentInputIsEmpty","preventDefault","resetInternalValues","handleCancel","stopPropagation","shownUnlinkControl","showActions","showTextControl","isEditing","isDisabled","showSettings","jsxs","tabIndex","ref","className","children","jsx","Spinner","__","Fragment","clsx","TextControl","__nextHasNoMarginBottom","label","onKeyDown","__next40pxDefaultSize","default","currentLink","placeholder","onCreateSuggestion","onSelect","allowDirectEntry","withURLSuggestion","hideLabelFromVision","suffix","__experimentalInputControlSuffixWrapper","variant","Button","onClick","icon","keyboardReturn","size","Notice","status","isDismissible","onEditClick","hasUnlinkControl","__experimentalHStack","justify","ViewerFill","DeprecatedExperimentalLinkControl","props","deprecated","since","alternative","exports","_default"],"sources":["@wordpress/block-editor/src/components/link-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tSpinner,\n\tNotice,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useState, useEffect } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport { ENTER } from '@wordpress/keycodes';\nimport { isShallowEqualObjects } from '@wordpress/is-shallow-equal';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSettingsDrawer from './settings-drawer';\nimport LinkControlSearchInput from './search-input';\nimport LinkPreview from './link-preview';\nimport LinkSettings from './settings';\nimport useCreatePage from './use-create-page';\nimport useInternalValue from './use-internal-value';\nimport { ViewerFill } from './viewer-slot';\nimport { DEFAULT_LINK_SETTINGS } from './constants';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Default properties associated with a link control value.\n *\n * @typedef WPLinkControlDefaultValue\n *\n * @property {string} url Link URL.\n * @property {string=} title Link title.\n * @property {boolean=} opensInNewTab Whether link should open in a new browser\n * tab. This value is only assigned if not\n * providing a custom `settings` prop.\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Custom settings values associated with a link.\n *\n * @typedef {{[setting:string]:any}} WPLinkControlSettingsValue\n */\n/* eslint-enable */\n\n/**\n * Custom settings values associated with a link.\n *\n * @typedef WPLinkControlSetting\n *\n * @property {string} id Identifier to use as property for setting value.\n * @property {string} title Human-readable label to show in user interface.\n */\n\n/**\n * Properties associated with a link control value, composed as a union of the\n * default properties and any custom settings values.\n *\n * @typedef {WPLinkControlDefaultValue&WPLinkControlSettingsValue} WPLinkControlValue\n */\n\n/** @typedef {(nextValue:WPLinkControlValue)=>void} WPLinkControlOnChangeProp */\n\n/**\n * Properties associated with a search suggestion used within the LinkControl.\n *\n * @typedef WPLinkControlSuggestion\n *\n * @property {string} id Identifier to use to uniquely identify the suggestion.\n * @property {string} type Identifies the type of the suggestion (eg: `post`,\n * `page`, `url`...etc)\n * @property {string} title Human-readable label to show in user interface.\n * @property {string} url A URL for the suggestion.\n */\n\n/** @typedef {(title:string)=>WPLinkControlSuggestion} WPLinkControlCreateSuggestionProp */\n\n/**\n * @typedef WPLinkControlProps\n *\n * @property {(WPLinkControlSetting[])=} settings An array of settings objects. Each object will used to\n * render a `ToggleControl` for that setting.\n * @property {boolean=} forceIsEditingLink If passed as either `true` or `false`, controls the\n * internal editing state of the component to respective\n * show or not show the URL input field.\n * @property {WPLinkControlValue=} value Current link value.\n * @property {WPLinkControlOnChangeProp=} onChange Value change handler, called with the updated value if\n * the user selects a new link or updates settings.\n * @property {boolean=} noDirectEntry Whether to allow turning a URL-like search query directly into a link.\n * @property {boolean=} showSuggestions Whether to present suggestions when typing the URL.\n * @property {boolean=} showInitialSuggestions Whether to present initial suggestions immediately.\n * @property {boolean=} withCreateSuggestion Whether to allow creation of link value from suggestion.\n * @property {Object=} suggestionsQuery Query parameters to pass along to wp.blockEditor.__experimentalFetchLinkSuggestions.\n * @property {boolean=} noURLSuggestion Whether to add a fallback suggestion which treats the search query as a URL.\n * @property {boolean=} hasTextControl Whether to add a text field to the UI to update the value.title.\n * @property {string|Function|undefined} createSuggestionButtonText The text to use in the button that calls createSuggestion.\n * @property {Function} renderControlBottom Optional controls to be rendered at the bottom of the component.\n */\n\nconst noop = () => {};\n\nconst PREFERENCE_SCOPE = 'core/block-editor';\nconst PREFERENCE_KEY = 'linkControlSettingsDrawer';\n\n/**\n * Renders a link control. A link control is a controlled input which maintains\n * a value associated with a link (HTML anchor element) and relevant settings\n * for how that link is expected to behave.\n *\n * @param {WPLinkControlProps} props Component props.\n */\nfunction LinkControl( {\n\tsearchInputPlaceholder,\n\tvalue,\n\tsettings = DEFAULT_LINK_SETTINGS,\n\tonChange = noop,\n\tonRemove,\n\tonCancel,\n\tnoDirectEntry = false,\n\tshowSuggestions = true,\n\tshowInitialSuggestions,\n\tforceIsEditingLink,\n\tcreateSuggestion,\n\twithCreateSuggestion,\n\tinputValue: propInputValue = '',\n\tsuggestionsQuery = {},\n\tnoURLSuggestion = false,\n\tcreateSuggestionButtonText,\n\thasRichPreviews = false,\n\thasTextControl = false,\n\trenderControlBottom = null,\n} ) {\n\tif ( withCreateSuggestion === undefined && createSuggestion ) {\n\t\twithCreateSuggestion = true;\n\t}\n\n\tconst [ settingsOpen, setSettingsOpen ] = useState( false );\n\n\tconst { advancedSettingsPreference } = useSelect( ( select ) => {\n\t\tconst prefsStore = select( preferencesStore );\n\n\t\treturn {\n\t\t\tadvancedSettingsPreference:\n\t\t\t\tprefsStore.get( PREFERENCE_SCOPE, PREFERENCE_KEY ) ?? false,\n\t\t};\n\t}, [] );\n\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\t/**\n\t * Sets the open/closed state of the Advanced Settings Drawer,\n\t * optionlly persisting the state to the user's preferences.\n\t *\n\t * Note that Block Editor components can be consumed by non-WordPress\n\t * environments which may not have preferences setup.\n\t * Therefore a local state is also used as a fallback.\n\t *\n\t * @param {boolean} prefVal the open/closed state of the Advanced Settings Drawer.\n\t */\n\tconst setSettingsOpenWithPreference = ( prefVal ) => {\n\t\tif ( setPreference ) {\n\t\t\tsetPreference( PREFERENCE_SCOPE, PREFERENCE_KEY, prefVal );\n\t\t}\n\t\tsetSettingsOpen( prefVal );\n\t};\n\n\t// Block Editor components can be consumed by non-WordPress environments\n\t// which may not have these preferences setup.\n\t// Therefore a local state is used as a fallback.\n\tconst isSettingsOpen = advancedSettingsPreference || settingsOpen;\n\n\tconst isMountingRef = useRef( true );\n\tconst wrapperNode = useRef();\n\tconst textInputRef = useRef();\n\tconst isEndingEditWithFocusRef = useRef( false );\n\n\tconst settingsKeys = settings.map( ( { id } ) => id );\n\n\tconst [\n\t\tinternalControlValue,\n\t\tsetInternalControlValue,\n\t\tsetInternalURLInputValue,\n\t\tsetInternalTextInputValue,\n\t\tcreateSetInternalSettingValueHandler,\n\t] = useInternalValue( value );\n\n\tconst valueHasChanges =\n\t\tvalue && ! isShallowEqualObjects( internalControlValue, value );\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState(\n\t\tforceIsEditingLink !== undefined\n\t\t\t? forceIsEditingLink\n\t\t\t: ! value || ! value.url\n\t);\n\n\tconst { createPage, isCreatingPage, errorMessage } =\n\t\tuseCreatePage( createSuggestion );\n\n\tuseEffect( () => {\n\t\tif ( forceIsEditingLink === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsEditingLink( forceIsEditingLink );\n\t}, [ forceIsEditingLink ] );\n\n\tuseEffect( () => {\n\t\t// We don't auto focus into the Link UI on mount\n\t\t// because otherwise using the keyboard to select text\n\t\t// *within* the link format is not possible.\n\t\tif ( isMountingRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Scenario - when:\n\t\t// - switching between editable and non editable LinkControl\n\t\t// - clicking on a link\n\t\t// ...then move focus to the *first* element to avoid focus loss\n\t\t// and to ensure focus is *within* the Link UI.\n\t\tconst nextFocusTarget =\n\t\t\tfocus.focusable.find( wrapperNode.current )[ 0 ] ||\n\t\t\twrapperNode.current;\n\n\t\tnextFocusTarget.focus();\n\n\t\tisEndingEditWithFocusRef.current = false;\n\t}, [ isEditingLink, isCreatingPage ] );\n\n\t// The component mounting reference is maintained separately\n\t// to correctly reset values in `StrictMode`.\n\tuseEffect( () => {\n\t\tisMountingRef.current = false;\n\n\t\treturn () => {\n\t\t\tisMountingRef.current = true;\n\t\t};\n\t}, [] );\n\n\tconst hasLinkValue = value?.url?.trim()?.length > 0;\n\n\t/**\n\t * Cancels editing state and marks that focus may need to be restored after\n\t * the next render, if focus was within the wrapper when editing finished.\n\t */\n\tconst stopEditing = () => {\n\t\tisEndingEditWithFocusRef.current = !! wrapperNode.current?.contains(\n\t\t\twrapperNode.current.ownerDocument.activeElement\n\t\t);\n\n\t\tsetIsEditingLink( false );\n\t};\n\n\tconst handleSelectSuggestion = ( updatedValue ) => {\n\t\t// Suggestions may contains \"settings\" values (e.g. `opensInNewTab`)\n\t\t// which should not overide any existing settings values set by the\n\t\t// user. This filters out any settings values from the suggestion.\n\t\tconst nonSettingsChanges = Object.keys( updatedValue ).reduce(\n\t\t\t( acc, key ) => {\n\t\t\t\tif ( ! settingsKeys.includes( key ) ) {\n\t\t\t\t\tacc[ key ] = updatedValue[ key ];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\tonChange( {\n\t\t\t...internalControlValue,\n\t\t\t...nonSettingsChanges,\n\t\t\t// As title is not a setting, it must be manually applied\n\t\t\t// in such a way as to preserve the users changes over\n\t\t\t// any \"title\" value provided by the \"suggestion\".\n\t\t\ttitle: internalControlValue?.title || updatedValue?.title,\n\t\t} );\n\n\t\tstopEditing();\n\t};\n\n\tconst handleSubmit = () => {\n\t\tif ( valueHasChanges ) {\n\t\t\t// Submit the original value with new stored values applied\n\t\t\t// on top. URL is a special case as it may also be a prop.\n\t\t\tonChange( {\n\t\t\t\t...value,\n\t\t\t\t...internalControlValue,\n\t\t\t\turl: currentUrlInputValue,\n\t\t\t} );\n\t\t}\n\t\tstopEditing();\n\t};\n\n\tconst handleSubmitWithEnter = ( event ) => {\n\t\tconst { keyCode } = event;\n\n\t\tif (\n\t\t\tkeyCode === ENTER &&\n\t\t\t! currentInputIsEmpty // Disallow submitting empty values.\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\thandleSubmit();\n\t\t}\n\t};\n\n\tconst resetInternalValues = () => {\n\t\tsetInternalControlValue( value );\n\t};\n\n\tconst handleCancel = ( event ) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\t// Ensure that any unsubmitted input changes are reset.\n\t\tresetInternalValues();\n\n\t\tif ( hasLinkValue ) {\n\t\t\t// If there is a link then exist editing mode and show preview.\n\t\t\tstopEditing();\n\t\t} else {\n\t\t\t// If there is no link value, then remove the link entirely.\n\t\t\tonRemove?.();\n\t\t}\n\n\t\tonCancel?.();\n\t};\n\n\tconst currentUrlInputValue =\n\t\tpropInputValue || internalControlValue?.url || '';\n\n\tconst currentInputIsEmpty = ! currentUrlInputValue?.trim()?.length;\n\n\tconst shownUnlinkControl =\n\t\tonRemove && value && ! isEditingLink && ! isCreatingPage;\n\n\tconst showActions = isEditingLink && hasLinkValue;\n\n\t// Only show text control once a URL value has been committed\n\t// and it isn't just empty whitespace.\n\t// See https://github.com/WordPress/gutenberg/pull/33849/#issuecomment-932194927.\n\tconst showTextControl = hasLinkValue && hasTextControl;\n\n\tconst isEditing = ( isEditingLink || ! value ) && ! isCreatingPage;\n\tconst isDisabled = ! valueHasChanges || currentInputIsEmpty;\n\tconst showSettings = !! settings?.length && isEditingLink && hasLinkValue;\n\n\treturn (\n\t\t<div\n\t\t\ttabIndex={ -1 }\n\t\t\tref={ wrapperNode }\n\t\t\tclassName=\"block-editor-link-control\"\n\t\t>\n\t\t\t{ isCreatingPage && (\n\t\t\t\t<div className=\"block-editor-link-control__loading\">\n\t\t\t\t\t<Spinner /> { __( 'Creating' ) }…\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ isEditing && (\n\t\t\t\t<>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'block-editor-link-control__search-input-wrapper': true,\n\t\t\t\t\t\t\t'has-text-control': showTextControl,\n\t\t\t\t\t\t\t'has-actions': showActions,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ showTextControl && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tref={ textInputRef }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__field block-editor-link-control__text-content\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\tvalue={ internalControlValue?.title }\n\t\t\t\t\t\t\t\tonChange={ setInternalTextInputValue }\n\t\t\t\t\t\t\t\tonKeyDown={ handleSubmitWithEnter }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<LinkControlSearchInput\n\t\t\t\t\t\t\tcurrentLink={ value }\n\t\t\t\t\t\t\tclassName=\"block-editor-link-control__field block-editor-link-control__search-input\"\n\t\t\t\t\t\t\tplaceholder={ searchInputPlaceholder }\n\t\t\t\t\t\t\tvalue={ currentUrlInputValue }\n\t\t\t\t\t\t\twithCreateSuggestion={ withCreateSuggestion }\n\t\t\t\t\t\t\tonCreateSuggestion={ createPage }\n\t\t\t\t\t\t\tonChange={ setInternalURLInputValue }\n\t\t\t\t\t\t\tonSelect={ handleSelectSuggestion }\n\t\t\t\t\t\t\tshowInitialSuggestions={ showInitialSuggestions }\n\t\t\t\t\t\t\tallowDirectEntry={ ! noDirectEntry }\n\t\t\t\t\t\t\tshowSuggestions={ showSuggestions }\n\t\t\t\t\t\t\tsuggestionsQuery={ suggestionsQuery }\n\t\t\t\t\t\t\twithURLSuggestion={ ! noURLSuggestion }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thideLabelFromVision={ ! showTextControl }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tshowActions ? undefined : (\n\t\t\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tisDisabled ? noop : handleSubmit\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Submit' ) }\n\t\t\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-submit\"\n\t\t\t\t\t\t\t\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</InputControlSuffixWrapper>\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</div>\n\t\t\t\t\t{ errorMessage && (\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-error\"\n\t\t\t\t\t\t\tstatus=\"error\"\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ errorMessage }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ value && ! isEditingLink && ! isCreatingPage && (\n\t\t\t\t<LinkPreview\n\t\t\t\t\tkey={ value?.url } // force remount when URL changes to avoid race conditions for rich previews\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonEditClick={ () => setIsEditingLink( true ) }\n\t\t\t\t\thasRichPreviews={ hasRichPreviews }\n\t\t\t\t\thasUnlinkControl={ shownUnlinkControl }\n\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\tsetIsEditingLink( true );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ showSettings && (\n\t\t\t\t<div className=\"block-editor-link-control__tools\">\n\t\t\t\t\t{ ! currentInputIsEmpty && (\n\t\t\t\t\t\t<LinkControlSettingsDrawer\n\t\t\t\t\t\t\tsettingsOpen={ isSettingsOpen }\n\t\t\t\t\t\t\tsetSettingsOpen={ setSettingsOpenWithPreference }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkSettings\n\t\t\t\t\t\t\t\tvalue={ internalControlValue }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\tonChange={ createSetInternalSettingValueHandler(\n\t\t\t\t\t\t\t\t\tsettingsKeys\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</LinkControlSettingsDrawer>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ showActions && (\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"right\"\n\t\t\t\t\tclassName=\"block-editor-link-control__search-actions\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleCancel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ isDisabled ? noop : handleSubmit }\n\t\t\t\t\t\tclassName=\"block-editor-link-control__search-submit\"\n\t\t\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t{ ! isCreatingPage && renderControlBottom && renderControlBottom() }\n\t\t</div>\n\t);\n}\n\nLinkControl.ViewerFill = ViewerFill;\nLinkControl.DEFAULT_LINK_SETTINGS = DEFAULT_LINK_SETTINGS;\n\nexport const DeprecatedExperimentalLinkControl = ( props ) => {\n\tdeprecated( 'wp.blockEditor.__experimentalLinkControl', {\n\t\tsince: '6.8',\n\t\talternative: 'wp.blockEditor.LinkControl',\n\t} );\n\n\treturn <LinkControl { ...props } />;\n};\n\nexport default LinkControl;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_dom","_keycodes","_isShallowEqual","_data","_preferences","_icons","_settingsDrawer","_searchInput","_linkPreview","_settings","_useCreatePage","_useInternalValue","_viewerSlot","_constants","_deprecated","_jsxRuntime","noop","PREFERENCE_SCOPE","PREFERENCE_KEY","LinkControl","searchInputPlaceholder","value","settings","DEFAULT_LINK_SETTINGS","onChange","onRemove","onCancel","noDirectEntry","showSuggestions","showInitialSuggestions","forceIsEditingLink","createSuggestion","withCreateSuggestion","inputValue","propInputValue","suggestionsQuery","noURLSuggestion","createSuggestionButtonText","hasRichPreviews","hasTextControl","renderControlBottom","undefined","settingsOpen","setSettingsOpen","useState","advancedSettingsPreference","useSelect","select","_prefsStore$get","prefsStore","preferencesStore","get","set","setPreference","useDispatch","setSettingsOpenWithPreference","prefVal","isSettingsOpen","isMountingRef","useRef","wrapperNode","textInputRef","isEndingEditWithFocusRef","settingsKeys","map","id","internalControlValue","setInternalControlValue","setInternalURLInputValue","setInternalTextInputValue","createSetInternalSettingValueHandler","useInternalValue","valueHasChanges","isShallowEqualObjects","isEditingLink","setIsEditingLink","url","createPage","isCreatingPage","errorMessage","useCreatePage","useEffect","current","nextFocusTarget","focus","focusable","find","hasLinkValue","trim","length","stopEditing","contains","ownerDocument","activeElement","handleSelectSuggestion","updatedValue","nonSettingsChanges","Object","keys","reduce","acc","key","includes","title","handleSubmit","currentUrlInputValue","handleSubmitWithEnter","event","keyCode","ENTER","currentInputIsEmpty","preventDefault","resetInternalValues","handleCancel","stopPropagation","shownUnlinkControl","showActions","showTextControl","isEditing","isDisabled","showSettings","jsxs","tabIndex","ref","className","children","jsx","Spinner","__","Fragment","clsx","TextControl","__nextHasNoMarginBottom","label","onKeyDown","__next40pxDefaultSize","default","currentLink","placeholder","onCreateSuggestion","onSelect","allowDirectEntry","withURLSuggestion","hideLabelFromVision","suffix","__experimentalInputControlSuffixWrapper","variant","Button","onClick","icon","keyboardReturn","size","Notice","status","isDismissible","onEditClick","hasUnlinkControl","__experimentalHStack","justify","ViewerFill","DeprecatedExperimentalLinkControl","props","deprecated","since","alternative","exports","_default"],"sources":["@wordpress/block-editor/src/components/link-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tSpinner,\n\tNotice,\n\tTextControl,\n\t__experimentalHStack as HStack,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useState, useEffect } from '@wordpress/element';\nimport { focus } from '@wordpress/dom';\nimport { ENTER } from '@wordpress/keycodes';\nimport { isShallowEqualObjects } from '@wordpress/is-shallow-equal';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSettingsDrawer from './settings-drawer';\nimport LinkControlSearchInput from './search-input';\nimport LinkPreview from './link-preview';\nimport LinkSettings from './settings';\nimport useCreatePage from './use-create-page';\nimport useInternalValue from './use-internal-value';\nimport { ViewerFill } from './viewer-slot';\nimport { DEFAULT_LINK_SETTINGS } from './constants';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Default properties associated with a link control value.\n *\n * @typedef WPLinkControlDefaultValue\n *\n * @property {string} url Link URL.\n * @property {string=} title Link title.\n * @property {boolean=} opensInNewTab Whether link should open in a new browser\n * tab. This value is only assigned if not\n * providing a custom `settings` prop.\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Custom settings values associated with a link.\n *\n * @typedef {{[setting:string]:any}} WPLinkControlSettingsValue\n */\n/* eslint-enable */\n\n/**\n * Custom settings values associated with a link.\n *\n * @typedef WPLinkControlSetting\n *\n * @property {string} id Identifier to use as property for setting value.\n * @property {string} title Human-readable label to show in user interface.\n */\n\n/**\n * Properties associated with a link control value, composed as a union of the\n * default properties and any custom settings values.\n *\n * @typedef {WPLinkControlDefaultValue&WPLinkControlSettingsValue} WPLinkControlValue\n */\n\n/** @typedef {(nextValue:WPLinkControlValue)=>void} WPLinkControlOnChangeProp */\n\n/**\n * Properties associated with a search suggestion used within the LinkControl.\n *\n * @typedef WPLinkControlSuggestion\n *\n * @property {string} id Identifier to use to uniquely identify the suggestion.\n * @property {string} type Identifies the type of the suggestion (eg: `post`,\n * `page`, `url`...etc)\n * @property {string} title Human-readable label to show in user interface.\n * @property {string} url A URL for the suggestion.\n */\n\n/** @typedef {(title:string)=>WPLinkControlSuggestion} WPLinkControlCreateSuggestionProp */\n\n/**\n * @typedef WPLinkControlProps\n *\n * @property {(WPLinkControlSetting[])=} settings An array of settings objects. Each object will used to\n * render a `ToggleControl` for that setting.\n * @property {boolean=} forceIsEditingLink If passed as either `true` or `false`, controls the\n * internal editing state of the component to respective\n * show or not show the URL input field.\n * @property {WPLinkControlValue=} value Current link value.\n * @property {WPLinkControlOnChangeProp=} onChange Value change handler, called with the updated value if\n * the user selects a new link or updates settings.\n * @property {boolean=} noDirectEntry Whether to allow turning a URL-like search query directly into a link.\n * @property {boolean=} showSuggestions Whether to present suggestions when typing the URL.\n * @property {boolean=} showInitialSuggestions Whether to present initial suggestions immediately.\n * @property {boolean=} withCreateSuggestion Whether to allow creation of link value from suggestion.\n * @property {Object=} suggestionsQuery Query parameters to pass along to wp.blockEditor.__experimentalFetchLinkSuggestions.\n * @property {boolean=} noURLSuggestion Whether to add a fallback suggestion which treats the search query as a URL.\n * @property {boolean=} hasTextControl Whether to add a text field to the UI to update the value.title.\n * @property {string|Function|undefined} createSuggestionButtonText The text to use in the button that calls createSuggestion.\n * @property {Function} renderControlBottom Optional controls to be rendered at the bottom of the component.\n */\n\nconst noop = () => {};\n\nconst PREFERENCE_SCOPE = 'core/block-editor';\nconst PREFERENCE_KEY = 'linkControlSettingsDrawer';\n\n/**\n * Renders a link control. A link control is a controlled input which maintains\n * a value associated with a link (HTML anchor element) and relevant settings\n * for how that link is expected to behave.\n *\n * @param {WPLinkControlProps} props Component props.\n */\nfunction LinkControl( {\n\tsearchInputPlaceholder,\n\tvalue,\n\tsettings = DEFAULT_LINK_SETTINGS,\n\tonChange = noop,\n\tonRemove,\n\tonCancel,\n\tnoDirectEntry = false,\n\tshowSuggestions = true,\n\tshowInitialSuggestions,\n\tforceIsEditingLink,\n\tcreateSuggestion,\n\twithCreateSuggestion,\n\tinputValue: propInputValue = '',\n\tsuggestionsQuery = {},\n\tnoURLSuggestion = false,\n\tcreateSuggestionButtonText,\n\thasRichPreviews = false,\n\thasTextControl = false,\n\trenderControlBottom = null,\n} ) {\n\tif ( withCreateSuggestion === undefined && createSuggestion ) {\n\t\twithCreateSuggestion = true;\n\t}\n\n\tconst [ settingsOpen, setSettingsOpen ] = useState( false );\n\n\tconst { advancedSettingsPreference } = useSelect( ( select ) => {\n\t\tconst prefsStore = select( preferencesStore );\n\n\t\treturn {\n\t\t\tadvancedSettingsPreference:\n\t\t\t\tprefsStore.get( PREFERENCE_SCOPE, PREFERENCE_KEY ) ?? false,\n\t\t};\n\t}, [] );\n\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\t/**\n\t * Sets the open/closed state of the Advanced Settings Drawer,\n\t * optionlly persisting the state to the user's preferences.\n\t *\n\t * Note that Block Editor components can be consumed by non-WordPress\n\t * environments which may not have preferences setup.\n\t * Therefore a local state is also used as a fallback.\n\t *\n\t * @param {boolean} prefVal the open/closed state of the Advanced Settings Drawer.\n\t */\n\tconst setSettingsOpenWithPreference = ( prefVal ) => {\n\t\tif ( setPreference ) {\n\t\t\tsetPreference( PREFERENCE_SCOPE, PREFERENCE_KEY, prefVal );\n\t\t}\n\t\tsetSettingsOpen( prefVal );\n\t};\n\n\t// Block Editor components can be consumed by non-WordPress environments\n\t// which may not have these preferences setup.\n\t// Therefore a local state is used as a fallback.\n\tconst isSettingsOpen = advancedSettingsPreference || settingsOpen;\n\n\tconst isMountingRef = useRef( true );\n\tconst wrapperNode = useRef();\n\tconst textInputRef = useRef();\n\tconst isEndingEditWithFocusRef = useRef( false );\n\n\tconst settingsKeys = settings.map( ( { id } ) => id );\n\n\tconst [\n\t\tinternalControlValue,\n\t\tsetInternalControlValue,\n\t\tsetInternalURLInputValue,\n\t\tsetInternalTextInputValue,\n\t\tcreateSetInternalSettingValueHandler,\n\t] = useInternalValue( value );\n\n\tconst valueHasChanges =\n\t\tvalue && ! isShallowEqualObjects( internalControlValue, value );\n\n\tconst [ isEditingLink, setIsEditingLink ] = useState(\n\t\tforceIsEditingLink !== undefined\n\t\t\t? forceIsEditingLink\n\t\t\t: ! value || ! value.url\n\t);\n\n\tconst { createPage, isCreatingPage, errorMessage } =\n\t\tuseCreatePage( createSuggestion );\n\n\tuseEffect( () => {\n\t\tif ( forceIsEditingLink === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsEditingLink( forceIsEditingLink );\n\t}, [ forceIsEditingLink ] );\n\n\tuseEffect( () => {\n\t\t// We don't auto focus into the Link UI on mount\n\t\t// because otherwise using the keyboard to select text\n\t\t// *within* the link format is not possible.\n\t\tif ( isMountingRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Scenario - when:\n\t\t// - switching between editable and non editable LinkControl\n\t\t// - clicking on a link\n\t\t// ...then move focus to the *first* element to avoid focus loss\n\t\t// and to ensure focus is *within* the Link UI.\n\t\tconst nextFocusTarget =\n\t\t\tfocus.focusable.find( wrapperNode.current )[ 0 ] ||\n\t\t\twrapperNode.current;\n\n\t\tnextFocusTarget.focus();\n\n\t\tisEndingEditWithFocusRef.current = false;\n\t}, [ isEditingLink, isCreatingPage ] );\n\n\t// The component mounting reference is maintained separately\n\t// to correctly reset values in `StrictMode`.\n\tuseEffect( () => {\n\t\tisMountingRef.current = false;\n\n\t\treturn () => {\n\t\t\tisMountingRef.current = true;\n\t\t};\n\t}, [] );\n\n\tconst hasLinkValue = value?.url?.trim()?.length > 0;\n\n\t/**\n\t * Cancels editing state and marks that focus may need to be restored after\n\t * the next render, if focus was within the wrapper when editing finished.\n\t */\n\tconst stopEditing = () => {\n\t\tisEndingEditWithFocusRef.current = !! wrapperNode.current?.contains(\n\t\t\twrapperNode.current.ownerDocument.activeElement\n\t\t);\n\n\t\tsetIsEditingLink( false );\n\t};\n\n\tconst handleSelectSuggestion = ( updatedValue ) => {\n\t\t// Suggestions may contains \"settings\" values (e.g. `opensInNewTab`)\n\t\t// which should not override any existing settings values set by the\n\t\t// user. This filters out any settings values from the suggestion.\n\t\tconst nonSettingsChanges = Object.keys( updatedValue ).reduce(\n\t\t\t( acc, key ) => {\n\t\t\t\tif ( ! settingsKeys.includes( key ) ) {\n\t\t\t\t\tacc[ key ] = updatedValue[ key ];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\tonChange( {\n\t\t\t...internalControlValue,\n\t\t\t...nonSettingsChanges,\n\t\t\t// As title is not a setting, it must be manually applied\n\t\t\t// in such a way as to preserve the users changes over\n\t\t\t// any \"title\" value provided by the \"suggestion\".\n\t\t\ttitle: internalControlValue?.title || updatedValue?.title,\n\t\t} );\n\n\t\tstopEditing();\n\t};\n\n\tconst handleSubmit = () => {\n\t\tif ( valueHasChanges ) {\n\t\t\t// Submit the original value with new stored values applied\n\t\t\t// on top. URL is a special case as it may also be a prop.\n\t\t\tonChange( {\n\t\t\t\t...value,\n\t\t\t\t...internalControlValue,\n\t\t\t\turl: currentUrlInputValue,\n\t\t\t} );\n\t\t}\n\t\tstopEditing();\n\t};\n\n\tconst handleSubmitWithEnter = ( event ) => {\n\t\tconst { keyCode } = event;\n\n\t\tif (\n\t\t\tkeyCode === ENTER &&\n\t\t\t! currentInputIsEmpty // Disallow submitting empty values.\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\thandleSubmit();\n\t\t}\n\t};\n\n\tconst resetInternalValues = () => {\n\t\tsetInternalControlValue( value );\n\t};\n\n\tconst handleCancel = ( event ) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\t// Ensure that any unsubmitted input changes are reset.\n\t\tresetInternalValues();\n\n\t\tif ( hasLinkValue ) {\n\t\t\t// If there is a link then exist editing mode and show preview.\n\t\t\tstopEditing();\n\t\t} else {\n\t\t\t// If there is no link value, then remove the link entirely.\n\t\t\tonRemove?.();\n\t\t}\n\n\t\tonCancel?.();\n\t};\n\n\tconst currentUrlInputValue =\n\t\tpropInputValue || internalControlValue?.url || '';\n\n\tconst currentInputIsEmpty = ! currentUrlInputValue?.trim()?.length;\n\n\tconst shownUnlinkControl =\n\t\tonRemove && value && ! isEditingLink && ! isCreatingPage;\n\n\tconst showActions = isEditingLink && hasLinkValue;\n\n\t// Only show text control once a URL value has been committed\n\t// and it isn't just empty whitespace.\n\t// See https://github.com/WordPress/gutenberg/pull/33849/#issuecomment-932194927.\n\tconst showTextControl = hasLinkValue && hasTextControl;\n\n\tconst isEditing = ( isEditingLink || ! value ) && ! isCreatingPage;\n\tconst isDisabled = ! valueHasChanges || currentInputIsEmpty;\n\tconst showSettings = !! settings?.length && isEditingLink && hasLinkValue;\n\n\treturn (\n\t\t<div\n\t\t\ttabIndex={ -1 }\n\t\t\tref={ wrapperNode }\n\t\t\tclassName=\"block-editor-link-control\"\n\t\t>\n\t\t\t{ isCreatingPage && (\n\t\t\t\t<div className=\"block-editor-link-control__loading\">\n\t\t\t\t\t<Spinner /> { __( 'Creating' ) }…\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ isEditing && (\n\t\t\t\t<>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t\t'block-editor-link-control__search-input-wrapper': true,\n\t\t\t\t\t\t\t'has-text-control': showTextControl,\n\t\t\t\t\t\t\t'has-actions': showActions,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ showTextControl && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tref={ textInputRef }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__field block-editor-link-control__text-content\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\t\tvalue={ internalControlValue?.title }\n\t\t\t\t\t\t\t\tonChange={ setInternalTextInputValue }\n\t\t\t\t\t\t\t\tonKeyDown={ handleSubmitWithEnter }\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<LinkControlSearchInput\n\t\t\t\t\t\t\tcurrentLink={ value }\n\t\t\t\t\t\t\tclassName=\"block-editor-link-control__field block-editor-link-control__search-input\"\n\t\t\t\t\t\t\tplaceholder={ searchInputPlaceholder }\n\t\t\t\t\t\t\tvalue={ currentUrlInputValue }\n\t\t\t\t\t\t\twithCreateSuggestion={ withCreateSuggestion }\n\t\t\t\t\t\t\tonCreateSuggestion={ createPage }\n\t\t\t\t\t\t\tonChange={ setInternalURLInputValue }\n\t\t\t\t\t\t\tonSelect={ handleSelectSuggestion }\n\t\t\t\t\t\t\tshowInitialSuggestions={ showInitialSuggestions }\n\t\t\t\t\t\t\tallowDirectEntry={ ! noDirectEntry }\n\t\t\t\t\t\t\tshowSuggestions={ showSuggestions }\n\t\t\t\t\t\t\tsuggestionsQuery={ suggestionsQuery }\n\t\t\t\t\t\t\twithURLSuggestion={ ! noURLSuggestion }\n\t\t\t\t\t\t\tcreateSuggestionButtonText={\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thideLabelFromVision={ ! showTextControl }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\tshowActions ? undefined : (\n\t\t\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tisDisabled ? noop : handleSubmit\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Submit' ) }\n\t\t\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-submit\"\n\t\t\t\t\t\t\t\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</InputControlSuffixWrapper>\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</div>\n\t\t\t\t\t{ errorMessage && (\n\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-error\"\n\t\t\t\t\t\t\tstatus=\"error\"\n\t\t\t\t\t\t\tisDismissible={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ errorMessage }\n\t\t\t\t\t\t</Notice>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ value && ! isEditingLink && ! isCreatingPage && (\n\t\t\t\t<LinkPreview\n\t\t\t\t\tkey={ value?.url } // force remount when URL changes to avoid race conditions for rich previews\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonEditClick={ () => setIsEditingLink( true ) }\n\t\t\t\t\thasRichPreviews={ hasRichPreviews }\n\t\t\t\t\thasUnlinkControl={ shownUnlinkControl }\n\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\tsetIsEditingLink( true );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ showSettings && (\n\t\t\t\t<div className=\"block-editor-link-control__tools\">\n\t\t\t\t\t{ ! currentInputIsEmpty && (\n\t\t\t\t\t\t<LinkControlSettingsDrawer\n\t\t\t\t\t\t\tsettingsOpen={ isSettingsOpen }\n\t\t\t\t\t\t\tsetSettingsOpen={ setSettingsOpenWithPreference }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkSettings\n\t\t\t\t\t\t\t\tvalue={ internalControlValue }\n\t\t\t\t\t\t\t\tsettings={ settings }\n\t\t\t\t\t\t\t\tonChange={ createSetInternalSettingValueHandler(\n\t\t\t\t\t\t\t\t\tsettingsKeys\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</LinkControlSettingsDrawer>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ showActions && (\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"right\"\n\t\t\t\t\tclassName=\"block-editor-link-control__search-actions\"\n\t\t\t\t>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ handleCancel }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ isDisabled ? noop : handleSubmit }\n\t\t\t\t\t\tclassName=\"block-editor-link-control__search-submit\"\n\t\t\t\t\t\taria-disabled={ isDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t) }\n\n\t\t\t{ ! isCreatingPage && renderControlBottom && renderControlBottom() }\n\t\t</div>\n\t);\n}\n\nLinkControl.ViewerFill = ViewerFill;\nLinkControl.DEFAULT_LINK_SETTINGS = DEFAULT_LINK_SETTINGS;\n\nexport const DeprecatedExperimentalLinkControl = ( props ) => {\n\tdeprecated( 'wp.blockEditor.__experimentalLinkControl', {\n\t\tsince: '6.8',\n\t\talternative: 'wp.blockEditor.LinkControl',\n\t} );\n\n\treturn <LinkControl { ...props } />;\n};\n\nexport default LinkControl;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAQA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,IAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAKA,IAAAU,eAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,YAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,YAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,SAAA,GAAAd,sBAAA,CAAAC,OAAA;AACA,IAAAc,cAAA,GAAAf,sBAAA,CAAAC,OAAA;AACA,IAAAe,iBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AACA,IAAAiB,UAAA,GAAAjB,OAAA;AACA,IAAAkB,WAAA,GAAAnB,sBAAA,CAAAC,OAAA;AAA+C,IAAAmB,WAAA,GAAAnB,OAAA;AApC/C;AACA;AACA;;AAGA;AACA;AACA;;AAkBA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEA,MAAMoB,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,MAAMC,gBAAgB,GAAG,mBAAmB;AAC5C,MAAMC,cAAc,GAAG,2BAA2B;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAAE;EACrBC,sBAAsB;EACtBC,KAAK;EACLC,QAAQ,GAAGC,gCAAqB;EAChCC,QAAQ,GAAGR,IAAI;EACfS,QAAQ;EACRC,QAAQ;EACRC,aAAa,GAAG,KAAK;EACrBC,eAAe,GAAG,IAAI;EACtBC,sBAAsB;EACtBC,kBAAkB;EAClBC,gBAAgB;EAChBC,oBAAoB;EACpBC,UAAU,EAAEC,cAAc,GAAG,EAAE;EAC/BC,gBAAgB,GAAG,CAAC,CAAC;EACrBC,eAAe,GAAG,KAAK;EACvBC,0BAA0B;EAC1BC,eAAe,GAAG,KAAK;EACvBC,cAAc,GAAG,KAAK;EACtBC,mBAAmB,GAAG;AACvB,CAAC,EAAG;EACH,IAAKR,oBAAoB,KAAKS,SAAS,IAAIV,gBAAgB,EAAG;IAC7DC,oBAAoB,GAAG,IAAI;EAC5B;EAEA,MAAM,CAAEU,YAAY,EAAEC,eAAe,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAE3D,MAAM;IAAEC;EAA2B,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAAA,IAAAC,eAAA;IAC/D,MAAMC,UAAU,GAAGF,MAAM,CAAEG,kBAAiB,CAAC;IAE7C,OAAO;MACNL,0BAA0B,GAAAG,eAAA,GACzBC,UAAU,CAACE,GAAG,CAAElC,gBAAgB,EAAEC,cAAe,CAAC,cAAA8B,eAAA,cAAAA,eAAA,GAAI;IACxD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM;IAAEI,GAAG,EAAEC;EAAc,CAAC,GAAG,IAAAC,iBAAW,EAAEJ,kBAAiB,CAAC;;EAE9D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMK,6BAA6B,GAAKC,OAAO,IAAM;IACpD,IAAKH,aAAa,EAAG;MACpBA,aAAa,CAAEpC,gBAAgB,EAAEC,cAAc,EAAEsC,OAAQ,CAAC;IAC3D;IACAb,eAAe,CAAEa,OAAQ,CAAC;EAC3B,CAAC;;EAED;EACA;EACA;EACA,MAAMC,cAAc,GAAGZ,0BAA0B,IAAIH,YAAY;EAEjE,MAAMgB,aAAa,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;EACpC,MAAMC,WAAW,GAAG,IAAAD,eAAM,EAAC,CAAC;EAC5B,MAAME,YAAY,GAAG,IAAAF,eAAM,EAAC,CAAC;EAC7B,MAAMG,wBAAwB,GAAG,IAAAH,eAAM,EAAE,KAAM,CAAC;EAEhD,MAAMI,YAAY,GAAGzC,QAAQ,CAAC0C,GAAG,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAMA,EAAG,CAAC;EAErD,MAAM,CACLC,oBAAoB,EACpBC,uBAAuB,EACvBC,wBAAwB,EACxBC,yBAAyB,EACzBC,oCAAoC,CACpC,GAAG,IAAAC,yBAAgB,EAAElD,KAAM,CAAC;EAE7B,MAAMmD,eAAe,GACpBnD,KAAK,IAAI,CAAE,IAAAoD,qCAAqB,EAAEP,oBAAoB,EAAE7C,KAAM,CAAC;EAEhE,MAAM,CAAEqD,aAAa,EAAEC,gBAAgB,CAAE,GAAG,IAAA/B,iBAAQ,EACnDd,kBAAkB,KAAKW,SAAS,GAC7BX,kBAAkB,GAClB,CAAET,KAAK,IAAI,CAAEA,KAAK,CAACuD,GACvB,CAAC;EAED,MAAM;IAAEC,UAAU;IAAEC,cAAc;IAAEC;EAAa,CAAC,GACjD,IAAAC,sBAAa,EAAEjD,gBAAiB,CAAC;EAElC,IAAAkD,kBAAS,EAAE,MAAM;IAChB,IAAKnD,kBAAkB,KAAKW,SAAS,EAAG;MACvC;IACD;IAEAkC,gBAAgB,CAAE7C,kBAAmB,CAAC;EACvC,CAAC,EAAE,CAAEA,kBAAkB,CAAG,CAAC;EAE3B,IAAAmD,kBAAS,EAAE,MAAM;IAChB;IACA;IACA;IACA,IAAKvB,aAAa,CAACwB,OAAO,EAAG;MAC5B;IACD;;IAEA;IACA;IACA;IACA;IACA;IACA,MAAMC,eAAe,GACpBC,UAAK,CAACC,SAAS,CAACC,IAAI,CAAE1B,WAAW,CAACsB,OAAQ,CAAC,CAAE,CAAC,CAAE,IAChDtB,WAAW,CAACsB,OAAO;IAEpBC,eAAe,CAACC,KAAK,CAAC,CAAC;IAEvBtB,wBAAwB,CAACoB,OAAO,GAAG,KAAK;EACzC,CAAC,EAAE,CAAER,aAAa,EAAEI,cAAc,CAAG,CAAC;;EAEtC;EACA;EACA,IAAAG,kBAAS,EAAE,MAAM;IAChBvB,aAAa,CAACwB,OAAO,GAAG,KAAK;IAE7B,OAAO,MAAM;MACZxB,aAAa,CAACwB,OAAO,GAAG,IAAI;IAC7B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMK,YAAY,GAAGlE,KAAK,EAAEuD,GAAG,EAAEY,IAAI,CAAC,CAAC,EAAEC,MAAM,GAAG,CAAC;;EAEnD;AACD;AACA;AACA;EACC,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACzB5B,wBAAwB,CAACoB,OAAO,GAAG,CAAC,CAAEtB,WAAW,CAACsB,OAAO,EAAES,QAAQ,CAClE/B,WAAW,CAACsB,OAAO,CAACU,aAAa,CAACC,aACnC,CAAC;IAEDlB,gBAAgB,CAAE,KAAM,CAAC;EAC1B,CAAC;EAED,MAAMmB,sBAAsB,GAAKC,YAAY,IAAM;IAClD;IACA;IACA;IACA,MAAMC,kBAAkB,GAAGC,MAAM,CAACC,IAAI,CAAEH,YAAa,CAAC,CAACI,MAAM,CAC5D,CAAEC,GAAG,EAAEC,GAAG,KAAM;MACf,IAAK,CAAEtC,YAAY,CAACuC,QAAQ,CAAED,GAAI,CAAC,EAAG;QACrCD,GAAG,CAAEC,GAAG,CAAE,GAAGN,YAAY,CAAEM,GAAG,CAAE;MACjC;MACA,OAAOD,GAAG;IACX,CAAC,EACD,CAAC,CACF,CAAC;IAED5E,QAAQ,CAAE;MACT,GAAG0C,oBAAoB;MACvB,GAAG8B,kBAAkB;MACrB;MACA;MACA;MACAO,KAAK,EAAErC,oBAAoB,EAAEqC,KAAK,IAAIR,YAAY,EAAEQ;IACrD,CAAE,CAAC;IAEHb,WAAW,CAAC,CAAC;EACd,CAAC;EAED,MAAMc,YAAY,GAAGA,CAAA,KAAM;IAC1B,IAAKhC,eAAe,EAAG;MACtB;MACA;MACAhD,QAAQ,CAAE;QACT,GAAGH,KAAK;QACR,GAAG6C,oBAAoB;QACvBU,GAAG,EAAE6B;MACN,CAAE,CAAC;IACJ;IACAf,WAAW,CAAC,CAAC;EACd,CAAC;EAED,MAAMgB,qBAAqB,GAAKC,KAAK,IAAM;IAC1C,MAAM;MAAEC;IAAQ,CAAC,GAAGD,KAAK;IAEzB,IACCC,OAAO,KAAKC,eAAK,IACjB,CAAEC,mBAAmB,CAAC;IAAA,EACrB;MACDH,KAAK,CAACI,cAAc,CAAC,CAAC;MACtBP,YAAY,CAAC,CAAC;IACf;EACD,CAAC;EAED,MAAMQ,mBAAmB,GAAGA,CAAA,KAAM;IACjC7C,uBAAuB,CAAE9C,KAAM,CAAC;EACjC,CAAC;EAED,MAAM4F,YAAY,GAAKN,KAAK,IAAM;IACjCA,KAAK,CAACI,cAAc,CAAC,CAAC;IACtBJ,KAAK,CAACO,eAAe,CAAC,CAAC;;IAEvB;IACAF,mBAAmB,CAAC,CAAC;IAErB,IAAKzB,YAAY,EAAG;MACnB;MACAG,WAAW,CAAC,CAAC;IACd,CAAC,MAAM;MACN;MACAjE,QAAQ,GAAG,CAAC;IACb;IAEAC,QAAQ,GAAG,CAAC;EACb,CAAC;EAED,MAAM+E,oBAAoB,GACzBvE,cAAc,IAAIgC,oBAAoB,EAAEU,GAAG,IAAI,EAAE;EAElD,MAAMkC,mBAAmB,GAAG,CAAEL,oBAAoB,EAAEjB,IAAI,CAAC,CAAC,EAAEC,MAAM;EAElE,MAAM0B,kBAAkB,GACvB1F,QAAQ,IAAIJ,KAAK,IAAI,CAAEqD,aAAa,IAAI,CAAEI,cAAc;EAEzD,MAAMsC,WAAW,GAAG1C,aAAa,IAAIa,YAAY;;EAEjD;EACA;EACA;EACA,MAAM8B,eAAe,GAAG9B,YAAY,IAAIhD,cAAc;EAEtD,MAAM+E,SAAS,GAAG,CAAE5C,aAAa,IAAI,CAAErD,KAAK,KAAM,CAAEyD,cAAc;EAClE,MAAMyC,UAAU,GAAG,CAAE/C,eAAe,IAAIsC,mBAAmB;EAC3D,MAAMU,YAAY,GAAG,CAAC,CAAElG,QAAQ,EAAEmE,MAAM,IAAIf,aAAa,IAAIa,YAAY;EAEzE,oBACC,IAAAxE,WAAA,CAAA0G,IAAA;IACCC,QAAQ,EAAG,CAAC,CAAG;IACfC,GAAG,EAAG/D,WAAa;IACnBgE,SAAS,EAAC,2BAA2B;IAAAC,QAAA,GAEnC/C,cAAc,iBACf,IAAA/D,WAAA,CAAA0G,IAAA;MAAKG,SAAS,EAAC,oCAAoC;MAAAC,QAAA,gBAClD,IAAA9G,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAAkI,OAAO,IAAE,CAAC,KAAC,EAAE,IAAAC,QAAE,EAAE,UAAW,CAAC,EAAE,QACjC;IAAA,CAAK,CACL,EAECV,SAAS,iBACV,IAAAvG,WAAA,CAAA0G,IAAA,EAAA1G,WAAA,CAAAkH,QAAA;MAAAJ,QAAA,gBACC,IAAA9G,WAAA,CAAA0G,IAAA;QACCG,SAAS,EAAG,IAAAM,aAAI,EAAE;UACjB,iDAAiD,EAAE,IAAI;UACvD,kBAAkB,EAAEb,eAAe;UACnC,aAAa,EAAED;QAChB,CAAE,CAAG;QAAAS,QAAA,GAEHR,eAAe,iBAChB,IAAAtG,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAAsI,WAAW;UACXC,uBAAuB;UACvBT,GAAG,EAAG9D,YAAc;UACpB+D,SAAS,EAAC,0EAA0E;UACpFS,KAAK,EAAG,IAAAL,QAAE,EAAE,MAAO,CAAG;UACtB3G,KAAK,EAAG6C,oBAAoB,EAAEqC,KAAO;UACrC/E,QAAQ,EAAG6C,yBAA2B;UACtCiE,SAAS,EAAG5B,qBAAuB;UACnC6B,qBAAqB;QAAA,CACrB,CACD,eACD,IAAAxH,WAAA,CAAA+G,GAAA,EAACvH,YAAA,CAAAiI,OAAsB;UACtBC,WAAW,EAAGpH,KAAO;UACrBuG,SAAS,EAAC,0EAA0E;UACpFc,WAAW,EAAGtH,sBAAwB;UACtCC,KAAK,EAAGoF,oBAAsB;UAC9BzE,oBAAoB,EAAGA,oBAAsB;UAC7C2G,kBAAkB,EAAG9D,UAAY;UACjCrD,QAAQ,EAAG4C,wBAA0B;UACrCwE,QAAQ,EAAG9C,sBAAwB;UACnCjE,sBAAsB,EAAGA,sBAAwB;UACjDgH,gBAAgB,EAAG,CAAElH,aAAe;UACpCC,eAAe,EAAGA,eAAiB;UACnCO,gBAAgB,EAAGA,gBAAkB;UACrC2G,iBAAiB,EAAG,CAAE1G,eAAiB;UACvCC,0BAA0B,EACzBA,0BACA;UACD0G,mBAAmB,EAAG,CAAE1B,eAAiB;UACzC2B,MAAM,EACL5B,WAAW,GAAG3E,SAAS,gBACtB,IAAA1B,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAAoJ,uCAAyB;YAACC,OAAO,EAAC,SAAS;YAAArB,QAAA,eAC3C,IAAA9G,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAAsJ,MAAM;cACNC,OAAO,EACN7B,UAAU,GAAGvG,IAAI,GAAGwF,YACpB;cACD6B,KAAK,EAAG,IAAAL,QAAE,EAAE,QAAS,CAAG;cACxBqB,IAAI,EAAGC,qBAAgB;cACvB1B,SAAS,EAAC,0CAA0C;cACpD,iBAAgBL,UAAY;cAC5BgC,IAAI,EAAC;YAAO,CACZ;UAAC,CACwB;QAE5B,CACD,CAAC;MAAA,CACE,CAAC,EACJxE,YAAY,iBACb,IAAAhE,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAA2J,MAAM;QACN5B,SAAS,EAAC,yCAAyC;QACnD6B,MAAM,EAAC,OAAO;QACdC,aAAa,EAAG,KAAO;QAAA7B,QAAA,EAErB9C;MAAY,CACP,CACR;IAAA,CACA,CACF,EAEC1D,KAAK,IAAI,CAAEqD,aAAa,IAAI,CAAEI,cAAc,iBAC7C,IAAA/D,WAAA,CAAA+G,GAAA,EAACtH,YAAA,CAAAgI,OAAW;MACQ;MACnBnH,KAAK,EAAGA,KAAO;MACfsI,WAAW,EAAGA,CAAA,KAAMhF,gBAAgB,CAAE,IAAK,CAAG;MAC9CrC,eAAe,EAAGA,eAAiB;MACnCsH,gBAAgB,EAAGzC,kBAAoB;MACvC1F,QAAQ,EAAGA,CAAA,KAAM;QAChBA,QAAQ,CAAC,CAAC;QACVkD,gBAAgB,CAAE,IAAK,CAAC;MACzB;IAAG,GARGtD,KAAK,EAAEuD,GASb,CACD,EAEC4C,YAAY,iBACb,IAAAzG,WAAA,CAAA+G,GAAA;MAAKF,SAAS,EAAC,kCAAkC;MAAAC,QAAA,EAC9C,CAAEf,mBAAmB,iBACtB,IAAA/F,WAAA,CAAA+G,GAAA,EAACxH,eAAA,CAAAkI,OAAyB;QACzB9F,YAAY,EAAGe,cAAgB;QAC/Bd,eAAe,EAAGY,6BAA+B;QAAAsE,QAAA,eAEjD,IAAA9G,WAAA,CAAA+G,GAAA,EAACrH,SAAA,CAAA+H,OAAY;UACZnH,KAAK,EAAG6C,oBAAsB;UAC9B5C,QAAQ,EAAGA,QAAU;UACrBE,QAAQ,EAAG8C,oCAAoC,CAC9CP,YACD;QAAG,CACH;MAAC,CACwB;IAC3B,CACG,CACL,EAECqD,WAAW,iBACZ,IAAArG,WAAA,CAAA0G,IAAA,EAAC5H,WAAA,CAAAgK,oBAAM;MACNC,OAAO,EAAC,OAAO;MACflC,SAAS,EAAC,2CAA2C;MAAAC,QAAA,gBAErD,IAAA9G,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAAsJ,MAAM;QACNZ,qBAAqB;QACrBW,OAAO,EAAC,UAAU;QAClBE,OAAO,EAAGnC,YAAc;QAAAY,QAAA,EAEtB,IAAAG,QAAE,EAAE,QAAS;MAAC,CACT,CAAC,eACT,IAAAjH,WAAA,CAAA+G,GAAA,EAACjI,WAAA,CAAAsJ,MAAM;QACNZ,qBAAqB;QACrBW,OAAO,EAAC,SAAS;QACjBE,OAAO,EAAG7B,UAAU,GAAGvG,IAAI,GAAGwF,YAAc;QAC5CoB,SAAS,EAAC,0CAA0C;QACpD,iBAAgBL,UAAY;QAAAM,QAAA,EAE1B,IAAAG,QAAE,EAAE,MAAO;MAAC,CACP,CAAC;IAAA,CACF,CACR,EAEC,CAAElD,cAAc,IAAItC,mBAAmB,IAAIA,mBAAmB,CAAC,CAAC;EAAA,CAC9D,CAAC;AAER;AAEArB,WAAW,CAAC4I,UAAU,GAAGA,sBAAU;AACnC5I,WAAW,CAACI,qBAAqB,GAAGA,gCAAqB;AAElD,MAAMyI,iCAAiC,GAAKC,KAAK,IAAM;EAC7D,IAAAC,mBAAU,EAAE,0CAA0C,EAAE;IACvDC,KAAK,EAAE,KAAK;IACZC,WAAW,EAAE;EACd,CAAE,CAAC;EAEH,oBAAO,IAAArJ,WAAA,CAAA+G,GAAA,EAAC3G,WAAW;IAAA,GAAM8I;EAAK,CAAI,CAAC;AACpC,CAAC;AAACI,OAAA,CAAAL,iCAAA,GAAAA,iCAAA;AAAA,IAAAM,QAAA,GAAAD,OAAA,CAAA7B,OAAA,GAEarH,WAAW","ignoreList":[]}
@@ -81,7 +81,7 @@ const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions,
81
81
  // when creating the suggestion. Similarly `url` is used when using keyboard to select
82
82
  // the suggestion (the <form> `onSubmit` handler falls-back to `url`).
83
83
  return (0, _isUrlLike.default)(val) || !withCreateSuggestion ? results : results.concat({
84
- // the `id` prop is intentionally ommitted here because it
84
+ // the `id` prop is intentionally omitted here because it
85
85
  // is never exposed as part of the component's public API.
86
86
  // see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.
87
87
  title: val,
@@ -1 +1 @@
1
- {"version":3,"names":["_url","require","_element","_data","_isUrlLike","_interopRequireDefault","_constants","_store","handleNoop","Promise","resolve","exports","handleDirectEntry","val","type","URL_TYPE","protocol","getProtocol","includes","MAILTO_TYPE","TEL_TYPE","startsWith","INTERNAL_TYPE","id","title","url","prependHTTP","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","withCreateSuggestion","pageOnFront","pageForPosts","isInitialSuggestions","results","map","result","Number","isFrontPage","isBlogHome","isURLLike","concat","CREATE_TYPE","useSearchHandler","allowDirectEntry","useSelect","select","getSettings","blockEditorStore","__experimentalFetchLinkSuggestions","directEntryHandler","useCallback"],"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport {\n\tCREATE_TYPE,\n\tTEL_TYPE,\n\tMAILTO_TYPE,\n\tINTERNAL_TYPE,\n\tURL_TYPE,\n} from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = URL_TYPE;\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = MAILTO_TYPE;\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = TEL_TYPE;\n\t}\n\n\tif ( val?.startsWith( '#' ) ) {\n\t\ttype = INTERNAL_TYPE;\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\twithCreateSuggestion,\n\tpageOnFront,\n\tpageForPosts\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\n\tconst results = await fetchSearchSuggestions( val, suggestionsQuery );\n\n\t// Identify front page and update type to match.\n\tresults.map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t} else if ( Number( result.id ) === pageForPosts ) {\n\t\t\tresult.isBlogHome = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // Must match the existing `<input>`s text value.\n\t\t\t\turl: val, // Must match the existing `<input>`s text value.\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion\n) {\n\tconst { fetchSearchSuggestions, pageOnFront, pageForPosts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tpageOnFront: getSettings().pageOnFront,\n\t\t\t\tpageForPosts: getSettings().pageForPosts,\n\t\t\t\tfetchSearchSuggestions:\n\t\t\t\t\tgetSettings().__experimentalFetchLinkSuggestions,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\tpageOnFront,\n\t\t\t\t\t\tpageForPosts\n\t\t\t\t );\n\t\t},\n\t\t[\n\t\t\tdirectEntryHandler,\n\t\t\tfetchSearchSuggestions,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\tsuggestionsQuery,\n\t\t\twithCreateSuggestion,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_url","require","_element","_data","_isUrlLike","_interopRequireDefault","_constants","_store","handleNoop","Promise","resolve","exports","handleDirectEntry","val","type","URL_TYPE","protocol","getProtocol","includes","MAILTO_TYPE","TEL_TYPE","startsWith","INTERNAL_TYPE","id","title","url","prependHTTP","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","withCreateSuggestion","pageOnFront","pageForPosts","isInitialSuggestions","results","map","result","Number","isFrontPage","isBlogHome","isURLLike","concat","CREATE_TYPE","useSearchHandler","allowDirectEntry","useSelect","select","getSettings","blockEditorStore","__experimentalFetchLinkSuggestions","directEntryHandler","useCallback"],"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport {\n\tCREATE_TYPE,\n\tTEL_TYPE,\n\tMAILTO_TYPE,\n\tINTERNAL_TYPE,\n\tURL_TYPE,\n} from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = URL_TYPE;\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = MAILTO_TYPE;\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = TEL_TYPE;\n\t}\n\n\tif ( val?.startsWith( '#' ) ) {\n\t\ttype = INTERNAL_TYPE;\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\twithCreateSuggestion,\n\tpageOnFront,\n\tpageForPosts\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\n\tconst results = await fetchSearchSuggestions( val, suggestionsQuery );\n\n\t// Identify front page and update type to match.\n\tresults.map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t} else if ( Number( result.id ) === pageForPosts ) {\n\t\t\tresult.isBlogHome = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally omitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // Must match the existing `<input>`s text value.\n\t\t\t\turl: val, // Must match the existing `<input>`s text value.\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion\n) {\n\tconst { fetchSearchSuggestions, pageOnFront, pageForPosts } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tpageOnFront: getSettings().pageOnFront,\n\t\t\t\tpageForPosts: getSettings().pageForPosts,\n\t\t\t\tfetchSearchSuggestions:\n\t\t\t\t\tgetSettings().__experimentalFetchLinkSuggestions,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\tpageOnFront,\n\t\t\t\t\t\tpageForPosts\n\t\t\t\t );\n\t\t},\n\t\t[\n\t\t\tdirectEntryHandler,\n\t\t\tfetchSearchSuggestions,\n\t\t\tpageOnFront,\n\t\t\tpageForPosts,\n\t\t\tsuggestionsQuery,\n\t\t\twithCreateSuggestion,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ var _expander = _interopRequireDefault(require("./expander"));
19
19
  var _blockLock = require("../block-lock");
20
20
  var _useListViewImages = _interopRequireDefault(require("./use-list-view-images"));
21
21
  var _store = require("../../store");
22
+ var _lockUnlock = require("../../lock-unlock");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  /**
24
25
  * External dependencies
@@ -32,6 +33,9 @@ var _jsxRuntime = require("react/jsx-runtime");
32
33
  * Internal dependencies
33
34
  */
34
35
 
36
+ const {
37
+ Badge
38
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
35
39
  function ListViewBlockSelectButton({
36
40
  className,
37
41
  block: {
@@ -120,9 +124,8 @@ function ListViewBlockSelectButton({
120
124
  })
121
125
  }), blockInformation?.anchor && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
122
126
  className: "block-editor-list-view-block-select-button__anchor-wrapper",
123
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalTruncate, {
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
124
128
  className: "block-editor-list-view-block-select-button__anchor",
125
- ellipsizeMode: "auto",
126
129
  children: blockInformation.anchor
127
130
  })
128
131
  }), isSticky && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_element","_icons","_keycodes","_data","_blockIcon","_useBlockDisplayInformation","_useBlockDisplayTitle","_expander","_blockLock","_useListViewImages","_store","_jsxRuntime","ListViewBlockSelectButton","className","block","clientId","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaDescribedBy","ref","blockInformation","useBlockDisplayInformation","blockTitle","useBlockDisplayTitle","context","isLocked","useBlockLock","isContentOnly","useSelect","select","blockEditorStore","getBlockEditingMode","shouldShowLockIcon","isSticky","positionType","images","useListViewImages","onDragStartHandler","event","dataTransfer","clearData","onKeyDown","keyCode","ENTER","SPACE","jsxs","clsx","href","children","jsx","default","icon","showColors","__experimentalHStack","alignment","justify","spacing","__experimentalTruncate","ellipsizeMode","anchor","Icon","pinSmall","length","map","image","index","style","backgroundImage","url","zIndex","lock","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lockSmall as lock, pinSmall } from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport useListViewImages from './use-list-view-images';\nimport { store as blockEditorStore } from '../../store';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaDescribedBy,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst { isContentOnly } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisContentOnly:\n\t\t\t\tselect( blockEditorStore ).getBlockEditingMode( clientId ) ===\n\t\t\t\t'contentOnly',\n\t\t} ),\n\t\t[ clientId ]\n\t);\n\tconst shouldShowLockIcon = isLocked && ! isContentOnly;\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tonContextMenu={ onContextMenu }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseDown={ onMouseDown }\n\t\t\tref={ ref }\n\t\t\ttabIndex={ tabIndex }\n\t\t\tonFocus={ onFocus }\n\t\t\tonDragStart={ onDragStartHandler }\n\t\t\tonDragEnd={ onDragEnd }\n\t\t\tdraggable={ draggable }\n\t\t\thref={ `#block-${ clientId }` }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-expanded={ isExpanded }\n\t\t>\n\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t<BlockIcon\n\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\tshowColors\n\t\t\t\tcontext=\"list-view\"\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\talignment=\"center\"\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t</span>\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__anchor\"\n\t\t\t\t\t\t\tellipsizeMode=\"auto\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSticky && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__sticky\">\n\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ images.length ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\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</span>\n\t\t\t\t) : null }\n\t\t\t\t{ shouldShowLockIcon && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</a>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_element","_icons","_keycodes","_data","_blockIcon","_useBlockDisplayInformation","_useBlockDisplayTitle","_expander","_blockLock","_useListViewImages","_store","_lockUnlock","_jsxRuntime","Badge","unlock","componentsPrivateApis","ListViewBlockSelectButton","className","block","clientId","onClick","onContextMenu","onMouseDown","onToggleExpanded","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","ariaDescribedBy","ref","blockInformation","useBlockDisplayInformation","blockTitle","useBlockDisplayTitle","context","isLocked","useBlockLock","isContentOnly","useSelect","select","blockEditorStore","getBlockEditingMode","shouldShowLockIcon","isSticky","positionType","images","useListViewImages","onDragStartHandler","event","dataTransfer","clearData","onKeyDown","keyCode","ENTER","SPACE","jsxs","clsx","href","children","jsx","default","icon","showColors","__experimentalHStack","alignment","justify","spacing","__experimentalTruncate","ellipsizeMode","anchor","Icon","pinSmall","length","map","image","index","style","backgroundImage","url","zIndex","lock","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { Icon, lockSmall as lock, pinSmall } from '@wordpress/icons';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport ListViewExpander from './expander';\nimport { useBlockLock } from '../block-lock';\nimport useListViewImages from './use-list-view-images';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nconst { Badge } = unlock( componentsPrivateApis );\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tonClick,\n\t\tonContextMenu,\n\t\tonMouseDown,\n\t\tonToggleExpanded,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t\tariaDescribedBy,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\tconst { isLocked } = useBlockLock( clientId );\n\tconst { isContentOnly } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisContentOnly:\n\t\t\t\tselect( blockEditorStore ).getBlockEditingMode( clientId ) ===\n\t\t\t\t'contentOnly',\n\t\t} ),\n\t\t[ clientId ]\n\t);\n\tconst shouldShowLockIcon = isLocked && ! isContentOnly;\n\tconst isSticky = blockInformation?.positionType === 'sticky';\n\tconst images = useListViewImages( { clientId, isExpanded } );\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart?.( event );\n\t};\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tonContextMenu={ onContextMenu }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseDown={ onMouseDown }\n\t\t\tref={ ref }\n\t\t\ttabIndex={ tabIndex }\n\t\t\tonFocus={ onFocus }\n\t\t\tonDragStart={ onDragStartHandler }\n\t\t\tonDragEnd={ onDragEnd }\n\t\t\tdraggable={ draggable }\n\t\t\thref={ `#block-${ clientId }` }\n\t\t\taria-describedby={ ariaDescribedBy }\n\t\t\taria-expanded={ isExpanded }\n\t\t>\n\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t<BlockIcon\n\t\t\t\ticon={ blockInformation?.icon }\n\t\t\t\tshowColors\n\t\t\t\tcontext=\"list-view\"\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\talignment=\"center\"\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__label-wrapper\"\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<span className=\"block-editor-list-view-block-select-button__title\">\n\t\t\t\t\t<Truncate ellipsizeMode=\"auto\">{ blockTitle }</Truncate>\n\t\t\t\t</span>\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor-wrapper\">\n\t\t\t\t\t\t<Badge className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t\t</Badge>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSticky && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__sticky\">\n\t\t\t\t\t\t<Icon icon={ pinSmall } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ images.length ? (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__images\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t{ images.map( ( image, index ) => (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"block-editor-list-view-block-select-button__image\"\n\t\t\t\t\t\t\t\tkey={ image.clientId }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\tbackgroundImage: `url(${ image.url })`,\n\t\t\t\t\t\t\t\t\tzIndex: images.length - index, // Ensure the first image is on top, and subsequent images are behind.\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</span>\n\t\t\t\t) : null }\n\t\t\t\t{ shouldShowLockIcon && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__lock\">\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</a>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"],"mappings":"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","ignoreList":[]}
@@ -48,6 +48,7 @@ const InsertFromURLPopover = ({
48
48
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControl, {
49
49
  __next40pxDefaultSize: true,
50
50
  label: (0, _i18n.__)('URL'),
51
+ type: "url",
51
52
  hideLabelFromVision: true,
52
53
  placeholder: (0, _i18n.__)('Paste or type URL'),
53
54
  onChange: onChange,