@wordpress/fields 0.28.0 → 0.28.1-next.738bb1424.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 (194) hide show
  1. package/README.md +4 -0
  2. package/build/actions/{delete-post.js → delete-post.cjs} +4 -4
  3. package/build/actions/{duplicate-pattern.js → duplicate-pattern.cjs} +2 -2
  4. package/build/actions/{duplicate-post.js → duplicate-post.cjs} +2 -2
  5. package/build/actions/{duplicate-template-part.js → duplicate-template-part.cjs} +3 -3
  6. package/build/actions/{export-pattern.js → export-pattern.cjs} +2 -2
  7. package/build/actions/{index.js → index.cjs} +14 -14
  8. package/build/actions/{permanently-delete-post.js → permanently-delete-post.cjs} +2 -2
  9. package/build/actions/{rename-post.js → rename-post.cjs} +3 -4
  10. package/build/actions/{rename-post.js.map → rename-post.cjs.map} +2 -2
  11. package/build/actions/{reorder-page.js → reorder-page.cjs} +1 -1
  12. package/build/actions/{reset-post.js → reset-post.cjs} +3 -3
  13. package/build/actions/{restore-post.js → restore-post.cjs} +2 -2
  14. package/build/actions/{trash-post.js → trash-post.cjs} +3 -3
  15. package/build/actions/trash-post.cjs.map +7 -0
  16. package/build/actions/{utils.js → utils.cjs} +1 -1
  17. package/build/actions/{view-post-revisions.js → view-post-revisions.cjs} +1 -1
  18. package/build/actions/{view-post.js → view-post.cjs} +1 -1
  19. package/build/components/create-template-part-modal/{index.js → index.cjs} +11 -7
  20. package/build/components/create-template-part-modal/index.cjs.map +7 -0
  21. package/build/components/create-template-part-modal/{utils.js → utils.cjs} +1 -1
  22. package/build/fields/author/{author-view.js → author-view.cjs} +2 -2
  23. package/build/fields/author/{index.js → index.cjs} +2 -2
  24. package/build/fields/comment-status/{index.js → index.cjs} +1 -1
  25. package/build/fields/date/{date-view.js → date-view.cjs} +1 -1
  26. package/build/fields/date/{index.js → index.cjs} +2 -2
  27. package/build/fields/discussion/{index.js → index.cjs} +1 -1
  28. package/build/fields/featured-image/{featured-image-edit.js → featured-image-edit.cjs} +2 -2
  29. package/build/fields/featured-image/{featured-image-view.js → featured-image-view.cjs} +1 -1
  30. package/build/fields/featured-image/{index.js → index.cjs} +3 -3
  31. package/build/fields/{index.js → index.cjs} +20 -17
  32. package/build/fields/{index.js.map → index.cjs.map} +2 -2
  33. package/build/fields/notes/index.cjs +35 -0
  34. package/build/fields/notes/index.cjs.map +7 -0
  35. package/build/fields/order/{index.js → index.cjs} +1 -1
  36. package/build/fields/page-title/{index.js → index.cjs} +3 -3
  37. package/build/fields/page-title/{view.js → view.cjs} +3 -3
  38. package/build/fields/parent/{index.js → index.cjs} +3 -3
  39. package/build/fields/parent/{parent-edit.js → parent-edit.cjs} +6 -5
  40. package/build/fields/parent/parent-edit.cjs.map +7 -0
  41. package/build/fields/parent/{parent-view.js → parent-view.cjs} +2 -2
  42. package/build/fields/parent/{utils.js → utils.cjs} +1 -1
  43. package/build/fields/password/{edit.js → edit.cjs} +1 -3
  44. package/build/fields/password/{edit.js.map → edit.cjs.map} +2 -2
  45. package/build/fields/password/{index.js → index.cjs} +2 -2
  46. package/build/fields/pattern-title/{index.js → index.cjs} +3 -3
  47. package/build/fields/pattern-title/{view.js → view.cjs} +3 -3
  48. package/build/fields/ping-status/{index.js → index.cjs} +1 -2
  49. package/build/fields/ping-status/index.cjs.map +7 -0
  50. package/build/fields/slug/{index.js → index.cjs} +3 -3
  51. package/build/fields/slug/{slug-edit.js → slug-edit.cjs} +5 -5
  52. package/build/fields/slug/slug-edit.cjs.map +7 -0
  53. package/build/fields/slug/{slug-view.js → slug-view.cjs} +2 -2
  54. package/build/fields/slug/{utils.js → utils.cjs} +2 -2
  55. package/build/fields/status/{index.js → index.cjs} +3 -3
  56. package/build/fields/status/{status-elements.js → status-elements.cjs} +1 -1
  57. package/build/fields/status/{status-view.js → status-view.cjs} +2 -2
  58. package/build/fields/template/{index.js → index.cjs} +2 -2
  59. package/build/fields/template/{template-edit.js → template-edit.cjs} +3 -3
  60. package/build/fields/template-title/{index.js → index.cjs} +3 -3
  61. package/build/fields/title/{index.js → index.cjs} +3 -3
  62. package/build/fields/title/{view.js → view.cjs} +3 -3
  63. package/build/{index.js → index.cjs} +6 -6
  64. package/build/{index.js.map → index.cjs.map} +1 -1
  65. package/build/{lock-unlock.js → lock-unlock.cjs} +1 -1
  66. package/build/mutation/{index.js → index.cjs} +1 -1
  67. package/build/{types.js → types.cjs} +1 -1
  68. package/build/{types.js.map → types.cjs.map} +1 -1
  69. package/build-module/actions/delete-post.js +3 -3
  70. package/build-module/actions/duplicate-pattern.js +1 -1
  71. package/build-module/actions/duplicate-post.js +1 -1
  72. package/build-module/actions/duplicate-template-part.js +2 -2
  73. package/build-module/actions/export-pattern.js +1 -1
  74. package/build-module/actions/index.js +13 -13
  75. package/build-module/actions/permanently-delete-post.js +1 -1
  76. package/build-module/actions/rename-post.js +2 -3
  77. package/build-module/actions/rename-post.js.map +2 -2
  78. package/build-module/actions/reset-post.js +1 -1
  79. package/build-module/actions/restore-post.js +1 -1
  80. package/build-module/actions/trash-post.js +2 -2
  81. package/build-module/actions/trash-post.js.map +2 -2
  82. package/build-module/components/create-template-part-modal/index.js +11 -6
  83. package/build-module/components/create-template-part-modal/index.js.map +2 -2
  84. package/build-module/fields/author/index.js +1 -1
  85. package/build-module/fields/date/index.js +1 -1
  86. package/build-module/fields/featured-image/featured-image-edit.js +1 -1
  87. package/build-module/fields/featured-image/index.js +2 -2
  88. package/build-module/fields/index.js +18 -16
  89. package/build-module/fields/index.js.map +2 -2
  90. package/build-module/fields/notes/index.js +14 -0
  91. package/build-module/fields/notes/index.js.map +7 -0
  92. package/build-module/fields/page-title/index.js +2 -2
  93. package/build-module/fields/page-title/view.js +2 -2
  94. package/build-module/fields/parent/index.js +2 -2
  95. package/build-module/fields/parent/parent-edit.js +4 -3
  96. package/build-module/fields/parent/parent-edit.js.map +2 -2
  97. package/build-module/fields/parent/parent-view.js +1 -1
  98. package/build-module/fields/password/edit.js +0 -2
  99. package/build-module/fields/password/edit.js.map +2 -2
  100. package/build-module/fields/password/index.js +1 -1
  101. package/build-module/fields/pattern-title/index.js +2 -2
  102. package/build-module/fields/pattern-title/view.js +2 -2
  103. package/build-module/fields/ping-status/index.js +0 -1
  104. package/build-module/fields/ping-status/index.js.map +2 -2
  105. package/build-module/fields/slug/index.js +2 -2
  106. package/build-module/fields/slug/slug-edit.js +5 -4
  107. package/build-module/fields/slug/slug-edit.js.map +2 -2
  108. package/build-module/fields/slug/slug-view.js +1 -1
  109. package/build-module/fields/slug/utils.js +1 -1
  110. package/build-module/fields/status/index.js +2 -2
  111. package/build-module/fields/status/status-view.js +1 -1
  112. package/build-module/fields/template/index.js +1 -1
  113. package/build-module/fields/template/template-edit.js +2 -2
  114. package/build-module/fields/template-title/index.js +2 -2
  115. package/build-module/fields/title/index.js +2 -2
  116. package/build-module/fields/title/view.js +1 -1
  117. package/build-module/index.js +3 -3
  118. package/build-types/actions/rename-post.d.ts.map +1 -1
  119. package/build-types/components/create-template-part-modal/index.d.ts.map +1 -1
  120. package/build-types/components/create-template-part-modal/utils.d.ts +1 -1
  121. package/build-types/components/create-template-part-modal/utils.d.ts.map +1 -1
  122. package/build-types/fields/index.d.ts +1 -0
  123. package/build-types/fields/index.d.ts.map +1 -1
  124. package/build-types/fields/notes/index.d.ts +17 -0
  125. package/build-types/fields/notes/index.d.ts.map +1 -0
  126. package/build-types/fields/parent/parent-edit.d.ts.map +1 -1
  127. package/build-types/fields/password/edit.d.ts.map +1 -1
  128. package/build-types/fields/ping-status/index.d.ts.map +1 -1
  129. package/build-types/fields/slug/slug-edit.d.ts.map +1 -1
  130. package/build-types/types.d.ts +4 -1
  131. package/build-types/types.d.ts.map +1 -1
  132. package/package.json +37 -28
  133. package/src/actions/rename-post.tsx +0 -1
  134. package/src/actions/trash-post.tsx +1 -1
  135. package/src/components/create-template-part-modal/index.tsx +23 -5
  136. package/src/fields/index.ts +1 -0
  137. package/src/fields/notes/index.tsx +27 -0
  138. package/src/fields/parent/parent-edit.tsx +2 -1
  139. package/src/fields/password/edit.tsx +0 -2
  140. package/src/fields/ping-status/index.tsx +0 -1
  141. package/src/fields/slug/slug-edit.tsx +9 -6
  142. package/src/types.ts +5 -1
  143. package/build/actions/trash-post.js.map +0 -7
  144. package/build/components/create-template-part-modal/index.js.map +0 -7
  145. package/build/fields/parent/parent-edit.js.map +0 -7
  146. package/build/fields/ping-status/index.js.map +0 -7
  147. package/build/fields/slug/slug-edit.js.map +0 -7
  148. package/tsconfig.json +0 -31
  149. package/tsconfig.tsbuildinfo +0 -1
  150. /package/build/actions/{delete-post.js.map → delete-post.cjs.map} +0 -0
  151. /package/build/actions/{duplicate-pattern.js.map → duplicate-pattern.cjs.map} +0 -0
  152. /package/build/actions/{duplicate-post.js.map → duplicate-post.cjs.map} +0 -0
  153. /package/build/actions/{duplicate-template-part.js.map → duplicate-template-part.cjs.map} +0 -0
  154. /package/build/actions/{export-pattern.js.map → export-pattern.cjs.map} +0 -0
  155. /package/build/actions/{index.js.map → index.cjs.map} +0 -0
  156. /package/build/actions/{permanently-delete-post.js.map → permanently-delete-post.cjs.map} +0 -0
  157. /package/build/actions/{reorder-page.js.map → reorder-page.cjs.map} +0 -0
  158. /package/build/actions/{reset-post.js.map → reset-post.cjs.map} +0 -0
  159. /package/build/actions/{restore-post.js.map → restore-post.cjs.map} +0 -0
  160. /package/build/actions/{utils.js.map → utils.cjs.map} +0 -0
  161. /package/build/actions/{view-post-revisions.js.map → view-post-revisions.cjs.map} +0 -0
  162. /package/build/actions/{view-post.js.map → view-post.cjs.map} +0 -0
  163. /package/build/components/create-template-part-modal/{utils.js.map → utils.cjs.map} +0 -0
  164. /package/build/fields/author/{author-view.js.map → author-view.cjs.map} +0 -0
  165. /package/build/fields/author/{index.js.map → index.cjs.map} +0 -0
  166. /package/build/fields/comment-status/{index.js.map → index.cjs.map} +0 -0
  167. /package/build/fields/date/{date-view.js.map → date-view.cjs.map} +0 -0
  168. /package/build/fields/date/{index.js.map → index.cjs.map} +0 -0
  169. /package/build/fields/discussion/{index.js.map → index.cjs.map} +0 -0
  170. /package/build/fields/featured-image/{featured-image-edit.js.map → featured-image-edit.cjs.map} +0 -0
  171. /package/build/fields/featured-image/{featured-image-view.js.map → featured-image-view.cjs.map} +0 -0
  172. /package/build/fields/featured-image/{index.js.map → index.cjs.map} +0 -0
  173. /package/build/fields/order/{index.js.map → index.cjs.map} +0 -0
  174. /package/build/fields/page-title/{index.js.map → index.cjs.map} +0 -0
  175. /package/build/fields/page-title/{view.js.map → view.cjs.map} +0 -0
  176. /package/build/fields/parent/{index.js.map → index.cjs.map} +0 -0
  177. /package/build/fields/parent/{parent-view.js.map → parent-view.cjs.map} +0 -0
  178. /package/build/fields/parent/{utils.js.map → utils.cjs.map} +0 -0
  179. /package/build/fields/password/{index.js.map → index.cjs.map} +0 -0
  180. /package/build/fields/pattern-title/{index.js.map → index.cjs.map} +0 -0
  181. /package/build/fields/pattern-title/{view.js.map → view.cjs.map} +0 -0
  182. /package/build/fields/slug/{index.js.map → index.cjs.map} +0 -0
  183. /package/build/fields/slug/{slug-view.js.map → slug-view.cjs.map} +0 -0
  184. /package/build/fields/slug/{utils.js.map → utils.cjs.map} +0 -0
  185. /package/build/fields/status/{index.js.map → index.cjs.map} +0 -0
  186. /package/build/fields/status/{status-elements.js.map → status-elements.cjs.map} +0 -0
  187. /package/build/fields/status/{status-view.js.map → status-view.cjs.map} +0 -0
  188. /package/build/fields/template/{index.js.map → index.cjs.map} +0 -0
  189. /package/build/fields/template/{template-edit.js.map → template-edit.cjs.map} +0 -0
  190. /package/build/fields/template-title/{index.js.map → index.cjs.map} +0 -0
  191. /package/build/fields/title/{index.js.map → index.cjs.map} +0 -0
  192. /package/build/fields/title/{view.js.map → view.cjs.map} +0 -0
  193. /package/build/{lock-unlock.js.map → lock-unlock.cjs.map} +0 -0
  194. /package/build/mutation/{index.js.map → index.cjs.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/fields",
3
- "version": "0.28.0",
3
+ "version": "0.28.1-next.738bb1424.0",
4
4
  "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -22,13 +22,22 @@
22
22
  "node": ">=18.12.0",
23
23
  "npm": ">=8.19.2"
24
24
  },
