From 7507eb49ff36c3c91ed10f6001158759897dd39d Mon Sep 17 00:00:00 2001 From: dangreen Date: Mon, 24 Aug 2026 20:05:32 +0400 Subject: [PATCH] feat(agera,intl,kida,nanoviews,query,router,svelte-kit): rename `ValueOrAccessor` to `Signalish` `ValueOrAccessor` is the most repeated type a consumer writes - 705 occurrences in this repo alone, 577 of them in the DOM attribute types - and no neighbouring library spells it that way. Preact names the same union `Signalish` and uses it in the same position, its JSX attribute types; solid-primitives publishes `MaybeAccessor` for the identical shape; Vue has `MaybeRef`. `Signalish` is the shortest of the three and reads as the thing consumers actually pass: a signal, an accessor over one, or a plain value. `MaybeAccessorValue` becomes `SignalishValue` so the extractor keeps its union's name, `AnyValueOrAccessor` becomes `AnySignalish`, and `query`'s `SignalsParams`, which maps each parameter through this union, becomes `SignalishParams`. The parameters that carried the old name in their spelling are now `source`. The old names stay as deprecated aliases, so nothing breaks; they are marked to drop at the next major. --- packages/agera/src/internals/types.ts | 8 +- packages/intl/src/format/match.ts | 8 +- packages/intl/src/format/params.ts | 8 +- packages/kida/src/effect.ts | 12 +- packages/kida/src/fops_experement.ts | 46 +- packages/kida/src/internals/types.ts | 28 +- packages/kida/src/internals/utils.ts | 54 +- packages/kida/src/utils.ts | 4 +- packages/nanoviews/src/elements/autoFocus.ts | 6 +- packages/nanoviews/src/elements/classList.ts | 4 +- packages/nanoviews/src/elements/innerHtml.ts | 4 +- packages/nanoviews/src/flow/swap.ts | 4 +- packages/nanoviews/src/flow/switch.ts | 8 +- .../src/internals/types/attributes.ts | 4 +- .../nanoviews/src/internals/types/children.ts | 4 +- .../nanoviews/src/internals/types/common.ts | 4 +- .../nanoviews/src/internals/types/dom/aria.ts | 108 +- .../src/internals/types/dom/attributes.ts | 1154 ++++++++--------- packages/query/src/queries/base.ts | 8 +- packages/query/src/queries/infinite.ts | 8 +- packages/query/src/queries/operation.ts | 12 +- packages/query/src/queries/query.ts | 8 +- packages/router/src/head.ts | 4 +- packages/router/src/head.types.ts | 26 +- packages/svelte-kit/src/hydration.ts | 6 +- 25 files changed, 783 insertions(+), 757 deletions(-) diff --git a/packages/agera/src/internals/types.ts b/packages/agera/src/internals/types.ts index 7fe0bb35..96f221d0 100644 --- a/packages/agera/src/internals/types.ts +++ b/packages/agera/src/internals/types.ts @@ -83,7 +83,13 @@ export type AnyAccessorOrSignal = AnyAccessor | AnySignal export type AccessorValue = T extends Accessor ? U : never -export type MaybeAccessorValue = T extends Accessor ? U : T +export type SignalishValue = T extends Accessor ? U : T + +/** + * @deprecated Use `SignalishValue` + * @todo Drop at the next major + */ +export type MaybeAccessorValue = SignalishValue export type Mountable = S & { node: EnableVirtualFlags diff --git a/packages/intl/src/format/match.ts b/packages/intl/src/format/match.ts index 16e317ba..5fc1a38b 100644 --- a/packages/intl/src/format/match.ts +++ b/packages/intl/src/format/match.ts @@ -1,5 +1,5 @@ import { - type ValueOrAccessor, + type Signalish, $get, identity, isFunction @@ -20,15 +20,15 @@ export type MatchParams< K extends string, B extends Partial> > = { - [P in K]: ValueOrAccessor + [P in K]: Signalish } & UnionToIntersection> -export type ArgMatchFn = FnWithParams> +export type ArgMatchFn = FnWithParams> export type MatchFn< K extends string, B extends Partial> -> = FnWithParams | ValueOrAccessor> +> = FnWithParams | Signalish> export type CasesFn< K extends string, diff --git a/packages/intl/src/format/params.ts b/packages/intl/src/format/params.ts index 7589c6d8..4ef71fc9 100644 --- a/packages/intl/src/format/params.ts +++ b/packages/intl/src/format/params.ts @@ -1,5 +1,5 @@ import { - type ValueOrAccessor, + type Signalish, $get, isFunction } from '@nano_kit/store' @@ -25,9 +25,9 @@ export type RequiredParamKeys

= { export type OptionalParamKeys

= Exclude> export type ParamsValues

= { - [K in RequiredParamKeys

]: ValueOrAccessor> + [K in RequiredParamKeys

]: Signalish> } & { - [K in OptionalParamKeys

]?: ValueOrAccessor | undefined> + [K in OptionalParamKeys

]?: Signalish | undefined> } export type ParamsFn

= FnWithParams> @@ -36,7 +36,7 @@ type PreformatOutput = string | undefined | FnWithAnyParams type ComposedParamsFn

= FnWithParams & UnionToIntersection>> -type Replace = (ctx: FormatContext, text: string, params: Record>) => string +type Replace = (ctx: FormatContext, text: string, params: Record>) => string /** * Creates a parameter interpolation formatter. diff --git a/packages/kida/src/effect.ts b/packages/kida/src/effect.ts index a0f1c646..563f65da 100644 --- a/packages/kida/src/effect.ts +++ b/packages/kida/src/effect.ts @@ -2,7 +2,7 @@ import { isAccessor, subscribe } from 'agera' -import type { ValueOrAccessor } from './types.js' +import type { Signalish } from './types.js' export * from './internals/effect.js' @@ -10,19 +10,19 @@ export * from './internals/effect.js' * Subscribe to accessor changes or call callback with value if it's not an accessor. * Callback will be called immediately. * Will trigger accessor mount if applicable. - * @param valueOrAccessor - The accessor to subscribe to or a value to call the callback with. + * @param source - The accessor to subscribe to or a value to call the callback with. * @param fn - The callback to call on value change. * @param noDefer - Ignore subscription defer. Enabled by default. * @returns A function to stop the subscription. */ export function subscribeAny( - valueOrAccessor: ValueOrAccessor, + source: Signalish, callback: (value: T) => void, noDefer = true ) { - if (isAccessor(valueOrAccessor)) { - return subscribe(valueOrAccessor, callback, noDefer) + if (isAccessor(source)) { + return subscribe(source, callback, noDefer) } - callback(valueOrAccessor) + callback(source) } diff --git a/packages/kida/src/fops_experement.ts b/packages/kida/src/fops_experement.ts index f5bb82ea..8c583d4f 100644 --- a/packages/kida/src/fops_experement.ts +++ b/packages/kida/src/fops_experement.ts @@ -1,5 +1,5 @@ import type { Accessor } from 'agera' -import type { ValueOrAccessor } from './types.js' +import type { Signalish } from './types.js' import { $get } from './utils.js' /** @@ -10,8 +10,8 @@ import { $get } from './utils.js' */ /* @__NO_SIDE_EFFECTS__ */ export function or( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) || $get(right) } @@ -22,7 +22,7 @@ export function or( * @returns An accessor that returns the first truthy value */ /* @__NO_SIDE_EFFECTS__ */ -export function some(...args: ValueOrAccessor[]): Accessor { +export function some(...args: Signalish[]): Accessor { return () => { let value: T @@ -46,8 +46,8 @@ export function some(...args: ValueOrAccessor[]): Accessor { */ /* @__NO_SIDE_EFFECTS__ */ export function and( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) && $get(right) } @@ -58,7 +58,7 @@ export function and( * @returns An accessor that returns the last value if all are truthy */ /* @__NO_SIDE_EFFECTS__ */ -export function every(...args: ValueOrAccessor[]): Accessor { +export function every(...args: Signalish[]): Accessor { return () => { let value: T @@ -80,7 +80,7 @@ export function every(...args: ValueOrAccessor[]): Accessor { * @returns An accessor that returns the negated boolean result */ /* @__NO_SIDE_EFFECTS__ */ -export function not(value: ValueOrAccessor): Accessor { +export function not(value: Signalish): Accessor { return () => !$get(value) } @@ -92,8 +92,8 @@ export function not(value: ValueOrAccessor): Accessor { */ /* @__NO_SIDE_EFFECTS__ */ export function is( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) === $get(right) } @@ -106,8 +106,8 @@ export function is( */ /* @__NO_SIDE_EFFECTS__ */ export function isNot( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) !== $get(right) } @@ -120,8 +120,8 @@ export function isNot( */ /* @__NO_SIDE_EFFECTS__ */ export function gt( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) > $get(right) } @@ -134,8 +134,8 @@ export function gt( */ /* @__NO_SIDE_EFFECTS__ */ export function gte( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) >= $get(right) } @@ -148,8 +148,8 @@ export function gte( */ /* @__NO_SIDE_EFFECTS__ */ export function lt( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) < $get(right) } @@ -162,8 +162,8 @@ export function lt( */ /* @__NO_SIDE_EFFECTS__ */ export function lte( - left: ValueOrAccessor, - right: ValueOrAccessor + left: Signalish, + right: Signalish ): Accessor { return () => $get(left) <= $get(right) } @@ -177,9 +177,9 @@ export function lte( */ /* @__NO_SIDE_EFFECTS__ */ export function when( - condition: ValueOrAccessor, - then: ValueOrAccessor, - otherwise?: ValueOrAccessor + condition: Signalish, + then: Signalish, + otherwise?: Signalish ): Accessor { return () => ($get(condition) ? $get(then) : otherwise && $get(otherwise)) } diff --git a/packages/kida/src/internals/types.ts b/packages/kida/src/internals/types.ts index 2b01d74a..9221f96c 100644 --- a/packages/kida/src/internals/types.ts +++ b/packages/kida/src/internals/types.ts @@ -24,13 +24,33 @@ export type PickEmptyValue = T extends EmptyValue ? T : never export type PickObjectValue = T extends AnyObject ? T : never -export type ValueOrSignal = T | ReadableSignal +export type Signalish = T | Accessor -export type ValueOrWritableSignal = T | WritableSignal +export type AnySignalish = Signalish + +/** + * @deprecated Use `Signalish` + * @todo Drop at the next major + */ +export type ValueOrAccessor = Signalish -export type ValueOrAccessor = T | Accessor +/** + * @deprecated Use `Signalish` + * @todo Drop at the next major + */ +export type AnyValueOrAccessor = AnySignalish -export type AnyValueOrAccessor = ValueOrAccessor +/** + * @deprecated Use `Signalish` + * @todo Drop at the next major + */ +export type ValueOrSignal = T | ReadableSignal + +/** + * @deprecated Use `Signalish` + * @todo Drop at the next major + */ +export type ValueOrWritableSignal = T | WritableSignal export type ToSignal = [T] extends [AnyWritableSignal] ? T diff --git a/packages/kida/src/internals/utils.ts b/packages/kida/src/internals/utils.ts index b671194a..9a77de5c 100644 --- a/packages/kida/src/internals/utils.ts +++ b/packages/kida/src/internals/utils.ts @@ -12,7 +12,7 @@ import type { ToAccessor, ToSignal, ToAccessorOrSignal, - ValueOrAccessor + Signalish } from './types.js' /** @@ -62,71 +62,71 @@ export function assignKey< /** * Get value from signal or return value with tracking - * @param valueOr$signal - Value or signal + * @param source - Value or signal * @returns Value */ -export function $get(valueOr$signal: ValueOrAccessor): T { - return isAccessor(valueOr$signal) ? valueOr$signal() : valueOr$signal +export function $get(source: Signalish): T { + return isAccessor(source) ? source() : source } /** * Get value from signal or return value without tracking - * @param valueOr$signal - Value or signal + * @param source - Value or signal * @returns Value */ /* @__NO_SIDE_EFFECTS__ */ -export function get(valueOrAccessor: ValueOrAccessor): T { - return untracked(() => $get(valueOrAccessor)) +export function get(source: Signalish): T { + return untracked(() => $get(source)) } /** * Create signal from value or return signal - * @param valueOrSignal - Value or signal + * @param source - Value or signal * @returns Writable signal */ export function toSignal( - valueOrSignal: T + source: T ): ToSignal /* @__NO_SIDE_EFFECTS__ */ -export function toSignal(valueOrSignal: unknown) { - return isSignal(valueOrSignal) - ? valueOrSignal - : isAccessor(valueOrSignal) - ? computed(valueOrSignal) - : signal(valueOrSignal) +export function toSignal(source: unknown) { + return isSignal(source) + ? source + : isAccessor(source) + ? computed(source) + : signal(source) } /** * Create accessor from value or return accessor - * @param valueOrAccessor - Value or accessor + * @param source - Value or accessor * @returns Accessor */ export function toAccessor( - valueOrAccessor: T + source: T ): ToAccessor /* @__NO_SIDE_EFFECTS__ */ -export function toAccessor(valueOrReadable: unknown) { - return isAccessor(valueOrReadable) - ? valueOrReadable - : () => valueOrReadable +export function toAccessor(source: unknown) { + return isAccessor(source) + ? source + : () => source } /** * Create signal from value or return accessor or signal - * @param valueOrAccessor - Value or accessor or signal + * @param source - Value or accessor or signal * @returns Accessor or signal */ export function toAccessorOrSignal( - valueOrAccessor: T + source: T ): ToAccessorOrSignal /* @__NO_SIDE_EFFECTS__ */ -export function toAccessorOrSignal(valueOrReadable: unknown) { - return isAccessor(valueOrReadable) - ? valueOrReadable - : signal(valueOrReadable) +export function toAccessorOrSignal(source: unknown) { + return isAccessor(source) + ? source + : signal(source) } /** diff --git a/packages/kida/src/utils.ts b/packages/kida/src/utils.ts index 4af13982..9f3fe5c3 100644 --- a/packages/kida/src/utils.ts +++ b/packages/kida/src/utils.ts @@ -6,7 +6,7 @@ import { } from 'agera' import type { AnyFn, - ValueOrAccessor + Signalish } from './types.js' import { $get } from './internals/utils.js' @@ -49,7 +49,7 @@ export function boolean($signal: Accessor) { * @returns A computed signal that returns the concatenated string. */ /* @__NO_SIDE_EFFECTS__ */ -export function concat(...parts: ValueOrAccessor[]) { +export function concat(...parts: Signalish[]) { return computed(() => parts.map($get).join('')) } diff --git a/packages/nanoviews/src/elements/autoFocus.ts b/packages/nanoviews/src/elements/autoFocus.ts index 7c934b80..1c3c747f 100644 --- a/packages/nanoviews/src/elements/autoFocus.ts +++ b/packages/nanoviews/src/elements/autoFocus.ts @@ -1,5 +1,5 @@ import { - type ValueOrAccessor, + type Signalish, isAccessor, effect } from 'kida' @@ -8,7 +8,7 @@ import { createEffectAttribute } from '../internals/index.js' /** * Effect attribute to set auto focus on element */ -export const autoFocus$ = /* @__PURE__ */ createEffectAttribute<'autoFocus$', HTMLElement | SVGElement, ValueOrAccessor>( +export const autoFocus$ = /* @__PURE__ */ createEffectAttribute<'autoFocus$', HTMLElement | SVGElement, Signalish>( 'autoFocus$', (element, $value) => { if (isAccessor($value) && $value() || $value) { @@ -21,7 +21,7 @@ export const autoFocus$ = /* @__PURE__ */ createEffectAttribute<'autoFocus$', HT declare module 'nanoviews' { interface EffectAttributeValues { - autoFocus$: ValueOrAccessor + autoFocus$: Signalish } interface EffectAttributeTargets { diff --git a/packages/nanoviews/src/elements/classList.ts b/packages/nanoviews/src/elements/classList.ts index 03b1fa2c..cee6fa22 100644 --- a/packages/nanoviews/src/elements/classList.ts +++ b/packages/nanoviews/src/elements/classList.ts @@ -1,6 +1,6 @@ /* oxlint-disable typescript/no-redundant-type-constituents */ import { - type ValueOrAccessor, + type Signalish, $get, effect } from 'kida' @@ -9,7 +9,7 @@ import { createEffectAttribute } from '../internals/index.js' -export type ClassList = ValueOrAccessor[] +export type ClassList = Signalish[] function cx(parts: unknown[]) { const len = parts.length diff --git a/packages/nanoviews/src/elements/innerHtml.ts b/packages/nanoviews/src/elements/innerHtml.ts index f3c7cabc..eaa48b44 100644 --- a/packages/nanoviews/src/elements/innerHtml.ts +++ b/packages/nanoviews/src/elements/innerHtml.ts @@ -1,6 +1,6 @@ import { - type ValueOrAccessor, + type Signalish, isAccessor, effect } from 'kida' @@ -13,7 +13,7 @@ import { */ export function dangerouslySetInnerHtml( factory: () => T, - $html: ValueOrAccessor + $html: Signalish ) { const element = factory() diff --git a/packages/nanoviews/src/flow/swap.ts b/packages/nanoviews/src/flow/swap.ts index 3f0fd512..91bfabc0 100644 --- a/packages/nanoviews/src/flow/swap.ts +++ b/packages/nanoviews/src/flow/swap.ts @@ -1,5 +1,5 @@ import { - type ValueOrAccessor, + type Signalish, isAccessor } from 'kida' import { @@ -15,7 +15,7 @@ import { * @returns Block that renders the child and swaps it on change */ export function swap_( - $value: ValueOrAccessor, + $value: Signalish, render: (value: T) => Child ) { if (isAccessor($value)) { diff --git a/packages/nanoviews/src/flow/switch.ts b/packages/nanoviews/src/flow/switch.ts index ae3635da..a8b023ab 100644 --- a/packages/nanoviews/src/flow/switch.ts +++ b/packages/nanoviews/src/flow/switch.ts @@ -1,6 +1,6 @@ import type { - MaybeAccessorValue, - ValueOrAccessor + SignalishValue, + Signalish } from 'kida' import type { Child } from '../internals/index.js' import { swap_ } from './swap.js' @@ -12,8 +12,8 @@ export type SwitchCase = readonly [T | typeof default_, () => Child] * @param $value - Static value or store * @returns Function that accepts cases and returns Block that renders decided child */ -export function switch_($value: ValueOrAccessor) { - type Value = MaybeAccessorValue +export function switch_($value: Signalish) { + type Value = SignalishValue /** * Decide which child to render based on switch cases diff --git a/packages/nanoviews/src/internals/types/attributes.ts b/packages/nanoviews/src/internals/types/attributes.ts index 5303a5c4..7fa88222 100644 --- a/packages/nanoviews/src/internals/types/attributes.ts +++ b/packages/nanoviews/src/internals/types/attributes.ts @@ -1,4 +1,4 @@ -import type { ValueOrAccessor } from 'kida' +import type { Signalish } from 'kida' import type { Primitive } from './common.js' import type { ElementName, @@ -7,7 +7,7 @@ import type { } from './dom/elements.js' import type { PickEffectAttributesByTarget } from './effectAttribute.js' -export type PrimitiveAttributeValue = ValueOrAccessor +export type PrimitiveAttributeValue = Signalish export type Attributes = & PickEffectAttributesByTarget> diff --git a/packages/nanoviews/src/internals/types/children.ts b/packages/nanoviews/src/internals/types/children.ts index 56de557f..1872ae52 100644 --- a/packages/nanoviews/src/internals/types/children.ts +++ b/packages/nanoviews/src/internals/types/children.ts @@ -1,4 +1,4 @@ -import type { ValueOrAccessor } from 'kida' +import type { Signalish } from 'kida' import type { Primitive, AnyFn @@ -9,7 +9,7 @@ export type LazyChild Child = () => Child> = T & { c: true } -export type Child = ChildNode | DocumentFragment | LazyChild<() => Child> | ValueOrAccessor +export type Child = ChildNode | DocumentFragment | LazyChild<() => Child> | Signalish export type Children = Child[] diff --git a/packages/nanoviews/src/internals/types/common.ts b/packages/nanoviews/src/internals/types/common.ts index 0c962376..79a57ce1 100644 --- a/packages/nanoviews/src/internals/types/common.ts +++ b/packages/nanoviews/src/internals/types/common.ts @@ -7,7 +7,7 @@ import type { MaybeDestroy, EffectCallback, Accessor, - ValueOrAccessor + Signalish } from 'kida' export type { @@ -28,7 +28,7 @@ export type Primitive = string | number | boolean | EmptyValue export type NonEmptyValue = T extends EmptyValue ? never : T export type AccessibleProps = { - [K in keyof T]?: ValueOrAccessor + [K in keyof T]?: Signalish } export type TruthySignal = T extends Accessor diff --git a/packages/nanoviews/src/internals/types/dom/aria.ts b/packages/nanoviews/src/internals/types/dom/aria.ts index ab46312e..a8d0ea08 100644 --- a/packages/nanoviews/src/internals/types/dom/aria.ts +++ b/packages/nanoviews/src/internals/types/dom/aria.ts @@ -1,4 +1,4 @@ -import type { ValueOrAccessor } from 'kida' +import type { Signalish } from 'kida' import type { EmptyValue } from '../common.js' import type { Booleanish } from './common.js' @@ -78,173 +78,173 @@ export type AriaRole = // All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/ export interface AriaAttributes { /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */ - 'aria-activedescendant'?: ValueOrAccessor + 'aria-activedescendant'?: Signalish /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */ - 'aria-atomic'?: ValueOrAccessor + 'aria-atomic'?: Signalish /** * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be * presented if they are made. */ - 'aria-autocomplete'?: ValueOrAccessor<'none' | 'inline' | 'list' | 'both' | EmptyValue> + 'aria-autocomplete'?: Signalish<'none' | 'inline' | 'list' | 'both' | EmptyValue> /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */ /** * Defines a string value that labels the current element, which is intended to be converted into Braille. * @see aria-label */ - 'aria-braillelabel'?: ValueOrAccessor + 'aria-braillelabel'?: Signalish /** * Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille. * @see aria-roledescription */ - 'aria-brailleroledescription'?: ValueOrAccessor - 'aria-busy'?: ValueOrAccessor + 'aria-brailleroledescription'?: Signalish + 'aria-busy'?: Signalish /** * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets. * @see aria-pressed * @see aria-selected */ - 'aria-checked'?: ValueOrAccessor + 'aria-checked'?: Signalish /** * Defines the total number of columns in a table, grid, or treegrid. * @see aria-colindex */ - 'aria-colcount'?: ValueOrAccessor + 'aria-colcount'?: Signalish /** * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid. * @see aria-colcount * @see aria-colspan */ - 'aria-colindex'?: ValueOrAccessor + 'aria-colindex'?: Signalish /** * Defines a human readable text alternative of aria-colindex. * @see aria-rowindextext */ - 'aria-colindextext'?: ValueOrAccessor + 'aria-colindextext'?: Signalish /** * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid. * @see aria-colindex * @see aria-rowspan */ - 'aria-colspan'?: ValueOrAccessor + 'aria-colspan'?: Signalish /** * Identifies the element (or elements) whose contents or presence are controlled by the current element. * @see aria-owns */ - 'aria-controls'?: ValueOrAccessor + 'aria-controls'?: Signalish /** Indicates the element that represents the current item within a container or set of related elements. */ - 'aria-current'?: ValueOrAccessor + 'aria-current'?: Signalish /** * Identifies the element (or elements) that describes the object. * @see aria-labelledby */ - 'aria-describedby'?: ValueOrAccessor + 'aria-describedby'?: Signalish /** * Defines a string value that describes or annotates the current element. * @see related aria-describedby. */ - 'aria-description'?: ValueOrAccessor + 'aria-description'?: Signalish /** * Identifies the element that provides a detailed, extended description for the object. * @see aria-describedby */ - 'aria-details'?: ValueOrAccessor + 'aria-details'?: Signalish /** * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable. * @see aria-hidden * @see aria-readonly */ - 'aria-disabled'?: ValueOrAccessor + 'aria-disabled'?: Signalish /** * Indicates what functions can be performed when a dragged object is released on the drop target. * @deprecated in ARIA 1.1 */ - 'aria-dropeffect'?: ValueOrAccessor<'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup' | EmptyValue> + 'aria-dropeffect'?: Signalish<'none' | 'copy' | 'execute' | 'link' | 'move' | 'popup' | EmptyValue> /** * Identifies the element that provides an error message for the object. * @see aria-invalid * @see aria-describedby */ - 'aria-errormessage'?: ValueOrAccessor + 'aria-errormessage'?: Signalish /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */ - 'aria-expanded'?: ValueOrAccessor + 'aria-expanded'?: Signalish /** * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion, * allows assistive technology to override the general default of reading in document source order. */ - 'aria-flowto'?: ValueOrAccessor + 'aria-flowto'?: Signalish /** * Indicates an element's "grabbed" state in a drag-and-drop operation. * @deprecated in ARIA 1.1 */ - 'aria-grabbed'?: ValueOrAccessor + 'aria-grabbed'?: Signalish /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */ - 'aria-haspopup'?: ValueOrAccessor + 'aria-haspopup'?: Signalish /** * Indicates whether the element is exposed to an accessibility API. * @see aria-disabled */ - 'aria-hidden'?: ValueOrAccessor + 'aria-hidden'?: Signalish /** * Indicates the entered value does not conform to the format expected by the application. * @see aria-errormessage */ - 'aria-invalid'?: ValueOrAccessor + 'aria-invalid'?: Signalish /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */ - 'aria-keyshortcuts'?: ValueOrAccessor + 'aria-keyshortcuts'?: Signalish /** * Defines a string value that labels the current element. * @see aria-labelledby */ - 'aria-label'?: ValueOrAccessor + 'aria-label'?: Signalish /** * Identifies the element (or elements) that labels the current element. * @see aria-describedby */ - 'aria-labelledby'?: ValueOrAccessor + 'aria-labelledby'?: Signalish /** Defines the hierarchical level of an element within a structure. */ - 'aria-level'?: ValueOrAccessor + 'aria-level'?: Signalish /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */ - 'aria-live'?: ValueOrAccessor<'off' | 'assertive' | 'polite' | EmptyValue> + 'aria-live'?: Signalish<'off' | 'assertive' | 'polite' | EmptyValue> /** Indicates whether an element is modal when displayed. */ - 'aria-modal'?: ValueOrAccessor + 'aria-modal'?: Signalish /** Indicates whether a text box accepts multiple lines of input or only a single line. */ - 'aria-multiline'?: ValueOrAccessor + 'aria-multiline'?: Signalish /** Indicates that the user may select more than one item from the current selectable descendants. */ - 'aria-multiselectable'?: ValueOrAccessor + 'aria-multiselectable'?: Signalish /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */ - 'aria-orientation'?: ValueOrAccessor<'horizontal' | 'vertical' | EmptyValue> + 'aria-orientation'?: Signalish<'horizontal' | 'vertical' | EmptyValue> /** * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship * between DOM elements where the DOM hierarchy cannot be used to represent the relationship. * @see aria-controls */ - 'aria-owns'?: ValueOrAccessor + 'aria-owns'?: Signalish /** * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value. * A hint could be a sample value or a brief description of the expected format. */ - 'aria-placeholder'?: ValueOrAccessor + 'aria-placeholder'?: Signalish /** * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. * @see aria-setsize */ - 'aria-posinset'?: ValueOrAccessor + 'aria-posinset'?: Signalish /** * Indicates the current "pressed" state of toggle buttons. * @see aria-checked * @see aria-selected */ - 'aria-pressed'?: ValueOrAccessor + 'aria-pressed'?: Signalish /** * Indicates that the element is not editable, but is otherwise operable. * @see aria-disabled */ - 'aria-readonly'?: ValueOrAccessor + 'aria-readonly'?: Signalish /** * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified. * @see aria-atomic */ - 'aria-relevant'?: ValueOrAccessor< + 'aria-relevant'?: Signalish< | 'additions' | 'additions removals' | 'additions text' @@ -258,53 +258,53 @@ export interface AriaAttributes { | EmptyValue > /** Indicates that user input is required on the element before a form may be submitted. */ - 'aria-required'?: ValueOrAccessor + 'aria-required'?: Signalish /** Defines a human-readable, author-localized description for the role of an element. */ - 'aria-roledescription'?: ValueOrAccessor + 'aria-roledescription'?: Signalish /** * Defines the total number of rows in a table, grid, or treegrid. * @see aria-rowindex */ - 'aria-rowcount'?: ValueOrAccessor + 'aria-rowcount'?: Signalish /** * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid. * @see aria-rowcount * @see aria-rowspan */ - 'aria-rowindex'?: ValueOrAccessor + 'aria-rowindex'?: Signalish /** * Defines a human readable text alternative of aria-rowindex. * @see aria-colindextext */ - 'aria-rowindextext'?: ValueOrAccessor + 'aria-rowindextext'?: Signalish /** * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid. * @see aria-rowindex * @see aria-colspan */ - 'aria-rowspan'?: ValueOrAccessor + 'aria-rowspan'?: Signalish /** * Indicates the current "selected" state of various widgets. * @see aria-checked * @see aria-pressed */ - 'aria-selected'?: ValueOrAccessor + 'aria-selected'?: Signalish /** * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM. * @see aria-posinset */ - 'aria-setsize'?: ValueOrAccessor + 'aria-setsize'?: Signalish /** Indicates if items in a table or grid are sorted in ascending or descending order. */ - 'aria-sort'?: ValueOrAccessor<'none' | 'ascending' | 'descending' | 'other' | EmptyValue> + 'aria-sort'?: Signalish<'none' | 'ascending' | 'descending' | 'other' | EmptyValue> /** Defines the maximum allowed value for a range widget. */ - 'aria-valuemax'?: ValueOrAccessor + 'aria-valuemax'?: Signalish /** Defines the minimum allowed value for a range widget. */ - 'aria-valuemin'?: ValueOrAccessor + 'aria-valuemin'?: Signalish /** * Defines the current value for a range widget. * @see aria-valuetext */ - 'aria-valuenow'?: ValueOrAccessor + 'aria-valuenow'?: Signalish /** Defines the human readable text alternative of aria-valuenow for a range widget. */ - 'aria-valuetext'?: ValueOrAccessor + 'aria-valuetext'?: Signalish } diff --git a/packages/nanoviews/src/internals/types/dom/attributes.ts b/packages/nanoviews/src/internals/types/dom/attributes.ts index b7632e0f..ce66f90d 100644 --- a/packages/nanoviews/src/internals/types/dom/attributes.ts +++ b/packages/nanoviews/src/internals/types/dom/attributes.ts @@ -1,5 +1,5 @@ import type * as CSS from 'csstype' -import type { ValueOrAccessor } from 'kida' +import type { Signalish } from 'kida' import type { EmptyValue } from '../common.js' import type { Booleanish, @@ -29,79 +29,79 @@ export interface CSSProperties extends CSS.Properties { export interface HTMLAttributes extends AriaAttributes, DOMAttributes { // React-specific Attributes - defaultChecked?: ValueOrAccessor - defaultValue?: ValueOrAccessor - suppressContentEditableWarning?: ValueOrAccessor - suppressHydrationWarning?: ValueOrAccessor + defaultChecked?: Signalish + defaultValue?: Signalish + suppressContentEditableWarning?: Signalish + suppressHydrationWarning?: Signalish // Standard HTML Attributes - accessKey?: ValueOrAccessor - autoFocus?: ValueOrAccessor - class?: ValueOrAccessor - contentEditable?: ValueOrAccessor - contextMenu?: ValueOrAccessor - dir?: ValueOrAccessor - draggable?: ValueOrAccessor - hidden?: ValueOrAccessor - id?: ValueOrAccessor - lang?: ValueOrAccessor - nonce?: ValueOrAccessor - slot?: ValueOrAccessor - spellCheck?: ValueOrAccessor - style?: ValueOrAccessor - tabIndex?: ValueOrAccessor - title?: ValueOrAccessor - translate?: ValueOrAccessor<'yes' | 'no' | EmptyValue> + accessKey?: Signalish + autoFocus?: Signalish + class?: Signalish + contentEditable?: Signalish + contextMenu?: Signalish + dir?: Signalish + draggable?: Signalish + hidden?: Signalish + id?: Signalish + lang?: Signalish + nonce?: Signalish + slot?: Signalish + spellCheck?: Signalish + style?: Signalish + tabIndex?: Signalish + title?: Signalish + translate?: Signalish<'yes' | 'no' | EmptyValue> // Unknown - radioGroup?: ValueOrAccessor // , + radioGroup?: Signalish // , // WAI-ARIA - role?: ValueOrAccessor + role?: Signalish // RDFa Attributes - about?: ValueOrAccessor - content?: ValueOrAccessor - datatype?: ValueOrAccessor - inlist?: ValueOrAccessor - prefix?: ValueOrAccessor - property?: ValueOrAccessor - rel?: ValueOrAccessor - resource?: ValueOrAccessor - rev?: ValueOrAccessor - typeof?: ValueOrAccessor - vocab?: ValueOrAccessor + about?: Signalish + content?: Signalish + datatype?: Signalish + inlist?: Signalish + prefix?: Signalish + property?: Signalish + rel?: Signalish + resource?: Signalish + rev?: Signalish + typeof?: Signalish + vocab?: Signalish // Non-standard Attributes - autoCapitalize?: ValueOrAccessor - autoCorrect?: ValueOrAccessor - autoSave?: ValueOrAccessor - color?: ValueOrAccessor - itemProp?: ValueOrAccessor - itemScope?: ValueOrAccessor - itemType?: ValueOrAccessor - itemID?: ValueOrAccessor - itemRef?: ValueOrAccessor - results?: ValueOrAccessor - security?: ValueOrAccessor - unselectable?: ValueOrAccessor<'on' | 'off' | EmptyValue> + autoCapitalize?: Signalish + autoCorrect?: Signalish + autoSave?: Signalish + color?: Signalish + itemProp?: Signalish + itemScope?: Signalish + itemType?: Signalish + itemID?: Signalish + itemRef?: Signalish + results?: Signalish + security?: Signalish + unselectable?: Signalish<'on' | 'off' | EmptyValue> // Living Standard /** * Hints at the type of data that might be entered by the user while editing the element or its contents * @see {@link https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute} */ - inputMode?: ValueOrAccessor<'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search' | EmptyValue> + inputMode?: Signalish<'none' | 'text' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search' | EmptyValue> /** * Specify that a standard HTML element should behave like a defined custom built-in element * @see {@link https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is} */ - is?: ValueOrAccessor + is?: Signalish /** * Data attributes */ - [key: `data-${string}`]: ValueOrAccessor + [key: `data-${string}`]: Signalish } export type HTMLAttributeReferrerPolicy = @@ -123,156 +123,156 @@ export type HTMLAttributeAnchorTarget = | string & {} export interface AnchorHTMLAttributes extends HTMLAttributes { - download?: ValueOrAccessor - href?: ValueOrAccessor - hrefLang?: ValueOrAccessor - media?: ValueOrAccessor - ping?: ValueOrAccessor - target?: ValueOrAccessor - type?: ValueOrAccessor - referrerPolicy?: ValueOrAccessor + download?: Signalish + href?: Signalish + hrefLang?: Signalish + media?: Signalish + ping?: Signalish + target?: Signalish + type?: Signalish + referrerPolicy?: Signalish } export interface AudioHTMLAttributes extends MediaHTMLAttributes {} export interface AreaHTMLAttributes extends HTMLAttributes { - alt?: ValueOrAccessor - coords?: ValueOrAccessor - download?: ValueOrAccessor - href?: ValueOrAccessor - hrefLang?: ValueOrAccessor - media?: ValueOrAccessor - referrerPolicy?: ValueOrAccessor - shape?: ValueOrAccessor - target?: ValueOrAccessor + alt?: Signalish + coords?: Signalish + download?: Signalish + href?: Signalish + hrefLang?: Signalish + media?: Signalish + referrerPolicy?: Signalish + shape?: Signalish + target?: Signalish } export interface BaseHTMLAttributes extends HTMLAttributes { - href?: ValueOrAccessor - target?: ValueOrAccessor + href?: Signalish + target?: Signalish } export interface BlockquoteHTMLAttributes extends HTMLAttributes { - cite?: ValueOrAccessor + cite?: Signalish } export interface ButtonHTMLAttributes extends HTMLAttributes { - disabled?: ValueOrAccessor - form?: ValueOrAccessor - formAction?: ValueOrAccessor - formEncType?: ValueOrAccessor - formMethod?: ValueOrAccessor - formNoValidate?: ValueOrAccessor - formTarget?: ValueOrAccessor - name?: ValueOrAccessor - type?: ValueOrAccessor<'submit' | 'reset' | 'button' | EmptyValue> - value?: ValueOrAccessor + disabled?: Signalish + form?: Signalish + formAction?: Signalish + formEncType?: Signalish + formMethod?: Signalish + formNoValidate?: Signalish + formTarget?: Signalish + name?: Signalish + type?: Signalish<'submit' | 'reset' | 'button' | EmptyValue> + value?: Signalish } export interface CanvasHTMLAttributes extends HTMLAttributes { - height?: ValueOrAccessor - width?: ValueOrAccessor + height?: Signalish + width?: Signalish } export interface ColHTMLAttributes extends HTMLAttributes { - span?: ValueOrAccessor - width?: ValueOrAccessor + span?: Signalish + width?: Signalish } export interface ColgroupHTMLAttributes extends HTMLAttributes { - span?: ValueOrAccessor + span?: Signalish } export interface DataHTMLAttributes extends HTMLAttributes { - value?: ValueOrAccessor + value?: Signalish } export interface DetailsHTMLAttributes extends HTMLAttributes { - open?: ValueOrAccessor + open?: Signalish onToggle?: TargetEventHandler | EmptyValue - name?: ValueOrAccessor + name?: Signalish } export interface DelHTMLAttributes extends HTMLAttributes { - cite?: ValueOrAccessor - dateTime?: ValueOrAccessor + cite?: Signalish + dateTime?: Signalish } export interface DialogHTMLAttributes extends HTMLAttributes { onCancel?: TargetEventHandler | EmptyValue onClose?: TargetEventHandler | EmptyValue - open?: ValueOrAccessor + open?: Signalish } export interface EmbedHTMLAttributes extends HTMLAttributes { - height?: ValueOrAccessor - src?: ValueOrAccessor - type?: ValueOrAccessor - width?: ValueOrAccessor + height?: Signalish + src?: Signalish + type?: Signalish + width?: Signalish } export interface FieldsetHTMLAttributes extends HTMLAttributes { - disabled?: ValueOrAccessor - form?: ValueOrAccessor - name?: ValueOrAccessor + disabled?: Signalish + form?: Signalish + name?: Signalish } export interface FormHTMLAttributes extends HTMLAttributes { - acceptCharset?: ValueOrAccessor - action?: ValueOrAccessor - autoComplete?: ValueOrAccessor - encType?: ValueOrAccessor - method?: ValueOrAccessor - name?: ValueOrAccessor - noValidate?: ValueOrAccessor - target?: ValueOrAccessor + acceptCharset?: Signalish + action?: Signalish + autoComplete?: Signalish + encType?: Signalish + method?: Signalish + name?: Signalish + noValidate?: Signalish + target?: Signalish } export interface HtmlHTMLAttributes extends HTMLAttributes { - manifest?: ValueOrAccessor + manifest?: Signalish } export interface IframeHTMLAttributes extends HTMLAttributes { - allow?: ValueOrAccessor - allowFullScreen?: ValueOrAccessor - allowTransparency?: ValueOrAccessor + allow?: Signalish + allowFullScreen?: Signalish + allowTransparency?: Signalish /** @deprecated */ - frameBorder?: ValueOrAccessor - height?: ValueOrAccessor - loading?: ValueOrAccessor<'eager' | 'lazy' | EmptyValue> + frameBorder?: Signalish + height?: Signalish + loading?: Signalish<'eager' | 'lazy' | EmptyValue> /** @deprecated */ - marginHeight?: ValueOrAccessor + marginHeight?: Signalish /** @deprecated */ - marginWidth?: ValueOrAccessor - name?: ValueOrAccessor - referrerPolicy?: ValueOrAccessor - sandbox?: ValueOrAccessor + marginWidth?: Signalish + name?: Signalish + referrerPolicy?: Signalish + sandbox?: Signalish /** @deprecated */ - scrolling?: ValueOrAccessor - seamless?: ValueOrAccessor - src?: ValueOrAccessor - srcDoc?: ValueOrAccessor - width?: ValueOrAccessor + scrolling?: Signalish + seamless?: Signalish + src?: Signalish + srcDoc?: Signalish + width?: Signalish } export interface ImgHTMLAttributes extends HTMLAttributes { - alt?: ValueOrAccessor - crossOrigin?: ValueOrAccessor - decoding?: ValueOrAccessor<'async' | 'auto' | 'sync' | EmptyValue> - fetchPriority?: ValueOrAccessor<'high' | 'low' | 'auto'> - height?: ValueOrAccessor - loading?: ValueOrAccessor<'eager' | 'lazy' | EmptyValue> - referrerPolicy?: ValueOrAccessor - sizes?: ValueOrAccessor - src?: ValueOrAccessor - srcSet?: ValueOrAccessor - useMap?: ValueOrAccessor - width?: ValueOrAccessor + alt?: Signalish + crossOrigin?: Signalish + decoding?: Signalish<'async' | 'auto' | 'sync' | EmptyValue> + fetchPriority?: Signalish<'high' | 'low' | 'auto'> + height?: Signalish + loading?: Signalish<'eager' | 'lazy' | EmptyValue> + referrerPolicy?: Signalish + sizes?: Signalish + src?: Signalish + srcSet?: Signalish + useMap?: Signalish + width?: Signalish } export interface InsHTMLAttributes extends HTMLAttributes { - cite?: ValueOrAccessor - dateTime?: ValueOrAccessor + cite?: Signalish + dateTime?: Signalish } export type HTMLInputTypeAttribute = @@ -363,280 +363,280 @@ export type AutoFill = export type HTMLInputAutoCompleteAttribute = AutoFill | string & {} export interface InputHTMLAttributes extends HTMLAttributes { - accept?: ValueOrAccessor - alt?: ValueOrAccessor - autoComplete?: ValueOrAccessor - capture?: ValueOrAccessor // https://www.w3.org/TR/html-media-capture/#the-capture-attribute - checked?: ValueOrAccessor - disabled?: ValueOrAccessor - enterKeyHint?: ValueOrAccessor<'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | EmptyValue> - form?: ValueOrAccessor - formAction?: ValueOrAccessor - formEncType?: ValueOrAccessor - formMethod?: ValueOrAccessor - formNoValidate?: ValueOrAccessor - formTarget?: ValueOrAccessor - height?: ValueOrAccessor - list?: ValueOrAccessor - max?: ValueOrAccessor - maxLength?: ValueOrAccessor - min?: ValueOrAccessor - minLength?: ValueOrAccessor - multiple?: ValueOrAccessor - name?: ValueOrAccessor - pattern?: ValueOrAccessor - placeholder?: ValueOrAccessor - readOnly?: ValueOrAccessor - required?: ValueOrAccessor - size?: ValueOrAccessor - src?: ValueOrAccessor - step?: ValueOrAccessor - type?: ValueOrAccessor - value?: ValueOrAccessor - width?: ValueOrAccessor + accept?: Signalish + alt?: Signalish + autoComplete?: Signalish + capture?: Signalish // https://www.w3.org/TR/html-media-capture/#the-capture-attribute + checked?: Signalish + disabled?: Signalish + enterKeyHint?: Signalish<'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send' | EmptyValue> + form?: Signalish + formAction?: Signalish + formEncType?: Signalish + formMethod?: Signalish + formNoValidate?: Signalish + formTarget?: Signalish + height?: Signalish + list?: Signalish + max?: Signalish + maxLength?: Signalish + min?: Signalish + minLength?: Signalish + multiple?: Signalish + name?: Signalish + pattern?: Signalish + placeholder?: Signalish + readOnly?: Signalish + required?: Signalish + size?: Signalish + src?: Signalish + step?: Signalish + type?: Signalish + value?: Signalish + width?: Signalish onChange?: ChangeEventHandler | undefined } export interface KeygenHTMLAttributes extends HTMLAttributes { - challenge?: ValueOrAccessor - disabled?: ValueOrAccessor - form?: ValueOrAccessor - keyType?: ValueOrAccessor - keyParams?: ValueOrAccessor - name?: ValueOrAccessor + challenge?: Signalish + disabled?: Signalish + form?: Signalish + keyType?: Signalish + keyParams?: Signalish + name?: Signalish } export interface LabelHTMLAttributes extends HTMLAttributes { - form?: ValueOrAccessor - for?: ValueOrAccessor + form?: Signalish + for?: Signalish } export interface LiHTMLAttributes extends HTMLAttributes { - value?: ValueOrAccessor + value?: Signalish } export interface LinkHTMLAttributes extends HTMLAttributes { - as?: ValueOrAccessor - crossOrigin?: ValueOrAccessor - fetchPriority?: ValueOrAccessor<'high' | 'low' | 'auto'> - href?: ValueOrAccessor - hrefLang?: ValueOrAccessor - integrity?: ValueOrAccessor - media?: ValueOrAccessor - imageSrcSet?: ValueOrAccessor - imageSizes?: ValueOrAccessor - referrerPolicy?: ValueOrAccessor - sizes?: ValueOrAccessor - type?: ValueOrAccessor - charSet?: ValueOrAccessor + as?: Signalish + crossOrigin?: Signalish + fetchPriority?: Signalish<'high' | 'low' | 'auto'> + href?: Signalish + hrefLang?: Signalish + integrity?: Signalish + media?: Signalish + imageSrcSet?: Signalish + imageSizes?: Signalish + referrerPolicy?: Signalish + sizes?: Signalish + type?: Signalish + charSet?: Signalish } export interface MapHTMLAttributes extends HTMLAttributes { - name?: ValueOrAccessor + name?: Signalish } export interface MenuHTMLAttributes extends HTMLAttributes { - type?: ValueOrAccessor + type?: Signalish } export interface MediaHTMLAttributes extends HTMLAttributes { - autoPlay?: ValueOrAccessor - controls?: ValueOrAccessor - controlsList?: ValueOrAccessor - crossOrigin?: ValueOrAccessor - loop?: ValueOrAccessor - mediaGroup?: ValueOrAccessor - muted?: ValueOrAccessor - playsInline?: ValueOrAccessor - preload?: ValueOrAccessor - src?: ValueOrAccessor + autoPlay?: Signalish + controls?: Signalish + controlsList?: Signalish + crossOrigin?: Signalish + loop?: Signalish + mediaGroup?: Signalish + muted?: Signalish + playsInline?: Signalish + preload?: Signalish + src?: Signalish } export interface MetaHTMLAttributes extends HTMLAttributes { - charSet?: ValueOrAccessor - content?: ValueOrAccessor - httpEquiv?: ValueOrAccessor - media?: ValueOrAccessor - name?: ValueOrAccessor + charSet?: Signalish + content?: Signalish + httpEquiv?: Signalish + media?: Signalish + name?: Signalish } export interface MeterHTMLAttributes extends HTMLAttributes { - form?: ValueOrAccessor - high?: ValueOrAccessor - low?: ValueOrAccessor - max?: ValueOrAccessor - min?: ValueOrAccessor - optimum?: ValueOrAccessor - value?: ValueOrAccessor + form?: Signalish + high?: Signalish + low?: Signalish + max?: Signalish + min?: Signalish + optimum?: Signalish + value?: Signalish } export interface QuoteHTMLAttributes extends HTMLAttributes { - cite?: ValueOrAccessor + cite?: Signalish } export interface ObjectHTMLAttributes extends HTMLAttributes { - classID?: ValueOrAccessor - data?: ValueOrAccessor - form?: ValueOrAccessor - height?: ValueOrAccessor - name?: ValueOrAccessor - type?: ValueOrAccessor - useMap?: ValueOrAccessor - width?: ValueOrAccessor - wmode?: ValueOrAccessor + classID?: Signalish + data?: Signalish + form?: Signalish + height?: Signalish + name?: Signalish + type?: Signalish + useMap?: Signalish + width?: Signalish + wmode?: Signalish } export interface OlHTMLAttributes extends HTMLAttributes { - reversed?: ValueOrAccessor - start?: ValueOrAccessor - type?: ValueOrAccessor<'1' | 'a' | 'A' | 'i' | 'I' | EmptyValue> + reversed?: Signalish + start?: Signalish + type?: Signalish<'1' | 'a' | 'A' | 'i' | 'I' | EmptyValue> } export interface OptgroupHTMLAttributes extends HTMLAttributes { - disabled?: ValueOrAccessor - label?: ValueOrAccessor + disabled?: Signalish + label?: Signalish } export interface OptionHTMLAttributes extends HTMLAttributes { - disabled?: ValueOrAccessor - label?: ValueOrAccessor - selected?: ValueOrAccessor - value?: ValueOrAccessor + disabled?: Signalish + label?: Signalish + selected?: Signalish + value?: Signalish } export interface OutputHTMLAttributes extends HTMLAttributes { - form?: ValueOrAccessor - for?: ValueOrAccessor - name?: ValueOrAccessor + form?: Signalish + for?: Signalish + name?: Signalish } export interface ParamHTMLAttributes extends HTMLAttributes { - name?: ValueOrAccessor - value?: ValueOrAccessor + name?: Signalish + value?: Signalish } export interface ProgressHTMLAttributes extends HTMLAttributes { - max?: ValueOrAccessor - value?: ValueOrAccessor + max?: Signalish + value?: Signalish } export interface SlotHTMLAttributes extends HTMLAttributes { - name?: ValueOrAccessor + name?: Signalish } export interface ScriptHTMLAttributes extends HTMLAttributes { - async?: ValueOrAccessor + async?: Signalish /** @deprecated */ - charSet?: ValueOrAccessor - crossOrigin?: ValueOrAccessor - defer?: ValueOrAccessor - integrity?: ValueOrAccessor - noModule?: ValueOrAccessor - referrerPolicy?: ValueOrAccessor - src?: ValueOrAccessor - type?: ValueOrAccessor + charSet?: Signalish + crossOrigin?: Signalish + defer?: Signalish + integrity?: Signalish + noModule?: Signalish + referrerPolicy?: Signalish + src?: Signalish + type?: Signalish } export interface SelectHTMLAttributes extends HTMLAttributes { - autoComplete?: ValueOrAccessor - disabled?: ValueOrAccessor - form?: ValueOrAccessor - multiple?: ValueOrAccessor - name?: ValueOrAccessor - required?: ValueOrAccessor - size?: ValueOrAccessor - value?: ValueOrAccessor + autoComplete?: Signalish + disabled?: Signalish + form?: Signalish + multiple?: Signalish + name?: Signalish + required?: Signalish + size?: Signalish + value?: Signalish onChange?: ChangeEventHandler | undefined } export interface SourceHTMLAttributes extends HTMLAttributes { - height?: ValueOrAccessor - media?: ValueOrAccessor - sizes?: ValueOrAccessor - src?: ValueOrAccessor - srcSet?: ValueOrAccessor - type?: ValueOrAccessor - width?: ValueOrAccessor + height?: Signalish + media?: Signalish + sizes?: Signalish + src?: Signalish + srcSet?: Signalish + type?: Signalish + width?: Signalish } export interface StyleHTMLAttributes extends HTMLAttributes { - media?: ValueOrAccessor - scoped?: ValueOrAccessor - type?: ValueOrAccessor + media?: Signalish + scoped?: Signalish + type?: Signalish } export interface TableHTMLAttributes extends HTMLAttributes { - align?: ValueOrAccessor<'left' | 'center' | 'right' | EmptyValue> - bgcolor?: ValueOrAccessor - border?: ValueOrAccessor - cellPadding?: ValueOrAccessor - cellSpacing?: ValueOrAccessor - frame?: ValueOrAccessor - rules?: ValueOrAccessor<'none' | 'groups' | 'rows' | 'columns' | 'all' | EmptyValue> - summary?: ValueOrAccessor - width?: ValueOrAccessor + align?: Signalish<'left' | 'center' | 'right' | EmptyValue> + bgcolor?: Signalish + border?: Signalish + cellPadding?: Signalish + cellSpacing?: Signalish + frame?: Signalish + rules?: Signalish<'none' | 'groups' | 'rows' | 'columns' | 'all' | EmptyValue> + summary?: Signalish + width?: Signalish } export interface TextareaHTMLAttributes extends HTMLAttributes { - autoComplete?: ValueOrAccessor - cols?: ValueOrAccessor - dirName?: ValueOrAccessor - disabled?: ValueOrAccessor - form?: ValueOrAccessor - maxLength?: ValueOrAccessor - minLength?: ValueOrAccessor - name?: ValueOrAccessor - placeholder?: ValueOrAccessor - readOnly?: ValueOrAccessor - required?: ValueOrAccessor - rows?: ValueOrAccessor - value?: ValueOrAccessor - wrap?: ValueOrAccessor + autoComplete?: Signalish + cols?: Signalish + dirName?: Signalish + disabled?: Signalish + form?: Signalish + maxLength?: Signalish + minLength?: Signalish + name?: Signalish + placeholder?: Signalish + readOnly?: Signalish + required?: Signalish + rows?: Signalish + value?: Signalish + wrap?: Signalish onChange?: ChangeEventHandler | undefined } export interface TdHTMLAttributes extends HTMLAttributes { - align?: ValueOrAccessor<'left' | 'center' | 'right' | 'justify' | 'char' | EmptyValue> - colSpan?: ValueOrAccessor - headers?: ValueOrAccessor - rowSpan?: ValueOrAccessor - scope?: ValueOrAccessor - abbr?: ValueOrAccessor - height?: ValueOrAccessor - width?: ValueOrAccessor - valign?: ValueOrAccessor<'top' | 'middle' | 'bottom' | 'baseline' | EmptyValue> + align?: Signalish<'left' | 'center' | 'right' | 'justify' | 'char' | EmptyValue> + colSpan?: Signalish + headers?: Signalish + rowSpan?: Signalish + scope?: Signalish + abbr?: Signalish + height?: Signalish + width?: Signalish + valign?: Signalish<'top' | 'middle' | 'bottom' | 'baseline' | EmptyValue> } export interface ThHTMLAttributes extends HTMLAttributes { - align?: ValueOrAccessor<'left' | 'center' | 'right' | 'justify' | 'char' | EmptyValue> - colSpan?: ValueOrAccessor - headers?: ValueOrAccessor - rowSpan?: ValueOrAccessor - scope?: ValueOrAccessor - abbr?: ValueOrAccessor + align?: Signalish<'left' | 'center' | 'right' | 'justify' | 'char' | EmptyValue> + colSpan?: Signalish + headers?: Signalish + rowSpan?: Signalish + scope?: Signalish + abbr?: Signalish } export interface TimeHTMLAttributes extends HTMLAttributes { - dateTime?: ValueOrAccessor + dateTime?: Signalish } export interface TrackHTMLAttributes extends HTMLAttributes { - default?: ValueOrAccessor - kind?: ValueOrAccessor - label?: ValueOrAccessor - src?: ValueOrAccessor - srcLang?: ValueOrAccessor + default?: Signalish + kind?: Signalish + label?: Signalish + src?: Signalish + srcLang?: Signalish } export interface VideoHTMLAttributes extends MediaHTMLAttributes { - height?: ValueOrAccessor - playsInline?: ValueOrAccessor - poster?: ValueOrAccessor - width?: ValueOrAccessor - disablePictureInPicture?: ValueOrAccessor - disableRemotePlayback?: ValueOrAccessor + height?: Signalish + playsInline?: Signalish + poster?: Signalish + width?: Signalish + disablePictureInPicture?: Signalish + disableRemotePlayback?: Signalish } // The three broad type categories are (in order of restrictiveness): @@ -646,31 +646,31 @@ export interface VideoHTMLAttributes extends MediaHTMLAtt export interface SVGAttributes extends AriaAttributes, DOMAttributes { // Attributes which also defined in HTMLAttributes // See comment in SVGDOMPropertyConfig.js - class?: ValueOrAccessor - color?: ValueOrAccessor - height?: ValueOrAccessor - id?: ValueOrAccessor - lang?: ValueOrAccessor - max?: ValueOrAccessor - media?: ValueOrAccessor - method?: ValueOrAccessor - min?: ValueOrAccessor - name?: ValueOrAccessor - style?: ValueOrAccessor - target?: ValueOrAccessor - type?: ValueOrAccessor - width?: ValueOrAccessor + class?: Signalish + color?: Signalish + height?: Signalish + id?: Signalish + lang?: Signalish + max?: Signalish + media?: Signalish + method?: Signalish + min?: Signalish + name?: Signalish + style?: Signalish + target?: Signalish + type?: Signalish + width?: Signalish // Other HTML properties supported by SVG elements in browsers - role?: ValueOrAccessor - tabIndex?: ValueOrAccessor - crossOrigin?: ValueOrAccessor + role?: Signalish + tabIndex?: Signalish + crossOrigin?: Signalish // SVG Specific attributes - accentHeight?: ValueOrAccessor - accumulate?: ValueOrAccessor<'none' | 'sum' | EmptyValue> - additive?: ValueOrAccessor<'replace' | 'sum' | EmptyValue> - alignmentBaseline?: ValueOrAccessor< + accentHeight?: Signalish + accumulate?: Signalish<'none' | 'sum' | EmptyValue> + additive?: Signalish<'replace' | 'sum' | EmptyValue> + alignmentBaseline?: Signalish< | 'auto' | 'baseline' | 'before-edge' @@ -686,242 +686,242 @@ export interface SVGAttributes extends AriaAttributes, DOMAtt | 'inherit' | EmptyValue > - allowReorder?: ValueOrAccessor<'no' | 'yes' | EmptyValue> - alphabetic?: ValueOrAccessor - amplitude?: ValueOrAccessor - arabicForm?: ValueOrAccessor<'initial' | 'medial' | 'terminal' | 'isolated' | EmptyValue> - ascent?: ValueOrAccessor - attributeName?: ValueOrAccessor - attributeType?: ValueOrAccessor - autoReverse?: ValueOrAccessor - azimuth?: ValueOrAccessor - baseFrequency?: ValueOrAccessor - baselineShift?: ValueOrAccessor - baseProfile?: ValueOrAccessor - bbox?: ValueOrAccessor - begin?: ValueOrAccessor - bias?: ValueOrAccessor - by?: ValueOrAccessor - calcMode?: ValueOrAccessor - capHeight?: ValueOrAccessor - clip?: ValueOrAccessor - clipPath?: ValueOrAccessor - clipPathUnits?: ValueOrAccessor - clipRule?: ValueOrAccessor - colorInterpolation?: ValueOrAccessor - colorInterpolationFilters?: ValueOrAccessor<'auto' | 'sRGB' | 'linearRGB' | 'inherit' | EmptyValue> - colorProfile?: ValueOrAccessor - colorRendering?: ValueOrAccessor - contentScriptType?: ValueOrAccessor - contentStyleType?: ValueOrAccessor - cursor?: ValueOrAccessor - cx?: ValueOrAccessor - cy?: ValueOrAccessor - d?: ValueOrAccessor - decelerate?: ValueOrAccessor - descent?: ValueOrAccessor - diffuseConstant?: ValueOrAccessor - direction?: ValueOrAccessor - display?: ValueOrAccessor - divisor?: ValueOrAccessor - dominantBaseline?: ValueOrAccessor - dur?: ValueOrAccessor - dx?: ValueOrAccessor - dy?: ValueOrAccessor - edgeMode?: ValueOrAccessor - elevation?: ValueOrAccessor - enableBackground?: ValueOrAccessor - end?: ValueOrAccessor - exponent?: ValueOrAccessor - externalResourcesRequired?: ValueOrAccessor - fill?: ValueOrAccessor - fillOpacity?: ValueOrAccessor - fillRule?: ValueOrAccessor<'nonzero' | 'evenodd' | 'inherit' | EmptyValue> - filter?: ValueOrAccessor - filterRes?: ValueOrAccessor - filterUnits?: ValueOrAccessor - floodColor?: ValueOrAccessor - floodOpacity?: ValueOrAccessor - focusable?: ValueOrAccessor - fontFamily?: ValueOrAccessor - fontSize?: ValueOrAccessor - fontSizeAdjust?: ValueOrAccessor - fontStretch?: ValueOrAccessor - fontStyle?: ValueOrAccessor - fontVariant?: ValueOrAccessor - fontWeight?: ValueOrAccessor - format?: ValueOrAccessor - fr?: ValueOrAccessor - from?: ValueOrAccessor - fx?: ValueOrAccessor - fy?: ValueOrAccessor - g1?: ValueOrAccessor - g2?: ValueOrAccessor - glyphName?: ValueOrAccessor - glyphOrientationHorizontal?: ValueOrAccessor - glyphOrientationVertical?: ValueOrAccessor - glyphRef?: ValueOrAccessor - gradientTransform?: ValueOrAccessor - gradientUnits?: ValueOrAccessor - hanging?: ValueOrAccessor - horizAdvX?: ValueOrAccessor - horizOriginX?: ValueOrAccessor - href?: ValueOrAccessor - ideographic?: ValueOrAccessor - imageRendering?: ValueOrAccessor - in2?: ValueOrAccessor - in?: ValueOrAccessor - intercept?: ValueOrAccessor - k1?: ValueOrAccessor - k2?: ValueOrAccessor - k3?: ValueOrAccessor - k4?: ValueOrAccessor - k?: ValueOrAccessor - kernelMatrix?: ValueOrAccessor - kernelUnitLength?: ValueOrAccessor - kerning?: ValueOrAccessor - keyPoints?: ValueOrAccessor - keySplines?: ValueOrAccessor - keyTimes?: ValueOrAccessor - lengthAdjust?: ValueOrAccessor - letterSpacing?: ValueOrAccessor - lightingColor?: ValueOrAccessor - limitingConeAngle?: ValueOrAccessor - local?: ValueOrAccessor - markerEnd?: ValueOrAccessor - markerHeight?: ValueOrAccessor - markerMid?: ValueOrAccessor - markerStart?: ValueOrAccessor - markerUnits?: ValueOrAccessor - markerWidth?: ValueOrAccessor - mask?: ValueOrAccessor - maskContentUnits?: ValueOrAccessor - maskUnits?: ValueOrAccessor - mathematical?: ValueOrAccessor - mode?: ValueOrAccessor - numOctaves?: ValueOrAccessor - offset?: ValueOrAccessor - opacity?: ValueOrAccessor - operator?: ValueOrAccessor - order?: ValueOrAccessor - orient?: ValueOrAccessor - orientation?: ValueOrAccessor - origin?: ValueOrAccessor - overflow?: ValueOrAccessor - overlinePosition?: ValueOrAccessor - overlineThickness?: ValueOrAccessor - paintOrder?: ValueOrAccessor - panose1?: ValueOrAccessor - path?: ValueOrAccessor - pathLength?: ValueOrAccessor - patternContentUnits?: ValueOrAccessor - patternTransform?: ValueOrAccessor - patternUnits?: ValueOrAccessor - pointerEvents?: ValueOrAccessor - points?: ValueOrAccessor - pointsAtX?: ValueOrAccessor - pointsAtY?: ValueOrAccessor - pointsAtZ?: ValueOrAccessor - preserveAlpha?: ValueOrAccessor - preserveAspectRatio?: ValueOrAccessor - primitiveUnits?: ValueOrAccessor - r?: ValueOrAccessor - radius?: ValueOrAccessor - refX?: ValueOrAccessor - refY?: ValueOrAccessor - renderingIntent?: ValueOrAccessor - repeatCount?: ValueOrAccessor - repeatDur?: ValueOrAccessor - requiredExtensions?: ValueOrAccessor - requiredFeatures?: ValueOrAccessor - restart?: ValueOrAccessor - result?: ValueOrAccessor - rotate?: ValueOrAccessor - rx?: ValueOrAccessor - ry?: ValueOrAccessor - scale?: ValueOrAccessor - seed?: ValueOrAccessor - shapeRendering?: ValueOrAccessor - slope?: ValueOrAccessor - spacing?: ValueOrAccessor - specularConstant?: ValueOrAccessor - specularExponent?: ValueOrAccessor - speed?: ValueOrAccessor - spreadMethod?: ValueOrAccessor - startOffset?: ValueOrAccessor - stdDeviation?: ValueOrAccessor - stemh?: ValueOrAccessor - stemv?: ValueOrAccessor - stitchTiles?: ValueOrAccessor - stopColor?: ValueOrAccessor - stopOpacity?: ValueOrAccessor - strikethroughPosition?: ValueOrAccessor - strikethroughThickness?: ValueOrAccessor - string?: ValueOrAccessor - stroke?: ValueOrAccessor - strokeDasharray?: ValueOrAccessor - strokeDashoffset?: ValueOrAccessor - strokeLinecap?: ValueOrAccessor<'butt' | 'round' | 'square' | 'inherit' | EmptyValue> - strokeLinejoin?: ValueOrAccessor<'miter' | 'round' | 'bevel' | 'inherit' | EmptyValue> - strokeMiterlimit?: ValueOrAccessor - strokeOpacity?: ValueOrAccessor - strokeWidth?: ValueOrAccessor - surfaceScale?: ValueOrAccessor - systemLanguage?: ValueOrAccessor - tableValues?: ValueOrAccessor - targetX?: ValueOrAccessor - targetY?: ValueOrAccessor - textAnchor?: ValueOrAccessor - textDecoration?: ValueOrAccessor - textLength?: ValueOrAccessor - textRendering?: ValueOrAccessor - to?: ValueOrAccessor - transform?: ValueOrAccessor - u1?: ValueOrAccessor - u2?: ValueOrAccessor - underlinePosition?: ValueOrAccessor - underlineThickness?: ValueOrAccessor - unicode?: ValueOrAccessor - unicodeBidi?: ValueOrAccessor - unicodeRange?: ValueOrAccessor - unitsPerEm?: ValueOrAccessor - vAlphabetic?: ValueOrAccessor - values?: ValueOrAccessor - vectorEffect?: ValueOrAccessor - version?: ValueOrAccessor - vertAdvY?: ValueOrAccessor - vertOriginX?: ValueOrAccessor - vertOriginY?: ValueOrAccessor - vHanging?: ValueOrAccessor - vIdeographic?: ValueOrAccessor - viewBox?: ValueOrAccessor - viewTarget?: ValueOrAccessor - visibility?: ValueOrAccessor - vMathematical?: ValueOrAccessor - widths?: ValueOrAccessor - wordSpacing?: ValueOrAccessor - writingMode?: ValueOrAccessor - x1?: ValueOrAccessor - x2?: ValueOrAccessor - x?: ValueOrAccessor - xChannelSelector?: ValueOrAccessor - xHeight?: ValueOrAccessor - xlinkActuate?: ValueOrAccessor - xlinkArcrole?: ValueOrAccessor - xlinkHref?: ValueOrAccessor - xlinkRole?: ValueOrAccessor - xlinkShow?: ValueOrAccessor - xlinkTitle?: ValueOrAccessor - xlinkType?: ValueOrAccessor - xmlBase?: ValueOrAccessor - xmlLang?: ValueOrAccessor - xmlns?: ValueOrAccessor - xmlnsXlink?: ValueOrAccessor - xmlSpace?: ValueOrAccessor - y1?: ValueOrAccessor - y2?: ValueOrAccessor - y?: ValueOrAccessor - yChannelSelector?: ValueOrAccessor - z?: ValueOrAccessor - zoomAndPan?: ValueOrAccessor + allowReorder?: Signalish<'no' | 'yes' | EmptyValue> + alphabetic?: Signalish + amplitude?: Signalish + arabicForm?: Signalish<'initial' | 'medial' | 'terminal' | 'isolated' | EmptyValue> + ascent?: Signalish + attributeName?: Signalish + attributeType?: Signalish + autoReverse?: Signalish + azimuth?: Signalish + baseFrequency?: Signalish + baselineShift?: Signalish + baseProfile?: Signalish + bbox?: Signalish + begin?: Signalish + bias?: Signalish + by?: Signalish + calcMode?: Signalish + capHeight?: Signalish + clip?: Signalish + clipPath?: Signalish + clipPathUnits?: Signalish + clipRule?: Signalish + colorInterpolation?: Signalish + colorInterpolationFilters?: Signalish<'auto' | 'sRGB' | 'linearRGB' | 'inherit' | EmptyValue> + colorProfile?: Signalish + colorRendering?: Signalish + contentScriptType?: Signalish + contentStyleType?: Signalish + cursor?: Signalish + cx?: Signalish + cy?: Signalish + d?: Signalish + decelerate?: Signalish + descent?: Signalish + diffuseConstant?: Signalish + direction?: Signalish + display?: Signalish + divisor?: Signalish + dominantBaseline?: Signalish + dur?: Signalish + dx?: Signalish + dy?: Signalish + edgeMode?: Signalish + elevation?: Signalish + enableBackground?: Signalish + end?: Signalish + exponent?: Signalish + externalResourcesRequired?: Signalish + fill?: Signalish + fillOpacity?: Signalish + fillRule?: Signalish<'nonzero' | 'evenodd' | 'inherit' | EmptyValue> + filter?: Signalish + filterRes?: Signalish + filterUnits?: Signalish + floodColor?: Signalish + floodOpacity?: Signalish + focusable?: Signalish + fontFamily?: Signalish + fontSize?: Signalish + fontSizeAdjust?: Signalish + fontStretch?: Signalish + fontStyle?: Signalish + fontVariant?: Signalish + fontWeight?: Signalish + format?: Signalish + fr?: Signalish + from?: Signalish + fx?: Signalish + fy?: Signalish + g1?: Signalish + g2?: Signalish + glyphName?: Signalish + glyphOrientationHorizontal?: Signalish + glyphOrientationVertical?: Signalish + glyphRef?: Signalish + gradientTransform?: Signalish + gradientUnits?: Signalish + hanging?: Signalish + horizAdvX?: Signalish + horizOriginX?: Signalish + href?: Signalish + ideographic?: Signalish + imageRendering?: Signalish + in2?: Signalish + in?: Signalish + intercept?: Signalish + k1?: Signalish + k2?: Signalish + k3?: Signalish + k4?: Signalish + k?: Signalish + kernelMatrix?: Signalish + kernelUnitLength?: Signalish + kerning?: Signalish + keyPoints?: Signalish + keySplines?: Signalish + keyTimes?: Signalish + lengthAdjust?: Signalish + letterSpacing?: Signalish + lightingColor?: Signalish + limitingConeAngle?: Signalish + local?: Signalish + markerEnd?: Signalish + markerHeight?: Signalish + markerMid?: Signalish + markerStart?: Signalish + markerUnits?: Signalish + markerWidth?: Signalish + mask?: Signalish + maskContentUnits?: Signalish + maskUnits?: Signalish + mathematical?: Signalish + mode?: Signalish + numOctaves?: Signalish + offset?: Signalish + opacity?: Signalish + operator?: Signalish + order?: Signalish + orient?: Signalish + orientation?: Signalish + origin?: Signalish + overflow?: Signalish + overlinePosition?: Signalish + overlineThickness?: Signalish + paintOrder?: Signalish + panose1?: Signalish + path?: Signalish + pathLength?: Signalish + patternContentUnits?: Signalish + patternTransform?: Signalish + patternUnits?: Signalish + pointerEvents?: Signalish + points?: Signalish + pointsAtX?: Signalish + pointsAtY?: Signalish + pointsAtZ?: Signalish + preserveAlpha?: Signalish + preserveAspectRatio?: Signalish + primitiveUnits?: Signalish + r?: Signalish + radius?: Signalish + refX?: Signalish + refY?: Signalish + renderingIntent?: Signalish + repeatCount?: Signalish + repeatDur?: Signalish + requiredExtensions?: Signalish + requiredFeatures?: Signalish + restart?: Signalish + result?: Signalish + rotate?: Signalish + rx?: Signalish + ry?: Signalish + scale?: Signalish + seed?: Signalish + shapeRendering?: Signalish + slope?: Signalish + spacing?: Signalish + specularConstant?: Signalish + specularExponent?: Signalish + speed?: Signalish + spreadMethod?: Signalish + startOffset?: Signalish + stdDeviation?: Signalish + stemh?: Signalish + stemv?: Signalish + stitchTiles?: Signalish + stopColor?: Signalish + stopOpacity?: Signalish + strikethroughPosition?: Signalish + strikethroughThickness?: Signalish + string?: Signalish + stroke?: Signalish + strokeDasharray?: Signalish + strokeDashoffset?: Signalish + strokeLinecap?: Signalish<'butt' | 'round' | 'square' | 'inherit' | EmptyValue> + strokeLinejoin?: Signalish<'miter' | 'round' | 'bevel' | 'inherit' | EmptyValue> + strokeMiterlimit?: Signalish + strokeOpacity?: Signalish + strokeWidth?: Signalish + surfaceScale?: Signalish + systemLanguage?: Signalish + tableValues?: Signalish + targetX?: Signalish + targetY?: Signalish + textAnchor?: Signalish + textDecoration?: Signalish + textLength?: Signalish + textRendering?: Signalish + to?: Signalish + transform?: Signalish + u1?: Signalish + u2?: Signalish + underlinePosition?: Signalish + underlineThickness?: Signalish + unicode?: Signalish + unicodeBidi?: Signalish + unicodeRange?: Signalish + unitsPerEm?: Signalish + vAlphabetic?: Signalish + values?: Signalish + vectorEffect?: Signalish + version?: Signalish + vertAdvY?: Signalish + vertOriginX?: Signalish + vertOriginY?: Signalish + vHanging?: Signalish + vIdeographic?: Signalish + viewBox?: Signalish + viewTarget?: Signalish + visibility?: Signalish + vMathematical?: Signalish + widths?: Signalish + wordSpacing?: Signalish + writingMode?: Signalish + x1?: Signalish + x2?: Signalish + x?: Signalish + xChannelSelector?: Signalish + xHeight?: Signalish + xlinkActuate?: Signalish + xlinkArcrole?: Signalish + xlinkHref?: Signalish + xlinkRole?: Signalish + xlinkShow?: Signalish + xlinkTitle?: Signalish + xlinkType?: Signalish + xmlBase?: Signalish + xmlLang?: Signalish + xmlns?: Signalish + xmlnsXlink?: Signalish + xmlSpace?: Signalish + y1?: Signalish + y2?: Signalish + y?: Signalish + yChannelSelector?: Signalish + z?: Signalish + zoomAndPan?: Signalish } diff --git a/packages/query/src/queries/base.ts b/packages/query/src/queries/base.ts index 69f5c652..c588f94c 100644 --- a/packages/query/src/queries/base.ts +++ b/packages/query/src/queries/base.ts @@ -1,5 +1,5 @@ import { - type ValueOrAccessor, + type Signalish, action, computed, mountable, @@ -18,8 +18,8 @@ import { } from '../ClientContext.js' import { QueryContext } from '../RequestContext.js' -export type SignalsParams = T extends [infer First, ...infer Rest] - ? [ValueOrAccessor, ...SignalsParams] +export type SignalishParams = T extends [infer First, ...infer Rest] + ? [Signalish, ...SignalishParams] : [] /* @__NO_SIDE_EFFECTS__ */ @@ -30,7 +30,7 @@ export function baseQuery< >( rootCtx: ClientContext, key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, ...E, queryCtx: QueryContext]) => Promise, settings?: ClientSetting>[] ) { diff --git a/packages/query/src/queries/infinite.ts b/packages/query/src/queries/infinite.ts index f67db090..59b5e97f 100644 --- a/packages/query/src/queries/infinite.ts +++ b/packages/query/src/queries/infinite.ts @@ -17,7 +17,7 @@ import type { } from '../ClientContext.js' import type { QueryContext } from '../RequestContext.js' import { - type SignalsParams, + type SignalishParams, baseQuery } from './base.js' @@ -42,7 +42,7 @@ export function infinite< R >( key: CacheKeyBuilder>, - params: SignalsParams

, + params: SignalishParams

, next: (lastPage: R) => C | undefined, fn: (...args: [...P, cursor: C | undefined, queryCtx: QueryContext>]) => Promise, settings?: ClientSetting>>[] @@ -69,7 +69,7 @@ export function infinite< R >( key: CacheKeyBuilder>, - params: SignalsParams

, + params: SignalishParams

, next: (lastPage: R) => C | undefined, fn: (...args: [...P, cursor: C | undefined]) => Promise, settings?: ClientSetting>>[] @@ -85,7 +85,7 @@ export function infinite< export function infinite

( this: ClientContext, key: CacheKeyBuilder>, - params: SignalsParams

, + params: SignalishParams

, next: (lastPage: R) => C | undefined, fn: (...args: [...P, cursor: C | undefined, queryCtx: QueryContext>]) => Promise, settings?: ClientSetting>>[] diff --git a/packages/query/src/queries/operation.ts b/packages/query/src/queries/operation.ts index a3d88517..dd5c467b 100644 --- a/packages/query/src/queries/operation.ts +++ b/packages/query/src/queries/operation.ts @@ -17,7 +17,7 @@ import { dedupe } from '../ClientContext.js' import { - type SignalsParams, + type SignalishParams, baseQuery } from './base.js' @@ -35,7 +35,7 @@ export function operation< R >( key: ExtrasCacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, ...E, queryCtx: QueryContext]) => Promise, settings?: ClientSetting>[] ): readonly [ @@ -60,7 +60,7 @@ export function operation< R >( key: ExtrasCacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, ...E]) => Promise, settings?: ClientSetting>[] ): readonly [ @@ -84,7 +84,7 @@ export function operation< R >( key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, queryCtx: QueryContext]) => Promise, settings?: ClientSetting>[] ): readonly [ @@ -108,7 +108,7 @@ export function operation< R >( key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: P) => Promise, settings?: ClientSetting>[] ): readonly [ @@ -127,7 +127,7 @@ export function operation< >( this: ClientContext, key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, ...E, queryCtx: QueryContext]) => Promise, settings: ClientSetting>[] = [] ) { diff --git a/packages/query/src/queries/query.ts b/packages/query/src/queries/query.ts index 6f56d944..3c1a6b18 100644 --- a/packages/query/src/queries/query.ts +++ b/packages/query/src/queries/query.ts @@ -16,7 +16,7 @@ import type { } from '../ClientContext.js' import type { QueryContext } from '../RequestContext.js' import { - type SignalsParams, + type SignalishParams, baseQuery } from './base.js' @@ -33,7 +33,7 @@ export function query< R >( key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, queryCtx: QueryContext]) => Promise, settings?: ClientSetting>[] ): readonly [ @@ -56,7 +56,7 @@ export function query< R >( key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: P) => Promise, settings?: ClientSetting>[] ): readonly [ @@ -70,7 +70,7 @@ export function query< export function query

( this: ClientContext, key: CacheKeyBuilder, - params: SignalsParams

, + params: SignalishParams

, fn: (...args: [...P, queryCtx: QueryContext]) => Promise, settings?: ClientSetting>[] ) { diff --git a/packages/router/src/head.ts b/packages/router/src/head.ts index 29c621ec..c956a5fc 100644 --- a/packages/router/src/head.ts +++ b/packages/router/src/head.ts @@ -1,7 +1,7 @@ import { type Accessor, type InjectionContext, - type AnyValueOrAccessor, + type AnySignalish, type EmptyValue, effect, inject, @@ -113,7 +113,7 @@ export function dir($value: DirValue): DirPropertyDescriptor { } } -function buildPredicate(tag: string, attributes: [string, AnyValueOrAccessor][]) { +function buildPredicate(tag: string, attributes: [string, AnySignalish][]) { let selector = tag let count = 0 let code: string | undefined diff --git a/packages/router/src/head.types.ts b/packages/router/src/head.types.ts index 5574dcaf..ff4e929e 100644 --- a/packages/router/src/head.types.ts +++ b/packages/router/src/head.types.ts @@ -1,7 +1,7 @@ import type { - ValueOrAccessor, + Signalish, EmptyValue, - AnyValueOrAccessor + AnySignalish } from '@nano_kit/store' export type LinkRel = @@ -59,10 +59,10 @@ export type ReferrerPolicy = export type FetchPriority = 'high' | 'low' | 'auto' export interface LinkTagProps { - href?: ValueOrAccessor - media?: ValueOrAccessor - disabled?: ValueOrAccessor - title?: ValueOrAccessor + href?: Signalish + media?: Signalish + disabled?: Signalish + title?: Signalish rel?: LinkRel | EmptyValue as?: LinkAs | EmptyValue type?: string | EmptyValue @@ -99,8 +99,8 @@ export interface ScriptTagProps { } export interface MetaTagProps { - content?: ValueOrAccessor - media?: ValueOrAccessor + content?: Signalish + media?: Signalish charSet?: string | EmptyValue name?: string | EmptyValue httpEquiv?: string | EmptyValue @@ -108,13 +108,13 @@ export interface MetaTagProps { scheme?: string | EmptyValue } -export type LangValue = ValueOrAccessor +export type LangValue = Signalish export type Dir = 'ltr' | 'rtl' | 'auto' -export type DirValue = ValueOrAccessor

+export type DirValue = Signalish -export type TitleValue = ValueOrAccessor +export type TitleValue = Signalish export interface PseudoElement { matches(selector: string): boolean @@ -123,7 +123,7 @@ export interface PseudoElement { export interface GenericHeadTagDescriptor { tag: string - props: Record + props: Record start( head: PseudoElement[], prevHead?: PseudoElement[] | null @@ -149,7 +149,7 @@ export type HeadTagDescriptor = LinkTagDescriptor | ScriptTagDescriptor | MetaTa export interface GenericHeadPropertyDescriptor { tag: T - value: ValueOrAccessor + value: Signalish target(): Record start( head: PseudoElement[], diff --git a/packages/svelte-kit/src/hydration.ts b/packages/svelte-kit/src/hydration.ts index 6b56fd87..e68e948b 100644 --- a/packages/svelte-kit/src/hydration.ts +++ b/packages/svelte-kit/src/hydration.ts @@ -1,7 +1,7 @@ import { type FalsyValue, type InjectionProvider, - type ValueOrAccessor, + type Signalish, Hydrator$, ActiveHydrator, provide, @@ -16,12 +16,12 @@ export interface HydrationContextParams { /** * Create hydration context from an existing dehydration context reference. */ - fromRef?: ValueOrAccessor + fromRef?: Signalish /** * Dehydrated data as an array of key-value pairs. * Pass a falsy value to skip hydration. */ - dehydrated?: ValueOrAccessor<[string, unknown][] | FalsyValue> + dehydrated?: Signalish<[string, unknown][] | FalsyValue> /** * Additional injection providers to merge into the child context. */