From 942f153c0e669c729d2de7c526ba9ebffc235589 Mon Sep 17 00:00:00 2001 From: tpluscode Date: Sun, 25 Oct 2020 10:11:08 +0100 Subject: [PATCH] feat(material): add shadow parts for styling --- .changeset/short-bottles-switch.md | 5 ++++ .../lit-html/src/shaperone-playground-lit.ts | 21 +++++++++++-- packages/wc-material/renderer/index.ts | 30 ++++++++++++------- packages/wc/lib/renderer.ts | 2 +- 4 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 .changeset/short-bottles-switch.md diff --git a/.changeset/short-bottles-switch.md b/.changeset/short-bottles-switch.md new file mode 100644 index 00000000..2483c557 --- /dev/null +++ b/.changeset/short-bottles-switch.md @@ -0,0 +1,5 @@ +--- +"@hydrofoil/shaperone-wc-material": patch +--- + +Add CSS Shadow Parts diff --git a/demos/lit-html/src/shaperone-playground-lit.ts b/demos/lit-html/src/shaperone-playground-lit.ts index b96aaa60..2fbf5253 100644 --- a/demos/lit-html/src/shaperone-playground-lit.ts +++ b/demos/lit-html/src/shaperone-playground-lit.ts @@ -47,6 +47,23 @@ export class ShaperonePlayground extends connect(store(), LitElement) { rdf-editor { height: 100%; + } + + shaperone-form::part(property) { + flex: 1; + min-width: 250px; + border: solid 1px black; + border-radius: 3px; + margin: 4px; + } + + shaperone-form::part(property):nth-child(0) { + flex-basis: 100%; + } + + shaperone-form::part(focus-node) { + display: flex; + flex-wrap: wrap; }` } @@ -113,7 +130,7 @@ export class ShaperonePlayground extends connect(store(), LitElement) { @quads-changed="${this.__setShape}"> - +
-
+
+ return html` ${focusNode.label} ${focusNode.shape?.label} @@ -38,20 +38,24 @@ export const focusNode = (currentStrategy: FocusNodeRenderStrategy): FocusNodeRe } export const property: PropertyRenderStrategy = ({ property, actions, renderObject, renderMultiEditor }) => { - const menuElement = property.editors.length ? html`` : html`` + @single-editors-selected="${actions.selectSingleEditors}">` + : html`` const editors = () => { if (property.selectedEditor) { - return html`${renderMultiEditor()}` + return html`${renderMultiEditor()}` } - const addRow = !property.selectedEditor && property.canAdd ? html` + const addRow = !property.selectedEditor && property.canAdd + ? html` Click to add value add_circle - ` : html`` + ` + : html`` return html` ${repeat(property.objects, renderObject)} @@ -59,8 +63,8 @@ export const property: PropertyRenderStrategy = ({ property, actions, renderObje ` } - return html` - ${property.name} ${menuElement} + return html` + ${property.name} ${menuElement} ${editors()} ` } @@ -85,18 +89,22 @@ export const object: ObjectRenderStrategy = ({ object, actions, renderEditor, pr } let metaSlot = html`` + let hasOptions = false if (object.editors.length > 1 && !object.editorSwitchDisabled) { + hasOptions = true metaSlot = html`` } else if (property.canRemove) { - metaSlot = html`remove_circle` + hasOptions = true + metaSlot = html`remove_circle` } - return html` + return html` ${renderEditor()} ${metaSlot} ` diff --git a/packages/wc/lib/renderer.ts b/packages/wc/lib/renderer.ts index 4050d986..c71536aa 100644 --- a/packages/wc/lib/renderer.ts +++ b/packages/wc/lib/renderer.ts @@ -113,7 +113,7 @@ export const defaultFormRenderer: FormRenderStrategy = ({ form, renderFocusNode } export const defaultFocusNodeRenderer: FocusNodeRenderStrategy = ({ focusNode, renderGroup }) => html`
-
+
${repeat(focusNode.groups, renderGroup)}
`