@wordpress/block-library 9.30.1-next.836ecdcae.0 → 9.31.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 (210) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/edit.js +6 -1
  3. package/build/button/edit.js.map +1 -1
  4. package/build/button/edit.native.js +1 -1
  5. package/build/button/edit.native.js.map +1 -1
  6. package/build/buttons/index.js +2 -1
  7. package/build/buttons/index.js.map +1 -1
  8. package/build/categories/edit.js +3 -1
  9. package/build/categories/edit.js.map +1 -1
  10. package/build/image/edit.native.js +1 -1
  11. package/build/image/edit.native.js.map +1 -1
  12. package/build/image/image.js +5 -8
  13. package/build/image/image.js.map +1 -1
  14. package/build/image/save.js +6 -2
  15. package/build/image/save.js.map +1 -1
  16. package/build/index.js +4 -0
  17. package/build/index.js.map +1 -1
  18. package/build/navigation/edit/index.js +0 -1
  19. package/build/navigation/edit/index.js.map +1 -1
  20. package/build/navigation-link/block-inserter.js +69 -0
  21. package/build/navigation-link/block-inserter.js.map +1 -0
  22. package/build/navigation-link/dialog-wrapper.js +80 -0
  23. package/build/navigation-link/dialog-wrapper.js.map +1 -0
  24. package/build/navigation-link/link-ui.js +34 -82
  25. package/build/navigation-link/link-ui.js.map +1 -1
  26. package/build/navigation-link/page-creator.js +12 -18
  27. package/build/navigation-link/page-creator.js.map +1 -1
  28. package/build/post-date/edit.js +2 -1
  29. package/build/post-date/edit.js.map +1 -1
  30. package/build/post-featured-image/edit.js +7 -2
  31. package/build/post-featured-image/edit.js.map +1 -1
  32. package/build/post-title/edit.js +8 -2
  33. package/build/post-title/edit.js.map +1 -1
  34. package/build/query/edit/pattern-selection.js +9 -1
  35. package/build/query/edit/pattern-selection.js.map +1 -1
  36. package/build/query/index.js +2 -1
  37. package/build/query/index.js.map +1 -1
  38. package/build/rss/edit.js +6 -1
  39. package/build/rss/edit.js.map +1 -1
  40. package/build/site-tagline/index.js +1 -0
  41. package/build/site-tagline/index.js.map +1 -1
  42. package/build/social-link/edit.js +6 -1
  43. package/build/social-link/edit.js.map +1 -1
  44. package/build/social-links/index.js +2 -1
  45. package/build/social-links/index.js.map +1 -1
  46. package/build/spacer/edit.js +2 -1
  47. package/build/spacer/edit.js.map +1 -1
  48. package/build/table-of-contents/edit.js +33 -9
  49. package/build/table-of-contents/edit.js.map +1 -1
  50. package/build/table-of-contents/index.js +4 -0
  51. package/build/table-of-contents/index.js.map +1 -1
  52. package/build/table-of-contents/list.js +6 -3
  53. package/build/table-of-contents/list.js.map +1 -1
  54. package/build/table-of-contents/save.js +6 -3
  55. package/build/table-of-contents/save.js.map +1 -1
  56. package/build/term-template/edit.js +318 -0
  57. package/build/term-template/edit.js.map +1 -0
  58. package/build/term-template/index.js +109 -0
  59. package/build/term-template/index.js.map +1 -0
  60. package/build/term-template/save.js +16 -0
  61. package/build/term-template/save.js.map +1 -0
  62. package/build/term-template/variations.js +83 -0
  63. package/build/term-template/variations.js.map +1 -0
  64. package/build/terms-query/edit.js +20 -0
  65. package/build/terms-query/edit.js.map +1 -0
  66. package/build/terms-query/index.js +83 -0
  67. package/build/terms-query/index.js.map +1 -0
  68. package/build/terms-query/inspector-controls.js +231 -0
  69. package/build/terms-query/inspector-controls.js.map +1 -0
  70. package/build/terms-query/save.js +24 -0
  71. package/build/terms-query/save.js.map +1 -0
  72. package/build/terms-query/terms-query-content.js +71 -0
  73. package/build/terms-query/terms-query-content.js.map +1 -0
  74. package/build/utils/hooks.js +3 -0
  75. package/build/utils/hooks.js.map +1 -1
  76. package/build-module/button/edit.js +7 -2
  77. package/build-module/button/edit.js.map +1 -1
  78. package/build-module/button/edit.native.js +1 -1
  79. package/build-module/button/edit.native.js.map +1 -1
  80. package/build-module/buttons/index.js +2 -1
  81. package/build-module/buttons/index.js.map +1 -1
  82. package/build-module/categories/edit.js +3 -1
  83. package/build-module/categories/edit.js.map +1 -1
  84. package/build-module/image/edit.native.js +1 -1
  85. package/build-module/image/edit.native.js.map +1 -1
  86. package/build-module/image/image.js +5 -8
  87. package/build-module/image/image.js.map +1 -1
  88. package/build-module/image/save.js +6 -2
  89. package/build-module/image/save.js.map +1 -1
  90. package/build-module/index.js +4 -0
  91. package/build-module/index.js.map +1 -1
  92. package/build-module/navigation/edit/index.js +0 -1
  93. package/build-module/navigation/edit/index.js.map +1 -1
  94. package/build-module/navigation-link/block-inserter.js +61 -0
  95. package/build-module/navigation-link/block-inserter.js.map +1 -0
  96. package/build-module/navigation-link/dialog-wrapper.js +75 -0
  97. package/build-module/navigation-link/dialog-wrapper.js.map +1 -0
  98. package/build-module/navigation-link/link-ui.js +37 -85
  99. package/build-module/navigation-link/link-ui.js.map +1 -1
  100. package/build-module/navigation-link/page-creator.js +12 -19
  101. package/build-module/navigation-link/page-creator.js.map +1 -1
  102. package/build-module/post-date/edit.js +3 -2
  103. package/build-module/post-date/edit.js.map +1 -1
  104. package/build-module/post-featured-image/edit.js +9 -4
  105. package/build-module/post-featured-image/edit.js.map +1 -1
  106. package/build-module/post-title/edit.js +9 -3
  107. package/build-module/post-title/edit.js.map +1 -1
  108. package/build-module/query/edit/pattern-selection.js +9 -1
  109. package/build-module/query/edit/pattern-selection.js.map +1 -1
  110. package/build-module/query/index.js +2 -1
  111. package/build-module/query/index.js.map +1 -1
  112. package/build-module/rss/edit.js +8 -3
  113. package/build-module/rss/edit.js.map +1 -1
  114. package/build-module/site-tagline/index.js +1 -0
  115. package/build-module/site-tagline/index.js.map +1 -1
  116. package/build-module/social-link/edit.js +8 -3
  117. package/build-module/social-link/edit.js.map +1 -1
  118. package/build-module/social-links/index.js +2 -1
  119. package/build-module/social-links/index.js.map +1 -1
  120. package/build-module/spacer/edit.js +3 -2
  121. package/build-module/spacer/edit.js.map +1 -1
  122. package/build-module/table-of-contents/edit.js +35 -11
  123. package/build-module/table-of-contents/edit.js.map +1 -1
  124. package/build-module/table-of-contents/index.js +4 -0
  125. package/build-module/table-of-contents/index.js.map +1 -1
  126. package/build-module/table-of-contents/list.js +6 -3
  127. package/build-module/table-of-contents/list.js.map +1 -1
  128. package/build-module/table-of-contents/save.js +6 -3
  129. package/build-module/table-of-contents/save.js.map +1 -1
  130. package/build-module/term-template/edit.js +310 -0
  131. package/build-module/term-template/edit.js.map +1 -0
  132. package/build-module/term-template/index.js +102 -0
  133. package/build-module/term-template/index.js.map +1 -0
  134. package/build-module/term-template/save.js +9 -0
  135. package/build-module/term-template/save.js.map +1 -0
  136. package/build-module/term-template/variations.js +76 -0
  137. package/build-module/term-template/variations.js.map +1 -0
  138. package/build-module/terms-query/edit.js +12 -0
  139. package/build-module/terms-query/edit.js.map +1 -0
  140. package/build-module/terms-query/index.js +76 -0
  141. package/build-module/terms-query/index.js.map +1 -0
  142. package/build-module/terms-query/inspector-controls.js +224 -0
  143. package/build-module/terms-query/inspector-controls.js.map +1 -0
  144. package/build-module/terms-query/save.js +17 -0
  145. package/build-module/terms-query/save.js.map +1 -0
  146. package/build-module/terms-query/terms-query-content.js +63 -0
  147. package/build-module/terms-query/terms-query-content.js.map +1 -0
  148. package/build-module/utils/hooks.js +3 -0
  149. package/build-module/utils/hooks.js.map +1 -1
  150. package/build-style/editor-rtl.css +24 -0
  151. package/build-style/editor.css +24 -0
  152. package/build-style/style-rtl.css +16 -0
  153. package/build-style/style.css +16 -0
  154. package/build-style/term-template/editor-rtl.css +160 -0
  155. package/build-style/term-template/editor.css +160 -0
  156. package/build-style/term-template/style-rtl.css +146 -0
  157. package/build-style/term-template/style.css +146 -0
  158. package/build-style/terms-query/style-rtl.css +140 -0
  159. package/build-style/terms-query/style.css +140 -0
  160. package/build-types/table-of-contents/list.d.ts +2 -1
  161. package/build-types/table-of-contents/list.d.ts.map +1 -1
  162. package/package.json +35 -35
  163. package/src/button/edit.js +12 -1
  164. package/src/button/edit.native.js +1 -1
  165. package/src/buttons/block.json +2 -1
  166. package/src/categories/edit.js +2 -1
  167. package/src/editor.scss +1 -0
  168. package/src/image/edit.native.js +1 -1
  169. package/src/image/image.js +5 -8
  170. package/src/image/save.js +7 -1
  171. package/src/index.js +4 -0
  172. package/src/navigation/edit/index.js +0 -1
  173. package/src/navigation-link/block-inserter.js +65 -0
  174. package/src/navigation-link/dialog-wrapper.js +74 -0
  175. package/src/navigation-link/link-ui.js +32 -95
  176. package/src/navigation-link/page-creator.js +13 -20
  177. package/src/post-date/edit.js +64 -53
  178. package/src/post-date/index.php +5 -13
  179. package/src/post-featured-image/edit.js +19 -3
  180. package/src/post-title/edit.js +14 -2
  181. package/src/query/block.json +2 -1
  182. package/src/query/edit/pattern-selection.js +10 -1
  183. package/src/rss/edit.js +13 -2
  184. package/src/site-tagline/block.json +1 -0
  185. package/src/social-link/edit.js +13 -2
  186. package/src/social-links/block.json +2 -1
  187. package/src/spacer/edit.js +5 -1
  188. package/src/style.scss +2 -0
  189. package/src/table-of-contents/block.json +4 -0
  190. package/src/table-of-contents/edit.js +58 -21
  191. package/src/table-of-contents/list.tsx +7 -2
  192. package/src/table-of-contents/save.js +7 -3
  193. package/src/term-template/block.json +73 -0
  194. package/src/term-template/edit.js +391 -0
  195. package/src/term-template/editor.scss +26 -0
  196. package/src/term-template/index.js +26 -0
  197. package/src/term-template/index.php +224 -0
  198. package/src/term-template/save.js +8 -0
  199. package/src/term-template/style.scss +12 -0
  200. package/src/term-template/variations.js +87 -0
  201. package/src/terms-query/block.json +49 -0
  202. package/src/terms-query/edit.js +10 -0
  203. package/src/terms-query/index.js +24 -0
  204. package/src/terms-query/index.php +44 -0
  205. package/src/terms-query/inspector-controls.js +239 -0
  206. package/src/terms-query/save.js +10 -0
  207. package/src/terms-query/style.scss +6 -0
  208. package/src/terms-query/terms-query-content.js +74 -0
  209. package/src/utils/hooks.js +4 -0
  210. package/tsconfig.tsbuildinfo +1 -1
