diff --git a/renderers/lit/src/v0_9/a2ui-lit-element.ts b/renderers/lit/src/v0_9/a2ui-lit-element.ts index 2683f96d5f..f053bbd62a 100644 --- a/renderers/lit/src/v0_9/a2ui-lit-element.ts +++ b/renderers/lit/src/v0_9/a2ui-lit-element.ts @@ -18,7 +18,7 @@ import {LitElement, nothing} from 'lit'; import {property} from 'lit/decorators.js'; import {ComponentContext, ComponentApi, type ComponentId} from '@a2ui/web_core/v0_9'; import {renderA2uiNode} from './surface/render-a2ui-node.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from './a2ui-controller.js'; /** * A reference to a child component to render. Either a string ID, or an object @@ -100,7 +100,7 @@ export abstract class A2uiLitElement extends LitElemen * cleans up any existing controller and invokes `createController()` to bind to * the new context. */ - willUpdate(changedProperties: Map) { + override willUpdate(changedProperties: Map) { super.willUpdate(changedProperties); if (changedProperties.has('context') && this.context) { if (this.controller) { diff --git a/renderers/lit/src/v0_9/catalogs/basic/basic-catalog-a2ui-lit-element.ts b/renderers/lit/src/v0_9/catalogs/basic/basic-catalog-a2ui-lit-element.ts index 4b2609de32..a68de1dbb1 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/basic-catalog-a2ui-lit-element.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/basic-catalog-a2ui-lit-element.ts @@ -37,12 +37,12 @@ export type ResolvedChildList = ResolvedChildRef[]; export abstract class BasicCatalogA2uiLitElement< Api extends ComponentApi, > extends A2uiLitElement { - connectedCallback() { + override connectedCallback() { super.connectedCallback(); injectBasicCatalogStyles(); } - willUpdate(changedProperties: Map) { + override willUpdate(changedProperties: Map) { super.willUpdate(changedProperties); const props = this.controller?.props as any; diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/AudioPlayer.ts b/renderers/lit/src/v0_9/catalogs/basic/components/AudioPlayer.ts index 3c8b9010f2..951c560084 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/AudioPlayer.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/AudioPlayer.ts @@ -18,11 +18,11 @@ import {html, nothing, css} from 'lit'; import {customElement} from 'lit/decorators.js'; import {AudioPlayerApi} from '@a2ui/web_core/v0_9/basic_catalog'; import {BasicCatalogA2uiLitElement} from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; @customElement('a2ui-audioplayer') export class A2uiAudioPlayerElement extends BasicCatalogA2uiLitElement { - static styles = css` + static override styles = css` :host { display: flex; flex-direction: column; @@ -37,7 +37,7 @@ export class A2uiAudioPlayerElement extends BasicCatalogA2uiLitElement { @@ -32,7 +32,7 @@ export class A2uiCardElement extends BasicCatalogA2uiLitElement * - `--a2ui-card-box-shadow`: The box shadow of the card. Defaults to `0 2px 4px rgba(0,0,0,0.1)`. * - `--a2ui-card-margin`: The outer margin of the card. Defaults to `--a2ui-spacing-m`. */ - static styles = css` + static override styles = css` :host { display: block; border: var( @@ -52,7 +52,7 @@ export class A2uiCardElement extends BasicCatalogA2uiLitElement return new A2uiController(this, CardApi); } - render() { + override render() { const props = this.controller.props; if (!props) return nothing; diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/CheckBox.ts b/renderers/lit/src/v0_9/catalogs/basic/components/CheckBox.ts index 89290a51a2..b61270a56e 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/CheckBox.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/CheckBox.ts @@ -19,7 +19,7 @@ import {customElement} from 'lit/decorators.js'; import {classMap} from 'lit/directives/class-map.js'; import {CheckBoxApi} from '@a2ui/web_core/v0_9/basic_catalog'; import {BasicCatalogA2uiLitElement} from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; @customElement('a2ui-checkbox') export class A2uiCheckBoxElement extends BasicCatalogA2uiLitElement { @@ -35,7 +35,7 @@ export class A2uiCheckBoxElement extends BasicCatalogA2uiLitElement { @@ -35,7 +35,7 @@ export class A2uiChoicePickerElement extends BasicCatalogA2uiLitElement = { start: 'flex-start', @@ -49,7 +49,7 @@ export class A2uiBasicColumnElement extends BasicCatalogA2uiLitElement = { play: 'play_arrow', @@ -42,7 +42,7 @@ export class A2uiIconElement extends BasicCatalogA2uiLitElement * - `--a2ui-icon-font-family`: Override the font family for icons. Defaults to Material Symbols Outlined. * - `--a2ui-icon-font-variation-settings`: Complete override for font-variation-settings. */ - static styles = css` + static override styles = css` :where(:host) { --_icon-size: var(--a2ui-icon-size, var(--a2ui-font-size-xl, 24px)); } @@ -73,7 +73,7 @@ export class A2uiIconElement extends BasicCatalogA2uiLitElement return new A2uiController(this, IconApi); } - render() { + override render() { const props = this.controller.props; if (!props) return nothing; diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/Image.ts b/renderers/lit/src/v0_9/catalogs/basic/components/Image.ts index 4f6904c96e..da662d7f53 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/Image.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/Image.ts @@ -20,7 +20,7 @@ import {classMap} from 'lit/directives/class-map.js'; import {styleMap} from 'lit/directives/style-map.js'; import {ImageApi} from '@a2ui/web_core/v0_9/basic_catalog'; import {BasicCatalogA2uiLitElement} from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; @customElement('a2ui-image') export class A2uiImageElement extends BasicCatalogA2uiLitElement { @@ -35,7 +35,7 @@ export class A2uiImageElement extends BasicCatalogA2uiLitElement { - static styles = css` + static override styles = css` :host { display: flex; overflow: auto; @@ -39,7 +39,7 @@ export class A2uiListElement extends BasicCatalogA2uiLitElement return new A2uiController(this, ListApi); } - updated(changedProperties: PropertyValues) { + override updated(changedProperties: PropertyValues) { super.updated(changedProperties); const props = this.controller.props; if (props) { @@ -47,7 +47,7 @@ export class A2uiListElement extends BasicCatalogA2uiLitElement } } - render() { + override render() { const props = this.controller.props; if (!props) return nothing; diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/Modal.ts b/renderers/lit/src/v0_9/catalogs/basic/components/Modal.ts index 4608168c5e..401e40d695 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/Modal.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/Modal.ts @@ -18,7 +18,7 @@ import {html, nothing, css} from 'lit'; import {customElement, query} from 'lit/decorators.js'; import {ModalApi} from '@a2ui/web_core/v0_9/basic_catalog'; import {BasicCatalogA2uiLitElement} from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; @customElement('a2ui-modal') export class A2uiLitModal extends BasicCatalogA2uiLitElement { @@ -30,7 +30,7 @@ export class A2uiLitModal extends BasicCatalogA2uiLitElement { * - `--a2ui-modal-padding`: Padding inside the dialog content area. Defaults to `24px`. * - `--a2ui-modal-border-radius`: Border radius of the dialog. Defaults to `8px`. */ - static styles = css` + static override styles = css` :host { display: inline-block; } @@ -51,7 +51,7 @@ export class A2uiLitModal extends BasicCatalogA2uiLitElement { } @query('dialog') accessor dialog!: HTMLDialogElement; - render() { + override render() { const props = this.controller.props; if (!props) return nothing; diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/Row.ts b/renderers/lit/src/v0_9/catalogs/basic/components/Row.ts index 87ad6a4c91..74e0a80fd1 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/Row.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/Row.ts @@ -22,7 +22,7 @@ import { BasicCatalogA2uiLitElement, type ResolvedChildList, } from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; const JUSTIFY_MAP: Record = { start: 'flex-start', @@ -49,7 +49,7 @@ export class A2uiBasicRowElement extends BasicCatalogA2uiLitElement { @@ -31,7 +31,7 @@ export class A2uiSliderElement extends BasicCatalogA2uiLitElement { @@ -34,7 +34,7 @@ export class A2uiLitTabs extends BasicCatalogA2uiLitElement { * - `--a2ui-tabs-border`: Default `--a2ui-border-width` solid `--a2ui-color-border`. * - `--a2ui-tabs-content-padding`: Default `0 var(--a2ui-spacing-m, 0.5rem)`. */ - static styles = css` + static override styles = css` :host { display: block; } @@ -71,7 +71,7 @@ export class A2uiLitTabs extends BasicCatalogA2uiLitElement { @state() accessor activeIndex = 0; - render() { + override render() { const props = this.controller.props; if (!props || !props.tabs) return nothing; return html` diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/Text.ts b/renderers/lit/src/v0_9/catalogs/basic/components/Text.ts index c370827a83..57d71931f5 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/Text.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/Text.ts @@ -19,7 +19,8 @@ import {customElement} from 'lit/decorators.js'; import {consume} from '@lit/context'; import {TextApi} from '@a2ui/web_core/v0_9/basic_catalog'; import {BasicCatalogA2uiLitElement} from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController, Context} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; +import {Context} from '../../../context/context.js'; import * as Types from '@a2ui/web_core/types/types'; import {markdown} from '../../../directives/directives.js'; @@ -35,7 +36,7 @@ export class A2uiBasicTextElement extends BasicCatalogA2uiLitElement { @@ -39,7 +39,7 @@ export class A2uiBasicTextFieldElement extends BasicCatalogA2uiLitElement props.setValue?.((e.target as HTMLInputElement).value); - let type = 'text'; + let type: 'text' | 'number' | 'password' = 'text'; if (props.variant === 'number') type = 'number'; if (props.variant === 'obscured') type = 'password'; diff --git a/renderers/lit/src/v0_9/catalogs/basic/components/Video.ts b/renderers/lit/src/v0_9/catalogs/basic/components/Video.ts index c23a6683cd..0039e6e96a 100644 --- a/renderers/lit/src/v0_9/catalogs/basic/components/Video.ts +++ b/renderers/lit/src/v0_9/catalogs/basic/components/Video.ts @@ -18,7 +18,7 @@ import {html, nothing, css} from 'lit'; import {customElement} from 'lit/decorators.js'; import {VideoApi} from '@a2ui/web_core/v0_9/basic_catalog'; import {BasicCatalogA2uiLitElement} from '../basic-catalog-a2ui-lit-element.js'; -import {A2uiController} from '@a2ui/lit/v0_9'; +import {A2uiController} from '../../../a2ui-controller.js'; @customElement('a2ui-video') export class A2uiVideoElement extends BasicCatalogA2uiLitElement { @@ -28,7 +28,7 @@ export class A2uiVideoElement extends BasicCatalogA2uiLitElement) { + override update( + _part: Part, + [value, markdownRenderer, markdownOptions]: DirectiveParameters, + ) { const jsonTagClassMap = JSON.stringify(markdownOptions?.tagClassMap); if (this.lastValue === value && jsonTagClassMap === this.lastTagClassMap) { return noChange; diff --git a/renderers/lit/src/v0_9/surface/a2ui-surface.ts b/renderers/lit/src/v0_9/surface/a2ui-surface.ts index 4d626bde8b..d7d7046a37 100644 --- a/renderers/lit/src/v0_9/surface/a2ui-surface.ts +++ b/renderers/lit/src/v0_9/surface/a2ui-surface.ts @@ -18,7 +18,7 @@ import {html, nothing, LitElement, PropertyValues} from 'lit'; import {customElement, property, state} from 'lit/decorators.js'; import {SurfaceModel, ComponentContext} from '@a2ui/web_core/v0_9'; import {renderA2uiNode} from './render-a2ui-node.js'; -import {LitComponentApi} from '@a2ui/lit/v0_9'; +import {LitComponentApi} from '../types.js'; /** * A Lit component that renders an A2UI Surface. @@ -55,7 +55,7 @@ export class A2uiSurface extends LitElement { * * @param changedProperties Map of changed properties. */ - protected willUpdate(changedProperties: PropertyValues) { + protected override willUpdate(changedProperties: PropertyValues) { if (changedProperties.has('surface')) { if (this.unsubscribe) { this.unsubscribe(); @@ -80,7 +80,7 @@ export class A2uiSurface extends LitElement { /** * Cleans up subscriptions. */ - disconnectedCallback() { + override disconnectedCallback() { super.disconnectedCallback(); if (this.unsubscribe) { this.unsubscribe(); @@ -95,7 +95,7 @@ export class A2uiSurface extends LitElement { * If the root component is not yet available, renders a loading state. * Otherwise, renders the root component using `renderA2uiNode`. */ - render() { + override render() { if (!this.surface) return nothing; if (!this._hasRoot) { return html`
Loading surface...
`; diff --git a/renderers/lit/src/v0_9/surface/render-a2ui-node.ts b/renderers/lit/src/v0_9/surface/render-a2ui-node.ts index 3fb4be860f..ab6d4fe729 100644 --- a/renderers/lit/src/v0_9/surface/render-a2ui-node.ts +++ b/renderers/lit/src/v0_9/surface/render-a2ui-node.ts @@ -17,7 +17,7 @@ import {nothing} from 'lit'; import {html, unsafeStatic} from 'lit/static-html.js'; import {ComponentContext, Catalog} from '@a2ui/web_core/v0_9'; -import {LitComponentApi} from '@a2ui/lit/v0_9'; +import {LitComponentApi} from '../types.js'; /** * Pure function that acts as a generic container for A2UI components. diff --git a/renderers/lit/src/v0_9/tests/a2ui-lit-element.test.ts b/renderers/lit/src/v0_9/tests/a2ui-lit-element.test.ts index 00ab3a1171..b0ff0c6e14 100644 --- a/renderers/lit/src/v0_9/tests/a2ui-lit-element.test.ts +++ b/renderers/lit/src/v0_9/tests/a2ui-lit-element.test.ts @@ -52,7 +52,7 @@ describe('A2uiLitElement', () => { } as any; } - render() { + override render() { lastRenderResult = this.renderNode('child_id'); return lastRenderResult; } diff --git a/renderers/lit/src/v0_9/tests/basic-catalog-a2ui-lit-element.test.ts b/renderers/lit/src/v0_9/tests/basic-catalog-a2ui-lit-element.test.ts index 7abbe52956..9a69551d66 100644 --- a/renderers/lit/src/v0_9/tests/basic-catalog-a2ui-lit-element.test.ts +++ b/renderers/lit/src/v0_9/tests/basic-catalog-a2ui-lit-element.test.ts @@ -48,7 +48,7 @@ describe('BasicCatalogA2uiLitElement', () => { return controllerMock; } - render() { + override render() { return null; } } diff --git a/scripts/fix_format.sh b/scripts/fix_format.sh index f16fd7929e..7614b1d6d2 100755 --- a/scripts/fix_format.sh +++ b/scripts/fix_format.sh @@ -25,6 +25,7 @@ REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$REPO_ROOT" echo "Running Prettier formatting for Node/Web assets..." +corepack enable if [ -f ".yarn/install-state.gz" ]; then # Local Node environment already installed; invoke standard script targets if [ "$CHECK_ONLY" = true ]; then