@zeus-js/runtime-dom 0.1.0 → 0.1.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,5 @@
1
+ import { Accessor } from '@zeus-js/signal';
2
+
1
3
  type JSXPrimitive = string | number | boolean | null | undefined;
2
4
  export type JSXValue = JSXPrimitive | Node | JSXValue[];
3
5
  export type JSXGetter = () => JSXValue;
@@ -12,7 +14,7 @@ export type RefTarget<T> = ((value: T | null) => void) | {
12
14
  current: T | null;
13
15
  };
14
16
 
15
- export declare function template<T extends Node = Node>(html: string, _isImportNode?: boolean, _isSVG?: boolean, _isMathML?: boolean): TemplateFactory<T>;
17
+ export declare function template<T extends Node = Node>(html: string, _isImportNode?: boolean, isSVG?: boolean, _isMathML?: boolean): TemplateFactory<T>;
16
18
 
17
19
  export type ContextId = symbol;
18
20
  export interface Context<T = unknown> {
@@ -104,14 +106,14 @@ export declare function marker(parent: ParentNode, index: number): Comment;
104
106
  export declare function child(parent: ParentNode, index: number): ChildNode;
105
107
  export declare function removeNodes(nodes: readonly Node[]): void;
106
108
 
107
- export declare function bindText(node: Text, value: () => JSXValue): void;
108
- export declare function bindTextContent(el: Node, value: () => JSXValue): void;
109
+ export declare function bindText(node: Text, value: () => JSXValue, once?: boolean): void;
110
+ export declare function bindTextContent(el: Node, value: () => JSXValue, once?: boolean): void;
109
111
  export declare function setAttr(el: Element, name: string, value: AttrValue): void;
110
- export declare function bindAttr(el: Element, name: string, value: () => AttrValue): void;
111
- export declare function bindProp<T extends Element, K extends keyof T>(el: T, name: K, value: () => T[K]): void;
112
- export declare function bindClass(el: Element, value: () => ClassValue): void;
112
+ export declare function bindAttr(el: Element, name: string, value: () => AttrValue, once?: boolean): void;
113
+ export declare function bindProp<T extends Element, K extends keyof T>(el: T, name: K, value: () => T[K], once?: boolean): void;
114
+ export declare function bindClass(el: Element, value: () => ClassValue, once?: boolean): void;
113
115
  export declare function normalizeClass(value: ClassValue): string;
114
- export declare function bindStyle(el: HTMLElement | SVGElement, value: () => StyleValue): void;
116
+ export declare function bindStyle(el: HTMLElement | SVGElement, value: () => StyleValue, once?: boolean): void;
115
117
 
116
118
  export declare function bindEvent(el: Element, name: string, handler: EventListener): void;
117
119
  export declare function delegateEvents(events: readonly string[]): void;
@@ -135,7 +137,7 @@ export type ForProps<T, K = unknown> = {
135
137
  children: (item: T, index: number) => JSXValue;
136
138
  };
137
139
  export declare function For<T, K = unknown>(props: ForProps<T, K>): JSXValue;
138
- export declare function mountFor<T, K = unknown>(parent: Node, marker: Node, each: () => readonly T[] | null | undefined, key: ((item: T, index: number) => K) | undefined, render: (item: T, index: number) => JSXValue): void;
140
+ export declare function mountFor<T, K = unknown>(parent: Node, marker: Node, each: () => readonly T[] | null | undefined, key: ((item: T, index: number) => K) | undefined, render: (item: Accessor<T>, index: Accessor<number>) => JSXValue): void;
139
141
 
140
142
  export type CustomElementPropType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'function' | 'unknown';
141
143
  export interface CustomElementPropSchema {
@@ -168,10 +170,12 @@ export type PropSerializer<T = unknown> = {
168
170
  export type PropDeserializer<T = unknown> = {
169
171
  bivarianceHack(value: string | null): T | undefined;
170
172
  }['bivarianceHack'];
173
+ export type PropReactivity = 'deep' | 'shallow';
171
174
  export interface PropDefinitionOptions<T = unknown> {
172
175
  type?: ElementPropConstructor;
173
176
  attr?: string | false;
174
177
  reflect?: boolean;
178
+ reactivity?: PropReactivity;
175
179
  default?: T | (() => T);
176
180
  values?: readonly T[];
177
181
  serialize?(value: T | undefined): string | null | undefined;
@@ -276,6 +280,7 @@ export type DefineElementSetup<P extends object, E extends HTMLElement = HTMLEle
276
280
  export type NormalizedPropDefinition = CustomElementPropSchema & {
277
281
  attrName: string | false;
278
282
  reflect: boolean;
283
+ reactivity: PropReactivity;
279
284
  default?: unknown;
280
285
  serialize?: (value: unknown) => string | null | undefined;
281
286
  deserialize?: (value: string | null) => unknown;