@jay-framework/fullstack-component 0.8.0 → 0.9.0

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 (3) hide show
  1. package/README.md +327 -19
  2. package/dist/index.d.ts +69 -145
  3. package/package.json +5 -5
package/README.md CHANGED
@@ -26,16 +26,117 @@ The `@jay-framework/fullstack-component` package provides a fluent builder API f
26
26
 
27
27
  ## Rendering Phases
28
28
 
29
- - **Slow Rendering**: Use for static data that doesn't change often
30
- - **Fast Rendering**: Use for dynamic data that can be cached
31
- - **Partial Renders**: Only update the parts of the view state that change
32
- - **Carry Forward**: Pass data between render phases to avoid recomputation
29
+ Jay Stack components support three rendering phases, each optimized for different data lifecycles:
33
30
 
34
- | Rendering Phase | Rendered Where | When Rendered | Carry Forward |
35
- | ---------------------- | -------------- | ------------------------------ | ------------------ |
36
- | Slowly Changing Render | SSR | Build time or data change time | Slowly Fast |
37
- | Fast Changing Render | SSR | Page serving | Fast Interactive |
38
- | Interactive Render | CSR | User interaction | - |
31
+ | Rendering Phase | Rendered Where | When Rendered | Use Case |
32
+ | ------------------ | -------------- | ------------------------------ | --------------------------------- |
33
+ | **Slow (Static)** | SSR | Build time or data change time | Product names, descriptions, SKUs |
34
+ | **Fast (Dynamic)** | SSR | Page serving (per request) | Inventory, pricing, availability |
35
+ | **Interactive** | CSR | User interaction | Cart count, user selections |
36
+
37
+ ### Phase-Based Type Validation
38
+
39
+ Jay Stack automatically generates **phase-specific ViewState types** from your contracts, ensuring that each render function can only return properties appropriate for its phase. This prevents accidentally including fast-changing data in slow renders or slow data in fast renders.
40
+
41
+ **Benefits:**
42
+
43
+ - 🛡️ **Compile-time safety**: TypeScript catches phase violations before deployment
44
+ - 📝 **Self-documenting**: The contract explicitly shows which data is static vs dynamic
45
+ - ⚡ **Performance**: Ensures optimal caching and rendering strategies
46
+ - 🎯 **Intent clarity**: Makes data lifecycle explicit in the contract
47
+
48
+ **Example:**
49
+
50
+ ````typescript
51
+ // TypeScript automatically knows which properties are valid in each phase
52
+ .withSlowlyRender(async () => {
53
+ return partialRender({
54
+ productName: 'Widget', // ✅ Allowed (slow phase)
55
+ price: 29.99, // ❌ TypeScript Error: Not in SlowViewState
56
+ }, {});
57
+ })
58
+ .withFastRender(async () => {
59
+ return partialRender({
60
+ price: 29.99, // ✅ Allowed (fast phase)
61
+ productName: 'Widget', // ❌ TypeScript Error: Not in FastViewState
62
+ }, {});
63
+ })
64
+
65
+ ### Specifying Phases in Contracts
66
+
67
+ You can annotate your contract properties with the `phase` attribute to control when data is rendered:
68
+
69
+ #### Jay HTML Contract
70
+
71
+ ```html
72
+ <html>
73
+ <head>
74
+ <script type="application/yaml-jay">
75
+ data:
76
+ # Static data - rendered at build time
77
+ - {tag: productName, dataType: string, phase: slow}
78
+ - {tag: description, dataType: string, phase: slow}
79
+ - {tag: sku, dataType: string, phase: slow}
80
+
81
+ # Dynamic data - rendered per request
82
+ - {tag: price, dataType: number, phase: fast}
83
+ - {tag: inStock, dataType: boolean, phase: fast}
84
+
85
+ # No phase specified = defaults to 'slow'
86
+ - {tag: category, dataType: string}
87
+ </script>
88
+ </head>
89
+ <body>
90
+ <div>
91
+ <h1>{productName}</h1>
92
+ <p>{description}</p>
93
+ <p>Price: ${price}</p>
94
+ </div>
95
+ </body>
96
+ </html>
97
+ ````
98
+
99
+ #### Jay Contract (Headless)
100
+
101
+ ```yaml
102
+ name: product-contract
103
+ tags:
104
+ # Static product information
105
+ - tag: productName
106
+ dataType: string
107
+ phase: slow
108
+
109
+ - tag: description
110
+ dataType: string
111
+ phase: slow
112
+
113
+ - tag: sku
114
+ dataType: string
115
+ phase: slow
116
+
117
+ # Dynamic pricing and availability
118
+ - tag: price
119
+ dataType: number
120
+ phase: fast
121
+
122
+ - tag: inStock
123
+ dataType: boolean
124
+ phase: fast
125
+
126
+ # Interactive elements go in refs, not data
127
+ interactive:
128
+ - tag: addToCartButton
129
+ elementType: [button]
130
+ ```
131
+
132
+ **Phase Rules:**
133
+
134
+ - `slow`: Value is set at build time (default if not specified)
135
+ - `fast`: Value is set at request time
136
+ - `fast+interactive`: Value is set at request time and can be modified on the client
137
+ - `interactive` tags are implicitly `fast+interactive` and go into the `Refs` type, not `ViewState`
138
+ - For nested objects, the parent's phase serves as the default for children
139
+ - Array children cannot have an earlier phase than their parent array
39
140
 
40
141
  ## Installation
41
142
 
@@ -57,12 +158,15 @@ For headless components, create a Jay Contract file (`my-contract.jay-contract`)
57
158
  <head>
58
159
  <script type="application/yaml-jay">
59
160
  data:
60
- id: string
61
- name: string
62
- age: number
63
- address: string
64
- stars: number
65
- rating: number
161
+ # User profile data - slow changing
162
+ - {tag: id, dataType: string, phase: slow}
163
+ - {tag: name, dataType: string, phase: slow}
164
+ - {tag: age, dataType: number, phase: slow}
165
+ - {tag: address, dataType: string, phase: slow}
166
+
167
+ # User ratings - fast changing
168
+ - {tag: stars, dataType: number, phase: fast}
169
+ - {tag: rating, dataType: number, phase: fast}
66
170
  </script>
67
171
  </head>
68
172
  <body>
@@ -84,18 +188,31 @@ For headless components, create a Jay Contract file (`my-contract.jay-contract`)
84
188
  ```yaml
