import { type DOMAttributeValue, type OptionalAndComplete, type Reference } from "@knyt/artisan"; import { type StyleSheet } from "@knyt/tailor"; import { __hostAdapter, __lifecycle, ControllableAdapter, EventListenerController, EventListenerManager, LifecycleAdapter, StyleSheetAdoptionAdapter, type Controllable, type Effect, type EventListenableObserver, type Lifecycle, type LifecycleDelegateHost, type ReactiveControllerHost } from "@knyt/tasker"; import { __resourceRenderers, BasicResourceRendererHost, RenderMode, type RenderOptions, type RenderResult, type ResourceRenderer, type ResourceRendererHost, type UpdateOptions } from "@knyt/weaver"; import { defer } from "./DeferredContent/defer"; import type { PromiseReference } from "./DeferredContent/PromiseReference"; import { type HtmxObject } from "./HtmxIntegration"; import { __reactiveAdapter, ReactiveUpdateMode, type Reactive, type ReactiveAdapter } from "./Reactive"; import type { PropertiesDefinition } from "./types"; /** * @alpha */ export type KnytElementOptions = { /** * Specifies how the element should be rendered by an external renderer. * * @see {@link https://knyt.dev/s/render-modes} * * @remarks * * There are two render modes: opaque and transparent. * * In opaque mode, the element fully manages the rendering of its children, * and external renderers should not modify its contents. * * In transparent mode, the element allows its children to be rendered * or managed by an external renderer. * * @defaultValue `"transparent"` */ renderMode?: `${RenderMode}`; /** * Specifies whether the element should use a shadow root, and provides options if enabled. * * If `false`, the element will not have a shadow root. * If a `ShadowRootInit` object is provided, a shadow root will be attached using those options. * * @defaultValue `{ mode: "closed" }` */ shadowRoot?: false | ShadowRootInit; /** * Determines how the element is updated. * * @defaultValue `"reactive"` */ updateMode?: `${ReactiveUpdateMode}`; /** * Controls whether adopted stylesheets are included during server-side rendering. * * @remarks * * When enabled, adopted style sheets will not be rendered as