@@ -3,23 +3,18 @@
3
3
  */
4
4
  import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
5
5
  import { Popover, Button, VisuallyHidden, __experimentalVStack as VStack } from '@wordpress/components';
6
- import { __, isRTL } from '@wordpress/i18n';
7
- import { LinkControl, store as blockEditorStore, privateApis as blockEditorPrivateApis, useBlockEditingMode } from '@wordpress/block-editor';
6
+ import { __ } from '@wordpress/i18n';
7
+ import { LinkControl, useBlockEditingMode } from '@wordpress/block-editor';
8
8
  import { useMemo, useState, useRef, useEffect, forwardRef } from '@wordpress/element';
9
9
  import { useResourcePermissions } from '@wordpress/core-data';
10
- import { useSelect } from '@wordpress/data';
11
- import { chevronLeftSmall, chevronRightSmall, plus } from '@wordpress/icons';
12
- import { useInstanceId, useFocusOnMount } from '@wordpress/compose';
10
+ import { plus } from '@wordpress/icons';
11
+ import { useInstanceId } from '@wordpress/compose';
13
12
 
14
13
  /**
15
14
  * Internal dependencies
16
15
  */
17
- import { unlock } from '../lock-unlock';
18
16
  import { LinkUIPageCreator } from './page-creator';
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- const {
21
- PrivateQuickInserter: QuickInserter
22
- } = unlock(blockEditorPrivateApis);
17
+ import LinkUIBlockInserter from './block-inserter';
23
18
 
24
19
  /**
25
20
  * Given the Link block's type attribute, return the query params to give to
@@ -29,6 +24,7 @@ const {
29
24
  * @param {string} kind Link block's entity of kind (post-type|taxonomy)
30
25
  * @return {{ type?: string, subtype?: string }} Search query params.
31
26
  */
27
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
32
28
  export function getSuggestionsQuery(type, kind) {
33
29
  switch (type) {
34
30
  case 'post':
@@ -75,61 +71,6 @@ export function getSuggestionsQuery(type, kind) {
75
71
  };
76
72
  }
77
73
  }