85
189
  name: my-contract
86
190
  tags:
191
+ # User profile data - slow changing
87
192
  - tag: id
88
193
  dataType: string
194
+ phase: slow
195
+
89
196
  - tag: name
90
197
  dataType: string
198
+ phase: slow
199
+
91
200
  - tag: age
92
201
  dataType: number
202
+ phase: slow
203
+
93
204
  - tag: address
94
205
  dataType: string
206
+ phase: slow
207
+
208
+ # User ratings - fast changing
95
209
  - tag: stars
96
210
  dataType: number
211
+ phase: fast
212
+
97
213
  - tag: rating
98
214
  dataType: number
215
+ phase: fast
99
216
  ```
100
217
 
101
218
  ### 2. Generate Definition Files
@@ -106,6 +223,47 @@ Run the Jay CLI to generate TypeScript definition files from your Jay HTML or co
106
223
  jay-cli definitions <path to your sources>
107
224
  ```
108
225
 
226
+ This will generate a `.d.ts` file with:
227
+
228
+ - **Full ViewState**: All properties from your contract
229
+ - **Phase-specific ViewStates**: Separate types for `Slow`, `Fast`, and `Interactive` phases
230
+ - **Contract type**: A `JayContract` type that includes all ViewState types
231
+
232
+ **Generated Types Example** (`my-component.jay-html.d.ts`):
233
+
234
+ ```typescript
235
+ import { JayContract } from '@jay-framework/fullstack-component';
236
+
237
+ // Full ViewState - all properties
238
+ export interface MyComponentViewState {
239
+ id: string;
240
+ name: string;
241
+ age: number;
242
+ address: string;
243
+ stars: number;
244
+ rating: number;
245
+ }
246
+
247
+ export interface MyComponentElementRefs {}
248
+
249
+ // Phase-specific ViewStates (automatically generated)
250
+ export type MyComponentSlowViewState = Pick<
251
+ MyComponentViewState,
252
+ 'id' | 'name' | 'age' | 'address'
253
+ >;
254
+ export type MyComponentFastViewState = Pick<MyComponentViewState, 'stars' | 'rating'>;
255
+ export type MyComponentInteractiveViewState = {};
256
+
257
+ // Contract type with all ViewState types
258
+ export type MyComponentContract = JayContract<
259
+ MyComponentViewState,
260
+ MyComponentElementRefs,
261
+ MyComponentSlowViewState,
262
+ MyComponentFastViewState,
263
+ MyComponentInteractiveViewState
264
+ >;
265
+ ```
266
+
109
267
  ### 3. Build Your Full-Stack Component
110
268
 
111
269
  ```typescript
@@ -258,16 +416,24 @@ After props, the function receives the services declared using `withServices`.
258
416
 
259
417
  The function should return one of:
260
418
 
261
- - `PartialRender<ViewState, CarryForward>` - for partial rendering
419
+ - `PartialRender<SlowViewState, CarryForward>` - for partial rendering
262
420
  - `ServerError5xx` - for server errors
263
421
  - `Redirect3xx` - for semi-static redirects
264
422
 
423
+ **Type Safety:** TypeScript automatically validates that `partialRender` only receives properties from `SlowViewState` (as defined by `phase: slow` in your contract).
424
+
265
425
  ```typescript
266
426
  makeJayStackComponent<MyComponentContract>()
267
427
  .withServices(DATABASE_SERVICE)
268
428
  .withSlowlyRender(async (props, database: Database) => {
269
429
  const data = await database.getData();
270
- return partialRender({ someKey: data.value }, { carryForwardKey: data.id });
430
+ return partialRender(
431
+ {
432
+ productName: data.name, // ✅ OK if phase: slow
433
+ // price: data.price, // ❌ TypeScript error if phase: fast
434
+ },
435
+ { carryForwardKey: data.id },
436
+ );
271
437
  });
272
438
  ```
273
439
 
@@ -284,17 +450,26 @@ After that, the function receives the services declared using `withServices`.
284
450
 
285
451
  The function should return one of:
286
452
 
287
- - `PartialRender<ViewState, CarryForward>` - for partial rendering
453
+ - `PartialRender<FastViewState, CarryForward>` - for partial rendering
288
454
  - `ServerError5xx` - for server errors
289
455
  - `ClientError4xx` - for client errors
290
456
  - `Redirect3xx` - for dynamic redirects
291
457
 
458
+ **Type Safety:** TypeScript automatically validates that `partialRender` only receives properties from `FastViewState` (as defined by `phase: fast` in your contract).
459
+
292
460
  ```typescript
293
461
  makeJayStackComponent<MyComponentContract>()
294
462
  .withServices(INVENTORY_SERVICE)
295
463
  .withFastRender(async (props, carryForward, inventory: InventoryService) => {
296
464
  const status = await inventory.getStatus(carryForward.productId);
297
- return partialRender({ inStock: status.available > 0 }, { carryForwardKey: 'data' });
465
+ return partialRender(
466
+ {
467
+ inStock: status.available > 0, // ✅ OK if phase: fast
468
+ price: 29.99, // ✅ OK if phase: fast
469
+ // productName: 'Widget', // ❌ TypeScript error if phase: slow
470
+ },
471
+ { carryForwardKey: 'data' },
472
+ );
298
473
  });
