ripple 0.2.115 → 0.2.116

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.
package/types/index.d.ts CHANGED
@@ -14,13 +14,13 @@ export declare function flushSync<T>(fn: () => T): T;
14
14
  export declare function effect(fn: (() => void) | (() => () => void)): void;
15
15
 
16
16
  export interface TrackedArrayConstructor {
17
- new <T>(...elements: T[]): TrackedArray<T>; // must be used with `new`
17
+ new <T>(...elements: T[]): TrackedArray<T>; // must be used with `new`
18
18
  from<T>(arrayLike: ArrayLike<T>): TrackedArray<T>;
19
19
  of<T>(...items: T[]): TrackedArray<T>;
20
20
  fromAsync<T>(iterable: AsyncIterable<T>): Promise<TrackedArray<T>>;
21
21
  }
22
22
 
23
- export interface TrackedArray<T> extends Array<T> { }
23
+ export interface TrackedArray<T> extends Array<T> {}
24
24
 
25
25
  export declare const TrackedArray: TrackedArrayConstructor;
26
26
 
@@ -74,7 +74,9 @@ declare global {
74
74
  export declare function createRefKey(): symbol;
75
75
 
76
76
  // Base Tracked interface - all tracked values have a '#v' property containing the actual value
77
- export interface Tracked<V> { '#v': V; }
77
+ export interface Tracked<V> {
78
+ '#v': V;
79
+ }
78
80
 
79
81
  // Augment Tracked to be callable when V is a Component
80
82
  // This allows <@Something /> to work in JSX when Something is Tracked<Component>
@@ -84,32 +86,37 @@ export interface Tracked<V> {
84
86
 
85
87
  // Helper type to infer component type from a function that returns a component
86
88
  // If T is a function returning a Component, extract the Component type itself, not the return type (void)
87
- export type InferComponent<T> =
88
- T extends () => infer R
89
- ? R extends Component<any>
90
- ? R
91
- : T
92
- : T;
89
+ export type InferComponent<T> = T extends () => infer R ? (R extends Component<any> ? R : T) : T;
93
90
 
94
91
  export type Props<K extends PropertyKey = any, V = unknown> = Record<K, V>;
95
92
  export type PropsWithExtras<T extends object> = Props & T & Record<string, unknown>;
96
- export type PropsWithChildren<T extends object = {}> =
97
- Expand<Omit<Props, 'children'> & { children: Component } & T>;
93
+ export type PropsWithChildren<T extends object = {}> = Expand<
94
+ Omit<Props, 'children'> & { children: Component } & T
95
+ >;
98
96
 
99
97
  type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
100
98
 
101
- type PickKeys<T, K extends readonly (keyof T)[]> =
102
- { [I in keyof K]: Tracked<T[K[I] & keyof T]> };
99
+ type PickKeys<T, K extends readonly (keyof T)[]> = { [I in keyof K]: Tracked<T[K[I] & keyof T]> };
103
100
 
104
101
  type RestKeys<T, K extends readonly (keyof T)[]> = Expand<Omit<T, K[number]>>;
105
102
 
106
- type SplitResult<T extends Props, K extends readonly (keyof T)[]> =
107
- [...PickKeys<T, K>, Tracked<RestKeys<T, K>>];
103
+ type SplitResult<T extends Props, K extends readonly (keyof T)[]> = [
104
+ ...PickKeys<T, K>,
105
+ Tracked<RestKeys<T, K>>,
106
+ ];
108
107
 
109
108
  // Overload for function values - infers the return type of the function
110
- export declare function track<V>(value: () => V, get?: (v: InferComponent<V>) => InferComponent<V>, set?: (next: InferComponent<V>, prev: InferComponent<V>) => InferComponent<V>): Tracked<InferComponent<V>>;
109
+ export declare function track<V>(
110
+ value: () => V,
111
+ get?: (v: InferComponent<V>) => InferComponent<V>,
112
+ set?: (next: InferComponent<V>, prev: InferComponent<V>) => InferComponent<V>,
113
+ ): Tracked<InferComponent<V>>;
111
114
  // Overload for non-function values
112
- export declare function track<V>(value?: V, get?: (v: V) => V, set?: (next: V, prev: V) => V): Tracked<V>;
115
+ export declare function track<V>(
116
+ value?: V,
117
+ get?: (v: V) => V,
118
+ set?: (next: V, prev: V) => V,
119
+ ): Tracked<V>;
113
120
 
114
121
  export declare function trackSplit<V extends Props, const K extends readonly (keyof V)[]>(
115
122
  value: V,
@@ -120,60 +127,67 @@ export function on<Type extends keyof WindowEventMap>(
120
127
  window: Window,
121
128
  type: Type,
122
129
  handler: (this: Window, event: WindowEventMap[Type]) => any,
123
- options?: AddEventListenerOptions | undefined
130
+ options?: AddEventListenerOptions | undefined,
124
131
  ): () => void;
125
132
 
126
133
  export function on<Type extends keyof DocumentEventMap>(
127
134
  document: Document,
128
135
  type: Type,
129
136
  handler: (this: Document, event: DocumentEventMap[Type]) => any,
130
- options?: AddEventListenerOptions | undefined
137
+ options?: AddEventListenerOptions | undefined,
131
138
  ): () => void;
132
139
 
133
140
  export function on<Element extends HTMLElement, Type extends keyof HTMLElementEventMap>(
134
141
  element: Element,
135
142
  type: Type,
136
143
  handler: (this: Element, event: HTMLElementEventMap[Type]) => any,
137
- options?: AddEventListenerOptions | undefined
144
+ options?: AddEventListenerOptions | undefined,
138
145
  ): () => void;
139
146
 
140
147
  export function on<Element extends MediaQueryList, Type extends keyof MediaQueryListEventMap>(
141
148
  element: Element,
142
149
  type: Type,
143
150
  handler: (this: Element, event: MediaQueryListEventMap[Type]) => any,
144
- options?: AddEventListenerOptions | undefined
151
+ options?: AddEventListenerOptions | undefined,
145
152
  ): () => void;
146
153
 
147
154
  export function on(
148
155
  element: EventTarget,
149
156
  type: string,
150
157
  handler: EventListener,
151
- options?: AddEventListenerOptions | undefined
158
+ options?: AddEventListenerOptions | undefined,
152
159
  ): () => void;
153
160
 
154
161
  export type TrackedObjectShallow<T> = {
155
162
  [K in keyof T]: T[K] | Tracked<T[K]>;
156
163
  };
157
164
 
158
- export type TrackedObjectDeep<T> =
159
- T extends string | number | boolean | null | undefined | symbol | bigint
165
+ export type TrackedObjectDeep<T> = T extends
166
+ | string
167
+ | number
168
+ | boolean
169
+ | null
170
+ | undefined
171
+ | symbol
172
+ | bigint
160
173
  ? T | Tracked<T>
161
174
  : T extends TrackedArray<infer U>
162
- ? TrackedArray<U> | Tracked<TrackedArray<U>>
163
- : T extends TrackedSet<infer U>
164
- ? TrackedSet<U> | Tracked<TrackedSet<U>>
165
- : T extends TrackedMap<infer K, infer V>
166
- ? TrackedMap<K, V> | Tracked<TrackedMap<K, V>>
167
- : T extends Array<infer U>
168
- ? Array<TrackedObjectDeep<U>> | Tracked<Array<TrackedObjectDeep<U>>>
169
- : T extends Set<infer U>
170
- ? Set<TrackedObjectDeep<U>> | Tracked<Set<TrackedObjectDeep<U>>>
171
- : T extends Map<infer K, infer V>
172
- ? Map<TrackedObjectDeep<K>, TrackedObjectDeep<V>> |
173
- Tracked<Map<TrackedObjectDeep<K>, TrackedObjectDeep<V>>>
174
- : T extends object
175
- ? { [K in keyof T]: TrackedObjectDeep<T[K]> | Tracked<TrackedObjectDeep<T[K]>> }
176
- : T | Tracked<T>;
175
+ ? TrackedArray<U> | Tracked<TrackedArray<U>>
176
+ : T extends TrackedSet<infer U>
177
+ ? TrackedSet<U> | Tracked<TrackedSet<U>>
178
+ : T extends TrackedMap<infer K, infer V>
179
+ ? TrackedMap<K, V> | Tracked<TrackedMap<K, V>>
180
+ : T extends Array<infer U>
181
+ ? Array<TrackedObjectDeep<U>> | Tracked<Array<TrackedObjectDeep<U>>>
182
+ : T extends Set<infer U>
183
+ ? Set<TrackedObjectDeep<U>> | Tracked<Set<TrackedObjectDeep<U>>>
184
+ : T extends Map<infer K, infer V>
185
+ ?
186
+ | Map<TrackedObjectDeep<K>, TrackedObjectDeep<V>>
187
+ | Tracked<Map<TrackedObjectDeep<K>, TrackedObjectDeep<V>>>
188
+ : T extends object
189
+ ? { [K in keyof T]: TrackedObjectDeep<T[K]> | Tracked<TrackedObjectDeep<T[K]>> }
190
+ : T | Tracked<T>;
177
191
 
178
192
  export type TrackedObject<T extends object> = T & {};
179
193
 
@@ -203,31 +217,59 @@ export class TrackedURL extends URL {
203
217
  export function createSubscriber(start: () => void | (() => void)): () => void;
204
218
 
205
219
  interface ReactiveValue<V> extends Tracked<V> {
206
- new(fn: () => Tracked<V>, start: () => void | (() => void)): Tracked<V>;
220
+ new (fn: () => Tracked<V>, start: () => void | (() => void)): Tracked<V>;
207
221
  /** @private */
208
222
  _brand: void;
209
223
  }
210
224
 
211
225
  export interface MediaQuery extends Tracked<boolean> {
212
- new(query: string, fallback?: boolean | undefined): Tracked<boolean>;
226
+ new (query: string, fallback?: boolean | undefined): Tracked<boolean>;
213
227
  /** @private */
214
228
  _brand: void;
215
229
  }
216
230
 
217
231
  export declare const MediaQuery: {
218
- new(query: string, fallback?: boolean | undefined): Tracked<boolean>;
232
+ new (query: string, fallback?: boolean | undefined): Tracked<boolean>;
219
233
  };
220
234
 
221
- export function Portal<V = HTMLElement>({ target, children: Component }: { target: V, children?: Component }): void;
235
+ export function Portal<V = HTMLElement>({
236
+ target,
237
+ children: Component,
238
+ }: {
239
+ target: V;
240
+ children?: Component;
241
+ }): void;
222
242
 
223
243
  /**
224
244
  * @param {Tracked<V>} tracked
225
245
  * @returns {(node: HTMLInputElement | HTMLSelectElement) => void}
226
246
  */
227
- export declare function bindValue<V>(tracked: Tracked<V>): (node: HTMLInputElement | HTMLSelectElement) => void;
247
+ export declare function bindValue<V>(
248
+ tracked: Tracked<V>,
249
+ ): (node: HTMLInputElement | HTMLSelectElement) => void;
228
250
 
229
251
  /**
230
252
  * @param {Tracked<V>} tracked
231
253
  * @returns {(node: HTMLInputElement) => void}
232
254
  */
233
- export declare function bindChecked<V>(tracked: Tracked<V>): (node: HTMLInputElement) => void;
255
+ export declare function bindChecked<V>(tracked: Tracked<V>): (node: HTMLInputElement) => void;
256
+
257
+ export declare function bindClientWidth<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
258
+
259
+ export declare function bindClientHeight<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
260
+
261
+ export declare function bindContentRect<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
262
+
263
+ export declare function bindContentBoxSize<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
264
+
265
+ export declare function bindBorderBoxSize<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
266
+
267
+ export declare function bindDevicePixelContentBoxSize<V>(
268
+ tracked: Tracked<V>,
269
+ ): (node: HTMLElement) => void;
270
+
271
+ export declare function bindInnerHTML<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
272
+
273
+ export declare function bindInnerText<V>(tracked: Tracked<V>): (node: HTMLElement) => void;
274
+
275
+ export declare function bindTextContent<V>(tracked: Tracked<V>): (node: HTMLElement) => void;