78
- function LinkUIBlockInserter({
79
- clientId,
80
- onBack,
81
- onBlockInsert
82
- }) {
83
- const {
84
- rootBlockClientId
85
- } = useSelect(select => {
86
- const {
87
- getBlockRootClientId
88
- } = select(blockEditorStore);
89
- return {
90
- rootBlockClientId: getBlockRootClientId(clientId)
91
- };
92
- }, [clientId]);
93
- const focusOnMountRef = useFocusOnMount('firstElement');
94
- const dialogTitleId = useInstanceId(LinkControl, `link-ui-block-inserter__title`);
95
- const dialogDescriptionId = useInstanceId(LinkControl, `link-ui-block-inserter__description`);
96
- if (!clientId) {
97
- return null;
98
- }
99
- return /*#__PURE__*/_jsxs("div", {
100
- className: "link-ui-block-inserter",
101
- role: "dialog",
102
- "aria-labelledby": dialogTitleId,
103
- "aria-describedby": dialogDescriptionId,
104
- ref: focusOnMountRef,
105
- children: [/*#__PURE__*/_jsxs(VisuallyHidden, {
106
- children: [/*#__PURE__*/_jsx("h2", {
107
- id: dialogTitleId,
108
- children: __('Add block')
109
- }), /*#__PURE__*/_jsx("p", {
110
- id: dialogDescriptionId,
111
- children: __('Choose a block to add to your Navigation.')
112
- })]
113
- }), /*#__PURE__*/_jsx(Button, {
114
- className: "link-ui-block-inserter__back",
115
- icon: isRTL() ? chevronRightSmall : chevronLeftSmall,
116
- onClick: e => {
117
- e.preventDefault();
118
- onBack();
119
- },
120
- size: "small",
121
- children: __('Back')
122
- }), /*#__PURE__*/_jsx(QuickInserter, {
123
- rootClientId: rootBlockClientId,
124
- clientId: clientId,
125
- isAppender: false,
126
- prioritizePatterns: false,
127
- selectBlockOnInsert: !onBlockInsert,
128
- onSelect: onBlockInsert ? onBlockInsert : undefined,
129
- hasSearch: false
130
- })]
131
- });
132
- }
133
74
  function UnforwardedLinkUI(props, ref) {
134
75
  const {
135
76
  label,
@@ -161,8 +102,8 @@ function UnforwardedLinkUI(props, ref) {
161
102
  // Return to main Link UI
162
103
  setAddingPage(false);
163
104
  };
164
- const dialogTitleId = useInstanceId(LinkUI, `link-ui-link-control__title`);
165
- const dialogDescriptionId = useInstanceId(LinkUI, `link-ui-link-control__description`);
105
+ const dialogTitleId = useInstanceId(LinkUI, 'link-ui-link-control__title');
106
+ const dialogDescriptionId = useInstanceId(LinkUI, 'link-ui-link-control__description');
166
107
  const blockEditingMode = useBlockEditingMode();
167
108
  return /*#__PURE__*/_jsxs(Popover, {
168
109
  ref: ref,
@@ -194,20 +135,26 @@ function UnforwardedLinkUI(props, ref) {
194
135
  onChange: props.onChange,
195
136
  onRemove: props.onRemove,
196
137
  onCancel: props.onCancel,
197
- renderControlBottom: () => !link?.url?.length && /*#__PURE__*/_jsx(LinkUITools, {
198
- focusAddBlockButton: focusAddBlockButton,
199
- focusAddPageButton: focusAddPageButton,
200
- setAddingBlock: () => {
201
- setAddingBlock(true);
202
- setFocusAddBlockButton(false);
203
- },
204
- setAddingPage: () => {
205
- setAddingPage(true);
206
- setFocusAddPageButton(false);
207
- },
208
- canCreatePage: permissions.canCreate,
209
- blockEditingMode: blockEditingMode
210
- })
138
+ renderControlBottom: () => {
139
+ // Don't show the tools when there is submitted link (preview state).
140
+ if (link?.url?.length) {
141
+ return null;
142
+ }
143
+ return /*#__PURE__*/_jsx(LinkUITools, {
144
+ focusAddBlockButton: focusAddBlockButton,
145
+ focusAddPageButton: focusAddPageButton,
146
+ setAddingBlock: () => {
147
+ setAddingBlock(true);
148
+ setFocusAddBlockButton(false);
149
+ },
150
+ setAddingPage: () => {
151
+ setAddingPage(true);
152
+ setFocusAddPageButton(false);
153
+ },
154
+ canAddPage: permissions?.canCreate && type === 'page',
155
+ canAddBlock: blockEditingMode === 'default'
156
+ });
157
+ }
211
158
  })]
212
159
  }), addingBlock && /*#__PURE__*/_jsx(LinkUIBlockInserter, {
213
160
  clientId: props.clientId,
@@ -235,8 +182,8 @@ const LinkUITools = ({
235
182
  setAddingPage,
236
183
  focusAddBlockButton,
237
184
  focusAddPageButton,
238
- canCreatePage,
239
- blockEditingMode
185
+ canAddPage,
186
+ canAddBlock
240
187
  }) => {
241
188
  const blockInserterAriaRole = 'listbox';
242
189
  const addBlockButtonRef = useRef();
@@ -255,10 +202,15 @@ const LinkUITools = ({
255
202
  addPageButtonRef.current?.focus();
256
203
  }
257
204
  }, [focusAddPageButton]);
205
+
206
+ // Don't render anything if neither button should be shown
207
+ if (!canAddPage && !canAddBlock) {
208
+ return null;
209
+ }
258
210
  return /*#__PURE__*/_jsxs(VStack, {
259
211
  spacing: 0,
260
212
  className: "link-ui-tools",
261
- children: [canCreatePage && /*#__PURE__*/_jsx(Button, {
213
+ children: [canAddPage && /*#__PURE__*/_jsx(Button, {
262
214
  __next40pxDefaultSize: true,
263
215
  ref: addPageButtonRef,
264
216
  icon: plus,
@@ -268,7 +220,7 @@ const LinkUITools = ({
268
220
  },
269
221
  "aria-haspopup": blockInserterAriaRole,
270
222
  children: __('Create page')
271
- }), blockEditingMode === 'default' && /*#__PURE__*/_jsx(Button, {
223
+ }), canAddBlock && /*#__PURE__*/_jsx(Button, {
272
224
  __next40pxDefaultSize: true,
273
225
  ref: addBlockButtonRef,
274
226
  icon: plus,
@@ -1 +1 @@
1
- {"version":3,"names":["__unstableStripHTML","stripHTML","Popover","Button","VisuallyHidden","__experimentalVStack","VStack","__","isRTL","LinkControl","store","blockEditorStore","privateApis","blockEditorPrivateApis","useBlockEditingMode","useMemo","useState","useRef","useEffect","forwardRef","useResourcePermissions","useSelect","chevronLeftSmall","chevronRightSmall","plus","useInstanceId","useFocusOnMount","unlock","LinkUIPageCreator","jsx","_jsx","jsxs","_jsxs","PrivateQuickInserter","QuickInserter","getSuggestionsQuery","type","kind","subtype","initialSuggestionsSearchOptions","perPage","LinkUIBlockInserter","clientId","onBack","onBlockInsert","rootBlockClientId","select","getBlockRootClientId","focusOnMountRef","dialogTitleId","dialogDescriptionId","className","role","ref","children","id","icon","onClick","e","preventDefault","size","rootClientId","isAppender","prioritizePatterns","selectBlockOnInsert","onSelect","undefined","hasSearch","UnforwardedLinkUI","props","label","url","opensInNewTab","link","postType","addingBlock","setAddingBlock","addingPage","setAddingPage","focusAddBlockButton","setFocusAddBlockButton","focusAddPageButton","setFocusAddPageButton","permissions","name","title","handlePageCreated","pageLink","onChange","LinkUI","blockEditingMode","placement","onClose","anchor","shift","hasTextControl","hasRichPreviews","value","showInitialSuggestions","withCreateSuggestion","noDirectEntry","noURLSuggestion","suggestionsQuery","onRemove","onCancel","renderControlBottom","length","LinkUITools","canCreatePage","canCreate","onPageCreated","initialTitle","blockInserterAriaRole","addBlockButtonRef","addPageButtonRef","current","focus","spacing","__next40pxDefaultSize"],"sources":["@wordpress/block-library/src/navigation-link/link-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tLinkControl,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport {\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tforwardRef,\n} from '@wordpress/element';\nimport { useResourcePermissions } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { chevronLeftSmall, chevronRightSmall, plus } from '@wordpress/icons';\nimport { useInstanceId, useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { LinkUIPageCreator } from './page-creator';\n\nconst { PrivateQuickInserter: QuickInserter } = unlock(\n\tblockEditorPrivateApis\n);\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction LinkUIBlockInserter( { clientId, onBack, onBlockInsert } ) {\n\tconst { rootBlockClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\trootBlockClientId: getBlockRootClientId( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__title`\n\t);\n\tconst dialogDescriptionId = useInstanceId(\n\t\tLinkControl,\n\t\t`link-ui-block-inserter__description`\n\t);\n\n\tif ( ! clientId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"link-ui-block-inserter\"\n\t\t\trole=\"dialog\"\n\t\t\taria-labelledby={ dialogTitleId }\n\t\t\taria-describedby={ dialogDescriptionId }\n\t\t\tref={ focusOnMountRef }\n\t\t>\n\t\t\t<VisuallyHidden>\n\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add block' ) }</h2>\n\n\t\t\t\t<p id={ dialogDescriptionId }>\n\t\t\t\t\t{ __( 'Choose a block to add to your Navigation.' ) }\n\t\t\t\t</p>\n\t\t\t</VisuallyHidden>\n\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-block-inserter__back\"\n\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\n\t\t\t<QuickInserter\n\t\t\t\trootClientId={ rootBlockClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ false }\n\t\t\t\tprioritizePatterns={ false }\n\t\t\t\tselectBlockOnInsert={ ! onBlockInsert }\n\t\t\t\tonSelect={ onBlockInsert ? onBlockInsert : undefined }\n\t\t\t\thasSearch={ false }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction UnforwardedLinkUI( props, ref ) {\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\tconst postType = type || 'page';\n\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ addingPage, setAddingPage ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst [ focusAddPageButton, setFocusAddPageButton ] = useState( false );\n\tconst permissions = useResourcePermissions( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst handlePageCreated = ( pageLink ) => {\n\t\t// Set the new page as the current link\n\t\tprops.onChange( pageLink );\n\t\t// Return to main Link UI\n\t\tsetAddingPage( false );\n\t};\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__title`\n\t);\n\tconst dialogDescriptionId = useInstanceId(\n\t\tLinkUI,\n\t\t`link-ui-link-control__description`\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ ref }\n\t\t\tplacement=\"bottom\"\n\t\t\tonClose={ props.onClose }\n\t\t\tanchor={ props.anchor }\n\t\t\tshift\n\t\t>\n\t\t\t{ ! addingBlock && ! addingPage && (\n\t\t\t\t<div\n\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\taria-describedby={ dialogDescriptionId }\n\t\t\t\t>\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t<p id={ dialogDescriptionId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t\twithCreateSuggestion={ false }\n\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery( type, kind ) }\n\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\trenderControlBottom={ () =>\n\t\t\t\t\t\t\t! link?.url?.length && (\n\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\tfocusAddBlockButton={ focusAddBlockButton }\n\t\t\t\t\t\t\t\t\tfocusAddPageButton={ focusAddPageButton }\n\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t\tsetFocusAddBlockButton( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsetAddingPage={ () => {\n\t\t\t\t\t\t\t\t\t\tsetAddingPage( true );\n\t\t\t\t\t\t\t\t\t\tsetFocusAddPageButton( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tcanCreatePage={ permissions.canCreate }\n\t\t\t\t\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ addingBlock && (\n\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\tsetFocusAddBlockButton( true );\n\t\t\t\t\t\tsetFocusAddPageButton( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockInsert={ props?.onBlockInsert }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ addingPage && (\n\t\t\t\t<LinkUIPageCreator\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\tsetAddingPage( false );\n\t\t\t\t\t\tsetFocusAddPageButton( true );\n\t\t\t\t\t\tsetFocusAddBlockButton( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonPageCreated={ handlePageCreated }\n\t\t\t\t\tinitialTitle={ link?.url || '' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nexport const LinkUI = forwardRef( UnforwardedLinkUI );\n\nconst LinkUITools = ( {\n\tsetAddingBlock,\n\tsetAddingPage,\n\tfocusAddBlockButton,\n\tfocusAddPageButton,\n\tcanCreatePage,\n\tblockEditingMode,\n} ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\tconst addPageButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\t// Focus the add page button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddPageButton ) {\n\t\t\taddPageButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddPageButton ] );\n\n\treturn (\n\t\t<VStack spacing={ 0 } className=\"link-ui-tools\">\n\t\t\t{ canCreatePage && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tref={ addPageButtonRef }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tsetAddingPage( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Create page' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add block' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__unstableStripHTML","stripHTML","Popover","Button","VisuallyHidden","__experimentalVStack","VStack","__","LinkControl","useBlockEditingMode","useMemo","useState","useRef","useEffect","forwardRef","useResourcePermissions","plus","useInstanceId","LinkUIPageCreator","LinkUIBlockInserter","jsx","_jsx","jsxs","_jsxs","getSuggestionsQuery","type","kind","subtype","initialSuggestionsSearchOptions","perPage","UnforwardedLinkUI","props","ref","label","url","opensInNewTab","link","postType","addingBlock","setAddingBlock","addingPage","setAddingPage","focusAddBlockButton","setFocusAddBlockButton","focusAddPageButton","setFocusAddPageButton","permissions","name","title","handlePageCreated","pageLink","onChange","dialogTitleId","LinkUI","dialogDescriptionId","blockEditingMode","placement","onClose","anchor","shift","children","role","id","hasTextControl","hasRichPreviews","value","showInitialSuggestions","withCreateSuggestion","noDirectEntry","noURLSuggestion","suggestionsQuery","onRemove","onCancel","renderControlBottom","length","LinkUITools","canAddPage","canCreate","canAddBlock","clientId","onBack","onBlockInsert","onPageCreated","initialTitle","blockInserterAriaRole","addBlockButtonRef","addPageButtonRef","current","focus","spacing","className","__next40pxDefaultSize","icon","onClick","e","preventDefault"],"sources":["@wordpress/block-library/src/navigation-link/link-ui.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport {\n\tPopover,\n\tButton,\n\tVisuallyHidden,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { LinkControl, useBlockEditingMode } from '@wordpress/block-editor';\nimport {\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tforwardRef,\n} from '@wordpress/element';\nimport { useResourcePermissions } from '@wordpress/core-data';\nimport { plus } from '@wordpress/icons';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { LinkUIPageCreator } from './page-creator';\nimport LinkUIBlockInserter from './block-inserter';\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nexport function getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t// for custom link which has no type\n\t\t\t\t// always show pages as initial suggestions\n\t\t\t\tinitialSuggestionsSearchOptions: {\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\tsubtype: 'page',\n\t\t\t\t\tperPage: 20,\n\t\t\t\t},\n\t\t\t};\n\t}\n}\n\nfunction UnforwardedLinkUI( props, ref ) {\n\tconst { label, url, opensInNewTab, type, kind } = props.link;\n\tconst postType = type || 'page';\n\n\tconst [ addingBlock, setAddingBlock ] = useState( false );\n\tconst [ addingPage, setAddingPage ] = useState( false );\n\tconst [ focusAddBlockButton, setFocusAddBlockButton ] = useState( false );\n\tconst [ focusAddPageButton, setFocusAddPageButton ] = useState( false );\n\tconst permissions = useResourcePermissions( {\n\t\tkind: 'postType',\n\t\tname: postType,\n\t} );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/50976#issuecomment-1568226407.\n\tconst link = useMemo(\n\t\t() => ( {\n\t\t\turl,\n\t\t\topensInNewTab,\n\t\t\ttitle: label && stripHTML( label ),\n\t\t} ),\n\t\t[ label, opensInNewTab, url ]\n\t);\n\n\tconst handlePageCreated = ( pageLink ) => {\n\t\t// Set the new page as the current link\n\t\tprops.onChange( pageLink );\n\t\t// Return to main Link UI\n\t\tsetAddingPage( false );\n\t};\n\n\tconst dialogTitleId = useInstanceId(\n\t\tLinkUI,\n\t\t'link-ui-link-control__title'\n\t);\n\tconst dialogDescriptionId = useInstanceId(\n\t\tLinkUI,\n\t\t'link-ui-link-control__description'\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ ref }\n\t\t\tplacement=\"bottom\"\n\t\t\tonClose={ props.onClose }\n\t\t\tanchor={ props.anchor }\n\t\t\tshift\n\t\t>\n\t\t\t{ ! addingBlock && ! addingPage && (\n\t\t\t\t<div\n\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\taria-labelledby={ dialogTitleId }\n\t\t\t\t\taria-describedby={ dialogDescriptionId }\n\t\t\t\t>\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t<h2 id={ dialogTitleId }>{ __( 'Add link' ) }</h2>\n\n\t\t\t\t\t\t<p id={ dialogDescriptionId }>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Search for and add a link to your Navigation.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\thasTextControl\n\t\t\t\t\t\thasRichPreviews\n\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\tshowInitialSuggestions\n\t\t\t\t\t\twithCreateSuggestion={ false }\n\t\t\t\t\t\tnoDirectEntry={ !! type }\n\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery( type, kind ) }\n\t\t\t\t\t\tonChange={ props.onChange }\n\t\t\t\t\t\tonRemove={ props.onRemove }\n\t\t\t\t\t\tonCancel={ props.onCancel }\n\t\t\t\t\t\trenderControlBottom={ () => {\n\t\t\t\t\t\t\t// Don't show the tools when there is submitted link (preview state).\n\t\t\t\t\t\t\tif ( link?.url?.length ) {\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<LinkUITools\n\t\t\t\t\t\t\t\t\tfocusAddBlockButton={ focusAddBlockButton }\n\t\t\t\t\t\t\t\t\tfocusAddPageButton={ focusAddPageButton }\n\t\t\t\t\t\t\t\t\tsetAddingBlock={ () => {\n\t\t\t\t\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t\t\t\t\t\tsetFocusAddBlockButton( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tsetAddingPage={ () => {\n\t\t\t\t\t\t\t\t\t\tsetAddingPage( true );\n\t\t\t\t\t\t\t\t\t\tsetFocusAddPageButton( false );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tcanAddPage={\n\t\t\t\t\t\t\t\t\t\tpermissions?.canCreate &&\n\t\t\t\t\t\t\t\t\t\ttype === 'page'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcanAddBlock={\n\t\t\t\t\t\t\t\t\t\tblockEditingMode === 'default'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ addingBlock && (\n\t\t\t\t<LinkUIBlockInserter\n\t\t\t\t\tclientId={ props.clientId }\n\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\tsetAddingBlock( false );\n\t\t\t\t\t\tsetFocusAddBlockButton( true );\n\t\t\t\t\t\tsetFocusAddPageButton( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockInsert={ props?.onBlockInsert }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ addingPage && (\n\t\t\t\t<LinkUIPageCreator\n\t\t\t\t\tpostType={ postType }\n\t\t\t\t\tonBack={ () => {\n\t\t\t\t\t\tsetAddingPage( false );\n\t\t\t\t\t\tsetFocusAddPageButton( true );\n\t\t\t\t\t\tsetFocusAddBlockButton( false );\n\t\t\t\t\t} }\n\t\t\t\t\tonPageCreated={ handlePageCreated }\n\t\t\t\t\tinitialTitle={ link?.url || '' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</Popover>\n\t);\n}\n\nexport const LinkUI = forwardRef( UnforwardedLinkUI );\n\nconst LinkUITools = ( {\n\tsetAddingBlock,\n\tsetAddingPage,\n\tfocusAddBlockButton,\n\tfocusAddPageButton,\n\tcanAddPage,\n\tcanAddBlock,\n} ) => {\n\tconst blockInserterAriaRole = 'listbox';\n\tconst addBlockButtonRef = useRef();\n\tconst addPageButtonRef = useRef();\n\n\t// Focus the add block button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddBlockButton ) {\n\t\t\taddBlockButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddBlockButton ] );\n\n\t// Focus the add page button when the popover is opened.\n\tuseEffect( () => {\n\t\tif ( focusAddPageButton ) {\n\t\t\taddPageButtonRef.current?.focus();\n\t\t}\n\t}, [ focusAddPageButton ] );\n\n\t// Don't render anything if neither button should be shown\n\tif ( ! canAddPage && ! canAddBlock ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 0 } className=\"link-ui-tools\">\n\t\t\t{ canAddPage && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tref={ addPageButtonRef }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tsetAddingPage( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Create page' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ canAddBlock && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tref={ addBlockButtonRef }\n\t\t\t\t\ticon={ plus }\n\t\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tsetAddingBlock( true );\n\t\t\t\t\t} }\n\t\t\t\t\taria-haspopup={ blockInserterAriaRole }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add block' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</VStack>\n\t);\n};\n\nexport default LinkUITools;\n"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,16 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { Button, TextControl, Notice, CheckboxControl, __experimentalVStack as VStack, __experimentalHStack as HStack } from '@wordpress/components';
5
- import { __, isRTL } from '@wordpress/i18n';
5
+ import { __ } from '@wordpress/i18n';
6
6
  import { useSelect, useDispatch } from '@wordpress/data';
7
7
  import { store as coreStore } from '@wordpress/core-data';
8
8
  import { decodeEntities } from '@wordpress/html-entities';
9
9
  import { useState } from '@wordpress/element';
10
- import { chevronLeftSmall, chevronRightSmall } from '@wordpress/icons';
11
- import { useFocusOnMount } from '@wordpress/compose';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import DialogWrapper from './dialog-wrapper';
12
15
 
13
16
  /**
14
17
  * Component for creating new pages within the Navigation Link UI.
@@ -29,9 +32,6 @@ export function LinkUIPageCreator({
29
32
  const [title, setTitle] = useState(initialTitle);
30
33
  const [shouldPublish, setShouldPublish] = useState(false);
31
34
 
32
- // Focus the first element when the component mounts
33
- const focusOnMountRef = useFocusOnMount('firstElement');
34
-
35
35
  // Check if the title is valid for submission
36
36
  const isTitleValid = title.trim().length > 0;
37
37
 
@@ -74,19 +74,12 @@ export function LinkUIPageCreator({
74
74
  }
75
75
  }
76
76
  const isSubmitDisabled = isSaving || !isTitleValid;
77
- return /*#__PURE__*/_jsxs("div", {
77
+ return /*#__PURE__*/_jsx(DialogWrapper, {
78
78
  className: "link-ui-page-creator",
79
- ref: focusOnMountRef,
80
- children: [/*#__PURE__*/_jsx(Button, {
81
- className: "link-ui-page-creator__back",
82
- icon: isRTL() ? chevronRightSmall : chevronLeftSmall,
83
- onClick: e => {
84
- e.preventDefault();
85
- onBack();
86
- },
87
- size: "small",
88
- children: __('Back')
89
- }), /*#__PURE__*/_jsx(VStack, {
79
+ title: __('Create page'),
80
+ description: __('Create a new page to add to your Navigation.'),
81
+ onBack: onBack,
82
+ children: /*#__PURE__*/_jsx(VStack, {
90
83
  className: "link-ui-page-creator__inner",
91
84
  spacing: 4,
92
85
  children: /*#__PURE__*/_jsx("form", {
@@ -131,7 +124,7 @@ export function LinkUIPageCreator({
131
124
  })]
132
125
  })
133
126
  })
134
- })]
127
+ })
135
128
  });
136
129
  }
137
130
  //# sourceMappingURL=page-creator.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Button","TextControl","Notice","CheckboxControl","__experimentalVStack","VStack","__experimentalHStack","HStack","__","isRTL","useSelect","useDispatch","store","coreStore","decodeEntities","useState","chevronLeftSmall","chevronRightSmall","useFocusOnMount","jsx","_jsx","jsxs","_jsxs","LinkUIPageCreator","postType","onBack","onPageCreated","initialTitle","title","setTitle","shouldPublish","setShouldPublish","focusOnMountRef","isTitleValid","trim","length","lastError","isSaving","select","getLastEntitySaveError","isSavingEntityRecord","saveEntityRecord","createPage","event","preventDefault","savedRecord","status","throwOnError","pageLink","id","type","rendered","url","link","kind","error","isSubmitDisabled","className","ref","children","icon","onClick","e","size","spacing","onSubmit","__next40pxDefaultSize","__nextHasNoMarginBottom","label","onChange","placeholder","value","help","checked","isDismissible","message","justify","variant","disabled","accessibleWhenDisabled","isBusy"],"sources":["@wordpress/block-library/src/navigation-link/page-creator.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tTextControl,\n\tNotice,\n\tCheckboxControl,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\nimport { chevronLeftSmall, chevronRightSmall } from '@wordpress/icons';\nimport { useFocusOnMount } from '@wordpress/compose';\n\n/**\n * Component for creating new pages within the Navigation Link UI.\n *\n * @param {Object} props Component props.\n * @param {string} props.postType The post type to create.\n * @param {Function} props.onBack Callback when user wants to go back.\n * @param {Function} props.onPageCreated Callback when page is successfully created.\n * @param {string} [props.initialTitle] Initial title to pre-fill the form.\n */\nexport function LinkUIPageCreator( {\n\tpostType,\n\tonBack,\n\tonPageCreated,\n\tinitialTitle = '',\n} ) {\n\tconst [ title, setTitle ] = useState( initialTitle );\n\tconst [ shouldPublish, setShouldPublish ] = useState( false );\n\n\t// Focus the first element when the component mounts\n\tconst focusOnMountRef = useFocusOnMount( 'firstElement' );\n\n\t// Check if the title is valid for submission\n\tconst isTitleValid = title.trim().length > 0;\n\n\t// Get the last created entity record (without ID) to track creation state\n\tconst { lastError, isSaving } = useSelect(\n\t\t( select ) => ( {\n\t\t\tlastError: select( coreStore ).getLastEntitySaveError(\n\t\t\t\t'postType',\n\t\t\t\tpostType\n\t\t\t),\n\t\t\tisSaving: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType\n\t\t\t),\n\t\t} ),\n\t\t[ postType ]\n\t);\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tasync function createPage( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isSaving || ! isTitleValid ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\ttitle,\n\t\t\t\t\tstatus: shouldPublish ? 'publish' : 'draft',\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tif ( savedRecord ) {\n\t\t\t\t// Create the page link object from the saved record\n\t\t\t\tconst pageLink = {\n\t\t\t\t\tid: savedRecord.id,\n\t\t\t\t\ttype: postType,\n\t\t\t\t\ttitle: decodeEntities( savedRecord.title.rendered ),\n\t\t\t\t\turl: savedRecord.link,\n\t\t\t\t\tkind: 'post-type',\n\t\t\t\t};\n\n\t\t\t\tonPageCreated( pageLink );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// Error handling is done via the data store selectors\n\t\t}\n\t}\n\n\tconst isSubmitDisabled = isSaving || ! isTitleValid;\n\n\treturn (\n\t\t<div className=\"link-ui-page-creator\" ref={ focusOnMountRef }>\n\t\t\t<Button\n\t\t\t\tclassName=\"link-ui-page-creator__back\"\n\t\t\t\ticon={ isRTL() ? chevronRightSmall : chevronLeftSmall }\n\t\t\t\tonClick={ ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonBack();\n\t\t\t\t} }\n\t\t\t\tsize=\"small\"\n\t\t\t>\n\t\t\t\t{ __( 'Back' ) }\n\t\t\t</Button>\n\n\t\t\t<VStack className=\"link-ui-page-creator__inner\" spacing={ 4 }>\n\t\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Publish immediately' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'If unchecked, the page will be created as a draft.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ shouldPublish }\n\t\t\t\t\t\t\tonChange={ setShouldPublish }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{ lastError && (\n\t\t\t\t\t\t\t<Notice status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ lastError.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<HStack spacing={ 2 } justify=\"flex-end\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t\t\taria-disabled={ isSubmitDisabled }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create page' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</VStack>\n\t\t\t\t</form>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","TextControl","Notice","CheckboxControl","__experimentalVStack","VStack","__experimentalHStack","HStack","__","useSelect","useDispatch","store","coreStore","decodeEntities","useState","DialogWrapper","jsx","_jsx","jsxs","_jsxs","LinkUIPageCreator","postType","onBack","onPageCreated","initialTitle","title","setTitle","shouldPublish","setShouldPublish","isTitleValid","trim","length","lastError","isSaving","select","getLastEntitySaveError","isSavingEntityRecord","saveEntityRecord","createPage","event","preventDefault","savedRecord","status","throwOnError","pageLink","id","type","rendered","url","link","kind","error","isSubmitDisabled","className","description","children","spacing","onSubmit","__next40pxDefaultSize","__nextHasNoMarginBottom","label","onChange","placeholder","value","help","checked","isDismissible","message","justify","variant","onClick","disabled","accessibleWhenDisabled","isBusy"],"sources":["@wordpress/block-library/src/navigation-link/page-creator.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tTextControl,\n\tNotice,\n\tCheckboxControl,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DialogWrapper from './dialog-wrapper';\n\n/**\n * Component for creating new pages within the Navigation Link UI.\n *\n * @param {Object} props Component props.\n * @param {string} props.postType The post type to create.\n * @param {Function} props.onBack Callback when user wants to go back.\n * @param {Function} props.onPageCreated Callback when page is successfully created.\n * @param {string} [props.initialTitle] Initial title to pre-fill the form.\n */\nexport function LinkUIPageCreator( {\n\tpostType,\n\tonBack,\n\tonPageCreated,\n\tinitialTitle = '',\n} ) {\n\tconst [ title, setTitle ] = useState( initialTitle );\n\tconst [ shouldPublish, setShouldPublish ] = useState( false );\n\n\t// Check if the title is valid for submission\n\tconst isTitleValid = title.trim().length > 0;\n\n\t// Get the last created entity record (without ID) to track creation state\n\tconst { lastError, isSaving } = useSelect(\n\t\t( select ) => ( {\n\t\t\tlastError: select( coreStore ).getLastEntitySaveError(\n\t\t\t\t'postType',\n\t\t\t\tpostType\n\t\t\t),\n\t\t\tisSaving: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType\n\t\t\t),\n\t\t} ),\n\t\t[ postType ]\n\t);\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tasync function createPage( event ) {\n\t\tevent.preventDefault();\n\t\tif ( isSaving || ! isTitleValid ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\ttitle,\n\t\t\t\t\tstatus: shouldPublish ? 'publish' : 'draft',\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tif ( savedRecord ) {\n\t\t\t\t// Create the page link object from the saved record\n\t\t\t\tconst pageLink = {\n\t\t\t\t\tid: savedRecord.id,\n\t\t\t\t\ttype: postType,\n\t\t\t\t\ttitle: decodeEntities( savedRecord.title.rendered ),\n\t\t\t\t\turl: savedRecord.link,\n\t\t\t\t\tkind: 'post-type',\n\t\t\t\t};\n\n\t\t\t\tonPageCreated( pageLink );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\t// Error handling is done via the data store selectors\n\t\t}\n\t}\n\n\tconst isSubmitDisabled = isSaving || ! isTitleValid;\n\n\treturn (\n\t\t<DialogWrapper\n\t\t\tclassName=\"link-ui-page-creator\"\n\t\t\ttitle={ __( 'Create page' ) }\n\t\t\tdescription={ __( 'Create a new page to add to your Navigation.' ) }\n\t\t\tonBack={ onBack }\n\t\t>\n\t\t\t<VStack className=\"link-ui-page-creator__inner\" spacing={ 4 }>\n\t\t\t\t<form onSubmit={ createPage }>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Title' ) }\n\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\tplaceholder={ __( 'No title' ) }\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Publish immediately' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'If unchecked, the page will be created as a draft.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tchecked={ shouldPublish }\n\t\t\t\t\t\t\tonChange={ setShouldPublish }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{ lastError && (\n\t\t\t\t\t\t\t<Notice status=\"error\" isDismissible={ false }>\n\t\t\t\t\t\t\t\t{ lastError.message }\n\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<HStack spacing={ 2 } justify=\"flex-end\">\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onBack }\n\t\t\t\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t\t\taria-disabled={ isSubmitDisabled }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create page' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</VStack>\n\t\t\t\t</form>\n\t\t\t</VStack>\n\t\t</DialogWrapper>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ import clsx from 'clsx';
9
9
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
10
10
  import { useEffect, useMemo, useState } from '@wordpress/element';
11
11
  import { dateI18n, humanTimeDiff, getSettings as getDateSettings } from '@wordpress/date';
12
- import { AlignmentControl, BlockControls, InspectorControls, store as blockEditorStore, useBlockProps, __experimentalDateFormatPicker as DateFormatPicker, __experimentalPublishDateTimePicker as PublishDateTimePicker } from '@wordpress/block-editor';
12
+ import { AlignmentControl, BlockControls, InspectorControls, store as blockEditorStore, useBlockProps, useBlockEditingMode, __experimentalDateFormatPicker as DateFormatPicker, __experimentalPublishDateTimePicker as PublishDateTimePicker } from '@wordpress/block-editor';
13
13
  import { Dropdown, ToolbarGroup, ToolbarButton, ToggleControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
14
14
  import { __, _x, sprintf } from '@wordpress/i18n';
15
15
  import { edit } from '@wordpress/icons';
@@ -70,6 +70,7 @@ export default function PostDateEdit({
70
70
  const [siteFormat = dateSettings.formats.date] = useEntityProp('root', 'site', 'date_format');
71
71
  const [siteTimeFormat = dateSettings.formats.time] = useEntityProp('root', 'site', 'time_format');
72
72
  const postType = useSelect(select => postTypeSlug ? select(coreStore).getPostType(postTypeSlug) : null, [postTypeSlug]);
73
+ const blockEditingMode = useBlockEditingMode();
73
74
  let postDate = /*#__PURE__*/_jsx("time", {
74
75
  dateTime: dateI18n('c', datetime),
75
76
  ref: setPopoverAnchor,
@@ -83,7 +84,7 @@ export default function PostDateEdit({
83
84
  });
84
85
  }
85
86
  return /*#__PURE__*/_jsxs(_Fragment, {
86
- children: [/*#__PURE__*/_jsxs(BlockControls, {
87
+ children: [(blockEditingMode === 'default' || !isDescendentOfQueryLoop) && /*#__PURE__*/_jsxs(BlockControls, {
87
88
  group: "block",
88
89
  children: [/*#__PURE__*/_jsx(AlignmentControl, {
89
90
  value: textAlign,
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","useEntityProp","store","coreStore","useEffect","useMemo","useState","dateI18n","humanTimeDiff","getSettings","getDateSettings","AlignmentControl","BlockControls","InspectorControls","blockEditorStore","useBlockProps","__experimentalDateFormatPicker","DateFormatPicker","__experimentalPublishDateTimePicker","PublishDateTimePicker","Dropdown","ToolbarGroup","ToolbarButton","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","_x","sprintf","edit","DOWN","useSelect","useDispatch","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PostDateEdit","attributes","datetime","textAlign","format","isLink","metadata","context","postType","postTypeSlug","queryId","setAttributes","displayType","bindings","source","args","key","blockProps","className","dropdownMenuProps","popoverAnchor","setPopoverAnchor","popoverProps","anchor","__unstableMarkNextChangeAsNotPersistent","undefined","Date","isDescendentOfQueryLoop","Number","isFinite","dateSettings","siteFormat","formats","date","siteTimeFormat","time","select","getPostType","postDate","dateTime","ref","children","href","onClick","event","preventDefault","group","value","onChange","nextAlign","renderContent","onClose","title","currentDate","newDatetime","is12Hour","is12HourFormat","dateOrder","renderToggle","isOpen","onToggle","openOnArrowDown","keyCode","icon","onKeyDown","label","resetAll","hasValue","onDeselect","isShownByDefault","defaultFormat","nextFormat","labels","singular_name","toLowerCase","__nextHasNoMarginBottom","checked","test"],"sources":["@wordpress/block-library/src/post-date/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes: { datetime, textAlign, format, isLink, metadata },\n\tcontext: { postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst displayType =\n\t\tmetadata?.bindings?.datetime?.source === 'core/post-data' &&\n\t\tmetadata?.bindings?.datetime?.args?.key;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tlet postDate = (\n\t\t<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( datetime )\n\t\t\t\t: dateI18n( format || siteFormat, datetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ displayType !== 'modified' && ! isDescendentOfQueryLoop && (\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\tdisplayType === 'date'\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t/>\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</ToolbarGroup>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useEntityProp","store","coreStore","useEffect","useMemo","useState","dateI18n","humanTimeDiff","getSettings","getDateSettings","AlignmentControl","BlockControls","InspectorControls","blockEditorStore","useBlockProps","useBlockEditingMode","__experimentalDateFormatPicker","DateFormatPicker","__experimentalPublishDateTimePicker","PublishDateTimePicker","Dropdown","ToolbarGroup","ToolbarButton","ToggleControl","__experimentalToolsPanel","ToolsPanel","__experimentalToolsPanelItem","ToolsPanelItem","__","_x","sprintf","edit","DOWN","useSelect","useDispatch","useToolsPanelDropdownMenuProps","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","PostDateEdit","attributes","datetime","textAlign","format","isLink","metadata","context","postType","postTypeSlug","queryId","setAttributes","displayType","bindings","source","args","key","blockProps","className","dropdownMenuProps","popoverAnchor","setPopoverAnchor","popoverProps","anchor","__unstableMarkNextChangeAsNotPersistent","undefined","Date","isDescendentOfQueryLoop","Number","isFinite","dateSettings","siteFormat","formats","date","siteTimeFormat","time","select","getPostType","blockEditingMode","postDate","dateTime","ref","children","href","onClick","event","preventDefault","group","value","onChange","nextAlign","renderContent","onClose","title","currentDate","newDatetime","is12Hour","is12HourFormat","dateOrder","renderToggle","isOpen","onToggle","openOnArrowDown","keyCode","icon","onKeyDown","label","resetAll","hasValue","onDeselect","isShownByDefault","defaultFormat","nextFormat","labels","singular_name","toLowerCase","__nextHasNoMarginBottom","checked","test"],"sources":["@wordpress/block-library/src/post-date/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tdateI18n,\n\thumanTimeDiff,\n\tgetSettings as getDateSettings,\n} from '@wordpress/date';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n\tuseBlockEditingMode,\n\t__experimentalDateFormatPicker as DateFormatPicker,\n\t__experimentalPublishDateTimePicker as PublishDateTimePicker,\n} from '@wordpress/block-editor';\nimport {\n\tDropdown,\n\tToolbarGroup,\n\tToolbarButton,\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { edit } from '@wordpress/icons';\nimport { DOWN } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function PostDateEdit( {\n\tattributes: { datetime, textAlign, format, isLink, metadata },\n\tcontext: { postType: postTypeSlug, queryId },\n\tsetAttributes,\n} ) {\n\tconst displayType =\n\t\tmetadata?.bindings?.datetime?.source === 'core/post-data' &&\n\t\tmetadata?.bindings?.datetime?.args?.key;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( { anchor: popoverAnchor } ),\n\t\t[ popoverAnchor ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// We need to set the datetime to a default value upon first loading\n\t// to discern the block from its legacy version (which would default\n\t// to the containing post's publish date).\n\tuseEffect( () => {\n\t\tif ( datetime === undefined ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { datetime: new Date() } );\n\t\t}\n\t}, [ datetime ] );\n\n\tconst isDescendentOfQueryLoop = Number.isFinite( queryId );\n\tconst dateSettings = getDateSettings();\n\tconst [ siteFormat = dateSettings.formats.date ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'date_format'\n\t);\n\tconst [ siteTimeFormat = dateSettings.formats.time ] = useEntityProp(\n\t\t'root',\n\t\t'site',\n\t\t'time_format'\n\t);\n\n\tconst postType = useSelect(\n\t\t( select ) =>\n\t\t\tpostTypeSlug\n\t\t\t\t? select( coreStore ).getPostType( postTypeSlug )\n\t\t\t\t: null,\n\t\t[ postTypeSlug ]\n\t);\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tlet postDate = (\n\t\t<time dateTime={ dateI18n( 'c', datetime ) } ref={ setPopoverAnchor }>\n\t\t\t{ format === 'human-diff'\n\t\t\t\t? humanTimeDiff( datetime )\n\t\t\t\t: dateI18n( format || siteFormat, datetime ) }\n\t\t</time>\n\t);\n\n\tif ( isLink && datetime ) {\n\t\tpostDate = (\n\t\t\t<a\n\t\t\t\thref=\"#post-date-pseudo-link\"\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ postDate }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ ( blockEditingMode === 'default' ||\n\t\t\t\t! isDescendentOfQueryLoop ) && (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t{ displayType !== 'modified' &&\n\t\t\t\t\t\t! isDescendentOfQueryLoop && (\n\t\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t\t<Dropdown\n\t\t\t\t\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t\t<PublishDateTimePicker\n\t\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayType === 'date'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Publish Date' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Date' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcurrentDate={ datetime }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( newDatetime ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdatetime: newDatetime,\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tis12Hour={ is12HourFormat(\n\t\t\t\t\t\t\t\t\t\t\t\tsiteTimeFormat\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\t\tdateOrder={\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'dmy', 'date order' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\t\t\t\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t! isOpen &&\n\t\t\t\t\t\t\t\t\t\t\t\tevent.keyCode === DOWN\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ edit }\n\t\t\t\t\t\t\t\t\t\t\t\ttitle={ __( 'Change Date' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdatetime: undefined,\n\t\t\t\t\t\t\tformat: undefined,\n\t\t\t\t\t\t\tisLink: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! format }\n\t\t\t\t\t\tlabel={ __( 'Date Format' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { format: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<DateFormatPicker\n\t\t\t\t\t\t\tformat={ format }\n\t\t\t\t\t\t\tdefaultFormat={ siteFormat }\n\t\t\t\t\t\t\tonChange={ ( nextFormat ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { format: nextFormat } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => isLink !== false }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { isLink: false } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tpostType?.labels.singular_name\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"post\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Link to %s' ),\n\t\t\t\t\t\t\t\t\t\t\tpostType.labels.singular_name.toLowerCase()\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Link to post' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { isLink: ! isLink } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\n\t\t\t<div { ...blockProps }>{ postDate }</div>\n\t\t</>\n\t);\n}\n\nexport function is12HourFormat( format ) {\n\t// To know if the time format is a 12 hour time, look for any of the 12 hour\n\t// format characters: 'a', 'A', 'g', and 'h'. The character must be\n\t// unescaped, i.e. not preceded by a '\\'. Coincidentally, 'aAgh' is how I\n\t// feel when working with regular expressions.\n\t// https://www.php.net/manual/en/datetime.format.php\n\treturn /(?:^|[^\\\\])[aAgh]/.test( format );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,9 +9,9 @@ import clsx from 'clsx';
9
9
  import { isBlobURL } from '@wordpress/blob';
10
10
  import { useEntityProp, store as coreStore } from '@wordpress/core-data';
11
11
  import { useSelect, useDispatch } from '@wordpress/data';
12
- import { ToggleControl, Placeholder, Button, Spinner, TextControl, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
12
+ import { ToggleControl, Placeholder, Button, Spinner, TextControl, ExternalLink, __experimentalToolsPanel as ToolsPanel, __experimentalToolsPanelItem as ToolsPanelItem } from '@wordpress/components';
13
13
  import { InspectorControls, BlockControls, MediaPlaceholder, MediaReplaceFlow, useBlockProps, __experimentalUseBorderProps as useBorderProps, __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles, useBlockEditingMode, privateApis as blockEditorPrivateApis, store as blockEditorStore } from '@wordpress/block-editor';
14
- import { useMemo, useEffect, useState } from '@wordpress/element';
14
+ import { useMemo, useEffect, useState, createInterpolateElement } from '@wordpress/element';
15
15
  import { __, sprintf } from '@wordpress/i18n';
16
16
  import { upload } from '@wordpress/icons';
17
17
  import { store as noticesStore } from '@wordpress/notices';
@@ -247,7 +247,7 @@ export default function PostFeaturedImageEdit({
247
247
  checked: linkTarget === '_blank'
248
248
  })
249
249
  }), isLink && /*#__PURE__*/_jsx(ToolsPanelItem, {
250
- label: __('Link rel'),
250
+ label: __('Link relation'),
251
251
  isShownByDefault: true,
252
252
  hasValue: () => !!rel,
253
253
  onDeselect: () => setAttributes({
@@ -256,7 +256,12 @@ export default function PostFeaturedImageEdit({
256
256
  children: /*#__PURE__*/_jsx(TextControl, {
257
257
  __next40pxDefaultSize: true,
258
258
  __nextHasNoMarginBottom: true,
259
- label: __('Link rel'),
259
+ label: __('Link relation'),
260
+ help: createInterpolateElement(__('The <a>Link Relation</a> attribute defines the relationship between a linked resource and the current document.'), {
261
+ a: /*#__PURE__*/_jsx(ExternalLink, {
262
+ href: "https://developer.mozilla.org/docs/Web/HTML/Attributes/rel"
263
+ })
264
+ }),
260
265
  value: rel,
261
266
  onChange: newRel => setAttributes({
262
267
  rel: newRel