@sigx/runtime-core 0.1.6 → 0.1.8
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/dist/app-types.d.ts +20 -0
- package/dist/app-types.d.ts.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/async-context.d.ts +47 -0
- package/dist/async-context.d.ts.map +1 -0
- package/dist/component.d.ts +29 -12
- package/dist/component.d.ts.map +1 -1
- package/dist/directives.d.ts +111 -0
- package/dist/directives.d.ts.map +1 -0
- package/dist/error-boundary.d.ts +40 -0
- package/dist/error-boundary.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +123 -11
- package/dist/index.js.map +1 -1
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/lazy.d.ts.map +1 -1
- package/dist/renderer.d.ts +17 -0
- package/dist/renderer.d.ts.map +1 -1
- package/package.json +12 -4
package/dist/app-types.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import type { VNode } from './jsx-runtime.js';
|
|
8
8
|
import type { ComponentSetupContext } from './component.js';
|
|
9
9
|
import type { InjectableFunction } from './di/injectable.js';
|
|
10
|
+
import type { DirectiveDefinition } from './directives.js';
|
|
10
11
|
/**
|
|
11
12
|
* Component instance info passed to lifecycle hooks.
|
|
12
13
|
* This is renderer-agnostic - works with DOM, Terminal, or any platform.
|
|
@@ -76,6 +77,8 @@ export interface AppContext {
|
|
|
76
77
|
config: AppConfig;
|
|
77
78
|
/** Lifecycle hooks from all plugins */
|
|
78
79
|
hooks: AppLifecycleHooks[];
|
|
80
|
+
/** Registered directives */
|
|
81
|
+
directives: Map<string, DirectiveDefinition>;
|
|
79
82
|
}
|
|
80
83
|
/**
|
|
81
84
|
* Plugin interface - plugins implement install() to configure the app.
|
|
@@ -201,6 +204,23 @@ export interface App<TContainer = any> {
|
|
|
201
204
|
* Register lifecycle hooks to observe all components
|
|
202
205
|
*/
|
|
203
206
|
hook(hooks: AppLifecycleHooks): App<TContainer>;
|
|
207
|
+
/**
|
|
208
|
+
* Register a global directive, or retrieve a registered one.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* // Register
|
|
213
|
+
* app.directive('tooltip', {
|
|
214
|
+
* mounted(el, { value }) { el.title = value; },
|
|
215
|
+
* updated(el, { value }) { el.title = value; }
|
|
216
|
+
* });
|
|
217
|
+
*
|
|
218
|
+
* // Retrieve
|
|
219
|
+
* const dir = app.directive('tooltip');
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
222
|
+
directive(name: string, definition: DirectiveDefinition): App<TContainer>;
|
|
223
|
+
directive(name: string): DirectiveDefinition | undefined;
|
|
204
224
|
/**
|
|
205
225
|
* Mount the app to a container.
|
|
206
226
|
*
|
package/dist/app-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-types.d.ts","sourceRoot":"","sources":["../src/app-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-types.d.ts","sourceRoot":"","sources":["../src/app-types.ts"],"names":[],"mappings":"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"}
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACR,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,eAAe,EACf,OAAO,EACP,SAAS,EACT,GAAG,EACN,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EACR,iBAAiB,EAEjB,UAAU,EAGV,OAAO,EACP,GAAG,EACN,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACR,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,eAAe,EACf,OAAO,EACP,SAAS,EACT,GAAG,EACN,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EACR,iBAAiB,EAEjB,UAAU,EAGV,OAAO,EACP,GAAG,EACN,MAAM,gBAAgB,CAAC;AAuBxB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,UAAU,GAAG,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAEpF;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAErD;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,UAAU,GAAG,GAAG,EAAE,aAAa,EAAE,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,CAsJ/E;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CASpG;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CASpG;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAStG;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CASpG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,UAAU,GAAG,IAAI,EAC1B,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,iBAAiB,GAAG,IAAI,EAClC,IAAI,EAAE,MAAM,GACb,OAAO,CAyBT"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async-safe context storage for SSR request isolation.
|
|
3
|
+
*
|
|
4
|
+
* On Node.js (server), uses AsyncLocalStorage to scope state per-request,
|
|
5
|
+
* preventing cross-request contamination when concurrent requests share
|
|
6
|
+
* the same process (e.g., async component setup with `await`).
|
|
7
|
+
*
|
|
8
|
+
* On browsers (client), falls back to simple module-level variables
|
|
9
|
+
* since there's only ever one "request" in the browser.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Get the current component context (request-safe).
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCurrentInstanceSafe(): any | null;
|
|
15
|
+
/**
|
|
16
|
+
* Set the current component context (request-safe).
|
|
17
|
+
* Returns the previous value.
|
|
18
|
+
*/
|
|
19
|
+
export declare function setCurrentInstanceSafe(ctx: any | null): any | null;
|
|
20
|
+
/**
|
|
21
|
+
* Get the current suspense boundary (request-safe).
|
|
22
|
+
*/
|
|
23
|
+
export declare function getCurrentSuspenseBoundarySafe(): any | null;
|
|
24
|
+
/**
|
|
25
|
+
* Set the current suspense boundary (request-safe).
|
|
26
|
+
* Returns the previous value.
|
|
27
|
+
*/
|
|
28
|
+
export declare function setCurrentSuspenseBoundarySafe(boundary: any | null): any | null;
|
|
29
|
+
/**
|
|
30
|
+
* Run a function within a new isolated request context.
|
|
31
|
+
* On Node.js, uses AsyncLocalStorage.run() to create a new scope.
|
|
32
|
+
* On browsers, simply calls the function (no isolation needed).
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* // In SSR request handler:
|
|
37
|
+
* const html = await runInRequestScope(async () => {
|
|
38
|
+
* return await ssr.render(<App />);
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function runInRequestScope<T>(fn: () => T): T;
|
|
43
|
+
/**
|
|
44
|
+
* Check if AsyncLocalStorage-based request isolation is available.
|
|
45
|
+
*/
|
|
46
|
+
export declare function hasRequestIsolation(): boolean;
|
|
47
|
+
//# sourceMappingURL=async-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async-context.d.ts","sourceRoot":"","sources":["../src/async-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAsDH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,GAAG,GAAG,IAAI,CAEnD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAKlE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,GAAG,GAAG,IAAI,CAE3D;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAK/E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAUnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
|
package/dist/component.d.ts
CHANGED
|
@@ -29,9 +29,9 @@ export type DefineProp<TName extends string, TType, Required extends boolean = f
|
|
|
29
29
|
};
|
|
30
30
|
/**
|
|
31
31
|
* Model binding tuple type - [stateObject, key] for forwarding
|
|
32
|
-
*
|
|
32
|
+
* The state object can be a Signal or any object with the given key
|
|
33
33
|
*/
|
|
34
|
-
export type ModelBinding<T> = [
|
|
34
|
+
export type ModelBinding<T> = [object, string];
|
|
35
35
|
/**
|
|
36
36
|
* Re-export Model type for convenience
|
|
37
37
|
*/
|
|
@@ -94,12 +94,19 @@ export type DefineModel<TNameOrType, TType = void> = TType extends void ? {
|
|
|
94
94
|
type ExtractModelBindings<T> = T extends {
|
|
95
95
|
__modelBindings?: infer M;
|
|
96
96
|
} ? NonNullable<M> : {};
|
|
97
|
+
/**
|
|
98
|
+
* Map model keys to their JSX prop names.
|
|
99
|
+
* - "model" stays as "model" (default model)
|
|
100
|
+
* - Other names become "model:name" (named models)
|
|
101
|
+
*/
|
|
102
|
+
type ModelPropName<K extends string> = K extends "model" ? "model" : `model:${K}`;
|
|
97
103
|
/**
|
|
98
104
|
* Transform Model<T> props to also accept binding syntax at JSX level.
|
|
99
105
|
* This allows: model={[state, "value"]} or model={props.model}
|
|
106
|
+
* For named models: model:title={[state, "title"]} or model:title={() => state.title}
|
|
100
107
|
*/
|
|
101
108
|
type ExternalModelProps<T> = {
|
|
102
|
-
[K in keyof ExtractModelBindings<T>]?: ModelType<ExtractModelBindings<T>[K]> | ModelBinding<ExtractModelBindings<T>[K]> | (() => ExtractModelBindings<T>[K]);
|
|
109
|
+
[K in keyof ExtractModelBindings<T> as K extends string ? ModelPropName<K> : never]?: ModelType<ExtractModelBindings<T>[K]> | ModelBinding<ExtractModelBindings<T>[K]> | (() => ExtractModelBindings<T>[K]);
|
|
103
110
|
};
|
|
104
111
|
export type EventDefinition<T> = {
|
|
105
112
|
__eventDetail: T;
|
|
@@ -248,8 +255,8 @@ export interface ComponentSetupContext<TElement = PlatformElement, TProps extend
|
|
|
248
255
|
*/
|
|
249
256
|
update(): void;
|
|
250
257
|
}
|
|
251
|
-
export declare function getCurrentInstance():
|
|
252
|
-
export declare function setCurrentInstance(ctx: ComponentSetupContext<any, any, any> | null):
|
|
258
|
+
export declare function getCurrentInstance(): any;
|
|
259
|
+
export declare function setCurrentInstance(ctx: ComponentSetupContext<any, any, any> | null): any;
|
|
253
260
|
export declare function onMounted(fn: (ctx: MountContext) => void): void;
|
|
254
261
|
export declare function onUnmounted(fn: (ctx: MountContext) => void): void;
|
|
255
262
|
export declare function onCreated(fn: () => void): void;
|
|
@@ -309,17 +316,25 @@ export type ComponentRef<T extends {
|
|
|
309
316
|
__ref: any;
|
|
310
317
|
}> = Ref<T["__ref"]>;
|
|
311
318
|
/**
|
|
312
|
-
* Strip internal type markers from component props.
|
|
313
|
-
*
|
|
314
|
-
* not internal type markers or event definitions.
|
|
319
|
+
* Strip internal type markers from component props for setup context (internal use).
|
|
320
|
+
* Preserves model keys so components can access props.model, props.title, etc.
|
|
315
321
|
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
322
|
+
* Strips:
|
|
323
|
+
* - Internal markers: __exposed, __slots, __models, __modelBindings
|
|
324
|
+
* - JSX model:name syntax markers
|
|
325
|
+
* - Event markers (update:*)
|
|
319
326
|
*/
|
|
320
327
|
type StripInternalMarkers<T> = {
|
|
321
328
|
[K in keyof T as K extends "__exposed" | "__slots" | "__models" | "__modelBindings" ? never : K extends `model:${string}` ? never : K extends `update:${string}` ? never : K]: T[K];
|
|
322
329
|
};
|
|
330
|
+
/**
|
|
331
|
+
* Strip props for JSX external signature.
|
|
332
|
+
* Same as StripInternalMarkers but also strips model keys so ExternalModelProps
|
|
333
|
+
* is the sole source (avoiding intersection conflicts between Model<T> and widened union).
|
|
334
|
+
*/
|
|
335
|
+
type StripForJSX<T> = {
|
|
336
|
+
[K in keyof T as K extends "__exposed" | "__slots" | "__models" | "__modelBindings" ? never : K extends `model:${string}` ? never : K extends `update:${string}` ? never : K extends keyof ExtractModelBindings<T> ? never : K]: T[K];
|
|
337
|
+
};
|
|
323
338
|
/**
|
|
324
339
|
* Component options (optional second param)
|
|
325
340
|
*/
|
|
@@ -344,7 +359,7 @@ type SyncBinding<T> = [object, string] | (() => T);
|
|
|
344
359
|
type SyncProps<TCombined> = 'value' extends keyof TCombined ? {
|
|
345
360
|
sync?: SyncBinding<TCombined['value']>;
|
|
346
361
|
} : {};
|
|
347
|
-
export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots> = ((props:
|
|
362
|
+
export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots> = ((props: StripForJSX<Omit<TCombined, EventNames<TCombined>>> & EventHandlers<TCombined> & SlotProps<TSlots> & SyncProps<TCombined> & ExternalModelProps<TCombined> & JSX.IntrinsicAttributes & ComponentAttributeExtensions & {
|
|
348
363
|
ref?: Ref<TRef>;
|
|
349
364
|
children?: any;
|
|
350
365
|
}) => JSXElement) & {
|
|
@@ -352,6 +367,8 @@ export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots
|
|
|
352
367
|
__setup: SetupFn<StripInternalMarkers<TCombined>, TCombined, TRef, TSlots>;
|
|
353
368
|
/** @internal Component name for debugging */
|
|
354
369
|
__name?: string;
|
|
370
|
+
/** @internal Stable island identity based on file path (injected by sigxIslandsPlugin) */
|
|
371
|
+
__islandId?: string;
|
|
355
372
|
/** @internal Type brand for props */
|
|
356
373
|
__props: StripInternalMarkers<TCombined>;
|
|
357
374
|
/** @internal Type brand for events */
|
package/dist/component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directive system for SignalX.
|
|
3
|
+
*
|
|
4
|
+
* Directives provide reusable element-level lifecycle hooks via the `use:name` prop syntax.
|
|
5
|
+
* They can be registered globally via `app.directive()` or passed inline as imported values.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { defineDirective } from 'sigx';
|
|
10
|
+
*
|
|
11
|
+
* const tooltip = defineDirective<string>({
|
|
12
|
+
* mounted(el, { value }) {
|
|
13
|
+
* el.title = value;
|
|
14
|
+
* },
|
|
15
|
+
* updated(el, { value }) {
|
|
16
|
+
* el.title = value;
|
|
17
|
+
* },
|
|
18
|
+
* unmounted(el) {
|
|
19
|
+
* el.title = '';
|
|
20
|
+
* }
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Inline usage:
|
|
24
|
+
* <div use:tooltip="Hello!">Hover me</div>
|
|
25
|
+
*
|
|
26
|
+
* // Or with explicit binding:
|
|
27
|
+
* <div use:tooltip={[tooltip, "Hello!"]}>Hover me</div>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* The binding object passed to directive hooks.
|
|
32
|
+
*/
|
|
33
|
+
export interface DirectiveBinding<T = any> {
|
|
34
|
+
/** The current value passed to the directive */
|
|
35
|
+
value: T;
|
|
36
|
+
/** The previous value (available in `updated` hook) */
|
|
37
|
+
oldValue?: T;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extension interface for directive definitions.
|
|
41
|
+
*
|
|
42
|
+
* Other packages (e.g., `@sigx/server-renderer`) can augment this interface
|
|
43
|
+
* to add hooks like `getSSRProps` via TypeScript module augmentation.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // In @sigx/server-renderer
|
|
48
|
+
* declare module '@sigx/runtime-core' {
|
|
49
|
+
* interface DirectiveDefinitionExtensions<T> {
|
|
50
|
+
* getSSRProps?(binding: DirectiveBinding<T>): Record<string, any> | void;
|
|
51
|
+
* }
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export interface DirectiveDefinitionExtensions<T = any> {
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A directive definition object with lifecycle hooks.
|
|
59
|
+
*
|
|
60
|
+
* All hooks are optional. Additional hooks (e.g., `getSSRProps`) may be
|
|
61
|
+
* available when SSR packages augment `DirectiveDefinitionExtensions`.
|
|
62
|
+
*/
|
|
63
|
+
export interface DirectiveDefinition<T = any, El = any> extends DirectiveDefinitionExtensions<T> {
|
|
64
|
+
/** Called after the element is created but before it is inserted into the DOM */
|
|
65
|
+
created?(el: El, binding: DirectiveBinding<T>): void;
|
|
66
|
+
/** Called after the element is inserted into the DOM */
|
|
67
|
+
mounted?(el: El, binding: DirectiveBinding<T>): void;
|
|
68
|
+
/** Called when the binding value changes */
|
|
69
|
+
updated?(el: El, binding: DirectiveBinding<T>): void;
|
|
70
|
+
/** Called before the element is removed from the DOM */
|
|
71
|
+
unmounted?(el: El, binding: DirectiveBinding<T>): void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A resolved directive binding stored on a VNode.
|
|
75
|
+
* Tuple of [definition, value].
|
|
76
|
+
*/
|
|
77
|
+
export type ResolvedDirective<T = any, El = any> = [DirectiveDefinition<T, El>, T];
|
|
78
|
+
/**
|
|
79
|
+
* Marker symbol to identify directive definitions.
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
export declare const __DIRECTIVE__: unique symbol;
|
|
83
|
+
/**
|
|
84
|
+
* Internal type for marked directive definitions.
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
export interface MarkedDirectiveDefinition<T = any, El = any> extends DirectiveDefinition<T, El> {
|
|
88
|
+
[__DIRECTIVE__]: true;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Define a directive. This is an identity function that marks the definition
|
|
92
|
+
* for type inference and runtime identification.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* const highlight = defineDirective<string>({
|
|
97
|
+
* mounted(el, { value }) {
|
|
98
|
+
* el.style.backgroundColor = value;
|
|
99
|
+
* },
|
|
100
|
+
* updated(el, { value }) {
|
|
101
|
+
* el.style.backgroundColor = value;
|
|
102
|
+
* }
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare function defineDirective<T = any, El = any>(definition: DirectiveDefinition<T, El>): DirectiveDefinition<T, El>;
|
|
107
|
+
/**
|
|
108
|
+
* Check if a value is a directive definition.
|
|
109
|
+
*/
|
|
110
|
+
export declare function isDirective(value: any): value is DirectiveDefinition;
|
|
111
|
+
//# sourceMappingURL=directives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../src/directives.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,GAAG;IACrC,gDAAgD;IAChD,KAAK,EAAE,CAAC,CAAC;IACT,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,CAAC;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,GAAG;CAErD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,SAAQ,6BAA6B,CAAC,CAAC,CAAC;IAC5F,iFAAiF;IACjF,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACrD,wDAAwD;IACxD,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACrD,4CAA4C;IAC5C,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACrD,wDAAwD;IACxD,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,aAAa,eAA+B,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,SAAQ,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5F,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC;CACzB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,EAAE,EAAE,CAAC,CAGrH;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,mBAAmB,CAEpE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ErrorBoundary component for catching render errors.
|
|
3
|
+
*
|
|
4
|
+
* Catches errors thrown during child component rendering and displays
|
|
5
|
+
* a fallback UI. Works during both SSR and client-side rendering.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { ErrorBoundary } from 'sigx';
|
|
10
|
+
*
|
|
11
|
+
* <ErrorBoundary
|
|
12
|
+
* fallback={(error, retry) => (
|
|
13
|
+
* <div>
|
|
14
|
+
* <p>Something went wrong: {error.message}</p>
|
|
15
|
+
* <button onClick={retry}>Retry</button>
|
|
16
|
+
* </div>
|
|
17
|
+
* )}
|
|
18
|
+
* >
|
|
19
|
+
* <RiskyComponent />
|
|
20
|
+
* </ErrorBoundary>
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
import { type DefineProp, type DefineSlot } from './component.js';
|
|
24
|
+
import type { JSXElement } from './jsx-runtime.js';
|
|
25
|
+
/**
|
|
26
|
+
* Props for the ErrorBoundary component
|
|
27
|
+
*/
|
|
28
|
+
type ErrorBoundaryProps = DefineProp<'fallback', JSXElement | ((error: Error, retry: () => void) => JSXElement)> & DefineSlot<'default'>;
|
|
29
|
+
/**
|
|
30
|
+
* ErrorBoundary component.
|
|
31
|
+
*
|
|
32
|
+
* Wraps children and catches errors thrown during rendering.
|
|
33
|
+
* When an error occurs, displays the `fallback` UI.
|
|
34
|
+
* Provides a `retry` function to reset and re-render children.
|
|
35
|
+
*/
|
|
36
|
+
export declare const ErrorBoundary: import("@sigx/runtime-core/jsx-runtime").ComponentFactory<ErrorBoundaryProps, void, {
|
|
37
|
+
default: () => JSXElement | JSXElement[] | null;
|
|
38
|
+
}>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=error-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../src/error-boundary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,KAAK,kBAAkB,GACnB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,UAAU,CAAC,CAAC,GACtF,UAAU,CAAC,SAAS,CAAC,CAAC;AAE1B;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;EAoCG,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './compound.js';
|
|
|
6
6
|
export * from './jsx-runtime.js';
|
|
7
7
|
export * from './lazy.js';
|
|
8
8
|
export * from './model.js';
|
|
9
|
+
export { ErrorBoundary } from './error-boundary.js';
|
|
9
10
|
export { Utils } from './utils/index.js';
|
|
10
11
|
export { createPropsAccessor } from './utils/props-accessor.js';
|
|
11
12
|
export { createSlots } from './utils/slots.js';
|
|
@@ -15,8 +16,10 @@ export * from './models/index.js';
|
|
|
15
16
|
export * from './messaging/index.js';
|
|
16
17
|
export * from './di/injectable.js';
|
|
17
18
|
export * from './di/factory.js';
|
|
19
|
+
export * from './directives.js';
|
|
18
20
|
import './jsx-types.d.ts';
|
|
19
21
|
export { signal } from '@sigx/reactivity';
|
|
20
22
|
export * from './renderer.js';
|
|
21
23
|
export * from './hydration/index.js';
|
|
24
|
+
export { runInRequestScope, hasRequestIsolation } from './async-context.js';
|
|
22
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,cAAc,eAAe,CAAC;AAG9B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,cAAc,eAAe,CAAC;AAG9B,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|