299
474
  ```
300
475
 
@@ -357,6 +532,139 @@ Creates a redirect response.
357
532
  return redirect3xx(301, 'http://some.domain.com');
358
533
  ```
359
534
 
535
+ ## Complete Example with Phase Validation
536
+
537
+ Here's a complete example showing how phase annotations in your contract provide compile-time type safety:
538
+
539
+ ### 1. Define Contract with Phases
540
+
541
+ **`user-profile.jay-html`**:
542
+
543
+ ```html
544
+ <html>
545
+ <head>
546
+ <script type="application/yaml-jay">
547
+ data:
548
+ # Static user info - rendered at build time
549
+ - {tag: userId, dataType: string, phase: slow}
550
+ - {tag: username, dataType: string, phase: slow}
551
+ - {tag: bio, dataType: string, phase: slow}
552
+
553
+ # Dynamic activity - rendered per request
554
+ - {tag: lastSeen, dataType: string, phase: fast}
555
+ - {tag: isOnline, dataType: boolean, phase: fast}
556
+ - {tag: followerCount, dataType: number, phase: fast}
557
+ </script>
558
+ </head>
559
+ <body>
560
+ <div>
561
+ <h1>{username}</h1>
562
+ <p>{bio}</p>
563
+ <p>Followers: {followerCount}</p>
564
+ <span>{isOnline ? 'Online' : 'Last seen: ' + lastSeen}</span>
565
+ </div>
566
+ </body>
567
+ </html>
568
+ ```
569
+
570
+ ### 2. Generated Types
571
+
572
+ **`user-profile.jay-html.d.ts`** (auto-generated):
573
+
574
+ ```typescript
575
+ export interface UserProfileViewState {
576
+ userId: string;
577
+ username: string;
578
+ bio: string;
579
+ lastSeen: string;
580
+ isOnline: boolean;
581
+ followerCount: number;
582
+ }
583
+
584
+ export interface UserProfileElementRefs {}
585
+
586
+ // Phase-specific types - automatically generated
587
+ export type UserProfileSlowViewState = Pick<UserProfileViewState, 'userId' | 'username' | 'bio'>;
588
+ export type UserProfileFastViewState = Pick<
589
+ UserProfileViewState,
590
+ 'lastSeen' | 'isOnline' | 'followerCount'
591
+ >;
592
+ export type UserProfileInteractiveViewState = {};
593
+
594
+ export type UserProfileContract = JayContract<
595
+ UserProfileViewState,
596
+ UserProfileElementRefs,
597
+ UserProfileSlowViewState,
598
+ UserProfileFastViewState,
599
+ UserProfileInteractiveViewState
600
+ >;
601
+ ```
602
+
603
+ ### 3. Implement with Type Safety
604
+
605
+ ```typescript
606
+ import {
607
+ makeJayStackComponent,
608
+ partialRender,
609
+ createJayService,
610
+ } from '@jay-framework/fullstack-component';
611
+ import { UserProfileContract } from './user-profile.jay-html';
612
+
613
+ interface UserDatabase {
614
+ getUser(id: string): Promise<{ id: string; name: string; bio: string }>;
615
+ }
616
+ const USER_DB = createJayService<UserDatabase>('UserDB');
617
+
618
+ interface ActivityService {
619
+ getUserActivity(id: string): Promise<{ lastSeen: string; isOnline: boolean; followers: number }>;
620
+ }
621
+ const ACTIVITY_SERVICE = createJayService<ActivityService>('Activity');
622
+
623
+ export const userProfile = makeJayStackComponent<UserProfileContract>()
624
+ .withProps()
625
+ .withServices(USER_DB, ACTIVITY_SERVICE)
626
+ .withSlowlyRender(async (props, userDb) => {
627
+ // ✅ TypeScript knows only slow properties are allowed
628
+ const user = await userDb.getUser('123');
629
+ return partialRender(
630
+ {
631
+ userId: user.id,
632
+ username: user.name,
633
+ bio: user.bio,
634
+ // followerCount: 100, // ❌ TypeScript Error: Property 'followerCount'
635
+ // does not exist in type 'UserProfileSlowViewState'
636
+ },
637
+ { userId: user.id },
638
+ );
639
+ })
640
+ .withFastRender(async (props, carryForward, userDb, activityService) => {
641
+ // ✅ TypeScript knows only fast properties are allowed
642
+ const activity = await activityService.getUserActivity(carryForward.userId);
643
+ return partialRender(
644
+ {
645
+ lastSeen: activity.lastSeen,
646
+ isOnline: activity.isOnline,
647
+ followerCount: activity.followers,
648
+ // username: 'John', // ❌ TypeScript Error: Property 'username'
649
+ // does not exist in type 'UserProfileFastViewState'
650
+ },
651
+ {},
652
+ );
653
+ })
654
+ .withInteractive((props, refs) => {
655
+ return {
656
+ render: () => ({}),
657
+ };
658
+ });
659
+ ```
660
+
661
+ **Key Benefits:**
662
+
663
+ - 🔒 **Compile-time guarantees**: TypeScript prevents phase violations before deployment
664
+ - 📊 **Clear separation**: Slow (static) data is visually separated from fast (dynamic) data
665
+ - ⚡ **Optimal performance**: Framework can cache slow data aggressively
666
+ - 🧹 **No boilerplate**: No manual type annotations needed in render functions
667
+
360
668
  ## Advanced Examples
361
669
 
362
670
  ### A Product Page with URL Parameters
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { JayComponentCore, ContextMarkers, ComponentConstructor } from '@jay-framework/component';
2
- import { JayContract, ExtractViewState, ExtractRefs } from '@jay-framework/runtime';
2
+ import { JayContract, ExtractRefs, ExtractSlowViewState, ExtractFastViewState, ExtractInteractiveViewState } from '@jay-framework/runtime';
3
+ export { ExtractFastViewState, ExtractInteractiveViewState, ExtractRefs, ExtractSlowViewState, ExtractViewState, JayContract } from '@jay-framework/runtime';
3
4
  import { Getter, Setter } from '@jay-framework/reactive';