25
- "main": "build/index.js",
25
+ "files": [
26
+ "src",
27
+ "build",
28
+ "build-module",
29
+ "build-style",
30
+ "build-types",
31
+ "*.md"
32
+ ],
33
+ "type": "module",
34
+ "main": "build/index.cjs",
26
35
  "module": "build-module/index.js",
27
36
  "exports": {
28
37
  ".": {
29
38
  "types": "./build-types/index.d.ts",
30
39
  "import": "./build-module/index.js",
31
- "require": "./build/index.js"
40
+ "require": "./build/index.cjs"
32
41
  },
33
42
  "./package.json": "./package.json"
34
43
  },
@@ -39,30 +48,30 @@
39
48
  "src/**/*.scss"
40
49
  ],
41
50
  "dependencies": {
42
- "@wordpress/api-fetch": "^7.36.0",
43
- "@wordpress/base-styles": "^6.12.0",
44
- "@wordpress/blob": "^4.36.0",
45
- "@wordpress/block-editor": "^15.9.0",
46
- "@wordpress/blocks": "^15.9.0",
47
- "@wordpress/components": "^30.9.0",
48
- "@wordpress/compose": "^7.36.0",
49
- "@wordpress/core-data": "^7.36.0",
50
- "@wordpress/data": "^10.36.0",
51
- "@wordpress/dataviews": "^11.0.0",
52
- "@wordpress/date": "^5.36.0",
53
- "@wordpress/element": "^6.36.0",
54
- "@wordpress/hooks": "^4.36.0",
55
- "@wordpress/html-entities": "^4.36.0",
56
- "@wordpress/i18n": "^6.9.0",
57
- "@wordpress/icons": "^11.3.0",
58
- "@wordpress/media-utils": "^5.36.0",
59
- "@wordpress/notices": "^5.36.0",
60
- "@wordpress/patterns": "^2.36.0",
61
- "@wordpress/primitives": "^4.36.0",
62
- "@wordpress/private-apis": "^1.36.0",
63
- "@wordpress/router": "^1.36.0",
64
- "@wordpress/url": "^4.36.0",
65
- "@wordpress/warning": "^3.36.0",
51
+ "@wordpress/api-fetch": "^7.36.1-next.738bb1424.0",
52
+ "@wordpress/base-styles": "^6.12.1-next.738bb1424.0",
53
+ "@wordpress/blob": "^4.36.1-next.738bb1424.0",
54
+ "@wordpress/block-editor": "^15.9.1-next.738bb1424.0",
55
+ "@wordpress/blocks": "^15.9.1-next.738bb1424.0",
56
+ "@wordpress/components": "^31.0.1-next.738bb1424.0",
57
+ "@wordpress/compose": "^7.36.1-next.738bb1424.0",
58
+ "@wordpress/core-data": "^7.36.1-next.738bb1424.0",
59
+ "@wordpress/data": "^10.36.1-next.738bb1424.0",
60
+ "@wordpress/dataviews": "^11.1.1-next.738bb1424.0",
61
+ "@wordpress/date": "^5.36.1-next.738bb1424.0",
62
+ "@wordpress/element": "^6.36.1-next.738bb1424.0",
63
+ "@wordpress/hooks": "^4.36.1-next.738bb1424.0",
64
+ "@wordpress/html-entities": "^4.36.1-next.738bb1424.0",
65
+ "@wordpress/i18n": "^6.9.1-next.738bb1424.0",
66
+ "@wordpress/icons": "^11.3.1-next.738bb1424.0",
67
+ "@wordpress/media-utils": "^5.36.1-next.738bb1424.0",
68
+ "@wordpress/notices": "^5.36.1-next.738bb1424.0",
69
+ "@wordpress/patterns": "^2.36.1-next.738bb1424.0",
70
+ "@wordpress/primitives": "^4.36.1-next.738bb1424.0",
71
+ "@wordpress/private-apis": "^1.36.1-next.738bb1424.0",
72
+ "@wordpress/router": "^1.36.1-next.738bb1424.0",
73
+ "@wordpress/url": "^4.36.1-next.738bb1424.0",
74
+ "@wordpress/warning": "^3.36.1-next.738bb1424.0",
66
75
  "change-case": "4.1.2",
67
76
  "client-zip": "^2.4.5",
68
77
  "clsx": "2.1.1",
@@ -74,5 +83,5 @@
74
83
  "publishConfig": {
75
84
  "access": "public"
76
85
  },
77
- "gitHead": "b35cf1a2dce04665e99fd6b9c2891c0b336361b9"
86
+ "gitHead": "ab1b004c0d61c295aa34bc86ea07f979343983ce"
78
87
  }
