diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/node-editor.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/node-editor.element.ts
index b787cc0c6c..6c9a5af9b2 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/node-editor.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/node-editor.element.ts
@@ -2,6 +2,10 @@ import { css, html, LitElement } from 'lit';
import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
import { customElement } from 'lit/decorators.js';
+import '../properties/node-property.element.ts';
+import '../properties/property-editor-text.element.ts';
+import '../properties/property-editor-textarea.element.ts';
+
@customElement('umb-node-editor')
class UmbNodeEditor extends LitElement {
static styles = [
@@ -68,10 +72,32 @@ class UmbNodeEditor extends LitElement {
background-color: var(--uui-color-surface);
box-sizing: border-box;
}
+
+ .property {
+ display: grid;
+ grid-template-columns: 200px 600px;
+ gap: 32px;
+ }
+ .property > .property-label > p {
+ color: var(--uui-color-text-alt);
+ }
+ .property uui-input,
+ .property uui-textarea {
+ width: 100%;
+ }
+
+ uui-box hr {
+ margin-bottom: var(--uui-size-6);
+ }
+
+ hr {
+ border: 0;
+ border-top: 1px solid var(--uui-color-border-alt);
+ }
`,
];
-
- render () {
+
+ render() {
return html`
@@ -82,14 +108,24 @@ class UmbNodeEditor extends LitElement {
Actions
-
+
+
+
+
+
+
+
+
+
+
+
Save and preview
Save
Save and publish
- `
+ `;
}
}
@@ -97,4 +133,4 @@ declare global {
interface HTMLElementTagNameMap {
'umb-node-editor': UmbNodeEditor;
}
-}
\ No newline at end of file
+}
diff --git a/src/Umbraco.Web.UI.Client/src/properties/node-property.element.ts b/src/Umbraco.Web.UI.Client/src/properties/node-property.element.ts
new file mode 100644
index 0000000000..78ce523098
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/properties/node-property.element.ts
@@ -0,0 +1,62 @@
+import { css, html, LitElement } from 'lit';
+import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
+import { customElement, property } from 'lit/decorators.js';
+
+@customElement('umb-node-property')
+class UmbNodeProperty extends LitElement {
+ static styles = [
+ UUITextStyles,
+ css`
+ :host {
+ display: block;
+ }
+ .property {
+ display: grid;
+ grid-template-columns: 200px 600px;
+ gap: 32px;
+ }
+ .property > .property-label > p {
+ color: var(--uui-color-text-alt);
+ }
+ .property uui-input,
+ .property uui-textarea {
+ width: 100%;
+ }
+
+ uui-box hr {
+ margin-bottom: var(--uui-size-6);
+ }
+
+ hr {
+ border: 0;
+ border-top: 1px solid var(--uui-color-border-alt);
+ }
+ `,
+ ];
+
+ @property()
+ label = '';
+
+ @property()
+ description = '';
+
+ render() {
+ return html`
+
+ `;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-node-property': UmbNodeProperty;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/properties/property-editor-text.element.ts b/src/Umbraco.Web.UI.Client/src/properties/property-editor-text.element.ts
new file mode 100644
index 0000000000..5e0bee0709
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/properties/property-editor-text.element.ts
@@ -0,0 +1,28 @@
+import { css, html, LitElement } from 'lit';
+import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
+import { customElement, property } from 'lit/decorators.js';
+
+@customElement('umb-property-editor-text')
+class UmbPropertyEditorText extends LitElement {
+ static styles = [
+ UUITextStyles,
+ css`
+ uui-input {
+ width: 100%;
+ }
+ `,
+ ];
+
+ @property()
+ value = '';
+
+ render() {
+ return html``;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-property-editor-text': UmbPropertyEditorText;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/properties/property-editor-textarea.element.ts b/src/Umbraco.Web.UI.Client/src/properties/property-editor-textarea.element.ts
new file mode 100644
index 0000000000..30cc3e34d8
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/properties/property-editor-textarea.element.ts
@@ -0,0 +1,28 @@
+import { css, html, LitElement } from 'lit';
+import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
+import { customElement, property } from 'lit/decorators.js';
+
+@customElement('umb-property-editor-textarea')
+class UmbPropertyEditorTextarea extends LitElement {
+ static styles = [
+ UUITextStyles,
+ css`
+ uui-textarea {
+ width: 100%;
+ }
+ `,
+ ];
+
+ @property()
+ value = '';
+
+ render() {
+ return html``;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-property-editor-textarea': UmbPropertyEditorTextarea;
+ }
+}