4
5
 
5
6
  /**
@@ -57,17 +58,17 @@ type AnySlowlyRenderResult = SlowlyRenderResult<object, object>;
57
58
  type FastRenderResult<ViewState extends object, CarryForward> = PartialRender<ViewState, CarryForward> | ServerError5xx | ClientError4xx | Redirect3xx;
58
59
  type AnyFastRenderResult = FastRenderResult<object, object>;
59
60
  type LoadParams<Services, Params extends UrlParams> = (contexts: Services) => AsyncIterable<Params[]>;
60
- type RenderSlowly<Services extends Array<object>, PropsT extends object, StaticViewState extends object, SlowlyCarryForward> = (props: PropsT, ...services: Services) => Promise<SlowlyRenderResult<StaticViewState, SlowlyCarryForward>>;
61
- type RenderFast<Services extends Array<object>, PropsT extends object, DynamicViewState extends object, FastCarryForward> = (props: PropsT, ...services: Services) => Promise<FastRenderResult<DynamicViewState, FastCarryForward>>;
62
- interface JayStackComponentDefinition<StaticViewState extends object, ViewState extends object, Refs extends object, Services extends Array<any>, Contexts extends Array<any>, PropsT extends object, Params extends UrlParams, CompCore extends JayComponentCore<PropsT, ViewState>> {
61
+ type RenderSlowly<Services extends Array<object>, PropsT extends object, SlowViewState extends object, SlowlyCarryForward> = (props: PropsT, ...services: Services) => Promise<SlowlyRenderResult<SlowViewState, SlowlyCarryForward>>;
62
+ type RenderFast<Services extends Array<object>, PropsT extends object, FastViewState extends object, FastCarryForward> = (props: PropsT, ...services: Services) => Promise<FastRenderResult<FastViewState, FastCarryForward>>;
63
+ interface JayStackComponentDefinition<Refs extends object, SlowVS extends object, FastVS extends object, InteractiveVS extends object, Services extends Array<any>, Contexts extends Array<any>, PropsT extends object, Params extends UrlParams, CompCore extends JayComponentCore<PropsT, InteractiveVS>> {
63
64
  services: ServiceMarkers<Services>;
64
65
  contexts: ContextMarkers<Contexts>;
65
66
  loadParams: LoadParams<Services, Params>;
66
- slowlyRender: RenderSlowly<Services, PropsT, StaticViewState, any>;
67
- fastRender: RenderFast<Services, PropsT, ViewState, any>;
68
- comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>;
67
+ slowlyRender: RenderSlowly<Services, PropsT, SlowVS, any>;
68
+ fastRender: RenderFast<Services, PropsT, FastVS, any>;
69
+ comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>;
69
70
  }
70
- type AnyJayStackComponentDefinition = JayStackComponentDefinition<object, object, object, object[], object[], object, UrlParams, any>;
71
+ type AnyJayStackComponentDefinition = JayStackComponentDefinition<object, object, object, object, object[], object[], object, UrlParams, any>;
71
72
 
72
73
  declare function serverError5xx(status: number): ServerError5xx;
73
74
  declare function clientError4xx(status: number): ClientError4xx;
@@ -79,160 +80,83 @@ type BuilderStates = 'Props' | 'Services' | 'Contexts' | 'UrlLoader' | 'SlowlyRe
79
80
  type Signals<T extends object> = {
80
81
  [K in keyof T]: K extends string ? [Getter<T[K]>, Setter<T[K]>] : T[K];
81
82
  };
82
- type Builder<State extends BuilderStates, StaticViewState extends object, ViewState extends object, Refs extends object, Services extends Array<any>, Contexts extends Array<any>, PropsT extends object, Params extends UrlParams, CompCore extends JayComponentCore<PropsT, ViewState>> = State extends 'Props' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
83
- withProps<NewPropsT extends object>(): Builder<'Services', StaticViewState, ViewState, Refs, Services, Contexts, NewPropsT, Params, JayComponentCore<NewPropsT, ViewState>>;
84
- } : State extends 'Services' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
85
- withServices<NewServices extends Array<any>>(...serviceMarkers: ServiceMarkers<NewServices>): Builder<'Contexts', StaticViewState, ViewState, Refs, NewServices, Contexts, PropsT, Params, CompCore>;
86
- withContexts<NewContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewContexts>): Builder<'UrlLoader', StaticViewState, ViewState, Refs, Services, NewContexts, PropsT, Params, CompCore>;
87
- withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<Services, NewParams>): Builder<'SlowlyRender', StaticViewState, ViewState, Refs, Services, Contexts, PropsT & NewParams, NewParams, CompCore>;
88
- withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
83
+ type Builder<State extends BuilderStates, Refs extends object, SlowVS extends object, FastVS extends object, InteractiveVS extends object, Services extends Array<any>, Contexts extends Array<any>, PropsT extends object, Params extends UrlParams, CompCore extends JayComponentCore<PropsT, InteractiveVS>> = State extends 'Props' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
84
+ withProps<NewPropsT extends object>(): Builder<'Services', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, NewPropsT, Params, JayComponentCore<NewPropsT, InteractiveVS>>;
85
+ } : State extends 'Services' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
86
+ withServices<NewServices extends Array<any>>(...serviceMarkers: ServiceMarkers<NewServices>): Builder<'Contexts', Refs, SlowVS, FastVS, InteractiveVS, NewServices, Contexts, PropsT, Params, CompCore>;
87
+ withContexts<NewContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewContexts>): Builder<'UrlLoader', Refs, SlowVS, FastVS, InteractiveVS, Services, NewContexts, PropsT, Params, CompCore>;
88
+ withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<Services, NewParams>): Builder<'SlowlyRender', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT & NewParams, NewParams, CompCore>;
89
+ withSlowlyRender<NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, SlowVS, NewCarryForward>): Builder<'FastRender', Refs, SlowVS, FastVS, InteractiveVS, [
89
90
  NewCarryForward,
90
91
  ...Services
91
- ], Contexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
92
- withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, Services, [
92
+ ], Contexts, PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
93
+ withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, FastVS, NewCarryForward>): Builder<'InteractiveRender', Refs, SlowVS, FastVS, InteractiveVS, Services, [
93
94
  Signals<NewCarryForward>,
94
95
  ...Contexts
95
- ], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
96
- withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
97
- } : State extends 'Contexts' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
98
- withContexts<NewContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewContexts>): Builder<'UrlLoader', StaticViewState, ViewState, Refs, Services, NewContexts, PropsT, Params, CompCore>;
99
- withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<Services, NewParams>): Builder<'SlowlyRender', StaticViewState, ViewState, Refs, Services, Contexts, PropsT & NewParams, NewParams, CompCore>;
100
- withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
96
+ ], PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
97
+ withInteractive(comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>): Builder<'Done', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
98
+ } : State extends 'Contexts' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
99
+ withContexts<NewContexts extends Array<any>>(...contextMarkers: ContextMarkers<NewContexts>): Builder<'UrlLoader', Refs, SlowVS, FastVS, InteractiveVS, Services, NewContexts, PropsT, Params, CompCore>;
100
+ withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<Services, NewParams>): Builder<'SlowlyRender', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT & NewParams, NewParams, CompCore>;
101
+ withSlowlyRender<NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, SlowVS, NewCarryForward>): Builder<'FastRender', Refs, SlowVS, FastVS, InteractiveVS, [
101
102
  NewCarryForward,
102
103
  ...Services
103
- ], Contexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
104
- withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, Services, [
104
+ ], Contexts, PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
105
+ withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, FastVS, NewCarryForward>): Builder<'InteractiveRender', Refs, SlowVS, FastVS, InteractiveVS, Services, [
105
106
  Signals<NewCarryForward>,
106
107
  ...Contexts
107
- ], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
108
- withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
109
- } : State extends 'UrlLoader' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
110
- withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<Services, NewParams>): Builder<'SlowlyRender', StaticViewState, ViewState, Refs, Services, Contexts, PropsT & NewParams, NewParams, CompCore>;
111
- withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
108
+ ], PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
109
+ withInteractive(comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>): Builder<'Done', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
110
+ } : State extends 'UrlLoader' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
111
+ withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<Services, NewParams>): Builder<'SlowlyRender', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT & NewParams, NewParams, CompCore>;
112
+ withSlowlyRender<NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, SlowVS, NewCarryForward>): Builder<'FastRender', Refs, SlowVS, FastVS, InteractiveVS, [
112
113
  NewCarryForward,
113
114
  ...Services
114
- ], Contexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
115
- withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, Services, [
115
+ ], Contexts, PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
116
+ withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, FastVS, NewCarryForward>): Builder<'InteractiveRender', Refs, SlowVS, FastVS, InteractiveVS, Services, [
116
117
  Signals<NewCarryForward>,
117
118
  ...Contexts
118
- ], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
119
- withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
120
- } : State extends 'SlowlyRender' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
121
- withSlowlyRender<NewStaticViewState extends Partial<ViewState>, NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, NewStaticViewState, NewCarryForward>): Builder<'FastRender', NewStaticViewState, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>, Refs, [
119
+ ], PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
120
+ withInteractive(comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>): Builder<'Done', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
121
+ } : State extends 'SlowlyRender' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
122
+ withSlowlyRender<NewCarryForward extends object>(slowlyRender: RenderSlowly<Services, PropsT, SlowVS, NewCarryForward>): Builder<'FastRender', Refs, SlowVS, FastVS, InteractiveVS, [
122
123
  NewCarryForward,
123
124
  ...Services
124
- ], Contexts, PropsT, Params, JayComponentCore<PropsT, Partial<ViewState> & Omit<ViewState, keyof NewStaticViewState>>>;
125
- withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, Services, [
125
+ ], Contexts, PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
126
+ withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, FastVS, NewCarryForward>): Builder<'InteractiveRender', Refs, SlowVS, FastVS, InteractiveVS, Services, [
126
127
  Signals<NewCarryForward>,
127
128
  ...Contexts
128
- ], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
129
- withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
130
- } : State extends 'FastRender' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
131
- withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, ViewState, NewCarryForward>): Builder<'InteractiveRender', StaticViewState, Partial<ViewState>, Refs, Services, [
129
+ ], PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
130
+ withInteractive(comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>): Builder<'Done', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
131
+ } : State extends 'FastRender' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
132
+ withFastRender<NewCarryForward extends object>(fastRender: RenderFast<Services, PropsT, FastVS, NewCarryForward>): Builder<'InteractiveRender', Refs, SlowVS, FastVS, InteractiveVS, Services, [
132
133
  Signals<NewCarryForward>,
133
134
  ...Contexts
134
- ], PropsT, Params, JayComponentCore<PropsT, Partial<ViewState>>>;
135
- withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
136
- } : State extends 'InteractiveRender' ? JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore> & {
137
- withInteractive(comp: ComponentConstructor<PropsT, Refs, ViewState, Contexts, CompCore>): Builder<'Done', StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
138
- } : JayStackComponentDefinition<StaticViewState, ViewState, Refs, Services, Contexts, PropsT, Params, CompCore>;
139
- declare function makeJayStackComponent<Render extends JayContract<any, any>>(): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], {}, {}, JayComponentCore<object, ExtractViewState<Render>>> & {
140
- withProps<NewPropsT extends object>(): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
141
- withServices<NewServices extends any[]>(...serviceMarkers: ServiceMarkers<NewServices>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
142
- withContexts<NewContexts extends any[]>(...contextMarkers: ContextMarkers<NewContexts>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, NewContexts, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
143
- withLoadParams<NewParams extends UrlParams>(loadParams: LoadParams<NewServices, NewParams>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, NewContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
144
- withSlowlyRender<NewStaticViewState extends Partial<ExtractViewState<Render>>, NewCarryForward extends object>(slowlyRender: RenderSlowly<NewServices, NewPropsT & NewParams, NewStaticViewState, NewCarryForward>): JayStackComponentDefinition<NewStaticViewState, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, ExtractRefs<Render>, [NewCarryForward, ...NewServices], NewContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>> & {
145
- withFastRender<NewCarryForward_1 extends object>(fastRender: RenderFast<[NewCarryForward, ...NewServices], NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, NewCarryForward_1>): JayStackComponentDefinition<NewStaticViewState, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>, ExtractRefs<Render>, [NewCarryForward, ...NewServices], [Signals<NewCarryForward_1>, ...NewContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>> & {
146
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>, [Signals<NewCarryForward_1>, ...NewContexts], JayComponentCore<NewPropsT & NewParams, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>>): JayStackComponentDefinition<NewStaticViewState, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>, ExtractRefs<Render>, [NewCarryForward, ...NewServices], [Signals<NewCarryForward_1>, ...NewContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>>;
147
- };
148
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, NewContexts, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>): JayStackComponentDefinition<NewStaticViewState, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>, ExtractRefs<Render>, [NewCarryForward, ...NewServices], NewContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState>>>;
149
- };
150
- withFastRender<NewCarryForward_2 extends object>(fastRender: RenderFast<NewServices, NewPropsT & NewParams, ExtractViewState<Render>, NewCarryForward_2>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_2>, ...NewContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>>>> & {
151
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_2>, ...NewContexts], JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_2>, ...NewContexts], NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT & NewParams, Partial<ExtractViewState<Render>>>>;
152
- };
153
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams, ExtractRefs<Render>, ExtractViewState<Render>, NewContexts, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, NewContexts, NewPropsT & NewParams, NewParams, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
154
- };
155
- withSlowlyRender<NewStaticViewState_1 extends Partial<ExtractViewState<Render>>, NewCarryForward_3 extends object>(slowlyRender: RenderSlowly<NewServices, NewPropsT, NewStaticViewState_1, NewCarryForward_3>): JayStackComponentDefinition<NewStaticViewState_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServices], NewContexts, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>> & {
156
- withFastRender<NewCarryForward_4 extends object>(fastRender: RenderFast<[NewCarryForward_3, ...NewServices], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, NewCarryForward_4>): JayStackComponentDefinition<NewStaticViewState_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServices], [Signals<NewCarryForward_4>, ...NewContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>> & {
157
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>, [Signals<NewCarryForward_4>, ...NewContexts], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>>): JayStackComponentDefinition<NewStaticViewState_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServices], [Signals<NewCarryForward_4>, ...NewContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>>;
158
- };
159
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, NewContexts, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>): JayStackComponentDefinition<NewStaticViewState_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>, ExtractRefs<Render>, [NewCarryForward_3, ...NewServices], NewContexts, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_1>>>;
160
- };
161
- withFastRender<NewCarryForward_5 extends object>(fastRender: RenderFast<NewServices, NewPropsT, ExtractViewState<Render>, NewCarryForward_5>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_5>, ...NewContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
162
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_5>, ...NewContexts], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_5>, ...NewContexts], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
163
- };
164
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, NewContexts, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, NewContexts, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
165
- };
166
- withLoadParams<NewParams_1 extends UrlParams>(loadParams: LoadParams<NewServices, NewParams_1>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
167
- withSlowlyRender<NewStaticViewState_2 extends Partial<ExtractViewState<Render>>, NewCarryForward_6 extends object>(slowlyRender: RenderSlowly<NewServices, NewPropsT & NewParams_1, NewStaticViewState_2, NewCarryForward_6>): JayStackComponentDefinition<NewStaticViewState_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServices], [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>> & {
168
- withFastRender<NewCarryForward_7 extends object>(fastRender: RenderFast<[NewCarryForward_6, ...NewServices], NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, NewCarryForward_7>): JayStackComponentDefinition<NewStaticViewState_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServices], [Signals<NewCarryForward_7>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>> & {
169
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>, [Signals<NewCarryForward_7>], JayComponentCore<NewPropsT & NewParams_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>>): JayStackComponentDefinition<NewStaticViewState_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServices], [Signals<NewCarryForward_7>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>>;
170
- };
171
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, [], JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>): JayStackComponentDefinition<NewStaticViewState_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>, ExtractRefs<Render>, [NewCarryForward_6, ...NewServices], [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_2>>>;
172
- };
173
- withFastRender<NewCarryForward_8 extends object>(fastRender: RenderFast<NewServices, NewPropsT & NewParams_1, ExtractViewState<Render>, NewCarryForward_8>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_8>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>>>> & {
174
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_8>], JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_8>], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT & NewParams_1, Partial<ExtractViewState<Render>>>>;
175
- };
176
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_1, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, [], NewPropsT & NewParams_1, NewParams_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
177
- };
178
- withSlowlyRender<NewStaticViewState_3 extends Partial<ExtractViewState<Render>>, NewCarryForward_9 extends object>(slowlyRender: RenderSlowly<NewServices, NewPropsT, NewStaticViewState_3, NewCarryForward_9>): JayStackComponentDefinition<NewStaticViewState_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServices], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>> & {
179
- withFastRender<NewCarryForward_10 extends object>(fastRender: RenderFast<[NewCarryForward_9, ...NewServices], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, NewCarryForward_10>): JayStackComponentDefinition<NewStaticViewState_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServices], [Signals<NewCarryForward_10>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>> & {
180
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>, [Signals<NewCarryForward_10>], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>>): JayStackComponentDefinition<NewStaticViewState_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServices], [Signals<NewCarryForward_10>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>>;
181
- };
182
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, [], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>): JayStackComponentDefinition<NewStaticViewState_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>, ExtractRefs<Render>, [NewCarryForward_9, ...NewServices], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_3>>>;
183
- };
184
- withFastRender<NewCarryForward_11 extends object>(fastRender: RenderFast<NewServices, NewPropsT, ExtractViewState<Render>, NewCarryForward_11>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_11>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
185
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_11>], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, NewServices, [Signals<NewCarryForward_11>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
186
- };
187
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, NewServices, [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
188
- };
189
- withContexts<NewContexts_1 extends any[]>(...contextMarkers: ContextMarkers<NewContexts_1>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
190
- withLoadParams<NewParams_2 extends UrlParams>(loadParams: LoadParams<[], NewParams_2>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
191
- withSlowlyRender<NewStaticViewState_4 extends Partial<ExtractViewState<Render>>, NewCarryForward_12 extends object>(slowlyRender: RenderSlowly<[], NewPropsT & NewParams_2, NewStaticViewState_4, NewCarryForward_12>): JayStackComponentDefinition<NewStaticViewState_4, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, ExtractRefs<Render>, [NewCarryForward_12], NewContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>> & {
192
- withFastRender<NewCarryForward_13 extends object>(fastRender: RenderFast<[NewCarryForward_12], NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, NewCarryForward_13>): JayStackComponentDefinition<NewStaticViewState_4, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>, ExtractRefs<Render>, [NewCarryForward_12], [Signals<NewCarryForward_13>, ...NewContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>> & {
193
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>, [Signals<NewCarryForward_13>, ...NewContexts_1], JayComponentCore<NewPropsT & NewParams_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>>): JayStackComponentDefinition<NewStaticViewState_4, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>, ExtractRefs<Render>, [NewCarryForward_12], [Signals<NewCarryForward_13>, ...NewContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>>;
194
- };
195
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, NewContexts_1, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>): JayStackComponentDefinition<NewStaticViewState_4, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>, ExtractRefs<Render>, [NewCarryForward_12], NewContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_4>>>;
196
- };
197
- withFastRender<NewCarryForward_14 extends object>(fastRender: RenderFast<[], NewPropsT & NewParams_2, ExtractViewState<Render>, NewCarryForward_14>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_14>, ...NewContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>>>> & {
198
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_14>, ...NewContexts_1], JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_14>, ...NewContexts_1], NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT & NewParams_2, Partial<ExtractViewState<Render>>>>;
199
- };
200
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_2, ExtractRefs<Render>, ExtractViewState<Render>, NewContexts_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewContexts_1, NewPropsT & NewParams_2, NewParams_2, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
201
- };
202
- withSlowlyRender<NewStaticViewState_5 extends Partial<ExtractViewState<Render>>, NewCarryForward_15 extends object>(slowlyRender: RenderSlowly<[], NewPropsT, NewStaticViewState_5, NewCarryForward_15>): JayStackComponentDefinition<NewStaticViewState_5, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, ExtractRefs<Render>, [NewCarryForward_15], NewContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>> & {
203
- withFastRender<NewCarryForward_16 extends object>(fastRender: RenderFast<[NewCarryForward_15], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, NewCarryForward_16>): JayStackComponentDefinition<NewStaticViewState_5, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>, ExtractRefs<Render>, [NewCarryForward_15], [Signals<NewCarryForward_16>, ...NewContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>> & {
204
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>, [Signals<NewCarryForward_16>, ...NewContexts_1], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>>): JayStackComponentDefinition<NewStaticViewState_5, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>, ExtractRefs<Render>, [NewCarryForward_15], [Signals<NewCarryForward_16>, ...NewContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>>;
205
- };
206
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, NewContexts_1, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>): JayStackComponentDefinition<NewStaticViewState_5, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>, ExtractRefs<Render>, [NewCarryForward_15], NewContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_5>>>;
207
- };
208
- withFastRender<NewCarryForward_17 extends object>(fastRender: RenderFast<[], NewPropsT, ExtractViewState<Render>, NewCarryForward_17>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_17>, ...NewContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
209
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_17>, ...NewContexts_1], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_17>, ...NewContexts_1], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
210
- };
211
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, NewContexts_1, JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], NewContexts_1, NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
212
- };
213
- withLoadParams<NewParams_3 extends UrlParams>(loadParams: LoadParams<[], NewParams_3>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT, ExtractViewState<Render>>> & {
214
- withSlowlyRender<NewStaticViewState_6 extends Partial<ExtractViewState<Render>>, NewCarryForward_18 extends object>(slowlyRender: RenderSlowly<[], NewPropsT & NewParams_3, NewStaticViewState_6, NewCarryForward_18>): JayStackComponentDefinition<NewStaticViewState_6, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, ExtractRefs<Render>, [NewCarryForward_18], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>> & {
215
- withFastRender<NewCarryForward_19 extends object>(fastRender: RenderFast<[NewCarryForward_18], NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, NewCarryForward_19>): JayStackComponentDefinition<NewStaticViewState_6, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>, ExtractRefs<Render>, [NewCarryForward_18], [Signals<NewCarryForward_19>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>> & {
216
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>, [Signals<NewCarryForward_19>], JayComponentCore<NewPropsT & NewParams_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>>): JayStackComponentDefinition<NewStaticViewState_6, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>, ExtractRefs<Render>, [NewCarryForward_18], [Signals<NewCarryForward_19>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>>;
217
- };
218
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, [], JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>): JayStackComponentDefinition<NewStaticViewState_6, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>, ExtractRefs<Render>, [NewCarryForward_18], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_6>>>;
219
- };
220
- withFastRender<NewCarryForward_20 extends object>(fastRender: RenderFast<[], NewPropsT & NewParams_3, ExtractViewState<Render>, NewCarryForward_20>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_20>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>>>> & {
221
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_20>], JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_20>], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT & NewParams_3, Partial<ExtractViewState<Render>>>>;
222
- };
223
- withInteractive(comp: ComponentConstructor<NewPropsT & NewParams_3, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT & NewParams_3, NewParams_3, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
224
- };
225
- withSlowlyRender<NewStaticViewState_7 extends Partial<ExtractViewState<Render>>, NewCarryForward_21 extends object>(slowlyRender: RenderSlowly<[], NewPropsT, NewStaticViewState_7, NewCarryForward_21>): JayStackComponentDefinition<NewStaticViewState_7, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, ExtractRefs<Render>, [NewCarryForward_21], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>> & {
226
- withFastRender<NewCarryForward_22 extends object>(fastRender: RenderFast<[NewCarryForward_21], NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, NewCarryForward_22>): JayStackComponentDefinition<NewStaticViewState_7, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>, ExtractRefs<Render>, [NewCarryForward_21], [Signals<NewCarryForward_22>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>> & {
227
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>, [Signals<NewCarryForward_22>], JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>>): JayStackComponentDefinition<NewStaticViewState_7, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>, ExtractRefs<Render>, [NewCarryForward_21], [Signals<NewCarryForward_22>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>>;
228
- };
229
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, [], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>): JayStackComponentDefinition<NewStaticViewState_7, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>, ExtractRefs<Render>, [NewCarryForward_21], [], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>> & Omit<ExtractViewState<Render>, keyof NewStaticViewState_7>>>;
230
- };
231
- withFastRender<NewCarryForward_23 extends object>(fastRender: RenderFast<[], NewPropsT, ExtractViewState<Render>, NewCarryForward_23>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_23>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>> & {
232
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, Partial<ExtractViewState<Render>>, [Signals<NewCarryForward_23>], JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>): JayStackComponentDefinition<object, Partial<ExtractViewState<Render>>, ExtractRefs<Render>, [], [Signals<NewCarryForward_23>], NewPropsT, {}, JayComponentCore<NewPropsT, Partial<ExtractViewState<Render>>>>;
233
- };
234
- withInteractive(comp: ComponentConstructor<NewPropsT, ExtractRefs<Render>, ExtractViewState<Render>, [], JayComponentCore<NewPropsT, ExtractViewState<Render>>>): JayStackComponentDefinition<object, ExtractViewState<Render>, ExtractRefs<Render>, [], [], NewPropsT, {}, JayComponentCore<NewPropsT, ExtractViewState<Render>>>;
235
- };
236
- };
135
+ ], PropsT, Params, JayComponentCore<PropsT, InteractiveVS>>;
136
+ withInteractive(comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>): Builder<'Done', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
137
+ } : State extends 'InteractiveRender' ? JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore> & {
138
+ withInteractive(comp: ComponentConstructor<PropsT, Refs, InteractiveVS, Contexts, CompCore>): Builder<'Done', Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
139
+ } : JayStackComponentDefinition<Refs, SlowVS, FastVS, InteractiveVS, Services, Contexts, PropsT, Params, CompCore>;
140
+ /**
141
+ * Create a Jay Stack component from a contract.
142
+ *
143
+ * For .jay-contract files with explicit phase annotations:
144
+ * - SlowViewState: Properties with phase: slow (or default)
145
+ * - FastViewState: Properties with phase: fast
146
+ * - InteractiveViewState: Properties with phase: fast+interactive
147
+ *
148
+ * For .jay-html files (backward compatible):
149
+ * - SlowViewState, FastViewState, InteractiveViewState default to `never`
150
+ *
151
+ * Note: Full type enforcement for phase-specific render functions requires
152
+ * extensive refactoring of the Builder type system. Currently, the phase types
153
+ * are extracted but not yet enforced. See design-log/50 for full implementation plan.
154
+ *
155
+ * TODO: Add type constraints to withSlowlyRender, withFastRender, withInteractive
156
+ * to enforce that returned/received ViewStates match the phase-specific types.
157
+ */
158
+ declare function makeJayStackComponent<Render extends JayContract<any, any, any, any, any>>(): Builder<'Props', ExtractRefs<Render>, ExtractSlowViewState<Render>, ExtractFastViewState<Render>, ExtractInteractiveViewState<Render>, [
159
+ ], [
160
+ ], {}, {}, JayComponentCore<object, ExtractInteractiveViewState<Render>>>;
237
161
 