@@ -119,7 +119,6 @@ const renamePost: Action< PostWithPermissions > = {
119
119
  <form onSubmit={ onRename }>
120
120
  <VStack spacing="5">
121
121
  <TextControl
122
- __nextHasNoMarginBottom
123
122
  __next40pxDefaultSize
124
123
  label={ __( 'Name' ) }
125
124
  value={ title }
@@ -23,7 +23,7 @@ import type { CoreDataError, PostWithPermissions } from '../types';
23
23
 
24
24
  const trashPost: Action< PostWithPermissions > = {
25
25
  id: 'move-to-trash',
26
- label: __( 'Trash' ),
26
+ label: _x( 'Trash', 'verb' ),
27
27
  isPrimary: true,
28
28
  icon: trash,
29
29
  isEligible( item ) {
@@ -21,6 +21,7 @@ import {
21
21
  footer as footerIcon,
22
22
  header as headerIcon,
23
23
  sidebar as sidebarIcon,
24
+ tableColumnAfter as overlayIcon,
24
25
  symbolFilled as symbolFilledIcon,
25
26
  } from '@wordpress/icons';
26
27
  import { store as noticesStore } from '@wordpress/notices';
@@ -84,13 +85,31 @@ export default function CreateTemplatePartModal( {
84
85
  );
85
86
  }
86
87
 
87
- const getTemplatePartIcon = ( iconName: string ) => {
88
- if ( 'header' === iconName ) {
88
+ /**
89
+ * Helper function to retrieve the corresponding icon by area name or icon name.
90
+ *
91
+ * @param {string} areaOrIconName The area name (e.g., 'header', 'overlay') or icon name (e.g., 'menu').
92
+ *
93
+ * @return {Object} The corresponding icon.
94
+ */
95
+ const getTemplatePartIcon = ( areaOrIconName: string ) => {
96
+ // Handle area names first
97
+ if ( 'header' === areaOrIconName ) {
89
98
  return headerIcon;
90
- } else if ( 'footer' === iconName ) {
99
+ } else if ( 'footer' === areaOrIconName ) {
91
100
  return footerIcon;
92
- } else if ( 'sidebar' === iconName ) {
101
+ } else if ( 'sidebar' === areaOrIconName ) {
93
102
  return sidebarIcon;
103
+ } else if ( 'overlay' === areaOrIconName ) {
104
+ // TODO: Replace with a proper overlay icon when available.
105
+ // Using tableColumnAfter as a placeholder.
106
+ return overlayIcon;
107
+ }
108
+ // Handle icon names for backwards compatibility
109
+ if ( 'menu' === areaOrIconName ) {
110
+ // TODO: Replace with a proper overlay icon when available.
111
+ // Using tableColumnAfter as a placeholder.
112
+ return overlayIcon;
94
113
  }
95
114
  return symbolFilledIcon;
96
115
  };
@@ -187,7 +206,6 @@ export function CreateTemplatePartModalContents( {
187
206
  <VStack spacing="4">
188
207
  <TextControl
189
208
  __next40pxDefaultSize
190
- __nextHasNoMarginBottom
191
209
  label={ __( 'Name' ) }
192
210
  value={ title }
193
211
  onChange={ setTitle }
@@ -14,3 +14,4 @@ export { default as pingStatusField } from './ping-status';
14
14
  export { default as discussionField } from './discussion';
15
15
  export { default as dateField } from './date';
16
16
  export { default as authorField } from './author';
17
+ export { default as notesField } from './notes';
@@ -0,0 +1,27 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import type { Field } from '@wordpress/dataviews';
5
+ import { __ } from '@wordpress/i18n';
6
+
7
+ /**
8
+ * Internal dependencies
9
+ */
10
+ import type { BasePost } from '../../types';
11
+
12
+ interface PostWithNotesCount extends BasePost {
13
+ notesCount?: number;
14
+ }
15
+
16
+ const notesField: Field< PostWithNotesCount > = {
17
+ id: 'notesCount',
18
+ label: __( 'Notes' ),
19
+ type: 'integer',
20
+ enableSorting: false,
21
+ filterBy: false,
22
+ };
23
+
24
+ /**
25
+ * Notes count field for post types that support editor.notes.
26
+ */
27
+ export default notesField;
@@ -146,7 +146,9 @@ export function PageAttributesParent( {
146
146
  order: 'asc',
147
147
  _fields: 'id,title,parent',
148
148
  ...( fieldValue !== null && {
149
+ // Perform a search by relevance when the field is changed.
149
150
  search: fieldValue,
151
+ orderby: 'relevance',
150
152
  } ),
151
153
  };
152
154
 
@@ -264,7 +266,6 @@ export function PageAttributesParent( {
264
266
 
265
267
  return (
266
268
  <ComboboxControl
267
- __nextHasNoMarginBottom
268
269
  __next40pxDefaultSize
269
270
  label={ __( 'Parent' ) }
270
271
  help={ __( 'Choose a parent page.' ) }
@@ -38,7 +38,6 @@ function PasswordEdit( {
38
38
  className="fields-controls__password"
39
39
  >
40
40
  <CheckboxControl
41
- __nextHasNoMarginBottom
42
41
  label={ __( 'Password protected' ) }
43
42
  help={ __( 'Only visible to those who know the password' ) }
44
43
  checked={ showPassword }
@@ -57,7 +56,6 @@ function PasswordEdit( {
57
56
  placeholder={ __( 'Use a secure password' ) }
58
57
  type="text"
59
58
  __next40pxDefaultSize
60
- __nextHasNoMarginBottom
61
59
  maxLength={ 255 }
62
60
  />
63
61
  </div>
@@ -25,7 +25,6 @@ function PingStatusEdit( {
25
25
 
26
26
  return (
27
27
  <CheckboxControl
28
- __nextHasNoMarginBottom
29
28
  label={ __( 'Enable pingbacks & trackbacks' ) }
30
29
  checked={ pingStatus === 'open' }
31
30
  onChange={ onTogglePingback }
@@ -6,6 +6,7 @@ import {
6
6
  ExternalLink,
7
7
  __experimentalInputControl as InputControl,
8
8
  __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
9
+ __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,
9
10
  __experimentalVStack as VStack,
10
11
  } from '@wordpress/components';
11
12
  import { copySmall } from '@wordpress/icons';
@@ -93,12 +94,14 @@ const SlugEdit = ( {
93
94
  </InputControlPrefixWrapper>
94
95
  }
95
96
  suffix={
96
- <Button
97
- __next40pxDefaultSize
98
- icon={ copySmall }
99
- ref={ copyButtonRef }
100
- label={ __( 'Copy' ) }
101
- />
97
+ <InputControlSuffixWrapper variant="control">
98
+ <Button
99
+ size="small"
100
+ icon={ copySmall }
101
+ ref={ copyButtonRef }
102
+ label={ __( 'Copy' ) }
103
+ />
104
+ </InputControlSuffixWrapper>
102
105
  }
103
106
  label={ __( 'Link' ) }
104
107
  hideLabelFromVision
package/src/types.ts CHANGED
@@ -112,6 +112,10 @@ export type PostWithPermissions = Post & {
112
112
  };
113
113
  };
114
114
 
115
+ interface EditorSupport {
116
+ notes?: boolean;
117
+ }
118
+
115
119
  export interface PostType {
116
120
  slug: string;
117
121
  viewable: boolean;
@@ -122,7 +126,7 @@ export interface PostType {
122
126
  author?: string;
123
127
  thumbnail?: string;
124
128
  comments?: string;
125
- editor?: boolean;
129
+ editor?: boolean | [ EditorSupport ];
126
130
  trackbacks?: boolean;
127
131
  };
128
132
  }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/actions/trash-post.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { trash } from '@wordpress/icons';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __, _n, sprintf, _x } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useState } from '@wordpress/element';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport type { Action } from '@wordpress/dataviews';\n\n/**\n * Internal dependencies\n */\nimport { getItemTitle } from './utils';\nimport type { CoreDataError, PostWithPermissions } from '../types';\n\nconst trashPost: Action< PostWithPermissions > = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Trash' ),\n\tisPrimary: true,\n\ticon: trash,\n\tisEligible( item ) {\n\t\tif ( item.type === 'wp_template_part' || item.type === 'wp_block' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Non-database template cannot be trashed.\n\t\tif ( item.type === 'wp_template' && typeof item.id === 'string' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\t!! item.status &&\n\t\t\t! [ 'auto-draft', 'trash' ].includes( item.status ) &&\n\t\t\titem.permissions?.delete\n\t\t);\n\t},\n\tsupportsBulk: true,\n\thideModalHeader: true,\n\tmodalFocusOnMount: 'firstContentElement',\n\tRenderModal: ( { items, closeModal, onActionPerformed } ) => {\n\t\tconst [ isBusy, setIsBusy ] = useState( false );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t<VStack spacing=\"5\">\n\t\t\t\t<Text>\n\t\t\t\t\t{ items.length === 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The item's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move \"%s\" to the trash?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %d: The number of items (2 or more).\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move %d item to the trash ?',\n\t\t\t\t\t\t\t\t\t'Are you sure you want to move %d items to the trash ?',\n\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</Text>\n\t\t\t\t<HStack justify=\"right\">\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={ closeModal }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\taccessibleWhenDisabled\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={ async () => {\n\t\t\t\t\t\t\tsetIsBusy( true );\n\t\t\t\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\t\t\t\titems.map( ( item ) =>\n\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\titem.type,\n\t\t\t\t\t\t\t\t\t\titem.id.toString(),\n\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\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\t// If all the promises were fulfilled with success.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tlet successMessage;\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: The item's title. */\n\t\t\t\t\t\t\t\t\t\t__( '\"%s\" moved to the trash.' ),\n\t\t\t\t\t\t\t\t\t\tgetItemTitle( items[ 0 ] )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %d: The number of items. */\n\t\t\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t\t\t'%d item moved to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t'%d items moved to the trash.',\n\t\t\t\t\t\t\t\t\t\t\titems.length\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\titems.length\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\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tid: 'move-to-trash-action',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// If there was at least one failure.\n\t\t\t\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t\t\t\t// If we were trying to delete a single item.\n\t\t\t\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\t\t\t\tconst typedError = promiseResult[ 0 ] as {\n\t\t\t\t\t\t\t\t\t\treason?: CoreDataError;\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tif ( typedError.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage =\n\t\t\t\t\t\t\t\t\t\t\ttypedError.reason.message;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the item to the trash.'\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\t// If we were trying to delete multiple items.\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tconst errorMessages = new Set< string >();\n\t\t\t\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\t\t\t\tconst typedError = failedPromise as {\n\t\t\t\t\t\t\t\t\t\t\treason?: CoreDataError;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif ( typedError.reason?.message ) {\n\t\t\t\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\t\t\t\ttypedError.reason.message\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\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the items to the trash.'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the item to the trash: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'Some errors occurred while moving the items to the trash: %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\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\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\t\t\tonActionPerformed( items );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetIsBusy( false );\n\t\t\t\t\t\t\tcloseModal?.();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBusy={ isBusy }\n\t\t\t\t\t\tdisabled={ isBusy }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t>\n\t\t\t\t\t\t{ _x( 'Trash', 'verb' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t);\n\t},\n};\n\n/**\n * Trash action for PostWithPermissions.\n */\nexport default trashPost;\n"],
5
- "mappings": "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",
6
- "names": ["noticesStore", "coreStore", "VStack", "Text", "HStack"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/create-template-part-modal/index.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tBaseControl,\n\tTextControl,\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport type { TemplatePartArea } from '@wordpress/core-data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcheck,\n\tfooter as footerIcon,\n\theader as headerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n// @ts-expect-error serialize is not typed\nimport { serialize } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetCleanTemplatePartSlug,\n\tgetUniqueTemplatePartTitle,\n\tuseExistingTemplateParts,\n} from './utils';\n\nfunction getAreaRadioId( value: string, instanceId: number ) {\n\treturn `fields-create-template-part-modal__area-option-${ value }-${ instanceId }`;\n}\nfunction getAreaRadioDescriptionId( value: string, instanceId: number ) {\n\treturn `fields-create-template-part-modal__area-option-description-${ value }-${ instanceId }`;\n}\n\ntype CreateTemplatePartModalContentsProps = {\n\tdefaultArea?: string;\n\tblocks: any[];\n\tconfirmLabel?: string;\n\tcloseModal: () => void;\n\tonCreate: ( templatePart: any ) => void;\n\tonError?: () => void;\n\tdefaultTitle?: string;\n};\n\n/**\n * A React component that renders a modal for creating a template part. The modal displays a title and the contents for creating the template part.\n * This component should not live in this package, it should be moved to a dedicated package responsible for managing template.\n * @param props The component props.\n * @param props.modalTitle\n */\nexport default function CreateTemplatePartModal( {\n\tmodalTitle,\n\t...restProps\n}: {\n\tmodalTitle?: string;\n} & CreateTemplatePartModalContentsProps ) {\n\tconst defaultModalTitle = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getPostType( 'wp_template_part' )?.labels\n\t\t\t\t?.add_new_item,\n\t\t[]\n\t);\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ modalTitle || defaultModalTitle }\n\t\t\tonRequestClose={ restProps.closeModal }\n\t\t\toverlayClassName=\"fields-create-template-part-modal\"\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t<CreateTemplatePartModalContents { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nconst getTemplatePartIcon = ( iconName: string ) => {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n};\n\n/**\n * A React component that renders the content of a model for creating a template part.\n * This component should not live in this package; it should be moved to a dedicated package responsible for managing template.\n *\n * @param {Object} props - The component props.\n * @param {string} [props.defaultArea=uncategorized] - The default area for the template part.\n * @param {Array} [props.blocks=[]] - The blocks to be included in the template part.\n * @param {string} [props.confirmLabel='Add'] - The label for the confirm button.\n * @param {Function} props.closeModal - Function to close the modal.\n * @param {Function} props.onCreate - Function to call when the template part is successfully created.\n * @param {Function} [props.onError] - Function to call when there is an error creating the template part.\n * @param {string} [props.defaultTitle=''] - The default title for the template part.\n */\nexport function CreateTemplatePartModalContents( {\n\tdefaultArea = 'uncategorized',\n\tblocks = [],\n\tconfirmLabel = __( 'Add' ),\n\tcloseModal,\n\tonCreate,\n\tonError,\n\tdefaultTitle = '',\n}: CreateTemplatePartModalContentsProps ) {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst existingTemplateParts = useExistingTemplateParts();\n\n\tconst [ title, setTitle ] = useState( defaultTitle );\n\tconst [ area, setArea ] = useState( defaultArea );\n\tconst [ isSubmitting, setIsSubmitting ] = useState( false );\n\tconst instanceId = useInstanceId( CreateTemplatePartModal );\n\n\tconst defaultTemplatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getCurrentTheme()?.default_template_part_areas,\n\t\t[]\n\t);\n\n\tasync function createTemplatePart() {\n\t\tif ( ! title || isSubmitting ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tsetIsSubmitting( true );\n\t\t\tconst uniqueTitle = getUniqueTemplatePartTitle(\n\t\t\t\ttitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst cleanSlug = getCleanTemplatePartSlug( uniqueTitle );\n\n\t\t\tconst templatePart = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t{\n\t\t\t\t\tslug: cleanSlug,\n\t\t\t\t\ttitle: uniqueTitle,\n\t\t\t\t\tcontent: serialize( blocks ),\n\t\t\t\t\tarea,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\t\t\tawait onCreate( templatePart );\n\n\t\t\t// TODO: Add a success notice?\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror instanceof Error &&\n\t\t\t\t'code' in error &&\n\t\t\t\terror.message &&\n\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\n\t\t\tonError?.();\n\t\t} finally {\n\t\t\tsetIsSubmitting( false );\n\t\t}\n\t}\n\treturn (\n\t\t<form\n\t\t\tonSubmit={ async ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tawait createTemplatePart();\n\t\t\t} }\n\t\t>\n\t\t\t<VStack spacing=\"4\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<fieldset className=\"fields-create-template-part-modal__area-fieldset\">\n\t\t\t\t\t<BaseControl.VisualLabel as=\"legend\">\n\t\t\t\t\t\t{ __( 'Area' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<div className=\"fields-create-template-part-modal__area-radio-group\">\n\t\t\t\t\t\t{ ( defaultTemplatePartAreas ?? [] ).map(\n\t\t\t\t\t\t\t( item: TemplatePartArea ) => {\n\t\t\t\t\t\t\t\tconst icon = getTemplatePartIcon( item.icon );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tkey={ item.area }\n\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-wrapper\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\t\t\t\t\t\t\tid={ getAreaRadioId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tname={ `fields-create-template-part-modal__area-${ instanceId }` }\n\t\t\t\t\t\t\t\t\t\t\tvalue={ item.area }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ area === item.area }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetArea( item.area );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\taria-describedby={ getAreaRadioDescriptionId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\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\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-icon\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\t\t\thtmlFor={ getAreaRadioId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-label\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ item.label }\n\t\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={ check }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-checkmark\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<p\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"fields-create-template-part-modal__area-radio-description\"\n\t\t\t\t\t\t\t\t\t\t\tid={ getAreaRadioDescriptionId(\n\t\t\t\t\t\t\t\t\t\t\t\titem.area,\n\t\t\t\t\t\t\t\t\t\t\t\tinstanceId\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\t\t{ item.description }\n\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t</div>\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</fieldset>\n\t\t\t\t<HStack justify=\"right\">\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={ () => {\n\t\t\t\t\t\t\tcloseModal();\n\t\t\t\t\t\t} }\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\ttype=\"submit\"\n\t\t\t\t\t\taria-disabled={ ! title || isSubmitting }\n\t\t\t\t\t\tisBusy={ isSubmitting }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ confirmLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</HStack>\n\t\t\t</VStack>\n\t\t</form>\n\t);\n}\n"],
5
- "mappings": "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",
6
- "names": ["coreStore", "headerIcon", "footerIcon", "sidebarIcon", "symbolFilledIcon", "noticesStore", "VStack", "HStack"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/fields/parent/parent-edit.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { ComboboxControl, ExternalLink } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateInterpolateElement,\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n} from '@wordpress/element';\n// @ts-ignore\nimport { store as coreStore } from '@wordpress/core-data';\nimport type { DataFormControlProps } from '@wordpress/dataviews';\nimport { debounce } from '@wordpress/compose';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { filterURLForDisplay } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { getTitleWithFallbackName } from './utils';\n\ntype TreeBase = {\n\tid: number;\n\tname: string;\n\t[ key: string ]: any;\n};\n\ntype TreeWithParent = TreeBase & {\n\tparent: number;\n};\n\ntype TreeWithoutParent = TreeBase & {\n\tparent: null;\n};\n\ntype Tree = TreeWithParent | TreeWithoutParent;\n\nfunction buildTermsTree( flatTerms: Tree[] ) {\n\tconst flatTermsWithParentAndChildren = flatTerms.map( ( term ) => {\n\t\treturn {\n\t\t\tchildren: [],\n\t\t\t...term,\n\t\t};\n\t} );\n\n\t// All terms should have a `parent` because we're about to index them by it.\n\tif (\n\t\tflatTermsWithParentAndChildren.some(\n\t\t\t( { parent } ) => parent === null || parent === undefined\n\t\t)\n\t) {\n\t\treturn flatTermsWithParentAndChildren as TreeWithParent[];\n\t}\n\n\tconst termsByParent = (\n\t\tflatTermsWithParentAndChildren as TreeWithParent[]\n\t ).reduce(\n\t\t( acc, term ) => {\n\t\t\tconst { parent } = term;\n\t\t\tif ( ! acc[ parent ] ) {\n\t\t\t\tacc[ parent ] = [];\n\t\t\t}\n\t\t\tacc[ parent ].push( term );\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record< string, Array< TreeWithParent > >\n\t);\n\n\tconst fillWithChildren = (\n\t\tterms: Array< TreeWithParent >\n\t): Array< TreeWithParent > => {\n\t\treturn terms.map( ( term ) => {\n\t\t\tconst children = termsByParent[ term.id ];\n\t\t\treturn {\n\t\t\t\t...term,\n\t\t\t\tchildren:\n\t\t\t\t\tchildren && children.length\n\t\t\t\t\t\t? fillWithChildren( children )\n\t\t\t\t\t\t: [],\n\t\t\t};\n\t\t} );\n\t};\n\n\treturn fillWithChildren( termsByParent[ '0' ] || [] );\n}\n\nexport const getItemPriority = ( name: string, searchValue: string ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\nexport function PageAttributesParent( {\n\tdata,\n\tonChangeControl,\n}: {\n\tdata: BasePost;\n\tonChangeControl: ( newValue: number ) => void;\n} ) {\n\tconst [ fieldValue, setFieldValue ] = useState< null | string >( null );\n\n\tconst pageId = data.parent;\n\tconst postId = data.id;\n\tconst postTypeSlug = data.type;\n\n\tconst { parentPostTitle, pageItems, isHierarchical } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecord, getEntityRecords, getPostType } =\n\t\t\t\tselect( coreStore );\n\n\t\t\tconst postTypeInfo = getPostType( postTypeSlug );\n\n\t\t\tconst postIsHierarchical =\n\t\t\t\tpostTypeInfo?.hierarchical && postTypeInfo.viewable;\n\n\t\t\tconst parentPost = pageId\n\t\t\t\t? getEntityRecord< BasePost >(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\t\tpageId\n\t\t\t\t )\n\t\t\t\t: null;\n\n\t\t\tconst query = {\n\t\t\t\tper_page: 100,\n\t\t\t\texclude: postId,\n\t\t\t\tparent_exclude: postId,\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: 'id,title,parent',\n\t\t\t\t...( fieldValue !== null && {\n\t\t\t\t\tsearch: fieldValue,\n\t\t\t\t} ),\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tisHierarchical: postIsHierarchical,\n\t\t\t\tparentPostTitle: parentPost\n\t\t\t\t\t? getTitleWithFallbackName( parentPost )\n\t\t\t\t\t: '',\n\t\t\t\tpageItems: postIsHierarchical\n\t\t\t\t\t? getEntityRecords< BasePost >(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpostTypeSlug,\n\t\t\t\t\t\t\tquery\n\t\t\t\t\t )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[ fieldValue, pageId, postId, postTypeSlug ]\n\t);\n\n\t/**\n\t * This logic has been copied from https://github.com/WordPress/gutenberg/blob/0249771b519d5646171fb9fae422006c8ab773f2/packages/editor/src/components/page-attributes/parent.js#L106.\n\t */\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = (\n\t\t\ttree: Array< Tree >,\n\t\t\tlevel = 0\n\t\t): Array< {\n\t\t\tvalue: number;\n\t\t\tlabel: string;\n\t\t\trawName: string;\n\t\t} > => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'\u2014 '.repeat( level ) + decodeEntities( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority(\n\t\t\t\t\ta.rawName,\n\t\t\t\t\tfieldValue ?? ''\n\t\t\t\t);\n\t\t\t\tconst priorityB = getItemPriority(\n\t\t\t\t\tb.rawName,\n\t\t\t\t\tfieldValue ?? ''\n\t\t\t\t);\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tif ( ! pageItems ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id as number,\n\t\t\tparent: item.parent ?? null,\n\t\t\tname: getTitleWithFallbackName( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = opts.find( ( item ) => item.value === pageId );\n\t\tif ( pageId && parentPostTitle && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: pageId,\n\t\t\t\tlabel: parentPostTitle,\n\t\t\t\trawName: '',\n\t\t\t} );\n\t\t}\n\t\treturn opts.map( ( option ) => ( {\n\t\t\t...option,\n\t\t\tvalue: option.value.toString(),\n\t\t} ) );\n\t}, [ pageItems, fieldValue, parentPostTitle, pageId ] );\n\n\tif ( ! isHierarchical ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue: string ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId: string | null | undefined ) => {\n\t\tif ( selectedPostId ) {\n\t\t\treturn onChangeControl( parseInt( selectedPostId, 10 ) ?? 0 );\n\t\t}\n\n\t\tonChangeControl( 0 );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Parent' ) }\n\t\t\thelp={ __( 'Choose a parent page.' ) }\n\t\t\tvalue={ pageId?.toString() }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce(\n\t\t\t\t( value: unknown ) => handleKeydown( value as string ),\n\t\t\t\t300\n\t\t\t) }\n\t\t\tonChange={ handleChange }\n\t\t\thideLabelFromVision\n\t\t/>\n\t);\n}\n\nexport const ParentEdit = ( {\n\tdata,\n\tfield,\n\tonChange,\n}: DataFormControlProps< BasePost > ) => {\n\tconst { id } = field;\n\n\tconst homeUrl = useSelect( ( select ) => {\n\t\treturn select( coreStore ).getEntityRecord< {\n\t\t\thome: string;\n\t\t} >( 'root', '__unstableBase' )?.home as string;\n\t}, [] );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue?: number ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\treturn (\n\t\t<fieldset className=\"fields-controls__parent\">\n\t\t\t<div>\n\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %1$s The home URL of the WordPress installation without the scheme. */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Child pages inherit characteristics from their parent, such as URL structure. For instance, if \"Pricing\" is a child of \"Services\", its URL would be %1$s<wbr />/services<wbr />/pricing.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tfilterURLForDisplay( homeUrl ).replace(\n\t\t\t\t\t\t\t/([/.])/g,\n\t\t\t\t\t\t\t'<wbr />$1'\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\twbr: <wbr />,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\t<p>\n\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchildren={ undefined }\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</p>\n\t\t\t\t<PageAttributesParent\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tonChangeControl={ onChangeControl }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</fieldset>\n\t);\n};\n"],
5
- "mappings": "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",
6
- "names": ["removeAccents", "coreStore", "tree"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/fields/ping-status/index.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport type { DataFormControlProps, Field } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl, ExternalLink } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\n\nfunction PingStatusEdit( {\n\tdata,\n\tonChange,\n}: DataFormControlProps< BasePost > ) {\n\tconst pingStatus = data?.ping_status ?? 'open';\n\n\tconst onTogglePingback = ( checked: boolean ) => {\n\t\tonChange( {\n\t\t\t...data,\n\t\t\tping_status: checked ? 'open' : 'closed',\n\t\t} );\n\t};\n\n\treturn (\n\t\t<CheckboxControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ __( 'Enable pingbacks & trackbacks' ) }\n\t\t\tchecked={ pingStatus === 'open' }\n\t\t\tonChange={ onTogglePingback }\n\t\t\thelp={\n\t\t\t\t<ExternalLink\n\t\t\t\t\thref={ __(\n\t\t\t\t\t\t'https://wordpress.org/documentation/article/trackbacks-and-pingbacks/'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Learn more about pingbacks & trackbacks' ) }\n\t\t\t\t</ExternalLink>\n\t\t\t}\n\t\t/>\n\t);\n}\n\nconst pingStatusField: Field< BasePost > = {\n\tid: 'ping_status',\n\tlabel: __( 'Trackbacks & Pingbacks' ),\n\ttype: 'text',\n\tEdit: PingStatusEdit,\n\tenableSorting: false,\n\tenableHiding: false,\n\tfilterBy: false,\n\telements: [\n\t\t{\n\t\t\tvalue: 'open',\n\t\t\tlabel: __( 'Allow' ),\n\t\t\tdescription: __(\n\t\t\t\t'Allow link notifications from other blogs (pingbacks and trackbacks) on new articles.'\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tvalue: 'closed',\n\t\t\tlabel: __( \"Don't allow\" ),\n\t\t\tdescription: __(\n\t\t\t\t\"Don't allow link notifications from other blogs (pingbacks and trackbacks) on new articles.\"\n\t\t\t),\n\t\t},\n\t],\n};\n\n/**\n * Ping status field for BasePost.\n */\nexport default pingStatusField;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAmB;AACnB,wBAA8C;AA2B1C;AApBJ,SAAS,eAAgB;AAAA,EACxB;AAAA,EACA;AACD,GAAsC;AACrC,QAAM,aAAa,MAAM,eAAe;AAExC,QAAM,mBAAmB,CAAE,YAAsB;AAChD,aAAU;AAAA,MACT,GAAG;AAAA,MACH,aAAa,UAAU,SAAS;AAAA,IACjC,CAAE;AAAA,EACH;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,yBAAuB;AAAA,MACvB,WAAQ,gBAAI,+BAAgC;AAAA,MAC5C,SAAU,eAAe;AAAA,MACzB,UAAW;AAAA,MACX,MACC;AAAA,QAAC;AAAA;AAAA,UACA,UAAO;AAAA,YACN;AAAA,UACD;AAAA,UAEE,8BAAI,yCAA0C;AAAA;AAAA,MACjD;AAAA;AAAA,EAEF;AAEF;AAEA,IAAM,kBAAqC;AAAA,EAC1C,IAAI;AAAA,EACJ,WAAO,gBAAI,wBAAyB;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,eAAe;AAAA,EACf,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA,IACT;AAAA,MACC,OAAO;AAAA,MACP,WAAO,gBAAI,OAAQ;AAAA,MACnB,iBAAa;AAAA,QACZ;AAAA,MACD;AAAA,IACD;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,WAAO,gBAAI,aAAc;AAAA,MACzB,iBAAa;AAAA,QACZ;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAKA,IAAO,sBAAQ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/fields/slug/slug-edit.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalInputControl as InputControl,\n\t__experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { copySmall } from '@wordpress/icons';\nimport { useCopyToClipboard, useInstanceId } from '@wordpress/compose';\nimport { useDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { safeDecodeURIComponent } from '@wordpress/url';\nimport type { DataFormControlProps } from '@wordpress/dataviews';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { BasePost } from '../../types';\nimport { getSlug } from './utils';\n\nconst SlugEdit = ( {\n\tfield,\n\tonChange,\n\tdata,\n}: DataFormControlProps< BasePost > ) => {\n\tconst { id } = field;\n\n\tconst slug = field.getValue( { item: data } ) || getSlug( data );\n\tconst permalinkTemplate = data.permalink_template || '';\n\tconst PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;\n\tconst [ prefix, suffix ] = permalinkTemplate.split(\n\t\tPERMALINK_POSTNAME_REGEX\n\t);\n\tconst permalinkPrefix = prefix;\n\tconst permalinkSuffix = suffix;\n\tconst isEditable = PERMALINK_POSTNAME_REGEX.test( permalinkTemplate );\n\tconst originalSlugRef = useRef( slug );\n\tconst slugToDisplay = slug || originalSlugRef.current;\n\tconst permalink = isEditable\n\t\t? `${ permalinkPrefix }${ slugToDisplay }${ permalinkSuffix }`\n\t\t: safeDecodeURIComponent( data.link || '' );\n\n\tuseEffect( () => {\n\t\tif ( slug && originalSlugRef.current === undefined ) {\n\t\t\toriginalSlugRef.current = slug;\n\t\t}\n\t}, [ slug ] );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue?: string ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\tconst { createNotice } = useDispatch( noticesStore );\n\n\tconst copyButtonRef = useCopyToClipboard( permalink, () => {\n\t\tcreateNotice( 'info', __( 'Copied Permalink to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\tconst postUrlSlugDescriptionId =\n\t\t'editor-post-url__slug-description-' + useInstanceId( SlugEdit );\n\n\treturn (\n\t\t<fieldset className=\"fields-controls__slug\">\n\t\t\t{ isEditable && (\n\t\t\t\t<VStack>\n\t\t\t\t\t<VStack spacing=\"0px\">\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Customize the last part of the Permalink.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<ExternalLink href=\"https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink\">\n\t\t\t\t\t\t\t{ __( 'Learn more' ) }\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</VStack>\n\t\t\t\t\t<InputControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tprefix={\n\t\t\t\t\t\t\t<InputControlPrefixWrapper>\n\t\t\t\t\t\t\t\t/\n\t\t\t\t\t\t\t</InputControlPrefixWrapper>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsuffix={\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\ticon={ copySmall }\n\t\t\t\t\t\t\t\tref={ copyButtonRef }\n\t\t\t\t\t\t\t\tlabel={ __( 'Copy' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tvalue={ slug }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclassName=\"fields-controls__slug-input\"\n\t\t\t\t\t\tonChange={ ( newValue?: string ) => {\n\t\t\t\t\t\t\tonChangeControl( newValue );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonBlur={ () => {\n\t\t\t\t\t\t\tif ( slug === '' ) {\n\t\t\t\t\t\t\t\tonChangeControl( originalSlugRef.current );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-describedby={ postUrlSlugDescriptionId }\n\t\t\t\t\t/>\n\t\t\t\t\t<div className=\"fields-controls__slug-help\">\n\t\t\t\t\t\t<span className=\"fields-controls__slug-help-visual-label\">\n\t\t\t\t\t\t\t{ __( 'Permalink:' ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\tclassName=\"fields-controls__slug-help-link\"\n\t\t\t\t\t\t\thref={ permalink }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-prefix\">\n\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-slug\">\n\t\t\t\t\t\t\t\t{ slugToDisplay }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"fields-controls__slug-help-suffix\">\n\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t</div>\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t\t{ ! isEditable && (\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"fields-controls__slug-help\"\n\t\t\t\t\thref={ permalink }\n\t\t\t\t>\n\t\t\t\t\t{ permalink }\n\t\t\t\t</ExternalLink>\n\t\t\t) }\n\t\t</fieldset>\n\t);\n};\n\nexport default SlugEdit;\n"],
5
- "mappings": "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",
6
- "names": ["noticesStore", "VStack", "InputControl", "InputControlPrefixWrapper"]
7
- }
package/tsconfig.json DELETED
@@ -1,31 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/tsconfig.json",
3
- "extends": "../../tsconfig.base.json",
4
- "compilerOptions": {
5
- "checkJs": false
6
- },
7
- "references": [
8
- { "path": "../api-fetch" },
9
- { "path": "../blob" },
10
- { "path": "../components" },
11
- { "path": "../compose" },
12
- { "path": "../core-data" },
13
- { "path": "../block-editor" },
14
- { "path": "../data" },
15
- { "path": "../dataviews" },
16
- { "path": "../date" },
17
- { "path": "../element" },
18
- { "path": "../hooks" },
19
- { "path": "../html-entities" },
20
- { "path": "../i18n" },
21
- { "path": "../icons" },
22
- { "path": "../media-utils" },
23
- { "path": "../notices" },
24
- { "path": "../primitives" },
25
- { "path": "../private-apis" },
26
- { "path": "../router" },
27
- { "path": "../url" },
28
- { "path": "../block-editor" },
29
- { "path": "../warning" }
30
- ]
31
- }