Kind: Class
Source: atloria-monorepo/packages/ui-core/src/lib/reactive-element-base.ts
A LitElement that guarantees its reactive properties are actually reactive.
Lit installs an accessor per declared property on the PROTOTYPE. Under ES2022 class-field
semantics (useDefineForClassFields, which several bundlers apply regardless of this
package's own tsconfig) a declared field is additionally installed on each INSTANCE with
[[Define]]. The instance property wins, so:
- every assignment writes a plain data property,
- Lit's setter never runs and nothing is marked changed,
- the component renders once with its defaults and never again.
Nothing throws. The value is present and readable, which is what makes it so hard to spot:
the published API playground held a 524-path spec in spec, 633 items in the endpoint
list's endpoints, and rendered "No endpoints found".
Deleting the own property re-exposes the accessor; re-assigning the captured value sends it through the setter and records the change. This is what Lit's own pre-upgrade rescue does — done here so it holds however the consuming build compiles class fields.
Extends: LitElement
Methods
| Method | Signature | Returns |
|---|---|---|
connectedCallback | connectedCallback() | void |
rescueShadowedProperties | rescueShadowedProperties() | void |
Where it refuses work
AtloriaElementstops the work with an early return when!declared.
Was this page helpful?