@sigx/runtime-core 0.1.5 → 0.1.6

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.
Files changed (42) hide show
  1. package/dist/app-types.d.ts +35 -15
  2. package/dist/app-types.d.ts.map +1 -1
  3. package/dist/app.d.ts +4 -8
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/component.d.ts +127 -38
  6. package/dist/component.d.ts.map +1 -1
  7. package/dist/compound.d.ts +34 -0
  8. package/dist/compound.d.ts.map +1 -0
  9. package/dist/di/factory.d.ts +3 -2
  10. package/dist/di/factory.d.ts.map +1 -1
  11. package/dist/di/injectable.d.ts +80 -6
  12. package/dist/di/injectable.d.ts.map +1 -1
  13. package/dist/hydration/index.d.ts +88 -0
  14. package/dist/hydration/index.d.ts.map +1 -0
  15. package/dist/index.d.ts +3 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +458 -690
  18. package/dist/index.js.map +1 -1
  19. package/dist/jsx-runtime.d.ts +3 -2
  20. package/dist/jsx-runtime.d.ts.map +1 -1
  21. package/dist/lazy.d.ts.map +1 -1
  22. package/dist/model.d.ts +68 -0
  23. package/dist/model.d.ts.map +1 -0
  24. package/dist/platform.d.ts +9 -9
  25. package/dist/platform.d.ts.map +1 -1
  26. package/dist/renderer.d.ts +1 -3
  27. package/dist/renderer.d.ts.map +1 -1
  28. package/dist/utils/is-component.d.ts +30 -0
  29. package/dist/utils/is-component.d.ts.map +1 -0
  30. package/dist/utils/normalize.d.ts +4 -1
  31. package/dist/utils/normalize.d.ts.map +1 -1
  32. package/dist/utils/props-accessor.d.ts +6 -9
  33. package/dist/utils/props-accessor.d.ts.map +1 -1
  34. package/package.json +7 -6
  35. package/dist/sheet.d.ts +0 -51
  36. package/dist/sheet.d.ts.map +0 -1
  37. package/dist/stores/store.d.ts +0 -70
  38. package/dist/stores/store.d.ts.map +0 -1
  39. package/dist/styled.d.ts +0 -15
  40. package/dist/styled.d.ts.map +0 -1
  41. package/dist/utils/component-helpers.d.ts +0 -38
  42. package/dist/utils/component-helpers.d.ts.map +0 -1
@@ -6,12 +6,13 @@
6
6
  */
7
7
  import type { VNode } from './jsx-runtime.js';
8
8
  import type { ComponentSetupContext } from './component.js';
9
+ import type { InjectableFunction } from './di/injectable.js';
9
10
  /**
10
11
  * Component instance info passed to lifecycle hooks.
11
12
  * This is renderer-agnostic - works with DOM, Terminal, or any platform.
12
13
  */
