diff --git a/www/src/ts/virtual_machine/device.ts b/www/src/ts/virtual_machine/device.ts
index d70349c..165e67c 100644
--- a/www/src/ts/virtual_machine/device.ts
+++ b/www/src/ts/virtual_machine/device.ts
@@ -89,6 +89,13 @@ export class VMDeviceCard extends VMDeviceMixin(BaseElement) {
--indicator-color: var(--sl-color-purple-600);
--sl-color-primary-600: var(--sl-color-purple-600);
}
+ sl-tab::part(base) {
+ padding: var(--sl-spacing-small) var(--sl-spacing-medium)
+ }
+ sl-tab-group::part(base) {
+ height: 16rem;
+ overflow-y: auto;
+ }
`,
];
@@ -438,7 +445,7 @@ export class VMAddDeviceButton extends BaseElement {
...defaultCss,
css`
.add-device-drawer {
- --size: 28rem;
+ --size: 32rem;
}
.search-results {
@@ -560,9 +567,10 @@ export class VMAddDeviceButton extends BaseElement {
class="device-search-input"
autofocus
placeholder="Search For Device"
+ clearable
@sl-input=${this._handleSearchInput}
>
- Search Strutures
+ Search Structures
"
${this.renderSearchResults()}
@@ -606,6 +614,9 @@ export class VmDeviceTemplate extends BaseElement {
static styles = [
...defaultCss,
css`
+ .template-card {
+ --padding: var(--sl-spacing-small)
+ }
.image {
width: 3rem;
height: 3rem;
@@ -613,7 +624,17 @@ export class VmDeviceTemplate extends BaseElement {
.header {
display: flex;
flex-direction: row;
- flex-wrap: wrap;
+ }
+ .card-body {
+ // height: 18rem;
+ overflow-y: auto;
+ }
+ sl-tab::part(base) {
+ padding: var(--sl-spacing-small) var(--sl-spacing-medium)
+ }
+ sl-tab-group::part(base) {
+ height: 14rem;
+ overflow-y: auto;
}
`,
];
@@ -650,11 +671,50 @@ export class VmDeviceTemplate extends BaseElement {
console.log("Image load error", e);
}
+ renderFields(): HTMLTemplateResult {
+ const device = this.deviceDB.db[this.name];
+ const fields = device.logic ? Object.entries(device.logic) : [];
+ return html`
+ ${fields.map(([name, field_type], _index, _fields) => {
+ return html`
+ ${name}
+ ${field_type}
+ `;
+ })}
+ `;
+ }
+
+ renderSlot(slot: Slot, slotIndex: number): HTMLTemplateResult {
+ const fields = Array.from(slot.fields);
+ return html` `;
+ }
+
+ renderSlots(): HTMLTemplateResult {
+ return html` `;
+ }
+
+ renderReagents(): HTMLTemplateResult {
+ return html``;
+ }
+
+ renderNetworks(): HTMLTemplateResult {
+ const vmNetworks = window.VM!.networks;
+ return html` `;
+ }
+
+ renderPins(): HTMLTemplateResult {
+ const device = this.deviceDB.db[this.name];
+ return html` `;
+ }
+
render() {
const device = this.deviceDB.db[this.name];
return html`
-
-
+
+
+
+
+
+ Fields
+ Slots
+ Reagents
+ Networks
+ Pins
+
+ ${this.renderFields()}
+ ${this.renderSlots()}
+ ${this.renderReagents()}
+ ${this.renderNetworks()}
+ ${this.renderPins()}
+
+
`;