+
+ { isEditable && (
+
+ { __( 'The last part of the URL.' ) }{ ' ' }
+
+ { __( 'Learn more.' ) }
+
+ >
+ }
+ onChange={ ( newValue ) => {
+ editPost( { slug: newValue } );
+ // When we delete the field the permalink gets
+ // reverted to the original value.
+ // The forceEmptyField logic allows the user to have
+ // the field temporarily empty while typing.
+ if ( ! newValue ) {
+ if ( ! forceEmptyField ) {
+ setForceEmptyField( true );
+ }
+ return;
+ }
+ if ( forceEmptyField ) {
+ setForceEmptyField( false );
+ }
+ } }
+ onBlur={ ( event ) => {
+ editPost( {
+ slug: cleanForSlug( event.target.value ),
+ } );
+ if ( forceEmptyField ) {
+ setForceEmptyField( false );
+ }
+ } }
+ />
+ ) }
+ { isEditable && (
+
+ { viewPostLabel ?? __( 'View post' ) }
+
+ ) }
+
+
+ { isEditable ? (
+ <>
+
+ { permalinkPrefix }
+
+
+ { postSlug }
+
+
+ { permalinkSuffix }
+
+ >
+ ) : (
+ postLink
+ ) }
+
+
+
+ );
+}
diff --git a/packages/editor/src/components/post-url/label.js b/packages/editor/src/components/post-url/label.js
new file mode 100644
index 00000000000000..f34a6404605613
--- /dev/null
+++ b/packages/editor/src/components/post-url/label.js
@@ -0,0 +1,18 @@
+/**
+ * WordPress dependencies
+ */
+import { useSelect } from '@wordpress/data';
+import { filterURLForDisplay } from '@wordpress/url';
+
+/**
+ * Internal dependencies
+ */
+import { store as editorStore } from '../../store';
+
+export default function PostURLLabel() {
+ const postLink = useSelect(
+ ( select ) => select( editorStore ).getCurrentPost().link,
+ []
+ );
+ return filterURLForDisplay( postLink );
+}
diff --git a/packages/editor/src/components/post-url/style.scss b/packages/editor/src/components/post-url/style.scss
new file mode 100644
index 00000000000000..bfdbf2a9697a71
--- /dev/null
+++ b/packages/editor/src/components/post-url/style.scss
@@ -0,0 +1,16 @@
+.editor-post-url__link-label {
+ font-size: $default-font-size;
+ font-weight: 400;
+ margin: 0;
+}
+
+/* rtl:begin:ignore */
+.editor-post-url__link {
+ direction: ltr;
+ word-break: break-word;
+}
+/* rtl:end:ignore */
+
+.editor-post-url__link-slug {
+ font-weight: 600;
+}
diff --git a/packages/editor/src/style.scss b/packages/editor/src/style.scss
index 88ed59125a939b..e71f3b0261a239 100644
--- a/packages/editor/src/style.scss
+++ b/packages/editor/src/style.scss
@@ -14,6 +14,7 @@
@import "./components/post-saved-state/style.scss";
@import "./components/post-taxonomies/style.scss";
@import "./components/post-text-editor/style.scss";
+@import "./components/post-url/style.scss";
@import "./components/post-visibility/style.scss";
@import "./components/post-title/style.scss";
@import "./components/post-trash/style.scss";