13
14
  export interface ComponentInstance {
14
- /** Component name (if defined via defineComponent options) */
15
+ /** Component name (if defined via component options) */
15
16
  name?: string;
16
17
  /** The component's setup context with props, slots, emit, etc. */
17
18
  ctx: ComponentSetupContext;
@@ -81,10 +82,12 @@ export interface AppContext {
81
82
  *
82
83
  * @example
83
84
  * ```typescript
85
+ * const useMyService = defineInjectable(() => new MyService());
86
+ *
84
87
  * const myPlugin: Plugin<{ debug?: boolean }> = {
85
88
  * name: 'my-plugin',
86
89
  * install(app, options) {
87
- * app.provide('myService', new MyService(options));
90
+ * app.defineProvide(useMyService);
88
91
  * app.hook({
89
92
  * onComponentMounted: (instance) => {
90
93
  * if (options?.debug) console.log('Mounted:', instance.name);
@@ -109,8 +112,10 @@ export interface Plugin<Options = any> {
109
112
  *
110
113
  * @example
111
114
  * ```typescript
115
+ * const useLogger = defineInjectable(() => createLogger());
116
+ *
112
117
  * const simplePlugin: PluginInstallFn = (app) => {
113
- * app.provide('logger', createLogger());
118
+ * app.defineProvide(useLogger);
114
119
  * };
115
120
  * ```
116
121
  */
@@ -153,13 +158,11 @@ export type UnmountFn<TContainer = any> = (container: TContainer) => void;
153
158
  *
154
159
  * // Using with defineInjectable tokens
155
160
  * const useConfig = defineInjectable(() => ({ apiUrl: 'https://...' }));
156
- * app.provide(useConfig, { apiUrl: 'https://custom.api.com' });
157
- *
158
- * // Or with simple symbols/values
159
- * app.provide(ConfigToken, myConfig);
161
+ * const config = app.defineProvide(useConfig);
162
+ * config.apiUrl = 'https://custom.api.com';
160
163
  *
161
164
  * app.use(routerPlugin)
162
- * .mount(document.getElementById('app')!, render);
165
+ * .mount(document.getElementById('app')!);
163
166
  * ```
164
167
  */
165
168
  export interface App<TContainer = any> {
@@ -172,16 +175,28 @@ export interface App<TContainer = any> {
172
175
  */
173
176
  use<Options>(plugin: Plugin<Options> | PluginInstallFn<Options>, options?: Options): App<TContainer>;
174
177
  /**
175
- * Provide a value at app level (available to all components via inject).
178
+ * Provide a new instance of an injectable at app level.
179
+ * All components will receive this instance when calling the injectable function.
180
+ *
181
+ * @param useFn - An injectable function created by defineInjectable
182
+ * @param factory - Optional custom factory. If not provided, uses the injectable's default factory.
183
+ * @returns The created instance
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * const useApiConfig = defineInjectable(() => ({ baseUrl: 'https://api.example.com' }));
176
188
  *
177
- * The token can be:
178
- * - A function created by defineInjectable
179
- * - A Symbol
180
- * - Any unique object reference
189
+ * const app = defineApp(<App />);
181
190
  *
182
- * Values provided here are available to all components via inject().
191
+ * // Use default factory
192
+ * const config = app.defineProvide(useApiConfig);
193
+ * config.baseUrl = 'https://custom.api.com';
194
+ *
195
+ * // Or provide custom factory
196
+ * app.defineProvide(useApiConfig, () => ({ baseUrl: 'https://other.api.com' }));
197
+ * ```
183
198
  */
184
- provide<T>(token: any, value: T): App<TContainer>;
199
+ defineProvide<T>(useFn: InjectableFunction<T>, factory?: () => T): T;
185
200
  /**
186
201
  * Register lifecycle hooks to observe all components
187
202
  */
@@ -222,5 +237,10 @@ export interface App<TContainer = any> {
222
237
  * @internal
223
238
  */
224
239
  _container: TContainer | null;
240
+ /**
241
+ * The root component passed to defineApp()
242
+ * @internal
243
+ */
244
+ _rootComponent: any;
225
245
  }
226
246
  //# sourceMappingURL=app-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-types.d.ts","sourceRoot":"","sources":["../src/app-types.ts"],"names":[],"mappings":"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"}
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 CHANGED
@@ -6,10 +6,6 @@
6
6
  */
7
7
  export type { ComponentInstance, AppConfig, AppLifecycleHooks, AppContext, Plugin, PluginInstallFn, MountFn, UnmountFn, App } from './app-types.js';
8
8
  import type { ComponentInstance, AppContext, MountFn, App } from './app-types.js';
9
- /**
10
- * Unique symbol for app context injection
11
- */
12
- export declare const AppContextKey: unique symbol;
13
9
  /**
14
10
  * Set the default mount function for the platform.
15
11
  * Called by platform packages (runtime-dom, runtime-terminal) on import.
@@ -33,7 +29,6 @@ export declare function getDefaultMount(): MountFn<any> | null;
33
29
  * @example
34
30
  * ```tsx
35
31
  * import { defineApp, defineInjectable } from '@sigx/runtime-core';
36
- * import { render } from '@sigx/runtime-dom';
37
32
  *
38
33
  * // Define an injectable service
39
34
  * const useApiConfig = defineInjectable(() => ({ baseUrl: 'https://api.example.com' }));
@@ -42,10 +37,11 @@ export declare function getDefaultMount(): MountFn<any> | null;
42
37
  *
43
38
  * app.use(myPlugin, { option: 'value' });
44
39
  *
45
- * // Provide using the injectable token (works with inject())
46
- * app.provide(useApiConfig, { baseUrl: 'https://custom.api.com' });
40
+ * // Provide custom instance at app level
41
+ * const config = app.defineProvide(useApiConfig);
42
+ * config.baseUrl = 'https://custom.api.com';
47
43
  *
48
- * app.mount(document.getElementById('app')!, render);
44
+ * app.mount(document.getElementById('app')!);
49
45
  * ```
50
46
  */
51
47
  export declare function defineApp<TContainer = any>(rootComponent: any): App<TContainer>;
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;AAYxB;;GAEG;AACH,eAAO,MAAM,aAAa,eAAqB,CAAC;AAQhD;;;;;;;;;;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,CA6H/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"}
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;AAsBxB;;;;;;;;;;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,CAuI/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"}
@@ -1,5 +1,6 @@
1
1
  import { JSXElement } from "./jsx-runtime.js";
2
2
  import { signal } from "@sigx/reactivity";
3
+ import type { Model as ModelType } from "./model.js";
3
4
  /**
4
5
  * Extension point for additional component attributes.
5
6
  * Use module augmentation to add attributes to all components:
@@ -27,9 +28,79 @@ export type DefineProp<TName extends string, TType, Required extends boolean = f
27
28
  [K in TName]: TType;
28
29
  };
29
30
  /**
30
- * Define a 2-way bound prop (sync).
31
+ * Model binding tuple type - [stateObject, key] for forwarding
32
+ * @deprecated Use Model<T> interface instead
31
33
  */
32
- export type DefineSync<TNameOrType, TType = void> = TType extends void ? DefineProp<"value", TNameOrType> & DefineEvent<"update:value", TNameOrType> : TNameOrType extends string ? DefineProp<TNameOrType, TType> & DefineEvent<`update:${TNameOrType}`, TType> : never;
34
+ export type ModelBinding<T> = [Record<string, T>, string];
35
+ /**
36
+ * Re-export Model type for convenience
37
+ */
38
+ export type { ModelType as Model };
39
+ /**
40
+ * Define a 2-way bound model.
41
+ *
42
+ * The component receives a Model<T> object with:
43
+ * - `.value` - Get or set the current value
44
+ * - `.binding` - The underlying binding for forwarding
45
+ *
46
+ * Default form: DefineModel<T>
47
+ * - props.model: Model<T> (read/write/forward)
48
+ * - props.model.value to read/write
49
+ * - <Child model={props.model} /> to forward
50
+ *
51
+ * Named form: DefineModel<"name", T>
52
+ * - props.name: Model<T> (read/write/forward)
53
+ * - props.name.value to read/write
54
+ * - <Child model={props.name} /> to forward
55
+ *
56
+ * Callers use: model={() => state.prop} or model:name={() => state.prop}
57
+ *
58
+ * @example
59
+ * ```tsx
60
+ * interface InputProps extends DefineModel<string> {
61
+ * placeholder?: string;
62
+ * }
63
+ *
64
+ * const Input = component<InputProps>(({ props }) => {
65
+ * // Read
66
+ * console.log(props.model.value);
67
+ *
68
+ * // Write
69
+ * props.model.value = "new value";
70
+ *
71
+ * // Forward
72
+ * <Child model={props.model} />
73
+ * });
74
+ * ```
75
+ */
76
+ export type DefineModel<TNameOrType, TType = void> = TType extends void ? {
77
+ model?: ModelType<TNameOrType>;
78
+ /** @internal Marker for JSX to accept binding tuples */
79
+ __modelBindings?: {
80
+ model: TNameOrType;
81
+ };
82
+ } & DefineEvent<"update:modelValue", TNameOrType> : TNameOrType extends string ? {
83
+ [K in TNameOrType]?: ModelType<TType>;
84
+ } & {
85
+ /** @internal Marker for JSX to accept binding tuples */
86
+ __modelBindings?: {
87
+ [K in TNameOrType]: TType;
88
+ };
89
+ } & DefineEvent<`update:${TNameOrType}`, TType> : never;
90
+ /**
91
+ * Extract model binding definitions from a component props type.
92
+ * Used at JSX level to allow binding tuples for model props.
93
+ */
94
+ type ExtractModelBindings<T> = T extends {
95
+ __modelBindings?: infer M;
96
+ } ? NonNullable<M> : {};
97
+ /**
98
+ * Transform Model<T> props to also accept binding syntax at JSX level.
99
+ * This allows: model={[state, "value"]} or model={props.model}
100
+ */
101
+ type ExternalModelProps<T> = {
102
+ [K in keyof ExtractModelBindings<T>]?: ModelType<ExtractModelBindings<T>[K]> | ModelBinding<ExtractModelBindings<T>[K]> | (() => ExtractModelBindings<T>[K]);
103
+ };
33
104
  export type EventDefinition<T> = {
34
105
  __eventDetail: T;
35
106
  };
@@ -111,14 +182,6 @@ export interface MountContext<TElement = PlatformElement> {
111
182
  */
112
183
  export interface SetupContext {
113
184
  }
114
- /**
115
- * Type for defaults object - REQUIRES all optional keys to be provided.
116
- * Required props (where undefined is not assignable) get type 'never' to prevent setting them.
117
- * This ensures you don't forget to add a default when adding a new optional prop.
118
- */
119
- type DefaultsFor<TProps> = {
120
- [K in keyof TProps as undefined extends TProps[K] ? K : never]-?: NonNullable<TProps[K]>;
121
- };
122
185
  /**
123
186
  * Props type after defaults are applied - all props become required (non-undefined)
124
187
  */
@@ -126,47 +189,53 @@ export type PropsWithDefaults<TProps, D> = {
126
189
  readonly [K in keyof TProps]-?: K extends keyof D ? NonNullable<TProps[K]> : TProps[K];
127
190
  };
128
191
  /**
129
- * Props accessor - can be called with defaults to set them,
130
- * then accessed directly with defaults applied.
131
- *
132
- * When calling props(), you MUST provide defaults for ALL optional props.
133
- * This ensures you don't forget to add a default when adding a new optional prop.
134
- * Required props cannot be in the defaults object.
192
+ * Props accessor - a reactive proxy for component props.
193
+ * Use destructuring with defaults for optional props.
135
194
  *
136
195
  * @example
137
196
  * ```tsx
138
- * // Must provide defaults for ALL optional props
139
- * const p = props({ variant: "primary", size: "md" });
140
- * return () => <button class={p.variant}>...</button>
197
+ * // Destructure with defaults
198
+ * const { variant = 'primary', size = 'md' } = ctx.props;
199
+ * return () => <button class={variant}>...</button>
200
+ *
201
+ * // Or spread to forward all props
202
+ * return () => <ChildComponent {...ctx.props} />
141
203
  * ```
142
204
  */
143
205
  export type PropsAccessor<TProps> = {
144
206
  readonly [K in keyof TProps]: TProps[K];
145
- } & {
146
- (defaults: DefaultsFor<TProps>): PropsWithDefaults<TProps, DefaultsFor<TProps>> & PropsAccessor<TProps>;
147
207
  };
148
208
  export interface ComponentSetupContext<TElement = PlatformElement, TProps extends Record<string, any> = {}, TEvents extends Record<string, any> = {}, TRef = any, TSlots = {}> extends SetupContext {
149
209
  el: TElement;
150
210
  signal: typeof signal;
151
211
  /**
152
- * Component props - can be called with defaults or accessed directly.
153
- * After calling with defaults, direct property access uses those defaults.
212
+ * Component props - includes regular props and Model<T> objects.
213
+ *
214
+ * Models are accessed via props: props.model.value, props.title.value
154
215
  *
155
216
  * @example
156
217
  * ```tsx
157
- * // Set defaults once
158
- * props({ variant: "primary", size: "md" });
218
+ * // Read model
219
+ * const value = props.model.value;
220
+ *
221
+ * // Write model
222
+ * props.model.value = "new value";
223
+ *
224
+ * // Forward to child
225
+ * <Child model={props.model} />
159
226
  *
160
- * // Then use props directly with defaults applied
161
- * return () => <button class={props.variant}>...</button>
227
+ * // Forward via context
228
+ * defineProvide(ctx, () => props.model);
162
229
  * ```
163
230
  */
164
231
  props: PropsAccessor<TProps>;
165
232
  slots: SlotsObject<TSlots>;
166
233
  emit: EmitFn<TEvents>;
167
234
  parent: any | null;
168
- onMount(fn: (ctx: MountContext<TElement>) => void): void;
169
- onCleanup(fn: (ctx: MountContext<TElement>) => void): void;
235
+ onMounted(fn: (ctx: MountContext<TElement>) => void): void;
236
+ onUnmounted(fn: (ctx: MountContext<TElement>) => void): void;
237
+ onCreated(fn: () => void): void;
238
+ onUpdated(fn: () => void): void;
170
239
  expose(exposed: TRef): void;
171
240
  /**
172
241
  * The current render function. Can be replaced directly for HMR.
@@ -181,12 +250,14 @@ export interface ComponentSetupContext<TElement = PlatformElement, TProps extend
181
250
  }
182
251
  export declare function getCurrentInstance(): ComponentSetupContext<any, any, any, any, {}> | null;
183
252
  export declare function setCurrentInstance(ctx: ComponentSetupContext<any, any, any> | null): ComponentSetupContext<any, any, any, any, {}> | null;
184
- export declare function onMount(fn: (ctx: MountContext) => void): void;
185
- export declare function onCleanup(fn: (ctx: MountContext) => void): void;
253
+ export declare function onMounted(fn: (ctx: MountContext) => void): void;
254
+ export declare function onUnmounted(fn: (ctx: MountContext) => void): void;
255
+ export declare function onCreated(fn: () => void): void;
256
+ export declare function onUpdated(fn: () => void): void;
186
257
  export type ViewFn = () => JSXElement | JSXElement[] | undefined;
187
258
  /**
188
259
  * Type for component setup functions.
189
- * Includes Props, Events, Ref and Slots generics to preserve type information.
260
+ * Includes Props, Events, Ref, and Slots generics to preserve type information.
190
261
  * Can be sync or async - async setup is awaited on server, runs sync on client hydration.
191
262
  */
192
263
  export type SetupFn<TProps extends Record<string, any> = {}, TEvents extends Record<string, any> = {}, TRef = any, TSlots = {}> = (ctx: ComponentSetupContext<PlatformElement, TProps, TEvents, TRef, TSlots>) => ViewFn | Promise<ViewFn>;
@@ -238,9 +309,17 @@ export type ComponentRef<T extends {
238
309
  __ref: any;
239
310
  }> = Ref<T["__ref"]>;
240
311
  /**
241
- * Strip internal type markers from props
312
+ * Strip internal type markers from component props.
313
+ * This ensures the component's internal `props` accessor only shows actual props,
314
+ * not internal type markers or event definitions.
315
+ *
316
+ * Note: `model` and named models (from DefineModel) are now kept as they are
317
+ * actual Model<T> objects on props. Only the JSX-level `model:name` syntax
318
+ * and event markers are stripped.
242
319
  */
243
- type StripInternalMarkers<T> = Omit<T, "__exposed" | "__slots">;
320
+ type StripInternalMarkers<T> = {
321
+ [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
+ };
244
323
  /**
245
324
  * Component options (optional second param)
246
325
  */
@@ -254,7 +333,18 @@ export interface ComponentOptions {
254
333
  type SlotProps<TSlots> = TSlots extends Record<string, any> ? {
255
334
  slots?: Partial<TSlots>;
256
335
  } : {};
257
- export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots> = ((props: StripInternalMarkers<Omit<TCombined, EventNames<TCombined>>> & EventHandlers<TCombined> & SlotProps<TSlots> & JSX.IntrinsicAttributes & ComponentAttributeExtensions & {
336
+ /**
337
+ * Sync binding type - used at JSX level to enable two-way binding
338
+ * The JSX runtime transforms sync into value + onUpdate:value
339
+ */
340
+ type SyncBinding<T> = [object, string] | (() => T);
341
+ /**
342
+ * Sync props - if the component has a 'value' prop, allow 'sync' binding
343
+ */
344
+ type SyncProps<TCombined> = 'value' extends keyof TCombined ? {
345
+ sync?: SyncBinding<TCombined['value']>;
346
+ } : {};
347
+ export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots> = ((props: StripInternalMarkers<Omit<TCombined, EventNames<TCombined>>> & EventHandlers<TCombined> & SlotProps<TSlots> & SyncProps<TCombined> & ExternalModelProps<TCombined> & JSX.IntrinsicAttributes & ComponentAttributeExtensions & {
258
348
  ref?: Ref<TRef>;
259
349
  children?: any;
260
350
  }) => JSXElement) & {
@@ -281,7 +371,7 @@ export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots
281
371
  * ```tsx
282
372
  * type CardProps = DefineProp<"title", string> & DefineSlot<"header">;
283
373
  *
284
- * export const Card = defineComponent<CardProps>((ctx) => {
374
+ * export const Card = component<CardProps>((ctx) => {
285
375
  * const { title } = ctx.props;
286
376
  * const { slots } = ctx;
287
377
  *
@@ -294,6 +384,5 @@ export type ComponentFactory<TCombined extends Record<string, any>, TRef, TSlots
294
384
  * });
295
385
  * ```
296
386
  */
297
- export declare function defineComponent<TCombined extends Record<string, any> = {}, TRef = ExtractExposed<TCombined>, TSlots = ExtractSlots<TCombined>>(setup: (ctx: ComponentSetupContext<PlatformElement, StripInternalMarkers<TCombined>, TCombined, TRef, TSlots>) => ViewFn | Promise<ViewFn>, options?: ComponentOptions): ComponentFactory<TCombined, TRef, TSlots>;
298
- export {};
387
+ export declare function component<TCombined extends Record<string, any> = {}, TRef = ExtractExposed<TCombined>, TSlots = ExtractSlots<TCombined>>(setup: (ctx: ComponentSetupContext<PlatformElement, StripInternalMarkers<TCombined>, TCombined, TRef, TSlots>) => ViewFn | Promise<ViewFn>, options?: ComponentOptions): ComponentFactory<TCombined, TRef, TSlots>;
299
388
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ComponentFactory } from './component.js';
2
+ /**
3
+ * Creates a compound component by attaching sub-components as static properties.
4
+ *
5
+ * This enables the pattern of `Parent.Child` components (e.g., `Menu.Item`, `Card.Body`)
6
+ * while preserving full TypeScript type inference for both the parent and children.
7
+ *
8
+ * @param main - The main/parent component factory
9
+ * @param sub - An object containing sub-components to attach
10
+ * @returns The main component with sub-components attached as static properties
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // Define individual components
15
+ * const _Menu = component<MenuProps>(ctx => { ... });
16
+ * const _MenuItem = component<MenuItemProps>(ctx => { ... });
17
+ * const _MenuTitle = component<MenuTitleProps>(ctx => { ... });
18
+ *
19
+ * // Create compound component
20
+ * export const Menu = compound(_Menu, {
21
+ * Item: _MenuItem,
22
+ * Title: _MenuTitle,
23
+ * });
24
+ *
25
+ * // Usage in JSX
26
+ * <Menu>
27
+ * <Menu.Title>Navigation</Menu.Title>
28
+ * <Menu.Item value="home">Home</Menu.Item>
29
+ * <Menu.Item value="about">About</Menu.Item>
30
+ * </Menu>
31
+ * ```
32
+ */
33
+ export declare function compound<TMain extends ComponentFactory<any, any, any>, TSub extends Record<string, ComponentFactory<any, any, any>>>(main: TMain, sub: TSub): TMain & TSub;
34
+ //# sourceMappingURL=compound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compound.d.ts","sourceRoot":"","sources":["../src/compound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,QAAQ,CACpB,KAAK,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7C,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAC9D,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,CAEtC"}
@@ -1,3 +1,4 @@
1
+ import { type InjectableFunction } from "./injectable.js";
1
2
  import { InstanceLifetimes, guid } from "../models/index.js";
2
3
  export declare class SubscriptionHandler {
3
4
  private unsubs;
@@ -9,9 +10,9 @@ export interface SetupFactoryContext {
9
10
  subscriptions: SubscriptionHandler;
10
11
  overrideDispose(onDispose: (fn: () => void) => void): void;
11
12
  }
12
- export declare function defineFactory<InferReturnSetup>(setup: (ctx: SetupFactoryContext, ...args: any) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): () => InferReturnSetup & {
13
+ export declare function defineFactory<InferReturnSetup>(setup: (ctx: SetupFactoryContext, ...args: any) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): InjectableFunction<InferReturnSetup & {
13
14
  dispose?: () => void;
14
- };
15
+ }>;
15
16
  export declare function defineFactory<InferReturnSetup, T1>(setup: (ctx: SetupFactoryContext, param1: T1) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): (param1: T1) => InferReturnSetup;
16
17
  export declare function defineFactory<InferReturnSetup, T1, T2>(setup: (ctx: SetupFactoryContext, param1: T1, param2: T2) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: string): (param1: T1, param2: T2) => InferReturnSetup;
17
18
  export declare function defineFactory<InferReturnSetup, T1, T2, T3>(setup: (ctx: SetupFactoryContext, param1: T1, param2: T2, param3: T3) => InferReturnSetup, lifetime: InstanceLifetimes, typeIdentifier?: guid): (param1: T1, param2: T2, param3: T3) => InferReturnSetup;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/di/factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/di/factory.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,83 @@
1
- export declare function inject<T>(token: any): T | undefined;
1
+ import type { AppContext } from "../app-types.js";
2
2
  /**
3
- * Inject the App instance (useful for plugins)
3
+ * Injectable function type with metadata
4
4
  */
5
- export declare function injectApp(): unknown;
6
- export declare function provide<T>(token: any, value: T): void;
7
- export declare function defineInjectable<T>(factory: () => T): () => any;
8
- export declare function defineProvide<T>(useFn: () => T): T;
5
+ export interface InjectableFunction<T> {
6
+ (): T;
7
+ _factory: () => T;
8
+ _token: symbol;
9
+ }
10
+ /**
11
+ * Define an injectable service/value that can be provided at app or component level.
12
+ *
13
+ * The returned function can be called to get the current instance:
14
+ * - If provided at component level via `defineProvide()`, returns that instance
15
+ * - If provided at app level via `app.defineProvide()`, returns that instance
16
+ * - Otherwise falls back to a global singleton created by the factory
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Define a service
21
+ * const useApiConfig = defineInjectable(() => ({
22
+ * baseUrl: 'https://api.example.com'
23
+ * }));
24
+ *
25
+ * // Use it in any component - gets nearest provided instance or global singleton
26
+ * const config = useApiConfig();
27
+ * console.log(config.baseUrl);
28
+ * ```
29
+ */
30
+ export declare function defineInjectable<T>(factory: () => T): InjectableFunction<T>;
31
+ /**
32
+ * Provide a new instance of an injectable at the current component level.
33
+ * Child components will receive this instance when calling the injectable function.
34
+ *
35
+ * @param useFn - The injectable function created by defineInjectable
36
+ * @param factory - Optional custom factory to create the instance (overrides default)
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * const useApiConfig = defineInjectable(() => ({ baseUrl: 'https://api.example.com' }));
41
+ *
42
+ * const MyComponent = component(() => {
43
+ * // Create and provide a new instance for this subtree
44
+ * const config = defineProvide(useApiConfig);
45
+ * config.baseUrl = 'https://custom.api.com';
46
+ *
47
+ * return () => <ChildComponent />;
48
+ * });
49
+ *
50
+ * // Or provide a pre-constructed instance:
51
+ * const MyComponent2 = component(() => {
52
+ * const customService = createMyService({ custom: 'options' });
53
+ * defineProvide(useMyService, () => customService);
54
+ *
55
+ * return () => <ChildComponent />;
56
+ * });
57
+ * ```
58
+ */
59
+ export declare function defineProvide<T>(useFn: InjectableFunction<T>, factory?: () => T): T;
60
+ /**
61
+ * Get the current AppContext from the component tree.
62
+ * The AppContext is provided at the root component level during mount/hydrate/SSR.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const appContext = useAppContext();
67
+ * console.log(appContext?.app);
68
+ * ```
69
+ */
70
+ export declare function useAppContext(): AppContext | null;
71
+ /**
72
+ * Get the AppContext token.
73
+ * Used by renderers to provide the AppContext at the root component level.
74
+ * @internal
75
+ */
76
+ export declare function getAppContextToken(): symbol;
77
+ /**
78
+ * Provide the AppContext on a component's provides Map.
79
+ * Called by the renderer for the ROOT component only.
80
+ * @internal
81
+ */
82
+ export declare function provideAppContext(ctx: any, appContext: AppContext): void;
9
83
  //# sourceMappingURL=injectable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"injectable.d.ts","sourceRoot":"","sources":["../../src/di/injectable.ts"],"names":[],"mappings":"AAOA,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,GAAG,SAAS,CAyBnD;AAiBD;;GAEG;AACH,wBAAgB,SAAS,YAExB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,QAW9C;AAID,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,aAmBnD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAWlD"}
1
+ {"version":3,"file":"injectable.d.ts","sourceRoot":"","sources":["../../src/di/injectable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6DlD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC;IACN,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAuB3E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAWnF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,UAAU,GAAG,IAAI,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAaxE"}