import {
DeesElement,
customElement,
type TemplateResult,
html,
property,
css,
} from '@design.estate/dees-element';
// Helper component for nesting
@customElement('test-nested-wrapper')
class TestNestedWrapper extends DeesElement {
public render() {
return html`
`;
}
}
// The actual test element deeply nested
@customElement('test-nested-target')
class TestNestedTarget extends DeesElement {
@property({ type: String })
public message: string = 'I am deeply nested!';
@property({ type: Number })
public depth: number = 0;
@property({ type: Boolean })
public found: boolean = false;
public static styles = [
css`
:host {
display: block;
padding: 15px;
background: #e1f5fe;
border: 2px solid #0288d1;
border-radius: 4px;
margin: 5px;
}
.info {
font-family: monospace;
color: #01579b;
}
`
];
public render() {
return html`
Nested Target Element
Message: ${this.message}
Depth: ${this.depth}
Found by properties panel: ${this.found ? '✅' : '❌'}
`;
}
}
@customElement('test-nested')
export class TestNested extends DeesElement {
public static demo = () => html`
`;
@property({ type: String })
public testId: string = 'nested-test';
public static styles = [
css`
:host {
display: block;
padding: 20px;
background: #f5f5f5;
border: 2px solid #999;
border-radius: 8px;
}
.explanation {
background: #fff;
padding: 10px;
border-radius: 4px;
margin-bottom: 10px;
}
.structure {
background: #f0f0f0;
padding: 10px;
border-radius: 4px;
}
`
];
public render() {
return html`
Nested Structure Test
The actual element with properties is nested deep inside multiple layers:
Properties panel should find the test-nested-target element despite the deep nesting.
`;
}
}