diff --git a/framework/src/lib/decorators/on.ts b/framework/src/lib/decorators/on.ts index c3a66a1..2867564 100644 --- a/framework/src/lib/decorators/on.ts +++ b/framework/src/lib/decorators/on.ts @@ -10,7 +10,7 @@ import { getMethodDescriptor, prependRoutine } from "./internal"; * The event name can be prefixed with `window:` or `document:` to add the * listener to one of those targets instead of the custom element itself. */ -export function on(eventSelector: string) { +export function on(eventSelector: string, options?: AddEventListenerOptions) { const [targetName, eventName] = eventSelector.includes(":") ? eventSelector.split(":") : [null, eventSelector]; @@ -34,9 +34,9 @@ export function on(eventSelector: string) { this[$handler] ??= handler.bind(this); if (target) { - target.addEventListener(eventName, this[$handler]); + target.addEventListener(eventName, this[$handler], options); } else { - this.addEventListener(eventName, this[$handler]); + this.addEventListener(eventName, this[$handler], options); } }); diff --git a/studio-frontend/src/app/anim-editor.element.scss b/studio-frontend/src/app/anim-editor.element.scss index 07a10c2..000266b 100644 --- a/studio-frontend/src/app/anim-editor.element.scss +++ b/studio-frontend/src/app/anim-editor.element.scss @@ -1,8 +1,30 @@ :host { + display: grid; + grid-template-rows: subgrid; + grid-template-columns: subgrid; +} + +.timeline-controls { + align-self: end; + justify-self: center; + display: flex; + justify-content: center; + grid-column: center-toolbar; + grid-row: bottom-toolbar; + background-color: var(--color-toolbar-background); + padding: var(--padding); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: var(--corner-radius); + border-top-left-radius: var(--corner-radius); + +} + +.timeline-wrapper { + grid-area: timeline; display: grid; border-radius: 8px; - background: #0006; - backdrop-filter: blur(16px); + background: var(--color-panel-background); grid-template-columns: [sidebar-start] min-content [sidebar-end divider-start] 8px [divider-end diff --git a/studio-frontend/src/app/anim-editor.element.ts b/studio-frontend/src/app/anim-editor.element.ts index 22d18f0..e790518 100644 --- a/studio-frontend/src/app/anim-editor.element.ts +++ b/studio-frontend/src/app/anim-editor.element.ts @@ -323,14 +323,9 @@ export class AnimEditorElement extends LitElement const none_selected = !selected; return html` -
${JSON.stringify({ name, value }, null, " ")}
- // `;
- }
+ return ordA - ordB;
+ })
+ .map(({ name, value }) => {
+ switch (name) {
+ case "bevy_core::name::Name": {
+ return html`
+ ${JSON.stringify({ name, value }, null, " ")}
+ // `;
+ }
+ }
+ }).filter((value) => value !== nothing) || [];
+ if (components?.length === 0) {
+ return nothing;
}
+ return html`
+ Lorem ipsum dolor sit amet
- `; + this.#transientFileInput.addEventListener("input", this.onLocalFileLoaded.bind(this), { + once: true, + }); + + this.#transientFileInput.click(); + } + + onLocalFileLoaded(): void { + console.log("files:", this.#transientFileInput?.files); + const file = this.#transientFileInput?.files?.[0]; + if (file != null) { + this._uploadedFile = file; + + setTimeout(() => { + this.#importDialogRef.value?.open(); + }); + } + } + + async onImportAsset({ detail: data}: CustomEvent