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` +
+
+ ${this.label} +

${this.description}

+
+
+ +
+
+ `; + } +} + +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; + } +}