238
162
  export { type AnyFastRenderResult, type AnyJayStackComponentDefinition, type AnySlowlyRenderResult, type Builder, type ClientError4xx, type FastRenderResult, type JayStackComponentDefinition, type LoadParams, type PageProps, type PartialRender, type Redirect3xx, type RenderFast, type RenderSlowly, type ServerError5xx, type ServiceMarker, type ServiceMarkers, type Signals, type SlowlyRenderResult, type UrlParams, clientError4xx, createJayService, makeJayStackComponent, notFound, partialRender, redirect3xx, serverError5xx };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jay-framework/fullstack-component",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
@@ -26,12 +26,12 @@
26
26
  "test:watch": "vitest"
27
27
  },
28
28
  "dependencies": {
29
- "@jay-framework/component": "^0.8.0",
30
- "@jay-framework/runtime": "^0.8.0"
29
+ "@jay-framework/component": "^0.9.0",
30
+ "@jay-framework/runtime": "^0.9.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@jay-framework/dev-environment": "^0.8.0",
34
- "@jay-framework/jay-cli": "^0.8.0",
33
+ "@jay-framework/dev-environment": "^0.9.0",
34
+ "@jay-framework/jay-cli": "^0.9.0",
35
35
  "@types/express": "^5.0.2",
36
36
  "@types/node": "^22.15.21",
37
37
  "nodemon": "^3.0.3",